SlideShare a Scribd company logo
ゼロから始める深層強化学習
株式会社 Preferred Networks
前田新一, 藤田康博
チュートリアルでお話したいこと
15分
40分前田
藤田
(3) 最近の応用事例
(4) 強化学習を使いこなすためのTips
(5) 学習のためのリソースの紹介
10分
20分
5分
(1) 強化学習の問題についての説明
強化学習がどのような問題に適用できるか?
(2) 強化学習のアルゴリズムの概要
どのようなアルゴリズムが存在するか?
- 価値ベースのアルゴリズム (20分)
- 方策ベースのアルゴリズム (20分)
目安
自己紹介
 2004年 奈良先端科学技術大学院大学 博士号取得→助手
学習する機械に興味を持ち、ベイズ推定に基づく
機械学習全般 と 強化学習の理論研究
 2008年 京都大学情報学研究科 助教
神経画像解析, X線CT, 深層学習と強化学習のアルゴリズム研究
 2017年 Preferred Networks, Senior Researcher
前田 新一
強化学習の日本語の本
有名なSutton & Barto本の翻訳本
RLの関連分野との対比
によるRLの位置づけ
直感的に理解できるよう説明
2000年出版
森北出版
原著は第二版が2017年に発刊
(オンラインで原著が読めます)
(第二版はAlphaGoについて記述有り)
最初に概要, 残りは
最近の話題・応用の各論
(深層強化学習についての
トピック(DQNとAlphaGo)あり)
2016年 10月
森北出版
Csaba Szepesvári氏の2010年出版の本
“Algorithms for Reinforcement Learning”
の翻訳(オンラインで原著が読めます)
体系的に強化学習手法をまとめた本
(数理的な部分がしっかりしてる)
付録に深層強化学習のDQN, AlphaGoを
含む複数のアルゴリズムについて記述)
2017年 9月
共立出版
そのほか:「強くなるロボティック・ゲームプレイヤーの作り方」(2008年8月)
「アルファ碁 解体新書」(2017年7月)
「強化学習と深層学習」 (2017年10月)
強化学習の目的
 複数ステップ後の累積報酬(=収益)の予測
状態:苗の状態,品種,培地,地域, 育てる時期
(育て方・栽培方法は、確率的でも構わないが、
ある決まった方法を想定)
例:一般的な農家はイチゴの栽培でどれだけ収穫できるか??
状態:苗の状態, 品種,培地,地域, 育てる時期, 天候
育て方・栽培方法自体を最適化
例:イチゴの収量を最大化するイチゴの育て方は?
(収益には収量だけでなく、かかる労力, 費用も含められる)
 累積報酬(=収益)を最大にするための行動則(=方策)の獲得
強化学習問題の概要
観測される状態 s
観測される報酬 r
行動 a
環境(外界)エージェント
苗植え
始まりから終わりまでをエピソードという
エピソードは人為的に設定される事もある
収穫
エピソード
エピソード
方策
状態 s 行動 a
状態 sでどう行動するかを定めた
確率分布 を方策という
より良い方策を求めるために試行錯
誤する方策は探索方策と呼ばれる
: ( | )p a s
( | )p a s
( | )a s :方策を表わす確率分布
報酬
= 収量(終端時刻でのみ)
-労力(各時刻)
-費用(各時刻)
強化学習問題の数理的な表現
観測される状態
観測される報酬 1tr
1ts 
2 3
1 2 3 4t t t tR r r r r         : ( | )t tp a s方策
(行動則) の期待値。 は を満たす定数
期待値は方策πや状態遷移確率(往々にして未知)、
報酬確率に依存。
1 1( | , )t t t ts p s s a 状態遷移確率
報酬確率 1 1 1( | , , )t t t t tr p r s a s  
0 1 
マルコフ決定過程 (Markov Decision Process: MDP)
1ts ・次状態 (の確率)が 現在の状態
と選択した行動 によってのみ決定されること
ts
ta
1tr・報酬 (の確率)が 次状態 と現在の状態
と選択した行動 によってのみ決定されること
ts
ta
1ts 
行動 ta
環境(外界)エージェント
𝛾
 複数ステップ後の累積報酬(=収益R)の予測
強化学習問題の数理的な表現
 複数ステップ後の累積報酬(=収益R)の予測
観測される状態
観測される報酬 1tr
1ts 
: ( | )t tp a s方策
(行動則)
行動 ta
環境(外界)エージェント
  2 3
1 2 3 4( ) | |t t t t t t t tV s E R s E r r r r s  
     
       
E[・]は以下の確率による期待値(expectation)の意味
ෑ
𝑘=𝑡
∞
𝑝 𝑟𝑘+1 𝑠 𝑘+1, 𝑠 𝑘, 𝑎 𝑘 𝑝 𝑠 𝑘+1 𝑠 𝑘, 𝑎 𝑘 𝜋 𝜃(𝑎 𝑘|𝑠 𝑘)
価値関数 の推定)𝑉 𝜋
(𝑠𝑡
 累積報酬を最大にするための方策の獲得
*
arg max ( )tV s

 
最適方策 の推定𝜋∗
↑多くの応用での目的
教師あり学習との違い
入力と出力(教師信号)のセットとなった訓練データを予め用意する必要が無い
教師信号を必要とせず自律的に学習可能
探索しないと何もわからない → 探索と利用のジレンマ発生(後述)
(お手本がない分、一般に学習に時間がかかる)
(しばしば、教師あり学習で初期方策を得てから強化学習をするなどの工夫がされる
状態遷移確率を既知として学習する枠組みや探索の効率化も盛んに研究されている)
状態が遷移する問題を扱える
複数回の行動(一連の手続き)によって得られる状態行動系列の良さを評価可能
(入力を状態、出力を行動、損失関数の値を報酬と考えると
教師あり学習の問題設定は状態遷移のない強化学習の特別な問題とみなせる)
取りえる状態の数 << 取りえる状態行動系列の数
得られる状態行動系列毎の報酬のばらつき(分散の大きさ)が問題になる
(推定分散を下げるための研究は以前から盛ん)
教師あり学習との違い
入力と出力(教師信号)のセットとなった訓練データを用意する必要が無い
教師信号を必要とせず自律的に学習可能
探索しないと何もわからない → 探索と利用のジレンマ発生(後述)
(お手本がない分、一般に学習に時間がかかる)
(しばしば、教師あり学習で初期方策を得てから強化学習をするなどの工夫がされる
状態遷移確率を既知として学習する枠組みや探索の効率化も盛んに研究されている)
状態が遷移する問題を扱える
複数回の行動(一連の手続き)によって得られる状態行動系列の良さを評価可能
(入力を状態、出力を行動、損失関数の値を報酬と考えると
教師あり学習の問題設定は状態遷移のない強化学習の特別な問題とみなせる)
取りえる状態の数 << 取りえる状態行動系列の数
得られる状態行動系列毎の報酬のばらつき(分散の大きさ)が問題になる
(推定分散を下げるための研究は以前から盛ん)
強化学習でできるようになること
生物の例: 生物は強化学習を手に入れて進化した?
 下等生物 (微生物、昆虫など)
誘引刺激に近づき、忌避刺激から離れる
行動則は遺伝的にプログラミングされ、変化しない
環境が変化し、食物がとれなく
なったり、生活環境が変化する
と死滅するリスク
環境が変化しても適応できる余地
ルールベース的
強化学習的
 高等生物 (哺乳類など)
経験を積むと価値を学習し行動則を柔軟に変化
(学習前) 自分より大きな動物からは逃げる
(学習後) エサをくれる人間 → 逃げないでなつく
教師あり学習との違い
入力と出力(教師信号)のセットとなった訓練データを用意する必要が無い
教師信号を必要とせず自律的に学習可能
探索しないと何もわからない → 探索と利用のジレンマ発生(後述)
(お手本がない分、一般に学習に時間がかかる)
(しばしば、教師あり学習で初期方策を得てから強化学習をするなどの工夫がされる
状態遷移確率を既知として学習する枠組みや探索の効率化も盛んに研究されている)
状態が遷移する問題を扱える
複数回の行動(一連の手続き)によって得られる状態行動系列の良さを評価可能
(入力を状態、出力を行動、損失関数の値を報酬と考えると
教師あり学習の問題設定は状態遷移のない強化学習の特別な問題とみなせる)
取りえる状態の数 << 取りえる状態行動系列の数
得られる状態行動系列毎の報酬のばらつき(分散の大きさ)が問題になる
(推定分散を下げるための研究は以前から盛ん)
強化学習でできるようになること
 高等生物 (哺乳類など)
経験を積むと価値を学習し行動則を柔軟に変化
環境に応じた複雑な価値判断を行う能力 複雑な手続きを評価し、最適化する能力
どの紙にどれだけの価値があるか?
(有効期限は切れてないか?
為替レートはどうか? 偽札,旧札ではないか?)
遺伝子に書き込めないほど多様な状態の価値
何をどう調理するとおいしく食べられるか
(遺伝子に書き込めないほど多様な手続き)
後天的に価値を学習。ただし、経験や価値を言語を使って伝承できるのが人の賢いところ
強化学習でできるようになること
 高等生物 (哺乳類など)
経験を積むと価値を学習し行動則を柔軟に変化
環境が変わっても適応できる能力 複雑な手続きを評価し、最適化する能力
運動制御も適応的な学習ができると便利
(ロボットは摩耗したり壊れたりする)
・乳児期は頭が重いなど身体は発達で大きく変化
・怪我をしたときにも現在の身体状況に応じた行動ができる
教師あり学習との違い
入力と出力(教師信号)のセットとなった訓練データを用意する必要が無い
教師信号を必要とせず自律的に学習可能
探索しないと何もわからない → 探索と利用のジレンマ発生(後述)
(お手本がない分、一般に学習に時間がかかる)
(しばしば、教師あり学習で初期方策を得てから強化学習をするなどの工夫がされる
状態遷移確率を既知として学習する枠組みや探索の効率化も盛んに研究されている)
状態が遷移する問題を扱える
複数回の行動(一連の手続き)によって得られる状態行動系列の良さを評価可能
(入力を状態、出力を行動、損失関数の値を報酬と考えると
教師あり学習の問題設定は状態遷移のない強化学習の特別な問題とみなせる)
取りえる状態の数 << 取りえる状態行動系列の数
得られる状態行動系列毎の報酬のばらつき(分散の大きさ)が問題になる
(推定分散を下げるための研究は以前から盛ん)
探索の必要性 例:バンディット問題
・・・
行動:どのスロットマシーンを引くか
報酬:スロットマシーンの当たり、はずれ
状態:行動選択後も状態は遷移せず
よりよい意思決定を行う
ためには探索が必要
報酬を最大化するためには
最善の行動をとる必要
探索と利用のジレンマ
(探索と搾取のジレンマ)
観測される状態
観測される報酬 1tr
1ts 
: ( | )t tp a s方策
(行動則)
行動 ta
環境(外界)エージェント
探索の必要性 例:人生での探索
幼少期
老年期
価値観がぶれない
新しいことを試すのがおっくうに
新しいことをなんでも試したい
価値観は変わりやすい
好奇心旺盛
泰然自若
よりよい意思決定を行う
ためには探索が必要
報酬を最大化するためには
最善の行動をとる必要
探索と利用のジレンマ
(探索と搾取のジレンマ)
探索の必要性 例:日常の探索
よりよい意思決定を行う
ためには探索が必要
報酬を最大化するためには
最善の行動をとる必要
探索と利用のジレンマ
(探索と搾取のジレンマ)
新しいお菓子を
買ってみる
お気に入りの
お菓子を買う
ここまでのまとめ
・強化学習の問題の定式化
観測される状態
行動
観測される報酬
(or 知覚する報酬)
1tr
1ts 
ts
ta
: ( | )t tp a s方策
(行動則)
状態遷移確率
報酬確率
・強化学習は状態遷移をもつ
意思決定問題を表現可能
・教師信号を必要とせず自律的に学習可能
・試行錯誤で最適な行動則を求めるため
探索と利用のジレンマが発生する
環境(外界)エージェント
最適方策を求める(深層)強化学習アルゴリズム
 価値ベースのアルゴリズム
最適行動価値関数を推定することに主眼がおかれる
(DQN, Double DQN, Dueling Networks, Prioritized Experience Replay
Multi-step Learning, Distributional RLなど)
 方策ベースのアルゴリズム
現在の方策を改善することに主眼がおかれる
(REINFORCE, DDPG, A3C, ACER, TRPO, PPOなど)
*
arg max ( )tV s

 最適方策
* *
( ) [ | ]t tV s E R s
最適状態価値関数
* *
( , ) [ | , ]t t t tQ s a E R s a
最適行動価値関数
↑後で詳しく説明
*
arg max ( )tV s

 
* *
( ) [ | ]t tV s E R s

* *
( , ) [ | , ]t t t tQ s a E R s a

最適方策を求める(深層)強化学習アルゴリズム


注意書き
強化学習のアルゴリズムは、環境 (状態, 状態遷移確率,
報酬関数)が与えられた下での如何に効率よく最適方策を
求めるかを考えたものになっている。
実際には、後半パートで述べるように環境の設計(なにを
状態とするか、どういう報酬を与えるか)は非常に重要
どういう問題設定を用意するべきかは、
教師あり学習でも強化学習でも重要な話
最適方策を求める(深層)強化学習アルゴリズム
 価値ベースのアルゴリズム
最適行動価値関数を推定することに主眼がおかれる
(DQN, Double DQN, Dueling Networks, Prioritized Experience Replay
Multi-step Learning, Distributional RLなど)
 方策ベースのアルゴリズム
現在の方策を改善することに主眼がおかれる
(REINFORCE, DDQN, A3C, ACER, TRPO, PPOなど)
*
arg max ( )tV s

 最適方策
* *
( ) [ | ]t tV s E R s
最適状態価値関数
* *
( , ) [ | , ]t t t tQ s a E R s a
最適行動価値関数
↑後で詳しく説明
価値ベースの手法
価値ベースのアルゴリズム
(最適行動価値関数を推定することに主眼がおかれる)
 適当な探索行動を行ってサンプル(s,a,r,s’)を集める
 サンプルをもとに最適行動価値関数Q(s,a,θ)を近似するようパラメータを更新する
 最適行動価値関数がわかると各状態での最適な行動が求まる=最適方策の獲得
𝜃 ← 𝜃 + 𝜖∆𝜃
𝑎∗
= arg max
𝑎
𝑄∗
(𝑠, 𝑎; 𝜃)
いろんなバリエーションがある
とりえる行動が少数の離散値だと求めやすい。
連続値の場合は、Q(s,a,θ)を特殊なものに限定する必要あり
𝑄∗
(𝑠, 𝑎; 𝜃)には学習後の
𝑄 (𝑠, 𝑎; 𝜃)が使われる
最適行動価値関数とは?
 状態価値関数
 行動価値関数
2 3
1 2 3 4( ) |t t t t t tV s E r r r r s 
     
      
2 3
1 2 3 4( , ) | ,t t t t t t t tQ s a E r r r r s a 
     
      
* * 2 3
1 2 3 4( ) max ( ) |t t t t t t tV s V s E r r r r s 

     
       
最適状態価値関数:最適方策π*のもとでの状態価値関数
最適行動価値関数:最適方策π*のもとでの行動価値関数
* * 2 3
1 2 3 4( , ) max ( , ) | ,t t t t t t t t t tQ s a Q s a E r r r r s a 

     
       
収益は、時刻t以降に、どう
いう方策に従って行動をとる
かに依存して決まる
方策πの状態価値関数
方策πの行動価値関数
価値ベースのアルゴリズム
(最適行動価値関数を推定することに主眼がおかれる)
 適当な探索行動を行ってサンプルを集める
 サンプルをもとに最適行動価値関数を近似するようパラメータを更新する
 最適行動価値関数がわかると各状態での最適な行動が求まる=最適方策の獲得
𝜃 ← 𝜃 + 𝜖∆𝜃
𝑎∗
= arg max
𝑎
𝑄∗
(𝑠, 𝑎; 𝜃)
いろんなバリエーションがある
最適方策π*が未知の状況で
どのように最適行動価値関数を推定するか?
(最適)ベルマン方程式を利用
(最適)ベルマン方程式
価値関数が満たす再帰的な関係式
2 3
1 2 3 4( , ) | ,t t t t t t t tQ s a E r r r r s a 
     
      
1 1 1 1 1( , ) ( ) | , ( , ) | ,t t t t t t t t t t tQ s a E r V s s a E r Q s a s a    
     
         
 2
1 2 3 4( , ) | ,t t t t t t t tQ s a E r r r r s a 
     
      
2 3
1 2 3 4( ) |t t t t t tV s E r r r r s 
     
      
1 1( ) ( ) |t t t tV s E r V s s  
 
   
 2
1 2 3 4( ) |t t t t t tV s E r r r r s 
     
      
(∀ 𝑠𝑡∈ 𝑆)
(∀ 𝑠𝑡∈ 𝑆, 𝑎 𝑡 ∈ 𝐴)
現在の状態sのみでその後の期待収益が決まる必要あり
・マルコフ性が必要
遅れのある報酬(Delayed Reward)では不成立
・エピソード終了時刻が決まっている問題では不成立
(∀ 𝑠𝑡∈ 𝑆)
(∀ 𝑠𝑡∈ 𝑆)
(∀ 𝑠𝑡∈ 𝑆, 𝑎 𝑡 ∈ 𝐴)
(∀ 𝑠𝑡∈ 𝑆, 𝑎 𝑡 ∈ 𝐴)
* * *
1 1( ) ( ) |t t t tV s E r V s s
 
    (∀ 𝑠𝑡∈ 𝑆)
1
* * * * *
1 1 1 1 1( , ) ( ) | , max ( , ) | ,
t
t t t t t t t t t t t
a
Q s a E r V s s a E r Q s a s a 
 

    
         
(∀ 𝑠𝑡∈ 𝑆, 𝑎 𝑡 ∈ 𝐴)
ベルマンオペレータT
最適ベルマン方程式
1
1 1 1( )( , ) max ( , ) | ,
t
t t t t t t t
a
Tf s a E r f s a s a

  
  
  
1
* *
1 1 1( , ) max ( , ) | ,
t
t t t t t t t
a
Q s a E r Q s a s a

  
  
  
最適ベルマン方程式の右辺を関数f (意味的にはQ関数)に作用して、
状態(s,a)の関数が返ってくるオペレータTとみなす
(∀ 𝑠𝑡∈ 𝑆, 𝑎 𝑡 ∈ 𝐴)
(∀ 𝑠𝑡∈ 𝑆, 𝑎 𝑡 ∈ 𝐴)
ベルマン
オペレータT
𝑓(𝑠, 𝑎) (𝑇𝑓)(𝑠, 𝑎)
関数 関数
ベルマンオペレータTの性質
1
1 1 1( )( , ) max ( , ) | ,
t
t t t t t t t
a
Tf s a E r f s a s a

  
  
  
ベルマンオペレータは一様ノルムに対して縮小写像
*
( , ) ( , )t t t tf s a Q s a
(∀ 𝑠𝑡∈ 𝑆, 𝑎 𝑡 ∈ 𝐴)
|| ( )( ) ( ')( ) || || ( ) '( ) ||Tf s Tf s f s f s   
|| ( ) || sup | ( ) |
x
f x f x 一様ノルム
ベルマン
オペレータT𝑓(𝑠, 𝑎) (𝑇𝑓) 𝑠, 𝑎
関数 関数
)𝑓(𝑠𝑡, 𝑎 𝑡) = (𝑇𝑓)(𝑠𝑡, 𝑎 𝑡
(∀ 𝑠𝑡∈ 𝑆, 𝑎 𝑡 ∈ 𝐴)
・ベルマンオペレータを作用させると関数は、停留点に近づいていく
・停留点の関数は、唯一で最適価値関数そのもの
ただし
(∀ 𝑠𝑡∈ 𝑆, 𝑎 𝑡 ∈ 𝐴)
ベルマンオペレータ
𝛼 ∈ (0,1)
ベルマンオペレータTに基づく近似的な更新
 終端状態からすべての状態を更新
1
1 1 1( , ) ( )( , ) max ( , ) | ,
t
t t t t t t t t t
a
f s a Tf s a E r f s a s a

  
   
  
最適ベルマン方程式が満たされるようにベルマンオペレータで関数を更新
(∀ 𝑠𝑡∈ 𝑆, 𝑎 𝑡 ∈ 𝐴)
動的計画法 (状態遷移確率,報酬は既知である必要)
モンテカルロ木探索
有望な状態を展開し、末端の状態
の価値関数をシミュレーションで推定
 サンプリングした状態・行動対で平均的に成り立つ
ように各状態・行動のQ値を独立に更新
 サンプリングした状態・行動対で平均的に成り立つ
ように状態・行動の関数f(s,a|θ)のパラメータθを更新
(テーブル)Q学習
DQNなどの関数近似
を使ったQ学習
収束するのか?
 サンプリングした状態・行動対で平均的に成り立つ
ように各状態・行動のQ値を独立に更新 ここまではOK
それぞれの状態・行動で近似を精緻化
(テーブル)Q学習
 サンプリングした状態・行動対で平均的に成り立つ
ように状態・行動の関数f(s,a|θ)のパラメータθを更新
関数近似が入ると収束の保証は困難
一般に収束の保証なし
DQNなどの非線形関数
近似器を使ったQ学習
深層強化学習のアルゴリズム
Deep Q-Network (DQN)(Mnih+ 14, Mnih+ 15)
ディープニューラルネットワークを関数近似器に
つかってゲーム画面のような高次元の状態をもつ
タスクの強化学習に最初に成功した手法
(TD-gammon(Tesauro, 92)のようなNNを使った
成功例もあるが、例外的な成功例と思われていた)
学習アルゴリズムの工夫した点
 Q 関数を表わすネットワーク構造
 Fitted Q (target networkを固定し安定性改善)
 経験再生 (Experience Replay)
(学習に用いるサンプルの偏り抑制)
 報酬のクリッピング [-1,1]
 探索方策ε-greedyのεを1.0から0.1に減衰
Ms. Pack-Man
Space Invaders
それぞれの工夫は以前から考えれていたもの。計算機の発達は重要。
ネットワーク構造
行動の数だけ出力Q(s,a)をもつネットワーク
(注:前処理は学習にとっても影響します)
OpenAI GymのAtari環境には
必要な前処理は含まれてないので注意
Neural Fitted Q (Riedmiller, 05)
2
( ) ( ( , ; ))t t tJ E y Q s a    
損失関数
1
1 1 1max ( , ; ')
t
t t t t
a
y r Q s a 

   
定期的にθ’を現在のθに置き換え
(しばらくはtarget networkを固定)
教師あり学習的な損失関数に変更することで安定化
target network
Ms. Pack-Man
Space Invaders
経験再生 (Experience replay) (Lin, 92)
2
( ) ( ( , ; ))t t tJ E y Q s a    
損失関数
1
1 1 1max ( , ; ')
t
t t t t
a
y r Q s a 

   
TD誤差の期待値を連続する時刻間で取得
→ サンプル間の相関が高く、バイアス発生、収束性悪化
状態遷移セット(s,a,s’,r)を直近の過去のデータ(replay memory)
からランダムに選択し、TD誤差 を計算( , ; )t t ty Q s a 
replay memory: 直近100万フレームセット
過去の大量のサンプルの再利用
 ( ) 2 ( ( , ; )) ( , ; )t t t t tJ E y Q s a Q s a     
当時は300trialだけ。学習が加速され
る効果は確かめられたが、メモリを消
費するので大規模化はできず
where
DQN Lin(1992)
( , ) ( )( , )t t t tf s a Tf s a
(∀ 𝑠𝑡∈ 𝑆, 𝑎 𝑡 ∈ 𝐴)
TD誤差
DQN(Mnih+ 14, Mnih+ 15)のアルゴリズム
target networkの更新頻度 C=10,000
ε-greedyと呼ばれる探索方策による行動
φ(s):状態sに対する前処理を施したもの
サンプル(φ(s),a,r,φ(s’))の取得
とreplay memory Dへの追加
replay memoryからランダムに取得
したミニバッチ(32個)でQ関数の更新
Target networkの固定と経験再生の効果
WR:経験再生あり
WoR:経験再生なし
WT:target networkの固定あり
WoT:target networkの固定なし
wR-woTを1としたとき
の相対パフォーマンス
Variants of DQN
Double DQN (van Hasselt+ 16)
Dueling Networks (Wang+ 15)
Prioritized Experience Replay (Schaul+ 16)
Multi-step learning (Sutton 98)
Noisy Network (Fortunato+ 17)
Distributional RL (Bellemare+ 17, Dabney+ 17)
強化学習研究者の同僚曰く
AIに仕事させてゲームでもして遊んで暮らそうと思ってたけど、
いまでは俺たちが仕事全部やってAI様にゲームしてもらってる!
過去のサンプルの再利用の仕方
(importance sampling)
構造に関する工夫
近似対象の改変
Atari2600のゲームがベンチマーク的に使われる
Rainbow (Hessel+ 17) 最近のメジャーな手法を全部つかってみた
結論
全部つかうと結果はよくなる
人間プレイヤーのスコアで正規化したスコア
の中央値
Rainbow (Hessel+ 17) どの手法がきいてる?
1つずつ要素技術
を省いたときの性能
𝛿𝑡 = 𝐾𝐿[𝑇𝑝′|𝑝𝑡]
逆にDouble DQNと
Dueling Networksは
(他の手法があれば)
それほど重要でもない?
・Prioritized experience replay
・Multi-step learning
・Distributional RL
は特に重要そう
人間プレイヤーのスコアで正規化したスコア
の中央値
価値ベースの手法のまとめ
 基本的なアイディア
最適なQ関数は、最適ベルマン方程式を満たす
↓
最適ベルマン方程式が成り立つようにQ関数を更新
(ただし、関数近似器を使うと収束の保証がない)
ほかに前処理、報酬や更新式のclipping、最適化などで工夫がちょこちょこある
 ディープニューラルネットでのQ学習を成功させる要因(ニューラルネット自体は以前から使われていた)
- Fitted Qによるtarget networkの固定(教師あり学習化)
- Experience Replayによる過去の大量のサンプルを用いて偏りをなくす
 学習の安定化、分散低減のための手法がいろいろと提案されている
Distributional RL系が今のところ性能が高い
計算コストを度外視すれば、並列化してサンプルを集める手法の性能が最も高い (Horgan+18)
方策ベースの手法
方策ベースのアルゴリズム
(現在の方策を改善することに主眼がおかれる)
 目的関数 を方策のパラメータに関して微分
 方策のパラメータを勾配にそって更新
𝐸 𝜋 𝜃[𝑅(ℎ)]
𝜃 ← 𝜃 + 𝜖∆𝜃
状態遷移確率などが未知である場合、
目的関数は陽に表現できずBlackBox。
勾配はどう求めるのか?
?
環境
(往々にして状態遷移確率は未知
場合によっては報酬関数は未知)
収益方策
𝜋 𝜃
原則、現在の方策による期待値
Blackboxな目的関数の勾配
 Black boxでもいろいろ(確率的に)試してみると、勾配はわかってくる
?
𝜋 𝜃 start
環境 収益確率的方策
start
start
?
𝜋 𝜃
?
𝜋 𝜃
方策勾配法 REINFORCE (Williams 92)
Blackboxでも確率的に入力を与えてそれに
対応するサンプルを得られれば勾配は求まる
𝜕
𝜕𝜃
𝐸 𝜋 𝜃 𝑅 ℎ
=
𝜕
𝜕𝜃
∫ 𝑝 𝜃 ℎ 𝑅 ℎ 𝑑ℎ
状態・行動系列:ℎ = (𝑠1, 𝑎1, 𝑠2, 𝑎2, ⋯ , 𝑠 𝑇)
収益: 𝑅 ℎ = 𝑟1 + 𝛾𝑟2 + 𝛾2 𝑟3 + ⋯
方策: 𝜋 𝜃(𝑎|𝑠) (θは方策パラメータ)
記法
𝛻𝜃 log 𝑝 𝜃 ℎ =
1
𝑝 𝜃(ℎ)
𝜕𝑝 𝜃 ℎ
𝜕𝜃
= ∫
𝜕𝑝 𝜃 ℎ
𝜕𝜃
𝑅 ℎ 𝑑ℎ
= ∫
𝑝 𝜃 ℎ
𝑝 𝜃 ℎ
𝜕𝑝 𝜃 ℎ
𝜕𝜃
𝑅 ℎ 𝑑ℎ
= ∫ 𝑝 𝜃 ℎ 𝛻𝜃 log 𝑝 𝜃 ℎ 𝑅 ℎ 𝑑ℎ
微分と積分の入れ替え(ガウス分布の平均、分散は大丈夫)
↑勾配が期待値の形で求められる
REINFROCE (Williams 92)
𝜕
𝜕𝜃
𝐸 𝜋 𝜃 𝑅 ℎ
= ∫
𝜕𝑝 𝜃 ℎ
𝜕𝜃
𝑅 ℎ 𝑑ℎ
= ∫
𝑝 𝜃 ℎ
𝑝 𝜃 ℎ
𝜕𝑝 𝜃 ℎ
𝜕𝜃
𝑅 ℎ 𝑑ℎ
= ∫ 𝑝 𝜃 ℎ 𝛻𝜃 log 𝑝 𝜃 ℎ 𝑅 ℎ 𝑑ℎ 𝑝 𝜃 ℎ
= 𝑝(𝑠1) ෑ
𝑡=1
𝑇−1
𝑝(𝑟𝑡+1|𝑠𝑡:𝑡+1, 𝑎 𝑡)𝑝 𝑠𝑡+1 𝑠1:𝑡, 𝑎1:𝑡 𝜋 𝜃(𝑎 𝑡|𝑠𝑡)
𝜕 log 𝑝 𝜃 ℎ
𝜕𝜃
= ෍
𝑡
𝑇
𝛻𝜃 log 𝜋 𝜃(𝑎 𝑡|𝑠𝑡)
MDPの仮定が不要
期待値をサンプル平均で置き換えれば、勾配の不偏推定が可能
ただし、分散が大きい(得られる収益はサンプル系列間で大きく異なりうる)
(最後の変形は見た目の表記を
すっきりするよう変えただけ。
ρθはimproper state distributionと呼ばれる)
= ∫ 𝑝 𝜃 ℎ ෍
𝑡
𝑇
𝛻𝜃 log 𝜋 𝜃 𝑎 𝑡 𝑠𝑡 ෍
𝑘=1
∞
𝛾 𝑘−1
𝑟𝑘 𝑑ℎ
= 𝐸 𝜃 ෍
𝑡
∞
𝛾 𝑡−1
෍
𝑘=𝑡
∞
𝛾 𝑘−𝑡
𝑟𝑘 𝛻𝜃 log 𝜋 𝜃 𝑎 𝑡 𝑠𝑡
= 𝐸𝑠 𝑡∼𝜌 𝜃,{(𝑠 𝑡+𝑘,𝑎 𝑡+𝑘)∼𝑝⋅𝜋 𝜃} 𝛻𝜃 log 𝜋 𝜃(𝑎 𝑡|𝑠𝑡) ෍
𝑘=𝑡
∞
𝛾 𝑘−𝑡
𝑟𝑘
start
𝑅 ℎ = 𝑟1 + 𝛾𝑟2 + 𝛾2 𝑟3 + ⋯
ベースライン除去 REINFORCE (Williams 92)
𝜕
𝜕𝜃
𝐸 𝜋 𝜃 𝑅 ℎ
= 𝐸 𝜃 ෍
𝑡
∞
𝛾 𝑡−1
෍
𝑘=𝑡
∞
𝛾 𝑘−𝑡
𝑟𝑘 𝛻𝜃 log 𝜋 𝜃(𝑎𝑡|𝑠𝑡)
任意の状態の関数b(s)を引いても期待値は不偏
= 0
𝐸 𝜃 𝑏(𝑠𝑡)𝛻𝜃 log 𝜋 𝜃(𝑎 𝑡|𝑠𝑡)
= ∫ 𝜌 𝑠𝑡 𝑏 𝑠𝑡 ∫ 𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝛻𝜃 log 𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑑𝑎 𝑡 𝑑𝑠𝑡
θによらず1
ベースラインの選択で
大きく分散は変わる
勾配の推定値の分散を減らすた
めによく用いられるテクニック
b(𝑠𝑡)= 𝑉 𝜋 𝜃 𝑠𝑡
𝑏 𝑠𝑡 =
1
𝑁
෍
𝑖=0
𝑁
𝑅𝑖
よく使われるベースライン
(←別途, 推定する必要あり)
= 𝐸 𝜃 ෍
𝑡
∞
𝛾 𝑡−1
෍
𝑘=𝑡
∞
𝛾 𝑘−𝑡
𝑟𝑘 − 𝑏(𝑠𝑡) 𝛻𝜃 log 𝜋 𝜃(𝑎 𝑡|𝑠𝑡)
= ∫ 𝜌 𝑠𝑡 𝑏 𝑠𝑡 ∫ 𝛻𝜃 𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑑𝑎 𝑡 𝑑𝑠𝑡
= ∫ 𝜌(𝑠𝑡)𝑏(𝑠𝑡)𝛻𝜃 ∫ 𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑑𝑎 𝑡 𝑑𝑠𝑡
Asynchronous Advantage Actor-Critic (Mnih+ 16)
1ステップの先読み (分散低減)
𝑛ステップの先読みに拡張可能、
ステップ数を増やすとREINFORCEに近づく
REINFORCEもA3Cも基本的に現在の方策でのサンプルを集める必要あり
𝑉 𝜋 𝜃 𝑠 も随時更新
アドバンテージ関数をつかった勾配の計算
𝐸𝑠∼𝜌 𝜃,𝑎∼𝜋 𝜃
[𝛻𝜃 log 𝜋 𝜃 𝑎 𝑠 (𝑄 𝜋 𝜃 𝑠, 𝑎 − 𝑉 𝜋 𝜃 𝑠 )]
= 𝐸 𝑠∼𝜌 𝜃,𝑎∼𝜋 𝜃,𝑠′∼𝑝(𝑠′|𝑠,𝑎)[𝛻𝜃 log 𝜋 𝜃 𝑎 𝑠 (𝑟 + 𝛾𝑉 𝜋 𝜃 𝑠′
− 𝑉 𝜋 𝜃 𝑠 )]
𝐸𝑠 𝑡∼𝜌 𝜃,{(𝑠 𝑡+𝑘,𝑎 𝑡+𝑘)∼𝑝⋅𝜋 𝜃} 𝛻𝜃 log 𝜋 𝜃(𝑎 𝑡|𝑠𝑡) ෍
𝑘=𝑡
∞
𝛾 𝑘−𝑡
𝑟𝑘
アドバンテージ関数
start
start
E[ ]
(更新がsynchronousな場合はA2C, asynchronousな場合はA3Cと呼ばれる)
Actor
Critic
環境
行動
状態
報酬
方策評価
エージェント
A3Cのアルゴリズム
←方策(Actor)のパラメータの更新量
←状態価値(Critic)のパラメータの更新量
TD誤差の二乗の最小化
𝐸 𝑠∼𝜌 𝜃,𝑎∼𝜋 𝜃,𝑠′∼𝑝(𝑠′|𝑠,𝑎)[𝛻𝜃 log 𝜋 𝜃 𝑎 𝑠 (𝑟 + 𝑉 𝜋 𝜃 𝑠′
− 𝑉 𝜋 𝜃 𝑠 )]
サンプル収集
A3C solving Atari games
注:DQN以外は50回、ハイパーパラ
メータをサンプリングし、実験を繰り
返した中でのベスト5の平均
GPU: Nvidia K40 1個
CPU: 1個 16スレッド (16 actorsによる非同期的な並列化)
計算時間(hours)
スコア
A3C solving Labyrinth
方策を表わすNNの最後の層にLSTMを使うことで
MDPではない問題も解くことが可能に
https://youtu.be/nMR5mjCFZCw
Deep Deterministic Policy Gradient (DDPG) (Lillicrap+ 16)
方策πが決定論的なとき, , の方策勾配法𝜋 𝜃 𝑎 𝑡 𝑠𝑡 = 𝛿(𝑎 𝑡 − 𝜋(𝑠𝑡; 𝜃))
𝐸𝑠∼𝜌 𝜃′,𝑎∼𝜋 𝜃′[𝛻𝜃 𝜋(𝑠; 𝜃)𝛻𝑎 𝑄 𝜋 𝜃′
𝑠, 𝑎) ] 𝑄 𝜋 𝜃′
𝑠 も随時更新
𝐸𝑠∼𝜌 𝜃,𝑎∼𝜋 𝜃
[𝛻𝜃 log 𝜋 𝜃 𝑎 𝑠 (𝑄 𝜋 𝜃 𝑠, 𝑎 − 𝑉 𝜋 𝜃 𝑠 )]
= 𝐸 𝑠∼𝜌 𝜃,𝑎∼𝜋 𝜃,𝑠′∼𝑝(𝑠′|𝑠,𝑎)[𝛻𝜃 log 𝜋 𝜃 𝑎 𝑠 (𝑟 + 𝑉 𝜋 𝜃 𝑠′
− 𝑉 𝜋 𝜃 𝑠 )]
さらに、彼らは現在の方策𝜋 𝜃とは異なる方策𝝅 𝜽′
で得られた状態のサンプルを利用
Replay memoryの利用
Deep Deterministic Policy Gradient (Lillicrap+, 2016)
←方策の更新
←行動価値の更新 (DQNと同じ)
←方策勾配
←ターゲットの行動価値の更新
Trust Region Policy Optimization (Schulman+ 15)
アイディア
max
∆𝜃
𝐸 𝜃+∆𝜃[𝑅(ℎ)]
(ユークリッド空間での)最急勾配法による最適化
subject to ∆𝜃 2 ≤ 𝛿
最適化問題の変更
max
∆𝜃
𝐸 𝜃+∆𝜃[𝑅(ℎ)]
subject to 𝐸[KL[𝜋 𝜃(𝑎|𝑠)|𝜋 𝜃+∆𝜃(𝑎|𝑠)]] ≤ 𝛿
パラメータのユークリッド距離が微小量動く範囲から最適化する
のではなく、方策が分布として微小量動く範囲から最適化
𝐸[KL 𝑝 𝑎 𝑠 𝑞 𝑎 𝑠 = ∫ 𝜌(𝑠)∫ 𝑝 𝑎 𝑠 log
𝑝 𝑎 𝑠
𝑞 𝑎 𝑠
𝑑𝑎𝑑𝑠
(注:ニューラルネットは、パラメータを少し変えるだけで
入出力関係が大きく変わる可能性がある。
また、一度、悪い方策に更新されるとその後の探索で報酬が得られず、
正確な勾配の推定が困難になりパラメータ空間を彷徨う可能性がある)
where
Trust Region Policy Optimization (Schulman+ 15)
max
∆𝜃
𝐸 𝜃+∆𝜃[𝑅(ℎ)]
subject to E[KL[𝜋 𝜃(𝑎|𝑠)|𝜋 𝜃+∆𝜃(𝑎|𝑠)]] ≤ 𝛿
max
𝜃
𝐸ഥ𝜃 ෍
𝑡
𝜕
𝜕𝜃
𝜋 𝜃 𝑎 𝑡 𝑠𝑡
𝜋ഥ𝜃 𝑎 𝑡 𝑠𝑡
𝐴 𝑠𝑡, 𝑎 𝑡 𝜃 − ҧ𝜃
subject to 𝐸 𝜃 − ҧ𝜃 𝑇 𝜕2
𝜕𝜃𝜕𝜃
KL[𝜋ഥ𝜃(𝑎|𝑠)|𝜋 𝜃(𝑎|𝑠)] 𝜃 − ҧ𝜃 ≤ 𝛿
各更新で上記を解く
δが小さいとして現在のパラメータ
𝜃 = ҧ𝜃まわりでテイラー展開して近似
共役勾配法の利用で各更新の計算量が
パラメータの次元に対して線形
Proximal Policy Optimization Algorithms (Schulman+ 17)
max
∆𝜃
𝐸 𝜃+∆𝜃[𝑅(ℎ)]
subject to E[KL[𝜋 𝜃(𝑎|𝑠)|𝜋 𝜃+∆𝜃(𝑎|𝑠)]] ≤ 𝛿
βはラグランジュ乗数
max
𝜃
𝐸ഥ𝜃 ෍
𝑡
𝜋 𝜃 𝑎 𝑡 𝑠𝑡
𝜋ഥ𝜃 𝑎 𝑡 𝑠𝑡
𝐴 𝑠𝑡, 𝑎 𝑡 − 𝛽KL[𝜋ഥ𝜃(𝑎|𝑠𝑡)|𝜋 𝜃(𝑎|𝑠𝑡)]
𝑑 = KL[𝜋ഥ𝜃(𝑎|𝑠𝑡)|𝜋 𝜃(𝑎|𝑠𝑡)]
If 𝑑 < 𝑑 𝑡𝑎𝑟𝑔/1.5, then 𝛽 ← 𝛽/2
If 𝑑 > 1.5𝑑 𝑡𝑎𝑟𝑔, then 𝛽 ← 2𝛽
TRPOより単純で軽い計算
制約条件を非厳密化
TRPO & PPO の性能 OpenAI gymのMuJoCoを使ったロボット制御問題に適用した結果
Emergence of Locomotion Behaviors in Rich Environments (Heess+ 17)
↑の論文で使われている手法:Distributed PPO (Duan+ 17)
各時刻で与えられる報酬
x軸方向の速度
– 道の真ん中からのズレ
– トルク
+ 定数(倒れていないことによる報酬)
観測する状態
間接角・角速度, 加速度、接地の有無、
ジャイロ、下半身のトルク(Humanoid)
自分の周囲の地形の高さ
https://youtu.be/hx_bgoTF7bs
方策勾配法のまとめ
max
𝜃
𝐸 𝜃[𝑅(ℎ)] + (方策に対する制約)
𝜕𝐸 𝜃 𝑅 ℎ
𝜕𝜃
≈ 𝑔 = 𝐸 𝜃 ෍
𝑡
∞
Ψ𝑡 𝛻𝜃 log 𝜋 𝜃(𝑎 𝑡|𝑠𝑡)
方策パラメータに対する制約の掛け方・最適化
Ψ′ 𝑡 ≡ Ψ𝑡 − 𝑏(𝑠𝑡) のベースラインbの計算の仕方
Ψ𝑡 の計算の仕方 (σ 𝑘=𝑡
∞
𝛾 𝑘−𝑡
𝑟𝑘 or 𝑄 𝜋 𝜃 𝑠, 𝑎 )
x
x
勾配法で最適化するというのはわかりやすいが、実際には探索・利用ジレ
ンマのうち、利用しか行わないため、初期方策の分散を大きくしたり、方
策のエントロピーを大きく保つヒューリスティックが使われる
収益: 𝑅 ℎ = 𝑟1 + 𝛾𝑟2 + 𝛾2
𝑟3 + ⋯
方策: 𝜋 𝜃(𝑎|𝑠) (θは方策パラメータ)
方策勾配法のバリエーション
状態・行動履歴:ℎ = (𝑠1, 𝑎1, 𝑠2, 𝑎2, ⋯ , 𝑠 𝑇)
記法
まとめ
最適化するもの
方策ベースの方法 価値ベースの方法
最適化の手法
メリット
デメリット
方策 最適行動関数Qの近似値
基本はQ学習
(ベルマン誤差の勾配法による最適化)
確率勾配法
期待収益を直接、最適化可能
連続値をとる方策にも自然に拡張可能
局所解
適当な探索が必要
(適当さ加減が難しい)
最適方策はarg max
𝑎
𝑄(𝑠, 𝑎)を解く必要あり
連続値をとる行動方策の学習には
特殊な構造が必要
探索に任意の方策利用可能
自己紹介
 藤田康博
 株式会社Preferred Networks エンジニア
– 強化学習を使った研究開発
– 深層強化学習ライブラリChainerRL開発
– 「速習 強化学習 ―基礎理論とアルゴリズム―」翻訳
ミニカーとドローンを使ったデモ
最近の応用事例
(深層)強化学習の応用先
 代表的な応用先:ゲーム、ロボット
– 強化学習の問題設定に自然と当てはまる
 各状態で選ぶ行動を最適化したい
 行動は未来の状態に影響を与える
 最適な行動は人間にもわからないが、結果を評価することはできる
 より一般に、あるモデルの入出力の系列をある目的関数について最適化したい
(が勾配法が使えない)場合に使うことができる
– maximize 𝜃 E 𝐹 𝑥1, 𝑦1, … , 𝑥 𝑇, 𝑦 𝑇 , where 𝑦𝑡 = 𝑓 𝑥1, 𝑦1, … , 𝑥 𝑡; 𝜃
– E.g. 目的関数が未知/微分不可能、出力が未来の入力に与える影響が未知/微分不可能
観測される状態
行動
観測される報酬 1tr+
1ts +
ts
ta
環境(外界)エージェント
応用先:ゲーム
 強化学習を適用しやすい
– 正確かつ高速なシミュレーションが可能
– 評価指標が明確 e.g. スコア、勝ち負け
– 自己対戦が可能
 ボードゲーム:ルールが既知、ゲーム木探索との併用
– 囲碁、将棋、チェス、ポーカー、etc.
 ビデオゲーム:リアルタイム性・部分観測性が課題
– Atari, Doom、大乱闘スマッシュブラザーズDX、etc.
– RTS: Dota 2、StarCraft II(囲碁の次の目標?)
Doom (Dosovitskiy and Koltun, 2017)
(https://www.youtube.com/watch?v=947bSUtuSQ0)
スマブラ (Firoiu et al., 2017)
(https://www.youtube.com/watch?v=dXJUlqBsZtE)
囲碁 (Silver et al. 2016)
応用先:ロボット
 研究は盛んだが難しい課題も多い
– 実機実験のコストが高い→実機を並列に動かす、シミュレータから転移
– 報酬関数の設計が難しい→模倣学習、逆強化学習
 ロボットアーム・ハンドの制御
– ドアを開ける、物を持ち上げて指示された場所に置く
ロボットアームでドアを開ける (Gu et al. 2017) シミュレータで学習し、実機で動作 (Andrychowicz et al., 2017)
応用先:ロボット(移動ロボット)
 移動ロボットの衝突回避
– 複数ミニカー間の衝突回避
– ドローンの衝突回避
シミュレータで距離センサ情報から回避を学習
(https://research.preferred.jp/2016/01/ces2016/)
3DシミュレータでRGB画像から回避を学習 (Sadeghi and Levine, 2017)
応用先:アルゴリズム設計
 NNアーキテクチャ(Zoph and Le, 2017; Zoph et al., 2018)/最適化アルゴリズム(Bello et al.,
2017)/活性化関数(Ramachandran et al., 2017)をRNNで系列として出力
– 報酬:バリデーションセットでの評価
– REINFORCE, TRPO, PPOでRNNを最適化
– 人手で設計されたSOTAを上回る場合も
見つかったRNN cell, 最適化アルゴリズム, 活性化関数の一部
(Zoph and Le, 2017; Bello et al., 2017; Ramachandran et al., 2017)
応用先:hard attention
 Attention: 入力の一部に注目することを学習する機構
– Soft attention: 場所ごとに重みを出力して足し合わせる
→微分可能だが計算コストが大きい
– Hard attention: どの場所を見るか確率的に決める
→微分可能でない→REINFORCEを使う
 画像のキャプション生成 (Xu et al., 2015)、メモリアクセス (Zaremba and Sutskever, 2015)
画像キャプション生成の流れとhard attentionの例 (Xu et al., 2015)
応用先:対話
 対話全体としての評価を最大化可能
 対話の質向上 (Li et al., 2016)
– 対話の質についての報酬関数を設計:
答えやすさ、新情報の多さ、一貫性
– 学習済みモデル同士で対話させ、REINFORCEでfine-tune
– 元のモデルより人間による評価向上、特に対話全体としての評価
 ユーザ満足度を最大化する返答選択 (Serban et al., 2017)
– 人間による評価を教師として報酬関数・シミュレータを作製
(対話の性質の変化をシミュレート)
– DQNで学習し、対話全体を評価するA/Bテストで高評価
対話例と返答候補 (Serban et al., 2017)
現実世界の問題を解くための課題
 華々しい成功事例の割に、現実世界の問題を解いた事例はどれだけあるか?
– バズっているほどには…
 課題はまだ多い
– 大量のサンプルが必要(1-1000 millions)
– 不安定、ハイパーパラメータに敏感、学習結果の分散大
– 新しいタスクへの転移・汎化が困難
 汎用学習済みモデルのようなものはまだ無い
https://twitter.com/jackclarkSF/status/919584404472602624
このツイートに連なる議論が
現状をよく現している
深層強化学習の使い方
新しい問題に深層強化学習を使うには
 深層強化学習は今のところ「とりあえず使ってみれば動く」技術とは程遠い
 新しい問題に深層強化学習を使うまでの流れ
– 環境設計
– アルゴリズムの選択
– ニューラルネットの設計
– ハイパーパラメータの設定
– 評価
Deep Reinforcement Learning Doesn't Work Yet
https://www.alexirpan.com/2018/02/14/rl-hard.html
環境設計
 理想:どんな環境だろうと、エージェントに試行錯誤させていれば勝手に学習
 現実:エージェントが学習しやすいように環境を整える必要がある
観測される状態
行動
観測される報酬 1tr+
1ts +
ts
ta
環境(外界)エージェント
ダイナミクスの設計
 状態空間S, 行動空間A, 状態遷移S×A→Sを定義する
 エージェントから見てマルコフ性が必要
– 𝑠𝑡と𝑎 𝑡のみから𝑠𝑡+1の分布が決まる
– Atari:直近の4フレームをまとめて観測
– 3D空間、一人称視点:RNNを使うことで過去の全フレームを観測可能に
観測される状態
行動
観測される報酬 1tr+
1ts +
ts
ta
環境(外界)エージェント
ボールはどの方向に動いてる?
前処理
 教師あり学習等と同様に、入力の前処理は重要
 (問題が解ける範囲で)観測画像の縮小・グレイスケール化
– 変換後の画像を可視化し、行動決定に必要な情報が観測できることを確認する
 値の正規化(観測の分布について事前知識を仮定しない方法)
– 観測が画像:[0,255] の8bitの値を [0,1] の連続値に正規化
– 観測が関節角等の連続値で、値の範囲がわからない:これまでの観測から平均と分散
をオンライン推定し、平均0分散1になるように正規化
→
報酬設計
 多くの場合、報酬は人間が設計する
 原則:期待収益を最大化する方策=求めたい方策
– AlphaGo:勝ったら+1、負けたら-1
→ 期待収益最大化=勝率最大化
 ただし、スパース過ぎる報酬は強化学習にとって学習が難しい
– E.g. ロボットハンドが目標物を持ち上げて決められた場所に置いたら+1
 →偶然それを達成しない限りずっと報酬が0のままになり、学習が進まない
– 学習を助けるための報酬がしばしば必要 e.g. ロボットハンドと目標物の距離
 上の原則を破らないように注意
観測される状態
行動
観測される報酬 1tr+
1ts +
ts
ta
環境(外界)エージェント
報酬のスケール
 報酬を定数倍すると?
– 最適方策は変わらない
– 勾配や価値関数のスケールは変わる
→学習率、パラメータ初期化に影響
– DDPGは報酬のスケールに敏感なことが知られている
 報酬に定数を足すと?
– エピソードの長さが固定でない場合、最適方策が変わる
 毎ステップ+1の報酬 → できるだけ長くエピソードを引き伸ばしたい
 毎ステップ-1の報酬 → できるだけ早くエピソードを終了させたい
報酬のスケールを変えたDDPGの学習曲線 (Henderson et al.,2018)
割引率γ
 (復習)収益
 未来の報酬をどれだけ割り引いて評価すべきか(最適方策に影響する)
– γ=1 → 常に同じだけ評価
– γ=0.99 → 100ステップ先の報酬は約0.37倍される(0.99^100≒0.37)
– γ=0.9 → 10ステップ先の報酬は約0.35倍される
– γ=0 → 直後の報酬しか考慮しない
 遠い未来の報酬ほど分散が大きく、予測も難しい
– γが小さいほど学習は安定する。大きいγは価値関数の発散につながる場合も
– 問題の性質から当たりをつけつつ、実験してベストな値を探す
𝑅𝑡 = 𝑟𝑡 + 𝛾𝑟𝑡+1 + 𝛾2 𝑟𝑡+2 +𝛾3 𝑟𝑡+3 + ⋯
アルゴリズム選択
 以下は様々な論文で使われている定番アルゴリズム
 行動が離散値の場合
– DQN (+etc.): サンプル効率が良い
– A3C: サンプル効率は悪いが、CPU並列を活かしやすく、RNNを使いやすい
– REINFORCE: サンプル効率はとても悪いが、教師あり学習と組み合わせるのが容易
 行動が連続値の場合
– TRPO (+GAE): 学習が安定しているが、サンプル効率は良くない
– PPO: TRPOよりサンプル効率が良い
– DDPG: 学習が不安定だが、サンプル効率が良く、決定論的な方策を学習できる
ニューラルネットの設計
 入力が画像ならconv数層+linear数層、それ以外ならlinear数層
– 画像認識のように大きいニューラルネットは使われない
– 確率的方策(e.g. Softmax or Gaussian)を表すニューラルネットでは、最終層の
重みを小さい値で初期化し、行動分布の偏りを小さくする
 必要に応じてRNNにする
https://twitter.com/karpathy/status/822563606344695810
ハイパーパラメータの設定
 最適化アルゴリズム
– RMSpropかAdamが多く使われる
– 学習率𝛼だけでなく、ゼロ除算を防ぐ定数𝜖も重要なハイパーパラメータ
 Adamの更新式:
 既存の論文の設定を真似るところから始める
Rainbowのハイパーパラメータ (Hessel et al., 2018)
アルゴリズムの評価
 学習した方策の期待収益を評価する
– 評価時には探索は考えず、greedyに行動させる 𝑎 𝑡 = argmax 𝑎 𝑄(𝑠𝑡, 𝑎; 𝜃)
– 確率的方策の場合、行動分布からサンプリングする代わりに最も確率の高い行動を決
定論的的に選ばせると高い期待収益が得られることが多い
 𝑎 𝑡 ∼ 𝜋 ⋅ 𝑠𝑡; 𝜃 or 𝑎 𝑡 = argmax 𝑎 𝜋(𝑎|𝑠𝑡; 𝜃)
 1回の学習からの評価は分散が大きい
– 複数の乱数シードで学習を回して評価するとよい
学習途中の累積報酬の中央値(太線)と
75, 25パーセンタイル(影)の例 (Houthooft et al. 2017)
学習がうまくいかない場合
 簡単な問題を解けるか試す
– 離散行動ならOpenAI GymのCartPole、連続行動ならInvertedPendulum
 数字を見る
– 価値関数の出力、方策のエントロピー、方策更新前後のKL Div.、収益
– 統計値だけでなく、個々の値を見ることも重要
 エピソードが終了する手前付近の状態の価値は、「もうすぐエピソードが終了す
る」ことを予測できているか?
 異なる状態に対して異なる価値/行動分布を出力できているか?
突然学習が失敗する場合
 突然収益が大きく下がったり、NaNやinfが出ることがある
 方策ベースの場合
– 方策が決定論的になりすぎる(=エントロピーが小さくなりすぎる)
 解決策:学習率を下げる、エントロピー正則化を使う、KL制約またはKLペナル
ティを使う、バッチサイズを大きくする、etc.
 価値ベースの場合
– 価値の予測値が実際の期待収益から乖離してしまっている
 解決策:学習率を下げる、割引率を下げる、target Qの更新頻度を下げる、報酬
のスケールを下げる、DoubleDQNを使う、etc.
深層強化学習入門のためのリソース
学習のためのリソース
 Deep RL Bootcamp (2017) 動画・資料・エクササイズ(Chainer製)
– https://sites.google.com/view/deep-rl-bootcamp
– 2日分で基礎から最先端、実装まで含む
 UCLの講義 http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching.html
 UC Berkeleyの講義 http://rll.berkeley.edu/deeprlcourse/
 このチュートリアルで紹介したアルゴリズムの元論文
 日本語:このチュートリアルの最初で紹介した3冊
深層強化学習ライブラリ
 フルスクラッチで書き始めるより、まずは既存実装を探して動かす
– ChainerRL (ours), OpenAI Baselines, rllab, keras-rl, TensorForce, Coach, Ray
Rllib, etc.
– 環境としてのインタフェースさえ実装すれば、新しい問題に適用可能
 定番から外れたことをしたくなったら、自分でコードを書く必要も出てくる
– 教師あり/なし学習と強化学習を同時に解きたい e.g. hard attention
– モデル学習(状態遷移関数 s’=f(s,a) の推定)をして、モデルからのサンプルと環境
からのサンプルを併用して学習したい
ベンチマーク環境
 OpenAI Gym: Atari 2600, MuJoCo製連続行動タスク, 古典的制御タスク, etc.
– 簡単なタスクから論文でよく使われる難しいタスクまで揃っているので、ここから始
めるのがおすすめ
 OpenAI Roboschool: Bullet製連続行動タスク
– MuJoCo(有料)依存がなく、Gymより難しいタスクも含む
 ViZDoom: Doom(FPSゲーム)
 DeepMind Lab: 汎用3D学習環境
 DeepMind Control Suite: (DeepMind版)MuJoCo製連続行動タスク
まとめ
 強化学習の扱う問題は広く、教師データがなくても、環境がblack-boxでもよい
 強化学習アルゴリズムは方策ベースと価値ベースのアルゴリズムに分類でき、
それぞれメリット・デメリットを持つ
 深層強化学習は、必要なサンプル数の多さや学習の不安定さなど課題も多いが
、うまく使えれば強力であり、応用先も広い
 深層強化学習を成功させるには、うまい問題の設計やチューニングが必須
参考文献
 応用先:ゲーム
– D. Silver, A. Huang, C. J. Maddison, A. Guez, L. Sifre, G. Van Den Driessche, J. Schrittwieser, I. Antonoglou, V.
Panneershelvam, M. Lanctot, S. Dieleman, D. Grewe, J. Nham, N. Kalchbrenner, I. Sutskever, T. Lillicrap, M. Leach, and K.
Kavukcuoglu, “Mastering the game of Go with deep neural networks and tree search,” Nature, vol. 529, no. 7585, pp. 484–
489, 2016.
– A. Dosovitskiy and V. Koltun, “Learning to Act by Predicting the Future,” in ICLR, 2017.
– V. Firoiu, W. F. Whitney, and J. B. Tenenbaum, “Beating the World’s Best at Super Smash Bros. with Deep Reinforcement
Learning,” arXiv preprint arXiv1702.06230, 2017.
 応用先:ロボット
– S. Gu, E. Holly, T. Lillicrap, and S. Levine, “Deep Reinforcement Learning for Robotic Manipulation with Asynchronous Off-
policy Updates,” in ICRA, 2017.
– M. Andrychowicz, F. Wolski, A. Ray, J. Schneider, R. Fong, P. Welinder, B. McGrew, J. Tobin, P. Abbeel, and W. Zaremba,
“Hindsight Experience Replay,” in NIPS, 2017.
– F. Sadeghi and S. Levine, “(CAD)$^2$RL: Real Single-Image Flight without a Single Real Image,” in RSS, 2017.
参考文献
 応用先:アルゴリズム設計
– B. Zoph, Q. V Le, and G. Brain, “Neural Architecture Search with Reinforcement Learning,” in ICLR, 2017.
– I. Bello, B. Zoph, V. Vasudevan, and Q. V. Le, “Neural Optimizer Search with Reinforcement Learning,” in ICML, 2017.
– P. Ramachandran, B. Zoph, and Q. V. Le, “Searching for Activation Functions,” arXiv preprint arXiv:1710.05941, 2017.
– B. Zoph, V. Vasudevan, J. Shlens, and Q. V. Le, “Learning Transferable Architectures for Scalable Image Recognition,” in
CVPR, 2018.
 応用先: Hard attention
– K. Xu, J. Ba, R. Kiros, K. Cho, A. Courville, R. Salakhutdinov, R. Zemel, and Y. Bengio, “Show, Attend and Tell: Neural Image
Caption Generation with Visual Attention,” in ICML, 2015.
– W. Zaremba and I. Sutskever, “Reinforcement Learning Neural Turing Machines,” arXiv preprint arXiv:1505.00521, 2015.
参考文献
 応用先:対話
– J. Li, W. Monroe, A. Ritter, and D. Jurafsky, “Deep Reinforcement Learning for Dialogue Generation,” in EMNLP, 2016.
– I. V. Serban, C. Sankar, M. Germain, S. Zhang, Z. Lin, S. Subramanian, T. Kim, M. Pieper, S. Chandar, N. R. Ke, S.
Rajeshwar, A. de Brebisson, J. M. R. Sotelo, D. Suhubdy, V. Michalski, A. Nguyen, J. Pineau, and Y. Bengio, “A Deep
Reinforcement Learning Chatbot,” arXiv preprint arXiv:1709.02349, 2017.
 深層強化学習の使い方
– P. Henderson, R. Islam, P. Bachman, J. Pineau, D. Precup, and D. Meger, “Deep Reinforcement Learning that Matters,” in
AAAI, 2018.
– M. Hessel, J. Modayil, H. van Hasselt, T. Schaul, G. Ostrovski, W. Dabney, D. Horgan, B. Piot, M. Azar, and D. Silver,
“Rainbow: Combining Improvements in Deep Reinforcement Learning,” in AAAI, 2018.
– R. Houthooft, X. Chen, Y. Duan, J. Schulman, F. De Turck, and P. Abbeel, “Variational Information Maximizing Exploration,”
NIPS, 2016.

More Related Content

ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning