1. 学ぶ
  2. /
  3. コース
  4. /
  5. Pythonで学ぶDeep Reinforcement Learning

Connected

演習

固定Qターゲット

固定Qターゲットを用いて Lunar Lander を学習させる準備をします。前提として、行動を選択するオンラインネットワークと、TDターゲットの計算に用いるターゲットネットワークの両方をインスタンス化する必要があります。

また、各学習ステップで使用できる update_target_network 関数を実装します。ターゲットネットワークは勾配降下で更新しません。代わりに、update_target_network はその重みを少しだけ Q-network に近づけることで、時間とともに十分安定した状態を保つようにします。

この演習に限り、state dictionary を簡単に表示・確認できるように、非常に小さなネットワークを使います。隠れ層はサイズ2が1層のみで、アクション空間と状態空間の次元も2です。

環境には、state dict を出力するための print_state_dict() 関数が用意されています。

指示

100 XP
  • ターゲットネットワークとオンラインネットワークそれぞれの .state_dict() を取得します。
  • オンラインネットワークの重みを tau として、オンラインとターゲットの各パラメータの加重平均を取り、ターゲットネットワーク用の state dict を更新します。
  • 更新した state dict をターゲットネットワークに読み込みます。