Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Sergey Levine Lecture Remake 2nd Supervised Learning of Behaviors

Shunichi09
April 10, 2020

Sergey Levine Lecture Remake 2nd Supervised Learning of Behaviors

Shunichi09

April 10, 2020
Tweet

More Decks by Shunichi09

Other Decks in Research

Transcript

  1. Sergey Levine Lecture Remake 第2回 Supervised Learning of Behaviors 模倣学習

    2020/04/05 関口舜一 Twitter : https://twitter.com/menomendy Github : https://github.com/Shunichi09
  2. 第二回 • 主な内容 ‐ イミテーションラーニング(模倣学習)について ‐ 分布シフトに対応するために ‐ モデルの強化 ‐

    データ収集の強化,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
  3. 記法について(1/2) 2020/10/30 -6- πθ(a|o)は,何らかの観察(o)が与えられた元での,行動 (a)の確率分布を出力する方策と定義する.(|は条件付 き確率の意味),ここでいう確率分布は,離散(逃げる,そ のまま進む,…)のものや,ガウス分布(左に1m)のように, 連続のものでも良い.θはモデルのパラメータ また,一般的にsとoは異なる.例えば,左に示した,チー ターとガゼルの画像(o)からは,チータの位置やモーメン

    タムといったこと(s)は明示的には分からない.(推定する 必要性がある). sは何が起きているのかを知るための十分な情報で,oは そのsから生まれる.(次のページのグラフィカルモデルを 参考) ガゼルの例でいえば,車がチーターの前に置かれると, 画像(o)でチーターは見えなくなる.すると,チーターがど こにいるのか(s)言えなくなる.(推測するこはできる) ★
  4. 記法について(2/3) 2020/10/30 -7- 前頁で述べた話をもっと一般化する. グラフィカルモデルを書くと左の図のようになっている. ここで,pは状態予測モデルである.sからoが出てきてい ることが確認できる. そして,最も重要なのが,s1はs3には関係がないというこ と.つまり,s3を予測するためには,s2の情報と行動だけ で十分であるということ.これは,行動決定のために非常

    に重要なことで,もし仮に,π(a|s)とするならば,sは今の 情報のみでよく,過去の情報を入力する必要はないこと になる.(この辺はMLPシリーズの強化学習という本に詳 しく書いてある) 一方,実際すべてのsを観測は難しいので,oを用いた場 合,過去の情報o1を行動決定に使用すること,π(a2|o1, o2)とすることは有効である場合もあるかもしれない. ★
  5. 模倣学習の課題 2020/10/30 -10- 結論としては,上手くいかない. なぜか? 今左図のようにある1つの軌道に対して 模倣学習(前頁)を行ったとする.どんな完璧な学習の方 法でも,わずかに誤差がのる.その誤差ののった方策を 使い続けると,だんだん軌道が学習した軌道から外れて いってしまうから.

    (ある時刻で少しミスした行動を出力すると,見たことない oの領域に踏み込んでしまう.(最初のずれは少しかもし れないけど)しかし,その次の時刻では,見たことないoな ので,変な行動aを出力し,さらに,見たことないoに到達 し,…を繰り返し結果として,学習した軌道とずれた軌道を 生成してしまう),最初のずれが小さくても,徐々にシフト していってしまう. ★
  6. 模倣学習の例 2020/10/30 -11- 上手くいかない模倣学習において,その例 を見てみる.Nvidiaの自動運転の研究. この研究では,人から集めたデータ(カメラ の画像と,ステアの履歴)を使って,画像を 入力とし,ステアを行動とする方策を獲得し ている. 学習した後に,一応コーンに沿った動きやそ

    の他の道路でも道から外れることなく走行で きている どうやって上記を実現したのか? ★ 一応コーンに 沿った動きや その他の道 路でも道から 外れることな く走行できて いる 集めたデータ で学習
  7. ディストリビューションシフトに対応するために -データを加える- 2020/10/30 -12- 上手くいかないはずの,模倣学習で上手くいくための 先ほどの研究はどうしているのかというと off-loadの学習データを生成している. 具体的には,車の左側と右側につけられたカメラの画像 を人工的に変換(正面のカメラから見るとどうなるか)し, 左側の画像には,右へのステアを切る

    右側の画像には,左へのステアを切る データを追加した. (左側の画像は,左側に突っ込もうとすることを意味する のでその際の正しいステア(行動)のデータセットが入っ たことになる) 上記をすることで,正面のみのカメラの画像では起きてし まうディストリビューションシフトに対応することができる. (失敗しそうになった時にもとの軌道に戻ることができる) ★
  8. 模倣学習における課題 2020/10/30 -15- 前頁までの話は少し,ヒューリスティックだった(画 像を加えるや,ノイズを加えるなど)ので,もっと一 般化した話をしたい.模倣学習の課題をどのよう に解決するべきなのか?(課題解決を保証できる ようなものはないのか) 少し課題を一般化する.結局何が課題なのかとい うと,左の図のように

    学習データの軌道の分布pdata(ot) 方策が作る軌道の分布pπθ(ot) (πθ(a|o)は確率分布を出力するので 取る軌道も確率分布となる) とした時に,それらが異なってしまうことが問題. なので,同じにできれば,上手く学習できているこ とになる ★
  9. DAgger 2020/10/30 -16- 学習データの軌道の分布pdata(ot) と 方策が作る軌道の分布pπθ(ot) を等しくするためには,学習する方策πθを 賢くする方法もある(完璧に学習する)が, そうではなくて,pdata(ot) に工夫をしません?

    上記のアイディアに基づいた,DAGGERという手法がある.この DAGGERは,まず,①人のデータで学習し,②方策πを走らせて,o のみを獲得(aは何でもよい)③そして,そのoに対して,人がラベル 付け(どう行動するか)を行う.④そのデータをもとのデータに統合 し,そのデータを使って,また学習することを繰り返す.これを繰り 返すと, pdata(ot) とpπθ(ot) は徐々に等しくなる.(証明は論文) なお,一番初めをランダム方策で始めたとしても 理論的2つの分布が等しくなることへの収束は証明できるが,(証 明はオンラインにデータを統合し学習することで示されているため) 人のデータがあった方が上手くいくそう(sergeyが試したって言って た),安全性という面でも良い. DAGGERを用いた例が紹介(ドローン) ★
  10. Multimodal behavior 2020/10/30 -20- では,もう1つの課題であるMultimodalな振る舞いについ て.ここでいう,マルチモーダルとは,左の図の木の図で 言うと,右に行っても左の道を通ってもどっちでも良いわ け.でも,これで平均をとってしまうと,木にぶつかるとい う事態になる.なので,マルチモーダルであることは問題 になる.

    ここで,真ん中の図のように,離散的な行動を扱う場合は 問題ないかもしれないが,それを連続的な分布に置き換 えてしまうと,平均がちょうど中心に来てしまう事態になる. では,どのように上記をさけるべきか,3つ方法がある ①GMMのような,混合分布を使う ②潜在変数を持つモデルを使う(VAE) ③Autoregressive Discretizationを使う ★
  11. Multimodal behaviorに対応するために - Latent Variable Modelの導入- 2020/10/30 -22- では次に,Latent Variable

    Modelについて.入力に ノイズをのせて学習し,そのノイズを使って分布を 生成すれば,複雑な(マルチモーダルな)分布も学 習することができる.(詳しくは深層生成モデルを 参考)深層生成モデルは,マルチモーダルな分布 を近似することができる. この話は少し難しいので,このコースの中盤で説 明します. (個人的にもこの話はかなりざっくりなので興味の ある方は,須山さんのベイズ深層学習やPRMLを 参考に) ★ ノイズをのせてい る
  12. 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
  13. 2020/10/30 -26- ものを使むロボットの研究 模倣学習をする際に,モデルを RNNの機構とGMMを出力するように設定し,方策 を学習. GMMもRNNもなし場合 GMMのみ RNNのみ 共に使用(提案)

    を比較し,提案手法が一番性能が良いこと示す また学習する際に,人が失敗し,そこからどう立ち 直ったかもデータにいれていることも工夫点の1つ ★ 模倣学習の研究紹介②モデル性能
  14. 2020/10/30 -28- 模倣学習における他のトピックとしては ①Structured prediction がある.これは,例えば,where are youに対して, I’m at

    homeと出力させたいときに,もし, I’m in となってしまったら,homeの確率は著しく小 さくなってしまう.(home自体は正しいのに)上記 はもちろん,意思決定問題にも関連する ②逆強化学習 デモをコピーするのではなくて,ゴールを理解する というアイディア これについては後の方の講義で扱います. ★ 模倣学習における他のトピック
  15. 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 − − = = 
  16. 2020/10/30 -33- では先ほどのコスト関数において 模倣学習を行った際に,どの程度コストをバウンドするこ とができるのか簡単な解析を行ってみる. まず,コスト関数は先ほど設定したように 人(エキスパート)と同じで0 人(エキスパート)と異なって1とする また,学習したπθはεで間違えてしまう(この場合エキス パートとずれてしまう)とする(完全な方策を獲得するのは

    困難なので,上記は妥当な仮定) さらに,一応上記の確率が成り立つのはトレーニング データの中で観測された状態のみとする. 今,綱渡りする人を考えてみる. 学習データは直進したときのデータのみ なので,脇にそれて落ちた場合,戻る方法はない (一度落ちたらTまで,1を獲得しつづける) ★ コストをバウンドする(簡単な解析) 次頁で式の確認
  17. 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)になる. これは非常に大きいバウ ンドであまり良くない... さてどうしよう?? ※コストなので注意
  18. コストをバウンドする(一般的な解析) 2020/10/30 -35- 仮定: ( ) *( ) | a

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