SlideShare ist ein Scribd-Unternehmen logo
1 von 10
Downloaden Sie, um offline zu lesen
強化学習を調べ始めた動機
 Google の Alpha Go ってどういうプログラムなんだろう?
 https://deepmind.com/alpha-go
 「教師あり学習」と「強化学習」のハイブリッドで強化された
ニューラルネットワーク/人工知能
強化学習 Reinforcement Learning
 「エージェント」が、現在の状態を観測し、取るべき行動を決定する問題
 強化学習の例
 将棋・囲碁など対戦ゲーム
 自動運転 https://youtu.be/a3AWpeOjkzw
 ネズミの迷路
 「教師あり学習」と何が違うか
 「目標」が与えられるだけで、知識(「正解」のテストデータ)が与えられない
 対戦ゲームで言えば「勝て」という目標が与えられるだけで、
「こういう局面ではこうすればよい」というアドバイスが一切ない感じ
 スポーツで言えば、コーチにレッスンを受けるのが教師アリ学習で、
我流で頑張るのが強化学習
 「教師あり学習」を選択できるなら「教師あり学習」を選択すべき
選択できない場合に、「強化学習」を選択
強化学習のアルゴリズム
1. エージェントは、環境から受け取った状態 s を元に、行動の選択肢 A の中から、
戦略 π に基づいて、行動 a を行う
2. 環境はエージェントから行動 a を受け取り、状態を s から s’ に変化させる
その上で、報酬 (または見込みの報酬)r をエージェントに返す
3. 1 と 2 を終了するまで繰り返しながら、また全体を何度も繰り返しながら、
戦略πを改良していく
スト2で言えば...
 自分/敵の位置/HP が状態 s
 行動の選択肢 A が、右に移動/左に移動/ジャンプ/パンチ/キック...
その中から、戦略に基づいて、1つの行動 a を選択
 報酬は敵にダメージを与えたら+の報酬
自分がダメージを受けたら-の報酬
 タイムアップ or どちらかが倒れるまで繰り返す
 そして何度も対戦しながら、戦略を賢くしていく
強化学習で、最適な戦略とは...
最適な戦略とは
 ある状態 s において、その後(の未来)に得られる報酬を最大化する戦略
 スト2で言えば...
自分のダメージを少なくして、敵により多くのダメージを与えるのが良い戦略
数式で書くと、以下の値を最大化する戦略が最適な戦略
Rs =
t=0
∞
γk
rs+t = rs + γrs+1 + γ2
rs+2. . .
γ:割引率
割引率が入っているのは、
今日の1000円の方が明日の1000円より価値があるように、
つまり「同じ報酬を得られるなら、早い方をより良く」するため
Q-Learning
 Q-Learning は強化学習のアルゴリズム
 Q 関数 (Qテーブル) を求めるのが最終目的
Q(s, a) : 状態 s で行動 a を取ったときに得られる R の期待値
1. 任意の値で Q(s, a) を初期化
2. エージェントは、環境から受け取った状態 s を元に、
行動の選択肢 A の中から、戦略に基づいて、行動 a を行う
3. 環境はエージェントから行動 a を受け取り、状態を s から s’ に変化させる
その上で、報酬 (または見込みの報酬)r をエージェントに返す
4. このとき、Q(s, a) を次の式で更新する。
 行動 a で終了していない場合
Q s, a ← 1 − α Q s, a + α r + γ max
a
Q s, a
= Q(s, a) + α(r + γ max
a
Q s, a − Q(s, a))
 行動 a で終了した場合
Q(s, a) ← Q(s, a) + α(r − Q(s, a))
 max
a
Q s, a は、次の状態 s において得られる可能性のある報酬の最大値
 α は学習率
 とりあえず試して、ちょっとずつ賢くしていくアルゴリズム
Q-Learning
Q s, a ← 1 − α Q s, a + α r + γ max
a
Q s, a
= Q s, a + α r + γ max
a
Q s, a − Q s, a
 Q(s, a) は R の期待値
Rs =
t=0
∞
γk
rs+t = rs + γrs+1 + γ2
rs+2. . .
 本来、Q(s, a) は、r + γmaxQ s, a に等しいはずだが、等しくないので、
その誤差を学習率 α で Q(s, a) に反映している
 Q(s, a) は最終的には収束すると証明されている
学習中に取る戦略で有名なものは ε-greedy 法
 確率 ε でランダムに行動し、それ以外では Q 値が最大となる行動 a を選択
 学習後は、Q 値が最大となる行動 a を選択する
DQN Deep Q-Learning
 DQN は Deep Learning + Q-Learning + Neural Network の造語
 Q関数 (Q-テーブル) Q(s, a) をニューラルネットワーク化
 Q(s, a) のニューラルネットワークを最適化するため、何を誤差関数にするか
 誤差関数には 実際の値ー予測値 2
がよく使われるので、
Q-Learning で活用した関数の2乗を誤差関数にする
r + γ max
a
Q s, a − Q s, a
2
 ニューラルネットワークの最適化のためには、以下の組のデータが必要
 s: 状態
 a: 行動
 r: 行動の結果の報酬
 s: 行動の結果の次の状態
 基本アルゴリズムは Q-Learning と同じ
とりあえず試して s, a, r, s を集め、その集合を使ってニューラルネットワークを最適化
Experience Replay と Fixed Target Q-Network
DQN では、性能向上や計算の高速化のため、いろいろな工夫がなされている
Experience Replay
 s, a, r, s を集めてニューラルネットワークを最適化するが、
s, a, r, s は時系列で並んでいるので、そのまま使うには依存関係が強すぎる
 s, a, r, s の集合の中からサンプリングし、さらに順番をランダムに
入れ替えた上で、最適化に使用する
Fixed Target Q-Network
 誤差関数のうち、 r + γ max
a
Q s, a の部分は「あるべき値」ではあるが、
Q(s, a) に依存してしまっている
 Q(s, a) の更新によって、max
a
Q s, a も変化すると、話がややこしい
 更新前の Q(s, a) を教師モデルとし、固定化してしまう
 Q(s, a) の更新部分を、「教師あり学習」に変える
DQN アルゴリズム
1. 任意の値で Q s, a を初期化
2. Q s, a を Q∗
s, a にコピー(Q∗
s, a が教師モデル)
3. For (N=0; ; N++)
1. エージェントは、環境から受け取った状態 s を元に、行動 a を行う
 確率 ε でランダムに行動 a
 それ以外は、Q∗
s, a が最大になる行動 a
2. 環境はエージェントから行動 a を受け取り、状態を s から s’ に変化させる
その上で、報酬 (または見込みの報酬)r をエージェントに返す
3. メモリ M に、 s, a, r, s を記憶
4. 時々...
1. メモリ M から s, a, r, s の組をサンプリングし、順番をランダムに入れ替え (ミニバッチの作成)
2. 誤差(以下の式)を計算し、勾配法で誤差極小化。 Q s, a を更新
 行動 a で終了していない場合、 r + γ max
a
Q∗
s, a − Q s, a
2
 行動 a で終了した場合 r − Q s, a
2
5. さらに時々... Q s, a を Q∗
s, a にコピー
参考文献
 Playing Atari with Deep Reinforcement Learning
https://www.cs.toronto.edu/~vmnih/docs/dqn.pdf
 DQNの生い立ち + Deep Q-NetworkをChainerで書いた
http://qiita.com/Ugo-Nama/items/08c6a5f6a571335972d5
 ゼロからDeepまで学ぶ強化学習
http://qiita.com/icoxfog417/items/242439ecd1a477ece312
 分散深層強化学習でロボット制御
https://research.preferred.jp/2015/06/distributed-deep-reinforcement-
learning/
 ディープラーニングを用いたコンピュータ囲碁 ~ Alpha Go の技術と展望 ~
情報処理, vol.57, No.4
 深層学習の参考文献(強化学習ではない)
 初めてのディープラーニング--オープンソース"Caffe"による演習付き
 データサイエンティスト養成読本 機械学習入門編 (Software Design plus)

Weitere ähnliche Inhalte

Andere mochten auch

第1回NIPS読み会・関西発表資料
第1回NIPS読み会・関西発表資料第1回NIPS読み会・関西発表資料
第1回NIPS読み会・関西発表資料Takato Horii
 
AI(強化学習)でロボットに学習させてみた
AI(強化学習)でロボットに学習させてみたAI(強化学習)でロボットに学習させてみた
AI(強化学習)でロボットに学習させてみたakmtt
 
強化学習その4
強化学習その4強化学習その4
強化学習その4nishio
 
DLフレームワークChainerの紹介と分散深層強化学習によるロボット制御
DLフレームワークChainerの紹介と分散深層強化学習によるロボット制御DLフレームワークChainerの紹介と分散深層強化学習によるロボット制御
DLフレームワークChainerの紹介と分散深層強化学習によるロボット制御Ryosuke Okuta
 
大富豪に対する機械学習の適用 + α
大富豪に対する機械学習の適用 + α大富豪に対する機械学習の適用 + α
大富豪に対する機械学習の適用 + αKatsuki Ohto
 
強化学習その2
強化学習その2強化学習その2
強化学習その2nishio
 
TensorFlowで学ぶDQN
TensorFlowで学ぶDQNTensorFlowで学ぶDQN
TensorFlowで学ぶDQNEtsuji Nakai
 
全脳アーキテクチャ若手の会 強化学習
全脳アーキテクチャ若手の会 強化学習全脳アーキテクチャ若手の会 強化学習
全脳アーキテクチャ若手の会 強化学習kwp_george
 
AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)
AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)
AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)Akihiro HATANAKA
 
Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料
Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料
Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料tm_2648
 
AlphaGo: Mastering the Game of Go with Deep Neural Networks and Tree Search
AlphaGo: Mastering the Game of Go with Deep Neural Networks and Tree SearchAlphaGo: Mastering the Game of Go with Deep Neural Networks and Tree Search
AlphaGo: Mastering the Game of Go with Deep Neural Networks and Tree SearchKarel Ha
 
強化学習@PyData.Tokyo
強化学習@PyData.Tokyo強化学習@PyData.Tokyo
強化学習@PyData.TokyoNaoto Yoshida
 
生成モデルの Deep Learning
生成モデルの Deep Learning生成モデルの Deep Learning
生成モデルの Deep LearningSeiya Tokui
 
強化学習その3
強化学習その3強化学習その3
強化学習その3nishio
 

Andere mochten auch (20)

第1回NIPS読み会・関西発表資料
第1回NIPS読み会・関西発表資料第1回NIPS読み会・関西発表資料
第1回NIPS読み会・関西発表資料
 
AI(強化学習)でロボットに学習させてみた
AI(強化学習)でロボットに学習させてみたAI(強化学習)でロボットに学習させてみた
AI(強化学習)でロボットに学習させてみた
 
hosokawa m
hosokawa mhosokawa m
hosokawa m
 
強化学習その4
強化学習その4強化学習その4
強化学習その4
 
DLフレームワークChainerの紹介と分散深層強化学習によるロボット制御
DLフレームワークChainerの紹介と分散深層強化学習によるロボット制御DLフレームワークChainerの紹介と分散深層強化学習によるロボット制御
DLフレームワークChainerの紹介と分散深層強化学習によるロボット制御
 
大富豪に対する機械学習の適用 + α
大富豪に対する機械学習の適用 + α大富豪に対する機械学習の適用 + α
大富豪に対する機械学習の適用 + α
 
Deep Learning Abstract
Deep Learning AbstractDeep Learning Abstract
Deep Learning Abstract
 
強化学習その2
強化学習その2強化学習その2
強化学習その2
 
TensorFlowで学ぶDQN
TensorFlowで学ぶDQNTensorFlowで学ぶDQN
TensorFlowで学ぶDQN
 
全脳アーキテクチャ若手の会 強化学習
全脳アーキテクチャ若手の会 強化学習全脳アーキテクチャ若手の会 強化学習
全脳アーキテクチャ若手の会 強化学習
 
C++ マルチスレッド 入門
C++ マルチスレッド 入門C++ マルチスレッド 入門
C++ マルチスレッド 入門
 
株価予想
株価予想株価予想
株価予想
 
AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)
AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)
AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)
 
Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料
Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料
Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料
 
AlphaGo: Mastering the Game of Go with Deep Neural Networks and Tree Search
AlphaGo: Mastering the Game of Go with Deep Neural Networks and Tree SearchAlphaGo: Mastering the Game of Go with Deep Neural Networks and Tree Search
AlphaGo: Mastering the Game of Go with Deep Neural Networks and Tree Search
 
AlphaGoのしくみ
AlphaGoのしくみAlphaGoのしくみ
AlphaGoのしくみ
 
強化学習@PyData.Tokyo
強化学習@PyData.Tokyo強化学習@PyData.Tokyo
強化学習@PyData.Tokyo
 
生成モデルの Deep Learning
生成モデルの Deep Learning生成モデルの Deep Learning
生成モデルの Deep Learning
 
強化学習その3
強化学習その3強化学習その3
強化学習その3
 
AWS Lambdaを紐解く
AWS Lambdaを紐解くAWS Lambdaを紐解く
AWS Lambdaを紐解く
 

Mehr von Akihiro HATANAKA

Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/09/14
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/09/14Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/09/14
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/09/14Akihiro HATANAKA
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/06/15
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/06/15Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/06/15
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/06/15Akihiro HATANAKA
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/05/11
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/05/11Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/05/11
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/05/11Akihiro HATANAKA
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/03/09
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/03/09Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/03/09
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/03/09Akihiro HATANAKA
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/02/10
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/02/10Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/02/10
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/02/10Akihiro HATANAKA
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/11/25
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/11/25Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/11/25
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/11/25Akihiro HATANAKA
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/11/11
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/11/11Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/11/11
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/11/11Akihiro HATANAKA
 
二要素認証を実現する
二要素認証を実現する二要素認証を実現する
二要素認証を実現するAkihiro HATANAKA
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/10/14
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/10/14Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/10/14
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/10/14Akihiro HATANAKA
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/09/09
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/09/09Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/09/09
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/09/09Akihiro HATANAKA
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/07/15
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/07/15Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/07/15
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/07/15Akihiro HATANAKA
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/06/10
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/06/10Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/06/10
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/06/10Akihiro HATANAKA
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/05/12
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/05/12Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/05/12
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/05/12Akihiro HATANAKA
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その2 2015/03/11
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その2 2015/03/11Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その2 2015/03/11
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その2 2015/03/11Akihiro HATANAKA
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1Akihiro HATANAKA
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その2 2015/02/09
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その2 2015/02/09Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その2 2015/02/09
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その2 2015/02/09Akihiro HATANAKA
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1 2015/01/15
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1 2015/01/15Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1 2015/01/15
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1 2015/01/15Akihiro HATANAKA
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1 2014/12/10
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1 2014/12/10Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1 2014/12/10
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1 2014/12/10Akihiro HATANAKA
 
Questetra ハンズオンセミナー 業務プロセス設計 ステップアップ編 2014/11/12
Questetra ハンズオンセミナー 業務プロセス設計 ステップアップ編 2014/11/12Questetra ハンズオンセミナー 業務プロセス設計 ステップアップ編 2014/11/12
Questetra ハンズオンセミナー 業務プロセス設計 ステップアップ編 2014/11/12Akihiro HATANAKA
 
Questetra ハンズオンセミナー「ビギナー向け業務プロセス設計」 2014/11/12
Questetra ハンズオンセミナー「ビギナー向け業務プロセス設計」 2014/11/12Questetra ハンズオンセミナー「ビギナー向け業務プロセス設計」 2014/11/12
Questetra ハンズオンセミナー「ビギナー向け業務プロセス設計」 2014/11/12Akihiro HATANAKA
 

Mehr von Akihiro HATANAKA (20)

Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/09/14
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/09/14Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/09/14
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/09/14
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/06/15
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/06/15Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/06/15
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/06/15
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/05/11
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/05/11Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/05/11
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/05/11
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/03/09
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/03/09Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/03/09
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/03/09
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/02/10
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/02/10Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/02/10
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2016/02/10
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/11/25
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/11/25Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/11/25
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/11/25
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/11/11
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/11/11Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/11/11
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/11/11
 
二要素認証を実現する
二要素認証を実現する二要素認証を実現する
二要素認証を実現する
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/10/14
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/10/14Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/10/14
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/10/14
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/09/09
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/09/09Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/09/09
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/09/09
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/07/15
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/07/15Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/07/15
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/07/15
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/06/10
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/06/10Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/06/10
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/06/10
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/05/12
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/05/12Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/05/12
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 2015/05/12
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その2 2015/03/11
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その2 2015/03/11Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その2 2015/03/11
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その2 2015/03/11
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その2 2015/02/09
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その2 2015/02/09Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その2 2015/02/09
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その2 2015/02/09
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1 2015/01/15
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1 2015/01/15Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1 2015/01/15
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1 2015/01/15
 
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1 2014/12/10
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1 2014/12/10Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1 2014/12/10
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1 2014/12/10
 
Questetra ハンズオンセミナー 業務プロセス設計 ステップアップ編 2014/11/12
Questetra ハンズオンセミナー 業務プロセス設計 ステップアップ編 2014/11/12Questetra ハンズオンセミナー 業務プロセス設計 ステップアップ編 2014/11/12
Questetra ハンズオンセミナー 業務プロセス設計 ステップアップ編 2014/11/12
 
Questetra ハンズオンセミナー「ビギナー向け業務プロセス設計」 2014/11/12
Questetra ハンズオンセミナー「ビギナー向け業務プロセス設計」 2014/11/12Questetra ハンズオンセミナー「ビギナー向け業務プロセス設計」 2014/11/12
Questetra ハンズオンセミナー「ビギナー向け業務プロセス設計」 2014/11/12
 

強化学習とは (MIJS 分科会資料 2016/10/11)

  • 1. 強化学習を調べ始めた動機  Google の Alpha Go ってどういうプログラムなんだろう?  https://deepmind.com/alpha-go  「教師あり学習」と「強化学習」のハイブリッドで強化された ニューラルネットワーク/人工知能
  • 2. 強化学習 Reinforcement Learning  「エージェント」が、現在の状態を観測し、取るべき行動を決定する問題  強化学習の例  将棋・囲碁など対戦ゲーム  自動運転 https://youtu.be/a3AWpeOjkzw  ネズミの迷路  「教師あり学習」と何が違うか  「目標」が与えられるだけで、知識(「正解」のテストデータ)が与えられない  対戦ゲームで言えば「勝て」という目標が与えられるだけで、 「こういう局面ではこうすればよい」というアドバイスが一切ない感じ  スポーツで言えば、コーチにレッスンを受けるのが教師アリ学習で、 我流で頑張るのが強化学習  「教師あり学習」を選択できるなら「教師あり学習」を選択すべき 選択できない場合に、「強化学習」を選択
  • 3. 強化学習のアルゴリズム 1. エージェントは、環境から受け取った状態 s を元に、行動の選択肢 A の中から、 戦略 π に基づいて、行動 a を行う 2. 環境はエージェントから行動 a を受け取り、状態を s から s’ に変化させる その上で、報酬 (または見込みの報酬)r をエージェントに返す 3. 1 と 2 を終了するまで繰り返しながら、また全体を何度も繰り返しながら、 戦略πを改良していく スト2で言えば...  自分/敵の位置/HP が状態 s  行動の選択肢 A が、右に移動/左に移動/ジャンプ/パンチ/キック... その中から、戦略に基づいて、1つの行動 a を選択  報酬は敵にダメージを与えたら+の報酬 自分がダメージを受けたら-の報酬  タイムアップ or どちらかが倒れるまで繰り返す  そして何度も対戦しながら、戦略を賢くしていく
  • 4. 強化学習で、最適な戦略とは... 最適な戦略とは  ある状態 s において、その後(の未来)に得られる報酬を最大化する戦略  スト2で言えば... 自分のダメージを少なくして、敵により多くのダメージを与えるのが良い戦略 数式で書くと、以下の値を最大化する戦略が最適な戦略 Rs = t=0 ∞ γk rs+t = rs + γrs+1 + γ2 rs+2. . . γ:割引率 割引率が入っているのは、 今日の1000円の方が明日の1000円より価値があるように、 つまり「同じ報酬を得られるなら、早い方をより良く」するため
  • 5. Q-Learning  Q-Learning は強化学習のアルゴリズム  Q 関数 (Qテーブル) を求めるのが最終目的 Q(s, a) : 状態 s で行動 a を取ったときに得られる R の期待値 1. 任意の値で Q(s, a) を初期化 2. エージェントは、環境から受け取った状態 s を元に、 行動の選択肢 A の中から、戦略に基づいて、行動 a を行う 3. 環境はエージェントから行動 a を受け取り、状態を s から s’ に変化させる その上で、報酬 (または見込みの報酬)r をエージェントに返す 4. このとき、Q(s, a) を次の式で更新する。  行動 a で終了していない場合 Q s, a ← 1 − α Q s, a + α r + γ max a Q s, a = Q(s, a) + α(r + γ max a Q s, a − Q(s, a))  行動 a で終了した場合 Q(s, a) ← Q(s, a) + α(r − Q(s, a))  max a Q s, a は、次の状態 s において得られる可能性のある報酬の最大値  α は学習率  とりあえず試して、ちょっとずつ賢くしていくアルゴリズム
  • 6. Q-Learning Q s, a ← 1 − α Q s, a + α r + γ max a Q s, a = Q s, a + α r + γ max a Q s, a − Q s, a  Q(s, a) は R の期待値 Rs = t=0 ∞ γk rs+t = rs + γrs+1 + γ2 rs+2. . .  本来、Q(s, a) は、r + γmaxQ s, a に等しいはずだが、等しくないので、 その誤差を学習率 α で Q(s, a) に反映している  Q(s, a) は最終的には収束すると証明されている 学習中に取る戦略で有名なものは ε-greedy 法  確率 ε でランダムに行動し、それ以外では Q 値が最大となる行動 a を選択  学習後は、Q 値が最大となる行動 a を選択する
  • 7. DQN Deep Q-Learning  DQN は Deep Learning + Q-Learning + Neural Network の造語  Q関数 (Q-テーブル) Q(s, a) をニューラルネットワーク化  Q(s, a) のニューラルネットワークを最適化するため、何を誤差関数にするか  誤差関数には 実際の値ー予測値 2 がよく使われるので、 Q-Learning で活用した関数の2乗を誤差関数にする r + γ max a Q s, a − Q s, a 2  ニューラルネットワークの最適化のためには、以下の組のデータが必要  s: 状態  a: 行動  r: 行動の結果の報酬  s: 行動の結果の次の状態  基本アルゴリズムは Q-Learning と同じ とりあえず試して s, a, r, s を集め、その集合を使ってニューラルネットワークを最適化
  • 8. Experience Replay と Fixed Target Q-Network DQN では、性能向上や計算の高速化のため、いろいろな工夫がなされている Experience Replay  s, a, r, s を集めてニューラルネットワークを最適化するが、 s, a, r, s は時系列で並んでいるので、そのまま使うには依存関係が強すぎる  s, a, r, s の集合の中からサンプリングし、さらに順番をランダムに 入れ替えた上で、最適化に使用する Fixed Target Q-Network  誤差関数のうち、 r + γ max a Q s, a の部分は「あるべき値」ではあるが、 Q(s, a) に依存してしまっている  Q(s, a) の更新によって、max a Q s, a も変化すると、話がややこしい  更新前の Q(s, a) を教師モデルとし、固定化してしまう  Q(s, a) の更新部分を、「教師あり学習」に変える
  • 9. DQN アルゴリズム 1. 任意の値で Q s, a を初期化 2. Q s, a を Q∗ s, a にコピー(Q∗ s, a が教師モデル) 3. For (N=0; ; N++) 1. エージェントは、環境から受け取った状態 s を元に、行動 a を行う  確率 ε でランダムに行動 a  それ以外は、Q∗ s, a が最大になる行動 a 2. 環境はエージェントから行動 a を受け取り、状態を s から s’ に変化させる その上で、報酬 (または見込みの報酬)r をエージェントに返す 3. メモリ M に、 s, a, r, s を記憶 4. 時々... 1. メモリ M から s, a, r, s の組をサンプリングし、順番をランダムに入れ替え (ミニバッチの作成) 2. 誤差(以下の式)を計算し、勾配法で誤差極小化。 Q s, a を更新  行動 a で終了していない場合、 r + γ max a Q∗ s, a − Q s, a 2  行動 a で終了した場合 r − Q s, a 2 5. さらに時々... Q s, a を Q∗ s, a にコピー
  • 10. 参考文献  Playing Atari with Deep Reinforcement Learning https://www.cs.toronto.edu/~vmnih/docs/dqn.pdf  DQNの生い立ち + Deep Q-NetworkをChainerで書いた http://qiita.com/Ugo-Nama/items/08c6a5f6a571335972d5  ゼロからDeepまで学ぶ強化学習 http://qiita.com/icoxfog417/items/242439ecd1a477ece312  分散深層強化学習でロボット制御 https://research.preferred.jp/2015/06/distributed-deep-reinforcement- learning/  ディープラーニングを用いたコンピュータ囲碁 ~ Alpha Go の技術と展望 ~ 情報処理, vol.57, No.4  深層学習の参考文献(強化学習ではない)  初めてのディープラーニング--オープンソース"Caffe"による演習付き  データサイエンティスト養成読本 機械学習入門編 (Software Design plus)