強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf ·...

41
強化学習

Transcript of 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf ·...

Page 1: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

強化学習

Page 2: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

本日お話しすること

Page 3: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

本日お話しすること

Deep Q-Network

Page 4: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

本日お話しすること

Deep Q-Network

強化学習

Page 5: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

Chapter

Deep Q-Network 強化学習 強化学習

前半 後半

Page 6: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

Chapter

Deep Q-Network 強化学習 強化学習

前半 後半

Page 7: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

DQNで使われている技術

DQN 強化学習 ニューラル ネットワーク α

Page 8: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

DQNで使われている技術

DQN 強化学習 ニューラル ネットワーク α

• Experience Replay • Target Q-Network • Clipping

後半 “Deep Q-Network” で説明

Page 9: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

DQNで使われている技術

DQN 強化学習 ニューラル ネットワーク α

Page 10: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

強化学習とは? • エージェントが環境との相互作用を通して最適な方策を得る手法

環境

行動

観測

学習

エージェント

○ ○

Page 11: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

強化学習とは? • エージェントが環境との相互作用を通して最適な方策を得る手法

環境

行動

観測

学習

エージェント

○ ○

状態の観測

行動

学習

行動による 状態変化

現在の状態を返す

loop

Page 12: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

教師あり学習では… •与えられた正解に基づいて学習

これは「1」

これは「7」

これは「5」

これは「3」

・・・

・・・

分類機 学習

Page 13: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

教師あり学習では… •与えられた正解に基づいて学習

これは「1」

これは「7」

これは「5」

これは「3」

・・・

・・・

分類機

これは?

学習

Page 14: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

教師あり学習では… •与えられた正解に基づいて学習

これは「1」

これは「7」

これは「5」

これは「3」

・・・

・・・

分類機

これは?

学習

これは「5」

Page 15: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

強化学習では •明確な正解が与えられない

与えられるのは

• 行動の選択肢 • 行動の良さの見込み

+1pt -1pt

正解ではない

Page 16: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

行動の良さの見込みとは? • (例) 迷路

• 何手か動かして正解がわかる

ゴール ・・・

報酬+10 報酬0 報酬0 報酬0

良さ伝搬 良さ伝搬 良さ伝搬 良さ伝搬

Q学習では良さはQ値と呼ばれ、下式で更新される

学習率 (主に0.1~1)

割引率 (主に0.9~0.99)

Page 17: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

Q値の更新を眺めてみる

Qiita http://qiita.com/hogefugabar/items/74bed2851a84e978b61c

Youtube https://www.youtube.com/watch?v=-JXxYZ5HB8U

Page 18: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

行動の種類

Page 19: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

探索をしすぎると…

良い行動がわかっているのにその行動を選ばない

Page 20: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

活用をしすぎると…

より良い行動に気付かない

Page 21: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

バンディットアルゴリズム

探索と活用のトレードオフを解決

Page 22: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

ε-greedy法 •確率εで活用、確率(1-ε)で探索をする

epsilon = 0.1 while True: x = random(0, 1) if epsilon > x: randomAction() else: bestAction()

epsilon = 1 while True: x = random(0, 1) if epsilon > x: randomAction() else: bestAction() epsilon -= 0.0001

DQNでよく使われるパターン

Page 23: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

Chapter

Deep Q-Network 強化学習 強化学習

前半 後半

Page 24: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

DQNで使われている技術

DQN 強化学習 ニューラル ネットワーク α

• Experience Replay • Target Q-Network • Clipping

Page 25: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

Deep Learningで何が変わったのか • ざっくりいうと、”特徴量を細かく設定する必要がなくなった”

特徴抽出 • 特徴抽出器 • 人手設計

学習器

Deep Learning

生データ 答え

生データ 答え

従来手法

Deep Learning

Page 26: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

ニューラルネットワーク • A Neural Network Playground

A Neural Network Playground http://playground.tensorflow.org/

Page 27: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

なにがすごい? •世界の仕組みを細かく教えなくてよい

