강의자료 · 전기공학을 위한 강화학습

DQN Variants와 Replay Buffer Sampling · 학습

실행 조건

NumPy·PyTorch·Gymnasium을 사용합니다. 마지막 활동은 외부 데이터 카드를 읽고 직접 수집한 전이를 분석합니다.

이번에 배울 내용

네트워크 개선을 모두 적용하기보다 어떤 문제를 해결하는 변화인지 구분하고, 필요한 한 가지를 검증합니다.

세 기법의 다른 위치

Double은 다음 행동의 선택과 가치 평가, Dueling은 Q의 표현, PER는 경험의 샘플링을 바꿉니다. 모두 같은 문제를 해결하는 기법은 아닙니다.

표현과 분포

Dueling은 Q=V+A−mean⁡(A)Q=V+A-\operatorname{mean}(A)로 결합할 수 있습니다. PER는 큰 오차의 경험을 자주 고르는 대신 샘플 편향과 가중치를 함께 고려합니다. 경험의 범위 밖 상태를 만들어 주지는 않습니다.

풀이 예제

import numpy as np
online=np.array([2.,4.,3.]);target=np.array([5.,1.,2.])
print('DQN',1+.95*target.max(),'Double',1+.95*target[online.argmax()])
advantage=np.array([1.,2.,6.]);print('Dueling Q',2+advantage-advantage.mean())
error=np.array([.1,1.,5.])
for alpha in [0,.6]:
    probability=(error+1e-5)**alpha;probability/=probability.sum();print(alpha,probability)
DQN 5.75 Double 1.95
Dueling Q [0. 1. 5.]
0 [0.33333333 0.33333333 0.33333333]
0.6 [0.06478095 0.25788367 0.67733538]

공식 문서·데이터

참고 예제

추가 예제 보기