Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio

Eche un vistazo a continuación

1 de 19 Anuncio

Más Contenido Relacionado

Presentaciones para usted (20)

Más de harmonylab (20)

Anuncio

Más reciente (20)

Rainbow

  1. 1. Rainbow: Combining Improvements in Deep Reinforcement Learning Deep Leaningゼミ B4 細川喜生 2018/7/2
  2. 2. 論文概要 • 著者 Matteo Hessel, Joseph Modayil, Hado van Hasselt, Tom Schaul, Georg Ostrovski, Will Dabney, Dan Horgan, Bilal Piot, Mohammad Azar, David Silver • AAAI 2018 https://arxiv.org/abs/1710.02298 • 被引用数:36件(2018/6/28) • 複数のDQNの拡張モデルを組み合わせて出来たRainbowという ハイパフォーマンスな手法を提案し、当時のstate-of-the-art(最先端技術)となった 1
  3. 3. Rainbowとは? 1. DQN 7つのモデルを 2. Double DQN(DDQN) 組み合わせる… 3. Prioritized Experience Replay 4. Dueling Networks 5. Multi-step Learning 6. Distributional RL 7. Noisy Nets 7つのモデルが持つ特性を 良い所取り! Rainbow 2
  4. 4. 強化学習おさらい 環境エージェント ある状態において、ある行動を取った時の 価値Qを最大化する行動を探索(エピソード)によって学習する s:状態観測 a:行動 エピソード r:報酬 Q:行動価値 3
  5. 5. Q学習おさらい • Qの値を学習するためのアルゴリズムの一つ Q(st,at)=(1-α) Q(st,at)+α(rt+1+γmaxat+1(Q(st+1,at+1))) • 実際の報酬と見込みの差分(TD誤差)から学習していくTD学習の1つ • 行動した後の状態をもとに報酬と行動価値を判断する • 学習率αによってQ値の更新をどれだけ急激に行うかを制御している 4
  6. 6. 1.DQN Q学習+深層学習 特徴 ・Experience Replay エージェントの経験したサンプルを記録しておきそれを学習に利用 →学習データの相関をなくす ・Fixed Target Network 教師データのNNを遅れて更新→NNの出力を用いた学習の安定 ・報酬のclipping 報酬を-1,0,1に固定→ゲーム内容によらずDLを実行しやすい ・誤差関数:二乗誤差→Huber関数 誤差関数の出力を小さくして学習を安定させる 5
  7. 7. 2. Double DQN(DDQN) Q学習では価値が高くない行動を過大評価することで 学習に悪影響が出る場合がある 最適行動を選択する関数 行動価値関数Q Q値を評価する関数 Q関数を分割することで誤差の増大を防ぎ解決! この考え方をDQNに用いて改良された手法がDDQN Yt=Rt+1+γQ(St+1,argmaxQ(St+1,a;θt);θ’t) 別のもの 6
  8. 8. 3.Prioritized Experience Replay ・Experience Replayでのサンプルに優先順位をつける ・どうやって?→TD誤差の大きさで優先順位をつける Rt+1+γ・argmaxQ(St,at+1)-Q(St,At) • 確率的サンプリングを採用 サンプルに優先順位をつけて学習して DQNのネットワークの誤差を小さくする! at+1 7
  9. 9. 4.Dueling networks • Q値を状態の価値V(s)と行動のアドバンテージ価値A(s,a)に分けて学習する手法 Q(s,a)=V(s) + A(s,a) 実際は完璧にV値とA値を推定することは出来ないので 以下の式で計算する • Q(s,a) = V(s)+(A(s,a) – 1 |𝐴| ΣA(s,a)) A値とA値の平均の差分を用いる V値が行動に左右されずに学習可能 学習が安定する! 引用:Dueling Network Architectures for Deep Reinforcement Learning Q(s,a) Q(s,a) V(s) A(s,a) 従来のDQN Dueling DQN 8
  10. 10. 5. Multi-step learning • 学習に用いる報酬を1-stepの報酬からn-stepに拡張した手法 報酬: • Rainbowではn=1,3,5を比較し、最も良かったn=3を使っている TD誤差(n=3): 大きくしすぎてもバイアスが大きくなる 適切なnの設定が重要 学習の高速化につながる! 9
  11. 11. 6. Distributional RL • DQNではQ関数を収益の期待値で表現している これは状態・行動に分布が左右される • その期待値を分布として学習する手法 学習が安定する! 例 FREEWAY 鳥に当たらないように車を動かすゲーム 鳥 車 引用:A Distributional Perspective on 10
  12. 12. 7. Noisy Nets • ε-greedy法による探索では確率εでランダムに行動する、しかし… εに左右されやすく、設定が難しい 最初の報酬を得るのに多くの行動選択枝があると難しい • どのくらいランダムにするかをノイズを用いてネットワークに学習させる 通常の全結合 Noisy Nets どのくらいランダムにするかの ランダムなノイズ 学習パラメータ 探索効率の改善! 11
  13. 13. 実験方法 • 57種類のAtari2600のゲームで比較実験 例 エイリアン スペースインベーダー 1. DQNの拡張モデル6つとRainbowの比較 2. Rainbow(7種のモデル)と1つ抜き(6種のモデル)の比較 12
  14. 14. 実験結果 1.他モデルとの比較 • 右図:他のモデルとRainbowのスコアの比較図 • 縦軸:スコア • 横軸:学習に用いたフレーム数 • 7MフレームでDQNの最高スコア、 44Mフレームでその他の全モデルの 最高スコアを上回る • 大幅なスコアの更新に成功 引用:Rainbow: Combining Improvements in Deep Reinforcement Learning 13
  15. 15. 実験結果 1.他モデルとの比較 • 下図:どのくらいの速度で人間のパフォーマンスに到達するか • 縦軸:ゲーム数 • 横軸:学習に用いたフレーム数 • 学習の速度も向上した 20% 50% 100% 200% 500% 引用:Rainbow: Combining Improvements in Deep Reinforcement Learning 14
  16. 16. 実験結果 2.1種抜けとの比較 • 右図:Rainbowから1種抜いたモデルとRainbowのスコアの比較図 • 縦軸:スコア • 横軸:学習に用いたフレーム数 • PriorityとMulti-step抜き…影響が大きい 早い段階でパフォーマンスに大きな影響 • DoubleとDuel抜き…影響が小さい 引用:Rainbow: Combining Improvements in Deep Reinforcement Learning Double 影響力大! Multi-step Priority DQN Noisy 影響力小 Duel Dis 15
  17. 17. 実験結果 2.1種抜けとの比較 ゲーム毎のパフォーマンス • PriorityとMulti-step抜き…ほとんどのゲームでRainbowより低く、影響大 全57ゲーム中53で影響を及ぼしている。 • Noisy抜き…ゲームによって影響がまちまち • DoubleとDuel抜き…影響は小さいが、Duelはゲームによっては影響大 引用:Rainbow: Combining Improvements in Deep Reinforcement Learning No Double No Multi-step No Priority No Noisy No Duel No Distribution 16
  18. 18. まとめ • Rainbowは7種のDQNモデルを合わせたモデルで、従来手法より パフォーマンスが大幅に向上した • Prioritized Experience ReplayとMulti-step Learningが特に重要 • Pythonでの実装 https://github.com/Kaixhin/Rainbow 17
  19. 19. 参考文献 • Deep Reinforcement Learning with Double Q-learning Hado van Hasselt, Arthur Guez, David Silver • Prioritized Experience Replay Tom Schaul, John Quan, Ioannis Antonoglou, David Silver • Dueling Network Architectures for Deep Reinforcement Learning Ziyu Wang, Tom Schaul, Matteo Hessel, Hado van Hasselt, Marc Lanctot, Nando de Freitas • A Distributional Perspective on Reinforcement Learning Marc G. Bellemare, Will Dabney, Rémi Munos • Noisy Networks for Exploration Meire Fortunato, Mohammad Gheshlaghi Azar, Bilal Piot, Jacob Menick, Ian Osband, Alex Graves, Vlad Mnih, Remi Munos, Demis Hassabis, Olivier Pietquin, Charles Blundell, Shane Legg • https://github.com/arXivTimes/arXivTimes/issues/439 18

