DQN Variants와 Replay Buffer Sampling · 학습
실행 조건
NumPy·PyTorch·Gymnasium을 사용합니다. 마지막 활동은 외부 데이터 카드를 읽고 직접 수집한 전이를 분석합니다.
이번에 배울 내용
네트워크 개선을 모두 적용하기보다 어떤 문제를 해결하는 변화인지 구분하고, 필요한 한 가지를 검증합니다.
세 기법의 다른 위치
Double은 다음 행동의 선택과 가치 평가, Dueling은 Q의 표현, PER는 경험의 샘플링을 바꿉니다. 모두 같은 문제를 해결하는 기법은 아닙니다.
표현과 분포
Dueling은 로 결합할 수 있습니다. PER는 큰 오차의 경험을 자주 고르는 대신 샘플 편향과 가중치를 함께 고려합니다. 경험의 범위 밖 상태를 만들어 주지는 않습니다.
풀이 예제
- , .
- , .
- Dueling: , .
- TD Error: .
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]