Sergey Levine Lecture Remake 2nd Supervised Learning of Behaviors

B148c17e8f0aa570ef1606cd0f284c4c?s=47 Shunichi09
April 10, 2020

Sergey Levine Lecture Remake 2nd Supervised Learning of Behaviors

B148c17e8f0aa570ef1606cd0f284c4c?s=128

Shunichi09

April 10, 2020
Tweet

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

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

  4. スライドの構成 2020/4/10 -4- ★ 講義PDFからの 引用を表す Sergeyの授業 スライド コメントや 要約など

    ※必ずではないです あくまで基本構成
  5. 第二回 • 主な内容 ‐ イミテーションラーニング(模倣学習)について ‐ 分布シフトに対応するために ‐ モデルの強化 ‐

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

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

    に重要なことで,もし仮に,π(a|s)とするならば,sは今の 情報のみでよく,過去の情報を入力する必要はないこと になる.(この辺はMLPシリーズの強化学習という本に詳 しく書いてある) 一方,実際すべてのsを観測は難しいので,oを用いた場 合,過去の情報o1を行動決定に使用すること,π(a2|o1, o2)とすることは有効である場合もあるかもしれない. ★
  8. 記法について(2/3) 2020/4/10 -8- 次の2つは同じ意味なので気にしなくてよい よー ★

  9. 模倣学習,概要 2020/4/10 -9- では,模倣学習について. (例をトラと逃げる話から車の話に変更), (道路の画像を入力として,ステアをアクショ ンとするような形) 模倣学習において最も一般的な方法は, 人のデータ(oとa)を集めてきて, それらを使ってSGDやMomentumといった手

    法で最適化し,方策πを獲得すること (Behavior Cloningとして言及される) すごく単純だけど,これって上手くいく? ★ 学習したい モデル(方策) 集めたデータ で学習
  10. 模倣学習の課題 2020/4/10 -10- 結論としては,上手くいかない. なぜか? 今左図のようにある1つの軌道に対して 模倣学習(前頁)を行ったとする.どんな完璧な学習の方 法でも,わずかに誤差がのる.その誤差ののった方策を 使い続けると,だんだん軌道が学習した軌道から外れて いってしまうから.

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

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

    右側の画像には,左へのステアを切る データを追加した. (左側の画像は,左側に突っ込もうとすることを意味する のでその際の正しいステア(行動)のデータセットが入っ たことになる) 上記をすることで,正面のみのカメラの画像では起きてし まうディストリビューションシフトに対応することができる. (失敗しそうになった時にもとの軌道に戻ることができる) ★
  13. ディストリビューションシフトに対応するために -ノイズの載ったデータを加える- 2020/4/10 -13- もう少し一般化させると ある軌道のみから学習させるのではなくて 分布(獲得した軌道からノイズを推定しておく)か らサンプルして学習させることができれば,多少の ずれにロバストな方策を獲得することができる. サンプルの中に,多少のミスをしているデータが

    含まれることになるので,車の例と同じようなこと が実現できる. しかし,人のデータを集めて,それを分布にするこ とは非常に困難なので,例えば,最適制御理論な どを使ったcontrollerをエキスパートとして使うこと が考えられる. ★
  14. ディストリビューションシフトに対応するために -最適制御理論を使う- 2020/4/10 -14- この話はGuided Policy Searchの話. つまり,最適制御理論に基づく,コントローラーを 使って,ノイズ付きのエキスパートを生成し, そのエキスパートを使って模倣学習させましょう.

    というのもあるよ,授業の後の方で扱います. という紹介です. ★
  15. 模倣学習における課題 2020/4/10 -15- 前頁までの話は少し,ヒューリスティックだった(画 像を加えるや,ノイズを加えるなど)ので,もっと一 般化した話をしたい.模倣学習の課題をどのよう に解決するべきなのか?(課題解決を保証できる ようなものはないのか) 少し課題を一般化する.結局何が課題なのかとい うと,左の図のように

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

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

    (Overfitせずに,かつ正確に人(expert)の行動を真似で きる)ほど賢くすれば良いのではないか...? でも,正確に人(expert)の行動を真似,模倣することは 難しい なぜ? ★
  18. モデルの性能向上の課題 2020/4/10 -18- 人の行動を正確に模倣するモデル(方策)を作成するた めの課題は ①マルコフ過程にのっとった動きではないということ ②マルチモーダル(同じ場面でも複数の選択肢,今日は こっちの道にしとこーかなのような)をとるということ まず,①について 基本的に,πθ(at|ot)とすると,前にどんなoがあったとして

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

  20. Multimodal behavior 2020/4/10 -20- では,もう1つの課題であるMultimodalな振る舞いについ て.ここでいう,マルチモーダルとは,左の図の木の図で 言うと,右に行っても左の道を通ってもどっちでも良いわ け.でも,これで平均をとってしまうと,木にぶつかるとい う事態になる.なので,マルチモーダルであることは問題 になる.

    ここで,真ん中の図のように,離散的な行動を扱う場合は 問題ないかもしれないが,それを連続的な分布に置き換 えてしまうと,平均がちょうど中心に来てしまう事態になる. では,どのように上記をさけるべきか,3つ方法がある ①GMMのような,混合分布を使う ②潜在変数を持つモデルを使う(VAE) ③Autoregressive Discretizationを使う ★
  21. Multimodal behaviorに対応するために -GMMの導入- 2020/4/10 -21- 方策π(a|o)が出力する確率分布をガウシアンモデ ルではなく混合ガウス分布にする.複数の分布が 組み合わさって出てくるので,マルチモーダルな 振る舞いを学習することができる. 上記は低次元では上手くいくが,高次元な行動に

    なると学習が難しい. ★ 複数のガウス分 布を重みづけ 学習するのは 重みとそれぞれの ガウス分布の平均 と分散
  22. Multimodal behaviorに対応するために - Latent Variable Modelの導入- 2020/4/10 -22- では次に,Latent Variable

    Modelについて.入力に ノイズをのせて学習し,そのノイズを使って分布を 生成すれば,複雑な(マルチモーダルな)分布も学 習することができる.(詳しくは深層生成モデルを 参考)深層生成モデルは,マルチモーダルな分布 を近似することができる. この話は少し難しいので,このコースの中盤で説 明します. (個人的にもこの話はかなりざっくりなので興味の ある方は,須山さんのベイズ深層学習やPRMLを 参考に) ★ ノイズをのせてい る
  23. Multimodal behaviorに対応するために - Autoregressive Discretizationの導入- 2020/4/10 -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
  24. 2020/4/10 -24- 模倣学習のまとめ ディストリビューションのミスマッチ(シフト)が起き てしまうので上手くいかない が ①ミスした場合のケースをデータに対してAddした り(車の例),②ノイズをAddしたデータ,コントロー ラーから作ったデータから学習 さらに,③DAggerのようにon-policyなデータを加え

    たり,④さらに良いモデルを方策に使うことで改善 することができる. ★ 模倣学習まとめ
  25. 2020/4/10 -25- ドローン制御の研究 人の頭にカメラをつけて取得した画像で模倣学習 をしている.その際に,頭の左側の画像に対して は,右に行くように,頭の右側の画像に対しては, 左に行くように学習. ★ 模倣学習の研究紹介①データ

  26. 2020/4/10 -26- ものを使むロボットの研究 模倣学習をする際に,モデルを RNNの機構とGMMを出力するように設定し,方策 を学習. GMMもRNNもなし場合 GMMのみ RNNのみ 共に使用(提案)

    を比較し,提案手法が一番性能が良いこと示す また学習する際に,人が失敗し,そこからどう立ち 直ったかもデータにいれていることも工夫点の1つ ★ 模倣学習の研究紹介②モデル性能
  27. 2020/4/10 -27- ローコストでやっていることからSergeyが好きと いっていた研究 ロボットがものを拭いたり,箱を移動させたりする ための方策を学習する研究 ②と同様にCNNとLSTMを組み込んでいる. ★ 模倣学習の研究紹介③モデル性能

  28. 2020/4/10 -28- 模倣学習における他のトピックとしては ①Structured prediction がある.これは,例えば,where are youに対して, I’m at

    homeと出力させたいときに,もし, I’m in となってしまったら,homeの確率は著しく小 さくなってしまう.(home自体は正しいのに)上記 はもちろん,意思決定問題にも関連する ②逆強化学習 デモをコピーするのではなくて,ゴールを理解する というアイディア これについては後の方の講義で扱います. ★ 模倣学習における他のトピック
  29. 2020/4/10 -29- 模倣学習の課題は, ①人がデータをモデルに与えないといけないが, 十分なデータ量を確保するのは一般的に困難. ②人は右に行く,左に行くといったことに関しての 行動データをモデルに与えることは得意だけど, モータの出力を~といったローレベルの話は苦手 ③さらに,人は勝手に学習できる. 模倣学習は与えられたデータからしか学習できな

    い. これらの課題を考えるためにコスト関数について 考えていく. ★ 模倣学習の課題
  30. 2020/4/10 -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 − − = = 
  31. 2020/4/10 -31- rと書く(報酬)とする場合はコスト関数にマイナス をかければよいだけで同じ意味なので注意!! ★ コスト関数の導入と記法

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

    ★ 模倣学習におけるコスト関数
  33. 2020/4/10 -33- では先ほどのコスト関数において 模倣学習を行った際に,どの程度コストをバウンドするこ とができるのか簡単な解析を行ってみる. まず,コスト関数は先ほど設定したように 人(エキスパート)と同じで0 人(エキスパート)と異なって1とする また,学習したπθはεで間違えてしまう(この場合エキス パートとずれてしまう)とする(完全な方策を獲得するのは

    困難なので,上記は妥当な仮定) さらに,一応上記の確率が成り立つのはトレーニング データの中で観測された状態のみとする. 今,綱渡りする人を考えてみる. 学習データは直進したときのデータのみ なので,脇にそれて落ちた場合,戻る方法はない (一度落ちたらTまで,1を獲得しつづける) ★ コストをバウンドする(簡単な解析) 次頁で式の確認
  34. 2020/4/10 -34- コストをバウンドする(簡単な解析) もし,初めにロープの上からだとすると, 一番の時刻で失敗してしまう確率はε で,そのあともずっと失敗するので1が加算 されつづけて,Tをもらうことになる. (なのでε(確率)×T×1(値)でその場合の 期待値は,εT) (

    ) ( ) ( ) ( ) , 1 1 ... T t t t E c s a T T       + − − +      ★ 1-εの確率で失敗しないで次のステップにい ける.すると,その先でも同じことが起きるの で,また同様にεの確率で失敗して,(T-1)分 のコストをもらう. この値のオーダーは O(εT^2)になる. これは非常に大きいバウ ンドであまり良くない... さてどうしようというのが 次回への続き
  35. この後 • この後は次回に回すといっていました~ 2020/4/10 -35-