エージェント

○ ○

• ボールが落ちたら-1 • ブロックを崩したら+1 • それ以外の状態は0

このあたりだけ 注目しておけば 大丈夫だ!

Page 28: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

DQNで使われている技術

DQN 強化学習 ニューラル ネットワーク α

• Experience Replay • Target Q-Network • Clipping

Page 29: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

Experience Replayのイメージ •経験(状態、行動、報酬、遷移)をメモリーに蓄積し、メモリーからランダムサンプリングして学習する

メモリー

経験1

エージェント

Page 30: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

Experience Replayのイメージ •経験(状態、行動、報酬、遷移)をメモリーに蓄積し、メモリーからランダムサンプリングして学習する

メモリー

経験1 経験1

経験2

エージェント

Page 31: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

Experience Replayのイメージ •経験(状態、行動、報酬、遷移)をメモリーに蓄積し、メモリーからランダムサンプリングして学習する

メモリー

経験1

経験2

経験1

経験2

経験3

エージェント

Page 32: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

Experience Replayのイメージ •経験(状態、行動、報酬、遷移)をメモリーに蓄積し、メモリーからランダムサンプリングして学習する

メモリー

学習 ランダム サンプリング

経験1

経験2

経験3

経験1

経験2

経験3

エージェント

Page 33: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

Experience Replayで何がうれしいか? •バッチ学習となっている

経験する順番の影響が小さく

安定した学習が期待できる

Page 34: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

Experience Replayで何がうれしいか? •バッチ学習となっている

経験する順番の影響が小さく

安定した学習が期待できる

A B C B A C

学習結果 学習結果

逐次学習の場合

Page 35: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

Target Q-Networkのイメージ •予測のQ関数(ネットワーク)と目的のQ関数(ネットワーク)を別々に作り、一定間隔で同期する。

デ | タ

デ | タ

入力データは同じ

A’

B’

C’

正解

A

B

C

予測

Page 36: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

Target Q-Networkのイメージ •予測のQ関数(ネットワーク)と目的のQ関数(ネットワーク)を別々に作り、一定間隔で同期する。

デ | タ

デ | タ

別々のニューラルネットワーク ただし一定周期で同期する

A’

B’

C’

正解

A

B

C

予測

Page 37: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

Target Q-Networkのイメージ •予測のQ関数(ネットワーク)と目的のQ関数(ネットワーク)を別々に作り、一定間隔で同期する。

デ | タ

デ | タ

A’

B’

C’

正解

学習

A

B

C

予測

Page 38: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

なぜTarget Q-Networkが必要か • 1つのネットワークで学習を行った場合、価値関数の更新で方策がコロコロ変わってしまう

デ | タ

デ | タ

A’

B’

C’

正解

A

B

C

予測

Page 39: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

なぜTarget Q-Networkが必要か • 1つのネットワークで学習を行った場合、価値関数の更新で方策がコロコロ変わってしまう

デ | タ

デ | タ

A’

B’

C’

正解

A

B

C

予測

1つ前の重みに依存

Page 40: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

Clipping •報酬のClipping

• Atariなどのゲームは種類によって報酬(スコアのレンジ)が+1や+20などまちまちなので、報酬が負だったら-1、正だったら1、0はそのままにする。

• 汎用性が高くなる。

• 報酬の大小を区別できなくなるデメリットもある。

Page 41: 強化学習 - cloud.aitc.jpcloud.aitc.jp/20180224_OpenLab/強化学習.pdf · 強化学習とは? •エージェントが環境との相互作用を通して最適な方策を得る手法

よくある勘違い • エージェントは環境の変化に対応する

• 経験の範囲で環境の変化に対応する(⇒十分な経験が必要)

• Q値=報酬 • 報酬は状態(結果)の良さ、Q値はとる行動の良さ

• Experience Replayは過去の経験を繰り返し学習することで少ない経験でも高い精度を得ることができる工夫である • バッチ学習による安定した学習のため