Double DQN2 Tensorflow2로 만든 Double DQN 코드: CartPole-v1 OpenAI Gym에서 제공하는 CartPole-v1 환경을 대상으로 Double DQN 알고리즘을 Tensorflow2 코드로 구현하였다. 학습결과는 다음과 같다. 다음은 학습이 끝난 후 카트폴의 움직임이다. Double DQN 코드는 Q 신경망을 구현하고 학습시키기 위한 doubledqn_learn.py, 이를 실행시키기 위한 doubledqn_main.py, 학습을 마친 신경망 파라미터를 읽어와 에이전트를 구동하기 위한 doubledqn_load_play.py 그리고 리플레이 버퍼를 구현한 replaybuffer.py로 구성되어 있다. 전체 코드 구조는 다음과 같다. 다음은 Tensorflow 2 코드다. doubledqn_learn.py # Double DQN learn (tf2 subclassi.. 2021. 5. 11. Double DQN 알고리즘 DQN에서 시간차 타깃 \(y_i\) 는 다음과 같이 계산된다. \[ y_i=r(\mathbf{x}_i, \mathbf{a}_i )+ \gamma \max_{\mathbf{a}^\prime} Q_{\phi^\prime} (\mathbf{x}_{i+1}, \mathbf{a}^\prime ) \] 여기서 \(Q_{\phi^\prime} (\mathbf{x}_{i+1}, \mathbf{a}^\prime )\) 는 최적 행동가치 함수 \(Q^\star (\mathbf{x}_{i+1}, \mathbf{a}^\prime )\) 의 값을 신경망으로 추정한 값이다. 연구에 의하면 Q-러닝과 DQN에서는 행동가치 함수를 참값보다 항상 큰 값으로 추정하는 현상이 발생한다. 이를 과대추정 바이어스(overestimation.. 2021. 5. 11. 이전 1 다음