Slide 1

Slide 1 text

Sergey Levine Lecture Remake 第2回 Supervised Learning of Behaviors 模倣学習 2020/04/05 関口舜一 Twitter : https://twitter.com/menomendy Github : https://github.com/Shunichi09

Slide 2

Slide 2 text

このスライドの目的 2020/10/30 -2- 以下のSergey Levineの授業(2018)を 徹底的に理解する • 参考URL • http://rail.eecs.berkeley.edu/deeprlcourse/

Slide 3

Slide 3 text

各回のスライドはgithubにまとめます • https://github.com/Shunichi09/SergeyLectureRemake 2020/10/30 -3-

Slide 4

Slide 4 text

スライドの構成 2020/10/30 -4- ★ 講義PDFからの 引用を表す Sergeyの授業 スライド コメントや 要約など ※必ずではないです あくまで基本構成

Slide 5

Slide 5 text

第二回 • 主な内容 ‐ イミテーションラーニング(模倣学習)について ‐ 分布シフトに対応するために ‐ モデルの強化 ‐ データ収集の強化,DAGGER ‐ 模倣学習の欠点と改善 2020/10/30 -5- Sergeyの動画 Sergeyの講義PDF https://www.youtube.com/watch?v=yPMkX_6- ESE&list=PLkFD6_40KJIxJMR- j5A1mkxK26gh_qg37&index=25&t=0s http://rail.eecs.berkeley.edu/deeprlcourse- fa18/static/slides/lec-2.pdf

Slide 6

Slide 6 text

記法について(1/2) 2020/10/30 -6- πθ(a|o)は,何らかの観察(o)が与えられた元での,行動 (a)の確率分布を出力する方策と定義する.(|は条件付 き確率の意味),ここでいう確率分布は,離散(逃げる,そ のまま進む,…)のものや,ガウス分布(左に1m)のように, 連続のものでも良い.θはモデルのパラメータ また,一般的にsとoは異なる.例えば,左に示した,チー ターとガゼルの画像(o)からは,チータの位置やモーメン タムといったこと(s)は明示的には分からない.(推定する 必要性がある). sは何が起きているのかを知るための十分な情報で,oは そのsから生まれる.(次のページのグラフィカルモデルを 参考) ガゼルの例でいえば,車がチーターの前に置かれると, 画像(o)でチーターは見えなくなる.すると,チーターがど こにいるのか(s)言えなくなる.(推測するこはできる) ★

Slide 7

Slide 7 text

記法について(2/3) 2020/10/30 -7- 前頁で述べた話をもっと一般化する. グラフィカルモデルを書くと左の図のようになっている. ここで,pは状態予測モデルである.sからoが出てきてい ることが確認できる. そして,最も重要なのが,s1はs3には関係がないというこ と.つまり,s3を予測するためには,s2の情報と行動だけ で十分であるということ.これは,行動決定のために非常 に重要なことで,もし仮に,π(a|s)とするならば,sは今の 情報のみでよく,過去の情報を入力する必要はないこと になる.(この辺はMLPシリーズの強化学習という本に詳 しく書いてある) 一方,実際すべてのsを観測は難しいので,oを用いた場 合,過去の情報o1を行動決定に使用すること,π(a2|o1, o2)とすることは有効である場合もあるかもしれない. ★

Slide 8

Slide 8 text

記法について(2/3) 2020/10/30 -8- 次の2つは同じ意味なので気にしなくてよい よー ★

Slide 9

Slide 9 text

模倣学習,概要 2020/10/30 -9- では,模倣学習について. (例をトラと逃げる話から車の話に変更), (道路の画像を入力として,ステアをアクショ ンとするような形) 模倣学習において最も一般的な方法は, 人のデータ(oとa)を集めてきて, それらを使ってSGDやMomentumといった手 法で最適化し,方策πを獲得すること (Behavior Cloningとして言及される) すごく単純だけど,これって上手くいく? ★ 学習したい モデル(方策) 集めたデータ で学習

Slide 10

Slide 10 text

模倣学習の課題 2020/10/30 -10- 結論としては,上手くいかない. なぜか? 今左図のようにある1つの軌道に対して 模倣学習(前頁)を行ったとする.どんな完璧な学習の方 法でも,わずかに誤差がのる.その誤差ののった方策を 使い続けると,だんだん軌道が学習した軌道から外れて いってしまうから. (ある時刻で少しミスした行動を出力すると,見たことない oの領域に踏み込んでしまう.(最初のずれは少しかもし れないけど)しかし,その次の時刻では,見たことないoな ので,変な行動aを出力し,さらに,見たことないoに到達 し,…を繰り返し結果として,学習した軌道とずれた軌道を 生成してしまう),最初のずれが小さくても,徐々にシフト していってしまう. ★

Slide 11

Slide 11 text

模倣学習の例 2020/10/30 -11- 上手くいかない模倣学習において,その例 を見てみる.Nvidiaの自動運転の研究. この研究では,人から集めたデータ(カメラ の画像と,ステアの履歴)を使って,画像を 入力とし,ステアを行動とする方策を獲得し ている. 学習した後に,一応コーンに沿った動きやそ の他の道路でも道から外れることなく走行で きている どうやって上記を実現したのか? ★ 一応コーンに 沿った動きや その他の道 路でも道から 外れることな く走行できて いる 集めたデータ で学習

Slide 12

Slide 12 text

ディストリビューションシフトに対応するために -データを加える- 2020/10/30 -12- 上手くいかないはずの,模倣学習で上手くいくための 先ほどの研究はどうしているのかというと off-loadの学習データを生成している. 具体的には,車の左側と右側につけられたカメラの画像 を人工的に変換(正面のカメラから見るとどうなるか)し, 左側の画像には,右へのステアを切る 右側の画像には,左へのステアを切る データを追加した. (左側の画像は,左側に突っ込もうとすることを意味する のでその際の正しいステア(行動)のデータセットが入っ たことになる) 上記をすることで,正面のみのカメラの画像では起きてし まうディストリビューションシフトに対応することができる. (失敗しそうになった時にもとの軌道に戻ることができる) ★

Slide 13

Slide 13 text

ディストリビューションシフトに対応するために -ノイズの載ったデータを加える- 2020/10/30 -13- もう少し一般化させると ある軌道のみから学習させるのではなくて 分布(獲得した軌道からノイズを推定しておく)か らサンプルして学習させることができれば,多少の ずれにロバストな方策を獲得することができる. サンプルの中に,多少のミスをしているデータが 含まれることになるので,車の例と同じようなこと が実現できる. しかし,人のデータを集めて,それを分布にするこ とは非常に困難なので,例えば,最適制御理論な どを使ったcontrollerをエキスパートとして使うこと が考えられる. ★

Slide 14

Slide 14 text

ディストリビューションシフトに対応するために -最適制御理論を使う- 2020/10/30 -14- この話はGuided Policy Searchの話. つまり,最適制御理論に基づく,コントローラーを 使って,ノイズ付きのエキスパートを生成し, そのエキスパートを使って模倣学習させましょう. というのもあるよ,授業の後の方で扱います. という紹介です. ★

Slide 15

Slide 15 text

模倣学習における課題 2020/10/30 -15- 前頁までの話は少し,ヒューリスティックだった(画 像を加えるや,ノイズを加えるなど)ので,もっと一 般化した話をしたい.模倣学習の課題をどのよう に解決するべきなのか?(課題解決を保証できる ようなものはないのか) 少し課題を一般化する.結局何が課題なのかとい うと,左の図のように 学習データの軌道の分布pdata(ot) 方策が作る軌道の分布pπθ(ot) (πθ(a|o)は確率分布を出力するので 取る軌道も確率分布となる) とした時に,それらが異なってしまうことが問題. なので,同じにできれば,上手く学習できているこ とになる ★

Slide 16

Slide 16 text

DAgger 2020/10/30 -16- 学習データの軌道の分布pdata(ot) と 方策が作る軌道の分布pπθ(ot) を等しくするためには,学習する方策πθを 賢くする方法もある(完璧に学習する)が, そうではなくて,pdata(ot) に工夫をしません? 上記のアイディアに基づいた,DAGGERという手法がある.この DAGGERは,まず,①人のデータで学習し,②方策πを走らせて,o のみを獲得(aは何でもよい)③そして,そのoに対して,人がラベル 付け(どう行動するか)を行う.④そのデータをもとのデータに統合 し,そのデータを使って,また学習することを繰り返す.これを繰り 返すと, pdata(ot) とpπθ(ot) は徐々に等しくなる.(証明は論文) なお,一番初めをランダム方策で始めたとしても 理論的2つの分布が等しくなることへの収束は証明できるが,(証 明はオンラインにデータを統合し学習することで示されているため) 人のデータがあった方が上手くいくそう(sergeyが試したって言って た),安全性という面でも良い. DAGGERを用いた例が紹介(ドローン) ★

Slide 17

Slide 17 text

DAggerの課題 2020/10/30 -17- DAggerの課題は,人の手でラベル付けをしないといけな いこと.では,他に2つの分布を等しくしたいという目的に 対して,データを加えない方法で,どのようなアプローチ が考えられるか? もともと解決したかったのは, 2つの分布を等しくすること では,モデルがドリフトしないように (Overfitせずに,かつ正確に人(expert)の行動を真似で きる)ほど賢くすれば良いのではないか...? でも,正確に人(expert)の行動を真似,模倣することは 難しい なぜ? ★

Slide 18

Slide 18 text

モデルの性能向上の課題 2020/10/30 -18- 人の行動を正確に模倣するモデル(方策)を作成するた めの課題は ①マルコフ過程にのっとった動きではないということ ②マルチモーダル(同じ場面でも複数の選択肢,今日は こっちの道にしとこーかなのような)をとるということ まず,①について 基本的に,πθ(at|ot)とすると,前にどんなoがあったとして も同じatをとることになる.これは人間の行動としては不 自然,改善したい. ★ 過去に観察した情 報に依存 今現在にのみ依存

Slide 19

Slide 19 text

Non-Markovianに対応するために -RNNの導入- 2020/10/30 -19- 例えば,上図のように過去の画像をすべてCNNに 入れるという手法もありだがこれでは,たくさんの 重みを用意しなければならない そこで,画像をEmbed(低次元の情報に落とす)す る層と,RNNの機構を持つ部分で構成したネット ワークを使って学習する方法が考えられる. ★

Slide 20

Slide 20 text

Multimodal behavior 2020/10/30 -20- では,もう1つの課題であるMultimodalな振る舞いについ て.ここでいう,マルチモーダルとは,左の図の木の図で 言うと,右に行っても左の道を通ってもどっちでも良いわ け.でも,これで平均をとってしまうと,木にぶつかるとい う事態になる.なので,マルチモーダルであることは問題 になる. ここで,真ん中の図のように,離散的な行動を扱う場合は 問題ないかもしれないが,それを連続的な分布に置き換 えてしまうと,平均がちょうど中心に来てしまう事態になる. では,どのように上記をさけるべきか,3つ方法がある ①GMMのような,混合分布を使う ②潜在変数を持つモデルを使う(VAE) ③Autoregressive Discretizationを使う ★

Slide 21

Slide 21 text

Multimodal behaviorに対応するために -GMMの導入- 2020/10/30 -21- 方策π(a|o)が出力する確率分布をガウシアンモデ ルではなく混合ガウス分布にする.複数の分布が 組み合わさって出てくるので,マルチモーダルな 振る舞いを学習することができる. 上記は低次元では上手くいくが,高次元な行動に なると学習が難しい. ★ 複数のガウス分 布を重みづけ 学習するのは 重みとそれぞれの ガウス分布の平均 と分散

Slide 22

Slide 22 text

Multimodal behaviorに対応するために - Latent Variable Modelの導入- 2020/10/30 -22- では次に,Latent Variable Modelについて.入力に ノイズをのせて学習し,そのノイズを使って分布を 生成すれば,複雑な(マルチモーダルな)分布も学 習することができる.(詳しくは深層生成モデルを 参考)深層生成モデルは,マルチモーダルな分布 を近似することができる. この話は少し難しいので,このコースの中盤で説 明します. (個人的にもこの話はかなりざっくりなので興味の ある方は,須山さんのベイズ深層学習やPRMLを 参考に) ★ ノイズをのせてい る

Slide 23

Slide 23 text

Multimodal behaviorに対応するために - Autoregressive Discretizationの導入- 2020/10/30 -23- もう1つの方法として,Autoregressive Discretizationがある. これは,まず初めのNNが行動aにおける1次元の離散分 布を出力する つまり, としたら,axis=0に関してのみの離散分布を出力する.例 えば,0.5,1.0,1.5と離散化しておいて,それぞれの値を 取る確率を出力させる. そして,その情報を次のNNに入力し,次のNNはaxis=1関 して出力する. これをすべての次元で繰り返せば,マルチモーダルな分 布を近似できるというもの.(各NNに画像とその前の次元 の,確率分布はすべて入力するそう) ★ ある次元の行動に おける離散確率分 布を生成 省略されているけど 画像と,前の次元の確率分布は 入力として使う a = ( ) axis=0 axis=1 axis=2 axis=3

