Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Recurrent Experience Replay in Distributed Reinforcement Learning #52

Open
kzmssk opened this issue Jan 11, 2019 · 0 comments
Open

Recurrent Experience Replay in Distributed Reinforcement Learning #52

kzmssk opened this issue Jan 11, 2019 · 0 comments

Comments

@kzmssk
Copy link
Member

kzmssk commented Jan 11, 2019

分散Q学習にRNNを導入、経験再生における隠れ層の扱い方を実験的に解析

論文本体・著者

  • Recurrent Experience Replay in Distributed Reinforcement Learning

解きたい問題

  • 観測が部分的にしか与えられない環境(POMDP)でも効率的に学習できる強化学習エージェントを作りたい
    • Recurrent Neural Network(RNN)を導入すれば過去の観測情報を利用することができる
  • 学習データ収集を分散させる手法が強化学習では良い結果を示している
    • Policy-gradient: IMPALA
    • Value-baed: Ape-X
      * 分散型のDeep Q-Network agent(DQN)にRNNを導入したい
    • Replay時に隠れ層の初期状態をどうすればよいか?
      • 既存手法1:常に零ベクトルにする
      • 既存手法2:エピソードすべてをReplayする
    • 1はデータ収集時と異なる条件になってしまう、かつ過去の状態をうまく保持できなくなる
    • 2は エピソードが長いシーケンスの場合には計算リソースが足りなくなる
    • 既存研究の実験では1と2に大きな違いが見られなかったが、実験対象のAtariのゲームでは不十分だったのではないか

新規性

  • 勾配計算を行う際のReplay Bufferに貯められた隠れ層の値の扱い方について実験的に調査を行ったこと
  • 実験から得られた結果を使ってATARI-30でSoTA、DMLab-30でSoTA相当を達成したこと

実装

  • Replay Bufferに隠れ層の値を追加し、Replay時に利用する
  • 利用方法にはオプションがある
    • 利用方法1(Stored-State):探索時に計算された値を初期値として使う
      • しかし非同期でパラメーター更新が行われているため、Replay時と探索のときはモデルのパラメーターが異なるため、正しい初期値でない(representational drift)
    • 利用方法2(Burn-in):シーケンス前半の一定ステップ前向き計算を行なって得られた隠れ層の値を初期値としてReplayする

実験・議論

fig_1
論文 Fig. 1 より (a): Q値の違いを評価する方法を説明した図。hatが付いている方がReplay時に得られた隠れ層の状態 (b): 隠れ層の初期値(Initial State)と最終時刻における値(Final State)のQ値の違いを示した図。横軸は学習対象となるDMLabのレベルを示している (c): 2つのタスクにおいて6通りの手法を学習させたときの報酬平均の推移
  • 既存手法として零ベクトルを常に初期値として使う(Zero-State)と比較をした

    • 比較する条件はZero-State、Stored-State(提案手法)それぞれについてBurn-inのステップ幅(0, 20, 40)を変えた6通り
  • データ収集時とReplay時に予測されたQ値(モデル予測)がどれくらい異なるのかを実験的に評価した(下のFig. 1の(a)がQ値の違いを計算する方法を示している)

    • Q値の違いはReplay時における最大値によって正規化された二乗誤差で表現した
  • Zero-StateよりもStored-Stateの結果がよかった

  • Burn-inのステップ幅は部分的にしか効果がなかった

    • (図にはないが)Zero-Stateでサンプルするシーケンスを長くしてBurn-inを適用しなかった場合は良い結果を得られなかった
fig_2
論文 Fig. 2 より ATARIの学習結果の抜粋。左の図は学習にかかった時間と達成したスコアを過去の手法と比較した図。右の図はApe-X(RNNなし)との比較
  • Stored-StateでBurn-in 40 stepでATARI-57, DMLab-30を学習した
    • 各タスクのパラメーターは同じ
    • ATARIでSoTA, DMLabではSoTA相当
    • ATARI「MS.PACMAN」ではこのゲーム専用にカスマイズされた既存手法[Seijen et al., 2017]を上回った
    • 「MONTEZUMA’S REVENGE」「PITFALL」「PRIVATE EYE」「SKIING」「SOLARIS」は人間のスコアを上回ることができなかった
    • DMLabではPolicy-gradientを使ったIMAPALAと同程度の性能を出した

読んだ中での不明点などの感想

  • 提案としてはApe-XにRNNを導入したというシンプルなものだが、Fig. 2の性能比較図は強い説得力がある
  • 初期値をLearnerのパラメーターによるBack propagation through timeで補正するという方法もあるのではないか

関連論文

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants