Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introduction to A3C model

3,863 views

Published on

This document introduces the deep reinforcement learning model 'A3C' by Japanese.
Original literature is "Asynchronous Methods for Deep Reinforcement Learning" written by V. Mnih, et. al.

Published in: Technology
  • Be the first to comment

Introduction to A3C model

  1. 1. ディープラーニングの最新動向 強化学習とのコラボ編⑥ A3C 2017/1/11 株式会社ウェブファーマー 大政孝充
  2. 2. 今回取り上げるのはこれ [1] Volodymyr Mnih, Adria` Puigdome`nech Badia, Mehdi Mirza, Alex Graves, Timothy P. Lillicrap, Tim Harley, David Silver, and Koray Kavukcuoglu. Asynchronous methods for deep reinforcement learning. In Proceedings of the 33rd International Conference on Machine Learning (ICML), pp. 1928–1937, 2016. Asynchronousな手法によりreplay memoryを廃し、DQNより 高速かつ高精度な学習を達成した!
  3. 3. DQNからA3Cまでのイメージ DQN 2013NIPs 並列処理のしくみ DQN 2015Nature UNREAL Q学習な手法 A3C psedoな報酬 DistBrief Gorila actore-criticな手法 Asynchronous なDQN
  4. 4. 強化学習の基本① Li θi( )= E r +γ max a' Q s',a';θi−1( )−Q s,a;θi( )( ) 2 1-step Q学習の損失関数 actor-criticにおける 目的関数の勾配 1-step Sarsaの損失関数 Li θi( )= E r +γQ s',a';θi−1( )−Q s,a;θi( )( ) 2 n-step Q学習の損失関数 Li θi( )= E γk rt+k k=0 n ∑ + maxγ a' n Q s',a';θi−1( )−Q s,a;θi( ) ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ 2 ∇θ J θ( )= E ∇θ logπ at | st;θ( ) Rt −Vπ st( )( )⎡ ⎣ ⎤ ⎦ r γ Q s,a;θi( ) Vπ st( ) :割引率 :報酬 :状態 s で行動 a を取る場合の行動価値関数 :状態 s の価値関数
  5. 5. 強化学習の基本② Li θi( )= E r +γ max a' Q s',a';θi−1( )−Q s,a;θi( )( ) 2 1-step Q学習の損失関数 これがDQNの場合 L θ( )= Es,a,r,s'≈D r +γ max a' Q s',a';θ− ( )−Q s,a;θ( )( ) 2 DQNの損失関数 :experience replay memory :ターゲット・ネットワーク D θ−
  6. 6. 強化学習の基本③ actor-critic法のシステム Value Function Policy Critic Environment Sutton, Berto. “Reinforcement Learning –an introduction.” 1998. state reward Actor TD error action
  7. 7. DQN(NIPs 2013)のしくみ Nair, et. al “Massively parallel methods for deep reinforcement learning.” In ICML Deep learning Workshop. 2015.
  8. 8. DQN(nature 2015)のしくみ Nair, et. al “Massively parallel methods for deep reinforcement learning.” In ICML Deep learning Workshop. 2015.
  9. 9. DistBeliefのしくみ J. Dean, et al “Large Scale Distributed Deep Networks.” NIPS. 2012. ここでcomputer間 のやりとり
  10. 10. Downpour SGDのしくみ J. Dean, et al “Large Scale Distributed Deep Networks.” NIPS. 2012. 最新のparameterを 保持するmaster replicaから要求があったら、 その時点の最新parameterを 返す → replicaによってある 時点で使ってるparameterが 違う → asyncronous SGDの計算が終 わったら勾配を返 す DistBeliefで勾配計 算 ミニバッチをreplicaご とに分割
  11. 11. Sandblaster L-BFGSのしくみ J. Dean, et al “Large Scale Distributed Deep Networks.” NIPS. 2012.
  12. 12. Gorilaのしくみ A. Nair, et al “Massively parallel methods for deep reinforcement learning.” In ICML Deep learning Workshop. 2015.
  13. 13. Gorilaのしくみ ver.1 共有のreplay memoryを使用 Environment Q Network Shard 1 Shard 2 Shard K Q Network Target Q Network DQN Loss Parameter Server Environment Q Network Q Network Target Q Network DQN Loss ・ ・ ・ ActorのcomputerとLearnerの computer1つずつで1セットとする Actor Learner 全部でNセット replay memoryは1 つを共有する Replay Memory
  14. 14. Gorilaのしくみ ver.2(bundled mode) 個別のreplay memoryを使用 Environment Q Network Shard 1 Shard 2 Shard K Q Network Target Q Network DQN Loss Replay Memory Parameter Server Environment Q Network Q Network Target Q Network DQN Loss Replay Memory ・ ・ ・ ActorのcomputerとLearnerの computer1つずつで1セットとする Actor Learner 全部でNセット replay memoryはそれぞれ のcomputerに配置
  15. 15. Gorila(bundled mode)から asynchronousなDQNへの変更点① Environment Q Network Shard 1 Shard 2 Shard K Q Network Target Q Network DQN Loss Replay Memory Parameter Server Environment Q Network Q Network Target Q Network DQN Loss Replay Memory ・ ・ ・ CPU上の1つのスレッドに対応 Actor Learner replay memoryを廃止
  16. 16. Gorila(bundled mode)から asynchronousなDQNへの変更点② Environment Q Network Shard 1 Shard 2 Shard K Q Network Target Q Network DQN Loss Parameter Server Environment Q Network Q Network Target Q Network DQN Loss ・ ・ ・ Actor Learner 代わりに勾配を溜め込む gradients gradients
  17. 17. Gorila(bundled mode)から asynchronousなDQNへの変更点③ Environment Q Network Shard 1 Shard 2 Shard K Q Network Target Q Network DQN Loss Parameter Server for Q-Network Environment Q Network Q Network Target Q Network DQN Loss ・ ・ ・ Actor Learner gradients gradients Shard 1 Shard 2 Shard K Parameter Server for Target Q-Network Target Q-Network用のserverを作る
  18. 18. Shard 1 Shard 2 Shard K Parameter Server for Q-Network Shard 1 Shard 2 Shard K Parameter Server for Target Q-Network AsynchronousなDQNの流れ① Environment Q Network Q Network Target Q Network DQN Loss Environment Q Network Q Network Target Q Network DQN Loss ・ ・ ・ Actor Learner θをコピー   をコピー gradients gradients θ−
  19. 19. Shard 1 Shard 2 Shard K Parameter Server for Q-Network Shard 1 Shard 2 Shard K Parameter Server for Target Q-Network AsynchronousなDQNの流れ② Environment Q Network Q Network Target Q Network DQN Loss gradients Environment Q Network Q Network Target Q Network DQN Loss ・ ・ ・ Actor Learner 状態 s で行動 a をとり、s’ や r を観測 gradients
  20. 20. Shard 1 Shard 2 Shard K Parameter Server for Q-Network Shard 1 Shard 2 Shard K Parameter Server for Target Q-Network AsynchronousなDQNの流れ③ Environment Q Network Q Network Target Q Network DQN Loss gradients Environment Q Network Q Network Target Q Network DQN Loss ・ ・ ・ Actor Learner gradients L θ( )= Es,a,r,s'≈D r +γ max a' Q s',a';θ− ( )−Q s,a;θ( )( ) 2 Lossを計算
  21. 21. Shard 1 Shard 2 Shard K Parameter Server for Q-Network Shard 1 Shard 2 Shard K Parameter Server for Target Q-Network AsynchronousなDQNの流れ④ Environment Q Network Q Network Target Q Network DQN Loss gradients Environment Q Network Q Network Target Q Network DQN Loss ・ ・ ・ Actor Learner gradients 勾配を溜め込む dθ ← dθ + ∂L θ( ) ∂θ
  22. 22. Shard 1 Shard 2 Shard K Parameter Server for Q-Network Shard 1 Shard 2 Shard K Parameter Server for Target Q-Network AsynchronousなDQNの流れ⑤ Environment Q Network Q Network Target Q Network DQN Loss gradients Environment Q Network Q Network Target Q Network DQN Loss ・ ・ ・ Actor Learner gradients 定期的に勾配の積算値  を送り学習する dθ
  23. 23. A3Cのしくみ Environment Network Network gradients Environment ・ ・ ・ gradients Actor Critic Shard 1 Shard 2 Shard K Parameter Server for Network θ θv ' Network Shard 1 Shard 2 Shard K Parameter Server for Network θv gradients dθ dθv θ ' θ '
  24. 24. A3Cの流れ① Environment Network Network gradients Environment ・ ・ ・ gradients Actor Critic Shard 1 Shard 2 Shard K Parameter Server for Network θ θv ' Network Shard 1 Shard 2 Shard K Parameter Server for Network θv gradients dθ dθv θをコピー   をコピー θv θ ' θ '
  25. 25. A3Cの流れ② Environment Network Network gradients Environment ・ ・ ・ gradients Actor Critic Shard 1 Shard 2 Shard K Parameter Server for Network θ θv ' Network Shard 1 Shard 2 Shard K Parameter Server for Network θv gradients dθ dθv    ステップ間、状態   で方策         に従い行動   をとる。 tmax π at | st;θ '( ) at st V st,θv '( ) を計算する θ ' θ '
  26. 26. A3Cの流れ③ Environment Network Network gradients Environment ・ ・ ・ gradients Actor Critic Shard 1 Shard 2 Shard K Parameter Server for Network θ θv ' Network Shard 1 Shard 2 Shard K Parameter Server for Network θv gradients dθ dθv θ ' θ ' とそれぞれの勾 配を計算する R = γi−1 rt−i i=1 tmax ∑ +V st,θv '( ) dθ = ∇θ ' logπ ai | si;θ '( ) R −V si;θv '( )( ) dθv = dθv + ∂ R −V si;θv '( )( ) 2 ∂θv '
  27. 27. A3Cの流れ④ Environment Network Network gradients Environment ・ ・ ・ gradients Actor Critic Shard 1 Shard 2 Shard K Parameter Server for Network θ θv ' Network Shard 1 Shard 2 Shard K Parameter Server for Network θv gradients dθ dθv θ ' θ ' それぞれの勾配を溜め込む
  28. 28. A3Cの流れ④ Environment Network Network gradients Environment ・ ・ ・ gradients Actor Critic Shard 1 Shard 2 Shard K Parameter Server for Network θ θv ' Network Shard 1 Shard 2 Shard K Parameter Server for Network θv gradients dθ dθv θ ' θ ' ごとに勾配の積算値  を送り学習 dθtmax ごとに勾配の積算値  を送り学習 tmax dθv
  29. 29. 速度の比較 DQNとasynchronousな4つの手法との速度に関する比較 asynchronousな手法は概ねDQNより学習速度が早いが、特 にA3Cが早い
  30. 30. 速度の比較 asynchronousな4つの手法において、CPUのスレッドを増や した場合の速度の増加率 1-step Q学習や 1-step SARSAは増加率が高い
  31. 31. 性能の比較 DQNとasynchronousな4つの手法との得点に関する比較 asynchronousな手法は概ねDQNを上回る
  32. 32. 結論 l  asynchronousな4つの手法はDQNよりも学習速度が早い。 特にA3Cが早い。 l  asynchronousな4つの手法はDQNよりも概ね得点が高い

×