Joeの精進記録

旧:競プロ練習記録

強化学習アルゴリズム整理

久しぶりにPolicy Gradientやろうとしたら全部忘れていた

DQN

アルゴリズム

  • とりあえずプレイアウトして (S, a, r)をreplay memoryに保存する
  •  (S, a, r)と、その nステップ後の (S', a', r')を取り出してきて、後者の価値を古いネットワークで推定し、そこからrewardを逆算した前者の価値に近づけるように、新しいネットワークを学習させる
  • iter学習したら古いネットワークを新しくする

いいところ

  • replay memoryに保存してまとめてとってくるので、まとめて推論できて、高速だしsample efficient

Policy Gradient

アルゴリズム

  • 期待報酬 J(\theta)を最大化するように学習する
  •  \pi(s | a; \theta)は確率的
  • この勾配はpolicy gradient theoremによって求まる

f:id:xuzijian629:20200103190739p:plain

sykwerくんの記事が優秀

sykwer.hatenablog.jp

いいところ

  • まあこれも Mエピソード分の推論は同時にできるしそんなにスピード悪くなさそう
  • DQNに比べて何がいいのかわからんな

MCTS

アルゴリズム

  • 未展開ノードについたらその評価を推論して、そこまでのノードの評価をupdateする
  • visit回数に応じて、より強いpolicyを構築し、それに合わせるように学習する
  • スコアは相対的なものにする

いいところ

  • 探索があるので、一般に普通の評価より強いと思う
  • DQNのやつと組み合わせたらさすがにDQNより強いはずでは