Slide 24

Slide 24 text

2020/10/30 -24- 模倣学習のまとめ ディストリビューションのミスマッチ(シフト)が起き てしまうので上手くいかない が ①ミスした場合のケースをデータに対してAddした り(車の例),②ノイズをAddしたデータ,コントロー ラーから作ったデータから学習 さらに,③DAggerのようにon-policyなデータを加え たり,④さらに良いモデルを方策に使うことで改善 することができる. ★ 模倣学習まとめ

Slide 25

Slide 25 text

2020/10/30 -25- ドローン制御の研究 人の頭にカメラをつけて取得した画像で模倣学習 をしている.その際に,頭の左側の画像に対して は,右に行くように,頭の右側の画像に対しては, 左に行くように学習. ★ 模倣学習の研究紹介①データ

Slide 26

Slide 26 text

2020/10/30 -26- ものを使むロボットの研究 模倣学習をする際に,モデルを RNNの機構とGMMを出力するように設定し,方策 を学習. GMMもRNNもなし場合 GMMのみ RNNのみ 共に使用(提案) を比較し,提案手法が一番性能が良いこと示す また学習する際に,人が失敗し,そこからどう立ち 直ったかもデータにいれていることも工夫点の1つ ★ 模倣学習の研究紹介②モデル性能

Slide 27

Slide 27 text

2020/10/30 -27- ローコストでやっていることからSergeyが好きと いっていた研究 ロボットがものを拭いたり,箱を移動させたりする ための方策を学習する研究 ②と同様にCNNとLSTMを組み込んでいる. ★ 模倣学習の研究紹介③モデル性能

Slide 28

Slide 28 text

2020/10/30 -28- 模倣学習における他のトピックとしては ①Structured prediction がある.これは,例えば,where are youに対して, I’m at homeと出力させたいときに,もし, I’m in となってしまったら,homeの確率は著しく小 さくなってしまう.(home自体は正しいのに)上記 はもちろん,意思決定問題にも関連する ②逆強化学習 デモをコピーするのではなくて,ゴールを理解する というアイディア これについては後の方の講義で扱います. ★ 模倣学習における他のトピック

Slide 29

Slide 29 text

2020/10/30 -29- 模倣学習の課題は, ①人がデータをモデルに与えないといけないが, 十分なデータ量を確保するのは一般的に困難. ②人は右に行く,左に行くといったことに関しての 行動データをモデルに与えることは得意だけど, モータの出力を~といったローレベルの話は苦手 ③さらに,人は勝手に学習できる. 模倣学習は与えられたデータからしか学習できな い. これらの課題を考えるためにコスト関数について 考えていく. ★ 模倣学習の課題

Slide 30

Slide 30 text

2020/10/30 -30- 模倣学習における目的は,動作を模倣すること だったが,自動的に学習するといったことを実現 するためには,他の目的が必要になる. 例えば,タイガーの例でいえば真の目的は min log p (eaten by tiger | a1 ~ aT) となる.(タイガーに食べられてしまうこと確率を最 小化したい) 一般的に書くと となる.ここで,Cはコスト関数 ★ コスト関数の導入と記法 1 1 1 min ( , ) . . ( , ) T t t t t t t c s a s t s f s a − − = = 

Slide 31

Slide 31 text

2020/10/30 -31- rと書く(報酬)とする場合はコスト関数にマイナス をかければよいだけで同じ意味なので注意!! ★ コスト関数の導入と記法

Slide 32

Slide 32 text

2020/10/30 -32- では,模倣学習におけるコスト関数について考え てみる. 例えば,報酬rとして,エキスパート(ここで言う π★)と同じアクション,行動をとる確率としても良 い.(同じ行動をとると報酬が多くなる) または,0,1のロス(コスト)を考えても良い つまり,エキスパートと同じなら0でそれ以外は1と する. ★ 模倣学習におけるコスト関数

Slide 33

Slide 33 text

