某大学生の機械学習日記

趣味はでぃーぷらーにんぐ

深層強化学習"Ape-X"の論文を読みとく

Ape-XとはICLR2018で提案された深層強化学習アルゴリズム。既存モデルを大きく上回る成績&学習速度の改善をえた。 (実装もしているので、それの経過等も別の記事で報告できたらと思います)(時間があればまた更新します...)

元論文→Distributed Prioritized Experience Replay

論文のまとめ

ベースモデル

  • Actor-Learnerをベースとしている
    ルートモデルのLearnerを効率的に学習させていくための工夫(Distributed SGD, Distributed Importance Sampling, Prioritized Experience Replay)がなされている。工夫の詳細は後のパートにて説明する。大まかな流れとしてはLearnerからクローンされた複数のActorは非同期的に方策評価をおこない観測経験をReplay Memoryに保存する。そして、Replay Memoryから呼び出された経験をもとにLearnerのパラメーターを更新する。 f:id:knto-h:20180419021823p:plain:w450

工夫点

  • Distributed Stochastic Gradient Descent
    まずLearnerからクローンされた複数のActorが非同期的に経験をサンプリングしてくる。そしてActorによって蓄積されたReplay Memoryの中からランダムに情報をサンプリングしLearnerの更新に回すことからきている。この2つのステップに加えて、ActorのサンプリングはCPUをLearnerの学習ではGPUで計算することによって学習の高速化をはかる。

  • Distributed Importance Sampling
    Replay Memoryから優先度を反映した確率分布に基づいてサンプリングをおこない、パラメーターの更新をする。 勾配のばらつきを減らすことで効率的かつより早く学習がおこなえる。

  • Prioritized Experience Replay
    通常のExperience ReplayではReplay Memoryの中からランダムにサンプリングしてきたミニバッチを用いてパラメーターの更新をする。しかしこれでは学習に優位なデータがサンプリングされにくかったりその逆のことがおき非効率である。そこで、TD誤差によって経験に優先度をつけて保存し重要な経験が呼び出されやすくなるよう効率的な学習を行う手法を起用した。優先度をだすことから"Prioritized"がきている。

f:id:knto-h:20180419022733p:plain:w400

モデル構造(詳細)

  • Loss関数
    Mean Square rootを用いる。Double-DQNの手法を使って, targetをLearnerと別のモデルから求める。