1. 학습
  2. /
  3. 강의
  4. /
  5. Python으로 배우는 Deep Reinforcement Learning

Connected

연습 문제

완전한 DQN 알고리즘 구현하기

드디어 그 시간이 왔어요! 필요한 준비를 모두 마쳤으니, 이제 전체 DQN 알고리즘을 구현하고 이를 사용해 Lunar Lander 에이전트를 학습시켜 볼 거예요. 이 말은 곧, Experience Replay뿐 아니라 Decayed Epsilon-Greediness와 Fixed Q-Targets까지 모두 사용한다는 뜻이에요.

Decayed Epsilon Greediness를 구현한 select_action() 함수와 지난 연습 문제에서 만든 update_target_network() 함수가 준비되어 있어요. 이제 남은 일은 이 함수들을 DQN 학습 루프에 맞게 넣고, 손실을 계산할 때 Target Network를 올바르게 사용하는지 확인하는 거예요.

시간에 따라 \(\varepsilon\) 값을 감소시키려면 새로운 스텝 카운터 total_steps를 유지해야 해요. 이 변수는 0으로 초기화되어 있어요.

지침

100 XP
  • Decayed Epsilon Greediness를 구현하기 위해 select_action()을 사용해 에이전트의 행동을 선택하세요. 에피소드 전반의 누적 합인 total_steps를 사용해야 해요.
  • TD 타깃을 계산하기 전에 그래디언트 추적을 끄세요.
  • 다음 상태를 얻은 뒤, 다음 상태의 Q-값을 가져오세요.
  • 각 스텝의 끝에서 타깃 네트워크를 업데이트하세요.