2020/10/30 -33- では先ほどのコスト関数において 模倣学習を行った際に,どの程度コストをバウンドするこ とができるのか簡単な解析を行ってみる. まず,コスト関数は先ほど設定したように 人(エキスパート)と同じで0 人(エキスパート)と異なって1とする また,学習したπθはεで間違えてしまう(この場合エキス パートとずれてしまう)とする(完全な方策を獲得するのは 困難なので,上記は妥当な仮定) さらに,一応上記の確率が成り立つのはトレーニング データの中で観測された状態のみとする. 今,綱渡りする人を考えてみる. 学習データは直進したときのデータのみ なので,脇にそれて落ちた場合,戻る方法はない (一度落ちたらTまで,1を獲得しつづける) ★ コストをバウンドする(簡単な解析) 次頁で式の確認

Slide 34

Slide 34 text

2020/10/30 -34- コストをバウンドする(簡単な解析) もし,初めにロープの上からだとすると, 一番の時刻で失敗してしまう確率はε で,そのあともずっと失敗するので1が加算 されつづけて,Tをもらうことになる. (なのでε(確率)×T×1(値)でその場合の 期待値は,εT) ( ) ( ) ( ) ( ) , 1 1 ... T t t t E c s a T T       + − − +      ★ 1-εの確率で失敗しないで次のステップにい ける.すると,その先でも同じことが起きるの で,また同様にεの確率で失敗して,(T-1)分 のコストをもらう. この値のオーダーは O(εT^2)になる. これは非常に大きいバウ ンドであまり良くない... さてどうしよう?? ※コストなので注意

Slide 35

Slide 35 text

コストをバウンドする(一般的な解析) 2020/10/30 -35- 仮定: ( ) *( ) | a s s       Expertと違うアクションを取る確率はεよりも小さいとする. (ある程度きちんと学習されたとする) ただし,この制約が守られるのは(εよりも小さい)のは, トレーニングデータセット状態にあるsだとしましょう. (Dとするよりもトレーニングのデータの分布とした方が一般 的なので赤線が入っています.画像を扱うなら同じ状態は 基本的には見ないので.) 模倣学習の設定なので,コストは左の図. expertと一緒なら0,違うなら1 Daggerを使うともちろん学習した方策で訪れる状態の分布が,ト レーニングのデータセットの状態の分布と等しくなるので,εTという 値でバウンドできる.分布が同じということは,どの状態においても expertと違う行動をとるのはε!(当たり前) なお,これが最大に良い場合.

Slide 36

Slide 36 text

コストをバウンドする(一般的な解析) 2020/10/30 -36- では,データの分布が異なる場合はどうだろうか? ある学習した方策で訪れる分布は,トレーニングデータセットの分布と, ある何らかの分布(全く分からない)の2つで表現することができる. タイムステップtまでで,ミスをしなかった場合は, トレーニングデータセット内に収まっているので, 時刻tまでミスしない確率×トレーニングデータセットの分布 一方,時刻tまでに少なくとも1回ミスをした場合は,意味不明な状態の分布になるので, 時刻tまでに少なくとも1回ミスをする確率(1-1回もミスをしない確率)×意味不明な分布.

Slide 37

Slide 37 text

コストをバウンドする(一般的な解析) 2020/10/30 とりあえず引き算してみる. ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) | | | 1 1 1 | | 1 1 1 1 | 1 1 | | t train t t t train t mistake t train t t t train t mistake t t mistake t train t p s p s p s p s p s p s p s p s p s       − = − + − − − = − − − + − − = − − − この絶対値の確率分布の差をTotal Variation Divergenceという. 最も大きくなるのは,2!(ptrainと全く違う値をとるとすると引き算して絶対値とると 2になる.)よってこの値でバウンドできる.

Slide 38

Slide 38 text

コストをバウンドする(一般的な解析) 2020/10/31 -38- 前提条件をいろいろと算出できたので,学習した方策での軌道のもとで コストの期待値がどうなるのかを考える. 期待値の定義 なので,代入 ( ) ( ) ( ) ( ) t t train t train t p s p s p s p s   = + − (絶対値を取ることは問題ない => バウンドできる) 定義から1 期待値なのでε 何があろうと さっき計算したこの値 2 2 T T    + 結局quadraticな値 になってしまう! これが一般的な 模倣学習の解析 https://rikeilabo.com/sum-formula-of-numerical-sequence