introduction to deep q learning

28
ディープラーニングの最新動向 強化学習とのコラボ編① DQN 2016/4/28 株式会社ウェブファーマー 大政 孝充

Upload: -

Post on 15-Apr-2017

599 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: introduction to Deep Q Learning

ディープラーニングの最新動向 強化学習とのコラボ編① DQN

2016/4/28 株式会社ウェブファーマー

大政 孝充

Page 2: introduction to Deep Q Learning

今回取り上げるのはこれ

[1]V. Mnih, K. Kavukcuoglu, D. Silver, A. Graves I. Antonoglou, D. Wierstra, M. Riedmiller. “Playing Atari with Deep Reinforcement Learning” arXiv:1312.5602, 2013. もしくは [2]V. Mnih, et al. “Human-level control through deep reinforcement learning” nature, 2015. ディープラーニングと強化学習とを組み合わせることで、ゲームで高得点を叩き出した!

Page 3: introduction to Deep Q Learning

全体像は・・・

全体像は[3]塚原裕史氏「論文紹介 Playing Atari with Deep Reinforcement Learning」 http://www.slideshare.net/htsukahara/paper-intoduction-playing-atari-with-deep-reinforcement-learning や[4]藤田康博氏「Playing Atari with Deep Reinforcement Learning」 http://www.slideshare.net/mooopan/ss-30336609 などを参照してください →今回は重要な部分だけを詳しく解説

Page 4: introduction to Deep Q Learning

今回はここだけ解説

①Q-Learningをどう改良してDQNとしたか ②アルゴリズムの詳細はどのようなものか

Page 5: introduction to Deep Q Learning

まず①番

①Q-Learningをどう改良してDQNとしたか ②アルゴリズムの詳細はどのようなものか

Page 6: introduction to Deep Q Learning

ベルマン方程式からはじめる

Q* st,at( ) = ES '≈ε r +γmaxat+1Q* st+1,at+1( ) st,at

⎡⎣⎢

⎤⎦⎥

statQ st,at( )Q* st,at( )rγ

: t における状態

: t における行動

: 状態  で  の行動をとった場合の価値

: 状態  で  の行動をとり、その後最適な行動をとった場合の価値

: 報酬

: 割引率

st

st atat

Page 7: introduction to Deep Q Learning

ベルマン方程式を直感的に理解する(1)

Q* st,at( ) = ES '≈ε r +γmaxat+1Q* st+1,at+1( ) st,at

⎡⎣⎢

⎤⎦⎥

① この瞬間が状態   st② この時行動  をとってみる at

Page 8: introduction to Deep Q Learning

状態  で  の行動をとった場合の価値       はその後とるであろう報酬の累計と考える

ベルマン方程式を直感的に理解する(2)

Q* st,at( ) = ES '≈ε r +γmaxat+1Q* st+1,at+1( ) st,at

⎡⎣⎢

⎤⎦⎥

Q st,at( )st at

Q st,at( ) = rt + rt+1 ⋅γ + rt+1 ⋅γ 2 +…将来分はどんどん割り引く

Page 9: introduction to Deep Q Learning

特に t+1 以降で最適な行動をとった場合を        とする

ベルマン方程式を直感的に理解する(3)

Q* st,at( ) = ES '≈ε r +γmaxat+1Q* st+1,at+1( ) st,at

⎡⎣⎢

⎤⎦⎥

Q* st,at( )→これを           を使って表現したい。 Q* st+1,at+1( )

Page 10: introduction to Deep Q Learning

ベルマン方程式を直感的に理解する(4)

Q* st,at( ) = ES '≈ε r +γmaxat+1Q* st+1,at+1( ) st,at

⎡⎣⎢

⎤⎦⎥

例えば、    (右へ移動)で    40点 獲得した!

at = r =

40点

次の t+1 では最適な行動     を選択する maxat+1

次の t+2 以降は最適な行動をするとする maxat+1

Q* st+1,at+1( )

Page 11: introduction to Deep Q Learning

ベルマン方程式を直感的に理解する(5)

Q* st,at( ) = ES '≈ε r +γmaxat+1Q* st+1,at+1( ) st,at

⎡⎣⎢

⎤⎦⎥

これに割引率  をかけて、 t の報酬  を加える γ r

Page 12: introduction to Deep Q Learning

ベルマン方程式を直感的に理解する(6)

Q* st,at( ) = ES '≈ε r +γmaxat+1Q* st+1,at+1( ) st,at

⎡⎣⎢

⎤⎦⎥

実際は確率的なので、期待値とする

Page 13: introduction to Deep Q Learning

これを使って更新していく

Qi+1 st,at( )⇐ E r +γmaxat+1

Q st+1,at+1( ) st,at⎡⎣⎢

⎤⎦⎥

とすれば、      で        となるだろう i→∞ Qi →Q*

Page 14: introduction to Deep Q Learning

以上をDQN用に変形する

Qi+1 st,at( )⇐ E r +γmaxat+1

Q st+1,at+1( ) st,at⎡⎣⎢

⎤⎦⎥

[2]のFigure1より

DQNでは        として Qi st,at( )

を使う

Qi st,at;θ( )モデルの出力

まず

Page 15: introduction to Deep Q Learning

以上をDQN用に変形する

Qi+1 st,at;θ( )⇐ E r +γmaxat+1

Q st+1,at+1;θ( ) st,at⎡⎣⎢

⎤⎦⎥

のようにしたい。しかし実際に更新するのはdeep learning部分の重み  。 よって、両辺の差をとり、 とし、これを誤差とする。 この差を0に収束させるように誤差逆伝播させればいい。

θ

E r +γmaxat+1

Q st+1,at+1;θ( ) st,at⎡⎣⎢

⎤⎦⎥−Qi+1 st,at;θ( )

0⇐ E r +γmaxat+1

Q st+1,at+1;θ( ) st,at⎡⎣⎢

⎤⎦⎥−Qi+1 st,at;θ( )⎛

⎝⎜

⎞⎠⎟2

Page 16: introduction to Deep Q Learning

次に②番

①Q-Learningをどう改良してDQNとしたか ②アルゴリズムの詳細はどのようなものか

Page 17: introduction to Deep Q Learning

これがアルゴリズム

[1] より

Page 18: introduction to Deep Q Learning

アルゴリズムの詳細(1)

[1] より

これがゲーム1回分

Page 19: introduction to Deep Q Learning

アルゴリズムの詳細(2)

[1] より

ε-greedy法の部分

Page 20: introduction to Deep Q Learning

アルゴリズムの詳細(3)

[1] より

ここでゲームを 実行する   という行動をとり、   という報酬をもらい、その結果 という状態(画面)となる。

atrt xt+1

Page 21: introduction to Deep Q Learning

アルゴリズムの詳細(4)

[1] より

演算処理して、    や   を求める st+1 φt+1

Page 22: introduction to Deep Q Learning

アルゴリズムの詳細(5)

[1] より

  などをメモリーに 記録する φt+1

Page 23: introduction to Deep Q Learning

アルゴリズムの詳細(6)

[1] より

ここがdeep learningの学習部分

Page 24: introduction to Deep Q Learning

アルゴリズムの詳細(7)

[1] より

ミニバッチを選ぶ

Page 25: introduction to Deep Q Learning

アルゴリズムの詳細(8)

[1] より

ゲームの最後かどうかの分岐

Page 26: introduction to Deep Q Learning

アルゴリズムの詳細(9)

[1] より

誤差逆伝播の計算

Page 27: introduction to Deep Q Learning

アルゴリズムの詳細(10)

[1] より

こういったゲーム&学習を繰り返す。 そのうち高得点がはじき出される

Page 28: introduction to Deep Q Learning

終わり