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

Inverse RL / Sergey Levine Lecture Remake 16th ...

Inverse RL / Sergey Levine Lecture Remake 16th Inverse RL

Shunichi09

June 01, 2020
Tweet

More Decks by Shunichi09

Other Decks in Research

Transcript

  1. Inverse Reinforcement Learning mendy Twitter : https://twitter.com/menomendy Github : https://github.com/Shunichi09

    https://www.youtube.com/ watch?v=YnistinWUv4&list= PLkFD6_40KJIxJMR- j5A1mkxK26gh_qg37&index =11 動画 http://rail.eecs.berkeley. edu/deeprlcourse- fa18/static/slides/lec- 16.pdf 資料
  2. Agenda • 逆強化学習のモチベーションとその課題(概要) • 逆強化学習の基本的な手法 ‐ Feature Matching IRL ‐

    MaxEnt • 逆強化学習の応用的な手法 ‐ Guided Cost Learning / (GCL-GAN) • 逆強化学習の更なる課題 2020/6/1 -4- ★ 講義PDFからの 引用を表す
  3. 逆強化学習の問題設定 2020/6/1 6 • 状態空間と行動空間 • sample from expert •

    状態予測モデル(ダイナミクス) (与えられない場合もある) • 報酬関数 • 推定した報酬関数を使って 方策を獲得 与えられるもの 目標 , S A   s a ( ) 1 | , t p s s a + ( ) * ~ i from    ( ) , r s a  ( ) | a s   パラメータ化された 報酬関数 (線形な関数、NNなど)
  4. 逆強化学習の難しさ • 設定不良問題であること(解が唯一に定まらない) • 獲得した報酬関数の評価が困難(再学習して評価?) • デモが必ずしもoptimalであるとは限らない(ノイズなど) 2020/6/1 7 設定不良問題であること(解が唯一に定まらない)の補足

    今、緑の〇が右の三角に動いた時、どんな 報酬関数かを考えてみる。 ①赤い三角が嫌だ ②紫の三角が好き ③ただ、右に動きたかった など様々な説明が考えられ、どれが正解か これだけでは分からない。 ★
  5. <アイディア> もし、featureが重要なものだとして、それをマッチさせれば良いのでは? ➔学習した報酬関数で獲得した方策のもとでの特徴量の期待値 とエキスパートの特徴量の期待値を合わせる ➔しかし、これでもまだ、ambiguous。 (右上の図:右に行きたい特徴量と、紫に行くという特徴量どっちが大事なのか、 どっちも大事なのか?) クラシカルな逆強化学習(Feature matching IRL)

    8 例えば今、線形な報酬関数だと仮定 ( ) ( ) ( ) , , , T i i i r f    = =  s a s a f s a fはなんらかの特徴量を表す (右へ行くことなど) ( ) ( ) * , , r E E        =     f s a f s a *  r  :エキスパート (サンプルだけ) :学習した報酬関数 のもとでの方策 ★
  6. クラシカルな逆強化学習(Feature matching IRL) 2020/6/1 9 <アイディア> 学習される報酬関数はexpertが最も良くなるように学習されるべき ➔マージン最大化 ( )

    ( ) * , max , max , T T m m suchthat E E m             +     f s a f s a SVMに見えなくもないので、SVMの形にしたい(定式化) エキスパートと似ている方策にマージンの最大化する(やりたくない) エキスパートと似ていない方策にマージンの最大化する(やりたい) (どうにかこうにかエキスパートと方策が似ているかどうかを計算し重みづけが必要)
  7. クラシカルな逆強化学習(Feature matching IRL) 2020/6/1 10 ( ) ( ) *

    , max , max , T T m m suchthat E E m             +     f s a f s a ( ) ( ) * 2 1 min , max , 1 2 T T suchthat E E             +     f s a f s a ( ) ( ) ( ) * 2 * 1 min , max , , 2 T T suchthat E E D                +     f s a f s a マージンの最大化= マージン固定でψ最小化 ここにfeature expectationの違いを入れれば、 方策とエキスパートの違いを考慮できる (1p前の重みづけの話)(マージンの固定度合いが変わる)
  8. クラシカルな逆強化学習(Feature matching IRL) 2020/6/1 11 • 課題 ‐ マージンの最大化若干恣意的 ‐

    マージンの最大化=featureのマッチングを行うわけではない。 ‐ suboptimalityの考慮ができていない ‐ constrainedな最適化はNNでは扱いずらい <参考> Abbeel& Ng: Apprenticeship learning via inverse reinforcement learning Ratliffet al: Maximum margin planning
  9. Recap : Control as Inference 2020/6/1 12 ( ) (

    ) ( ) 1| , exp , t t t t t p s a r s a  =  詳細は先週回の資料を参考 (githubに第15回としてあがっています) 制御問題を推論問題として捉えるために グラフィカルモデルを構築。 その際、下記のoptimalityを導入 optimalityを1としたもとでの軌道は次で算出可能 ( ) ( ) ( ) ( ) ( ) 1: 1: 1: , 1 | 1 exp , 1 T T t t t T p p p r s a p     =    = =     =    control as inferenceより
  10. Control as Inferenceの適用 2020/6/1 13 ( ) ( ) (

    ) 1: | 1, exp , T t t t p p r s a        =       <アイディア> ある軌道が与えられたもとでのOptimalityを学習すればよいのでは? (推論問題として考えているのでsuboptimalityも考慮可能) ( ) ( ) ( ) 1| , , exp , t t t t t p s a r s a    =  rewardをパラメータ化 ( ) ( ) 1: 1 1 1 1 max log | 1, max log N N T i i i p r Z N N       = =  = = −   ( ) * ~ i from    が与えられたとすると、尤度を最大化すれば良い!(簡単) なので、 p(τ)はψに関係ない ので消せます これは??
  11. 正確に尤度を書くと、 なので出てきてしまう (パラメータが入っているので無視できない) (もっと直感的に言うなら、この項がないと、 デモ以外の部分も大きくなってしまう。 やりたいのはデモの部分のみを大きくすること) Partition function(分配関数) 2020/6/1 14

    ( ) 1 1 max log N i i r Z N    =   −      ( ) ( ) ( ) ( ) ( ) 1: exp , | 1, exp , t t t T t t t p r s a p p r s a d               = =          log Z 後述の話はすべて、この分配関数をどう求めるか、どう近似するかの話になる。 (逆強化学習の最も厄介なパートはここ) ( ) ( ) ( ) exp Z p r d     = 
  12. 逆強化学習の分配関数 2020/6/1 15 とりあえず勾配を算出 ( ) 1 1 max log

    N i i r Z N    =   −      やりたいこと ( ) ( ) ( ) log log exp Z p r d     =  ( ) ( ) ( ) ( ) ( ) 1 1 1 exp N i i L r p r r d N Z            =    =  −        対数の微分 可能性のあるすべての軌道で積分 ( ) ( ) ( ) ( ) * 1: ~ | , ~ T p L E r E r                    =  −      ( ) 1: | , T p    定義通りに変換しただけ 今回サンプルするのは expertなので(前の項) 後ろの項は定義です。
  13. 期待値の推定 2020/6/1 16 ( ) ( ) ( ) (

    ) * 1: ~ | , ~ T p L E r E r                    =  −      expertからサンプルした軌道を用いた勾配 ー 推定した報酬関数のもとでの最適方策からサンプルした軌道を用いた勾配 ( ) ( ) ( ) ( ) * 1: ~ | , ~ T p L E r E r                    =  −      ( ) ( ) ( ) ( ) ( ) 1: 1: ~ | , , ~ , | , 1 1 , , T t t t t T T T t t t t p s a p s a t t E r s a E r s a           = =      =          期待値の和=和の期待値 (登場回数n回目) どっかで見たような。。。 ( ) ( ) ( ) 1: 1: 1: , | , | , , | , t t T t t T t T p s a p a s p s     =  
  14. よって最終的に とすると、 期待値の推定 2020/6/1 17 ( ) ( ) (

    ) 1: 1: 1: , | , | , , | , t t T t t T t T p s a p a s p s     =   ( ) ( ) , t t t s a s   = ( ) ( ) t t s s    Backward Message Forward Message!! (詳細は前回スライド) ( ) ( ) ( ) ( ) ( ) 1: 1: 1: , | , | , , | , , t t T t t T t T t t t p s a p a s p s s a s       =    ( ) ( ) ( ) ( ) * 1: ~ | , ~ T p L E r E r                    =  −      ( ) ( ) ( ) 1 1 , , , T t t t t t t t t T t t t t s a r s a ds da r s a       = =  =    ( ) ( ) ( ) , t t t t t s a s s     注意すべき点としては すべての状態と行動のペアにつ いてのμを計算するということ! 下の→はそれを意味しています。 (積分を行列に書き直している)
  15. MaxEnt IRL アルゴリズム 2020/6/1 18 まとめ 1. ψを与えて、backward message を計算(前回スライド)

    2. ψを与えて、forward message を計算(前回スライド) 3. μを計算(行動と状態の表を埋めるイメージ) 4. 勾配を計算 5. ψをアップデート!! ( ) , t t s a  ( ) t s  ( ) ( ) ( ) ( ) ( ) , , 1 1 1 1 , , , T N T i t i t t t t t t t t i t t L r s a s a r s a ds da N       = = =  =  −      ( ) ( ) ( ) , t t t t t s a s s     L      + 
  16. MaxEnt IRL アルゴリズム 2020/6/1 19 ( ) ( ) (

    ) , , , T i i i r f    = =  s a s a f s a なぜ、MaxEntなのかというと とした場合、先ほどのアルゴリズムは、 ( ) ( ) ( ) * max , , r r T T H suchthat E E             =     f s a f s a を行っていることが示せるから。 (featureの期待値が一致する制約下でエントロピー最大) (そもそも前回のスライドで、MaxEntの評価関数を最大化するような方策を獲得できる ことを示しているので、なんとなくそのイメージはつくはず。 証明は昔にあげたGuided Policy Searchの解説に示してあります。) https://speakerdeck.com/shunichi09/guided-policy-search?slide=43
  17. MaxEntの課題 • すべての行動と状態のペアの計算が困難 ‐ 小さいかつ、離散化された状態と行動でないと計算できない ‐ forward-backwardの推論計算(softmax演算)において動的計画法 を行う必要がある(状態と行動のペアが増えると困難) • DeepなIRLへ求めるのは、

    ‐ 広いそして、連続な状態と行動の空間を扱いたい ‐ 動的計画法ではダイナミクス(状態予測モデル)が必要。でも Unknown dynamicsでそれを行いたい。 ➔ Samplingを使ってどうにかしたい。 2020/6/1 20
  18. (soft-optimal方策)をなんかしらのmax-ent RLで学習して その方策を使って軌道τをサンプルすれば良いのでは? Unknown dynamics & Large state/action spaces 2020/6/1

    21 ( ) ( ) ( ) ( ) * 1: ~ | , ~ T p L E r E r                    =  −      先ほどの勾配をもう一度見直してみる soft optimal policy (学習した報酬関数の下での) expert policy <アイディア> ( ) 1: | , , t t T p a s   つまり! ( ) ( ) ( ) ( ) ( ) ( ) , , | t t t t t t s a s t J E r s a E H a s         = +      を最大化する方策を学習すれば、軌道を獲得できる。
  19. Unknown dynamics & Large state/action spaces 2020/6/1 22 ( )

    ( ) ( ) ( ) 1 1 1 1 N M i j i j L r r N M        = =    −    よってさっきの式は。。。 soft optimal policy (学習した報酬関数の下での) expert policy よって、今の報酬関数の下での方策を学習し、軌道をサンプルしてから 勾配を推定すれば万事解決!? 二重ループになってしまう。 (勾配を推定するたびにMaxEntの強化学習が回る) さすがに計算が重い。どうにかしたい。
  20. Unknown dynamics & Large state/action spaces 23 ( ) (

    ) ( ) ( ) 1 1 1 1 N M i j j i j j j L r r N          = =    −     <アイディア> 面倒なので、ちょっとだけ方策を更新してその軌道からサンプルしよう。 ➔勾配がbiasedになってしまう。 違う分布。。。 ➔importance sampling!! ( ) ( ) ( ) ( ) exp i i j i p r      = このようになる。※ (分子:optimalな分布なので定義そのまま) (分母:定義というかsampler) (どんな方策πをsamplerにするかは次ページ) これどうすれば? ※個人的には正規化項 どこいったんだろうと疑問に感じましたが、 ∝の関係でIS計算してもよいのかもしれません (要調)誰かご存知の方いたら教えてください。。。
  21. 補足 2020/6/1 24 ※個人的には正規化項 どこいったんだろうと疑問に感じましたが、 ∝の関係でIS計算してもよいのかもしれません (要調)誰かご存知の方いたら教えてください。。。 たぶん左の式展開を使う。 ( )

    ( ) ( ) ( ) exp | p r P Z       ( ) ( ) ( ) | D        とすると、さっきの重みになることが計算できるはず!! Relative Entropy Inverse Reinforcement Learning Jan Peters+ ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) 1 exp 1 exp M j j p r Z r Z p r              =  
  22. Unknown dynamics & Large state/action spaces 2020/6/1 25 ( )

    ( ) ( ) ( ) 1 1 1 1 N M i j j i j j j L r r N          = =    −     ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) 1 1 1 1 exp , exp | , exp , | , | | t t i i t t t t t t t j i t t t t t t t t t r s a p r p s p s s a r s a p s p s s a a s a s           + +       = = =     まず、さっきの weightを計算 最も良いISのweightは何? 一般論➔ f(x)に応じて大きな確率を持つ分布 今回➔ つまり!rψを用いたmax-entのobjectに従って方策π(sampler)を更新していくと 徐々に最適なISの重みに近づいていくことになる。➔良い!! max-entにおける optimal policyそのもの ダイナミクスが消えた!!
  23. Guided Cost Learning (GCL) 2020/6/1 26 今までの話をまとめたものが Guided Cost Learning

    (GCL) 1. 学習された報酬関数の下で 方策(以降samplerと呼ぶ) を更新(少しだけ学習) 2. 上記方策からサンプル 3. 報酬の勾配を計算、報酬を更新 ★
  24. Inverse RL as a GAN 28 詳細は、元論文[2]やDeep Xの日本語の資料[3]を参考にしてほしいですが、大枠だけ。 [2] https://arxiv.org/abs/1611.03852

    [3] https://www.slideshare.net/DeepLearningJP2016/dlgenerative-adversarial-imitation-learning-82875615 ゲーム ➔ GAN!!ということでInverse RLをGANのように扱うことができます。 ( ) ( ) ( ) ( ) ( ) 1 exp 1 | exp t t t r Z D a s r Z        = +  <アイディア①> Discriminatorはsampler (学習している方策)と 理想的な方策(学習した報酬関数のもとでのsoft optimalな方策)を識別するので 以下の関数とする。 これが0.5になれば良い (どっちからか識別できない。) <アイディア②> GeneratorもGANの考え方からすると、騙したことを報酬として最大化する方策 を学習すれば良い。
  25. Inverse RL as GAN (GCL to GCL-GAN) 2020/6/1 29 Discriminator

    Generator ( ) ( ) ( ) ( ) * discriminator ~ ~ log log 1 p L E D E D              = + −     Zの最適化も同時に行います※。 (パラメータψの1つとして扱う) ( ) ( ) ( ) ( ) ( ) 1 exp 1 | exp t t t r Z D a s r Z        = +  ( ) ( ) ( ) ( ) generator ~ log log 1 L E D D           = − −   条件をいろいろ揃えると。。。 GCLの損失関数のそれぞれと一致!! Reward (cost) Sampler ( ) ( ) ( ) ( ) ( ) ( ) sampler , , | t t t t t t s a s t L E r s a E H a s           = +      ( ) ( ) cost 1 1 log N i i L r Z N    =   = −     
  26. GCL to GCL-GAN 2020/6/1 30 使い方としては、次のように行うケースが多いように感じます。 (Discriminatorの損失関数を用いて報酬を学習、 samplerの損失関数を用いて方策を学習)  importance

    weightの計算が不要になるため。 Discriminator ( ) ( ) ( ) ( ) * discriminator ~ ~ log log 1 p L E D E D              = + −     Sampler ( ) ( ) ( ) ( ) ( ) ( ) sampler , , | t t t t t t s a s t L E r s a E H a s           = +      ★
  27. 逆強化学習の更なる課題と発展 • 報酬関数は獲得しなくて良いので、 単純にimitationのみにしてシンプルにしたい ‐ GAIL [1] • デモ(行動と状態の系列が必要)なのは不便 ‐

    VICE, VICE-RAQ [2, 3] • 汎化された報酬関数が欲しい (ダイナミクスが変わっても動けるように) ‐ AIRL [4] 34 [1] Generative Adversarial Imitation Learning https://arxiv.org/abs/1606.03476 [2] Variational Inverse Control with Events: A General Framework for Data-Driven Reward Definition https://arxiv.org/abs/1805.11686 [3] End-to-End Robotic Reinforcement Learning without Reward Engineering https://arxiv.org/abs/1904.07854 [4] Learning Robust Rewards with Adversarial Inverse Reinforcement Learning https://arxiv.org/abs/1710.11248