Notas del editor

  • AAAI アメリカ人工知能学会に論文が掲載されています
  • ある状態sにおいて行動aを取った時、どれだけ報酬rが得られるか
    報酬rは短期的な報酬で長期的な価値Qとは別
    強化学習では、目先の報酬(Immediate rewards:即時報酬)ではなく、将来に得られる価値を最大化させるように行動します
    環境は試合、エージェントは選手で、どのような行動(プレー)をしたら報酬(褒められるか)を学習していき、そして将来にわたる最大の価値Q(ゴールを決める)を目指していくということです。
  • この差分(=誤差)をTD誤差といい(TD = Temporal Difference)、TD誤差により学習を行う手法をTD学習といいます
  • https://book.mynavi.jp/manatee/detail/id=89691
    https://qiita.com/sugulu/items/bc7c70e6658f204f85f9
    Q関数をディープラーニングすること。

    Experience Replayは従来のQ学習のように1ステップごとにそのステップの内容(experience)を学習するのではなく、メモリに各ステップの内容を保存しておき、メモリから内容をランダムに取り出して(replay)、ニューラルネットワークに学習させる方法です。
    Fixed Target Q-Network とニューラルネットワークは主となるmain-networkとは別に、誤差関数で使用する行動価値を求めるtarget-networkを用意します。そしてQ学習で使用するmaxaQ(st+1, a)の値はtarget-networkから求めます。このtarget-networkは少し前の時間のmain-networkを使用するようにします。
    ニューラルネットワークの学習に、そのニューラルネットワークの出力を使用すると学習が安定しづらいという問題が発生します。Fixed Target Q-Networkはこの問題を解決する工夫となります。Fixed Target Q-Networkはミニバッチ学習を行うことで実装することができます。

    報酬のclippingは各ステップで得られる報酬を-1, 0, 1のいずれかに固定しておく方法です。こうすることで、ゲーム内容(学習対象)によらず、同じハイパーパラメータでディープラーニングを実行しやすいというメリットがあります。

    誤差関数を二乗誤差からハーバー関数にすることで誤差1以上の際に絶対値誤差を使用することで学習が安定します。
  • Q学習では、推定のQ値が真の値に対して二乗誤差が正になるとき、maxQ値が真の値よりも大きくなってしまう(過大評価)
    ターゲット(y)生成時に現在のネットワークとは別のネットワークを用いて過大評価を抑制します。
    “”“
    Q値の更新における「遷移先の状態における期待報酬」の推定では、"max"が使用される。期待報酬の推定には当然ノイズがあることが想定され、そのノイズが0を中心とした-ε ~ +εの範囲である場合、"max"をとっていると常に+ε側に振れたものが選択されることになる。そうなると、期待報酬はどうしても真の値より上振れすることになる。これが"overestimations"と呼ばれる問題となる。

    https://qiita.com/sugulu/items/10ac7ce53de40d4c8891
    “”“
  • サンプル、、、DQNでメモリに保存していた状態(s(t), a(t), r(t), s(t+1), a(t+1) )
    P(i)について・・・α=0で一様サンプリング、αが大きいほど偏ったサンプリングを表現

    注意点
    TD誤差の少ない経験がずっと再生されない
    関数近似によるノイズに影響されやすい
    高優先度の経験をgreedyにサンプルすると過学習しやすい
  • https://qiita.com/sugulu/items/6c4d34446d4878cde61a

    Qには状態sだけで決まる部分と行動aによって決まる部分がある。それを分けて学習する方法で、
    メリットはV(s)が行動によらず毎回学習できる点
  • やりすぎると(モンテカルロ法と同様)バイアスが大きくなってしまう
    手法としては割と古くからあり、nは3や5が良いことが知られている。
  • 図はFREEWAYという鶏を車に当たらないよう、下から上に移動させるゲームにおける報酬分布の差異を示している。左の図では車は離れている状態のためどの行動でも同じような報酬の分布だが、車が近づいてきたときは下に下がるか上に上がってしまうかの方が分布の平均が高くなっていることが分かる。

    (質問されたら)
    範囲が広い分布を選ばない・・・変な行動をするリスクを抑えられる
    ベルマン方程式を用いているが詳しくは見ていませんでした
  • 記号は要素ごとの積

    1-εで最適行動
    グリーディ法
    一番最初に思いつく方法は、現在の推定される行動の価値の中で、最も価値の高い行動を選ぶという方法。
    εグリーディ法
    グリーディ法の場合、常に「今のところ一番良さげなレバー」しか選ばないので、つまり「知識利用」のみを行って、「探査」は行わないことになる。

    それだと推定される行動の価値が改善されていかない可能性があるので、ε(0<ε<1)の確率で、ランダムに行動を選択するような方法も考えてみる。
  • マルチステップに至っては終盤の学習にも影響、PriorityとMulti-stepは全57ゲーム中53で良い影響を及ぼしている。
    Distributionは最初40Mフレームではレインボーとほぼ同じ
  • 中央の基準線がレインボーのパフォーマンス
    PriorityとMulti-step抜きは全57ゲーム中53で影響を及ぼしている。
  • 実装。きちんと論文同等のパフォーマンスが出るか検証されており、学習済みモデルも提供されている。
    https://github.com/Kaixhin/Rainbow

×