因果関係を捉える強化学習の論文を読む

因果推論では2つの流派(ルービンとパール)があり、同じ因果を扱っているが方法が異なるので混乱してしまう。ルービンはスコア法に代表される因果推論であり、パールはベイジアンネットに代表される非巡回有向図(DAG:Directed Acyclic Graph)を用いる因果推論となっている。下記の記事はさらに心理学(キャンベル)を追加した区分について記述している。

統計学における因果推論(ルービンの因果モデル) – 医療政策学×医療経済学

 

機械学習での因果推論では、データから因果を推定する次の様な方法があるが、介入という操作を使えず本当の因果は判定できないものである。

 (i) データの3次以上のモーメントを使う独立成分分析で因果方向を推定する方法 

       http://www.padoc.info/doc/kanoIca.pdf

  http://padoc.info/doc/sas2015_bn_structer.pdf

  但しデータの高次のモーメントを使うのでデータにノイズがあると正確に判断できない。

(ii)因果の向きをMDL(最小記述)尤度で判定してベイジアンネットを生成する方法

  http://padoc.info/doc/jsai2015BayesNetNoname.pdf

 次に示す論文のintervention(介入)実験に示した様に最尤法による因果の方向の推定は介入より劣っている事が示されている。ここにデータから生成するベイジアンネットの限界があると思われる。

 

今回読んだ論文はDAG上でエージェントが様々な介入を行ってその結果から効率的に因果関係を把握する学習についての論文である。

[1901.08162] Causal Reasoning from Meta-reinforcement Learning

強化学習についてはメタ学習Learn to Learn[1]を強化学習に適用したメタ強化学習[2]を使っている。学習はActor-Critic法だがbaselineやsoftmaxのパラメータはメタ学習で行っている。具体的な方法については論文中に殆ど記述がない。

 

(1)モデル

   (1-1) 対象ノード数

  対象となるDAGのノード数を5個に限定している。これはノード数が増えるとDAGグラフの数は爆発して計算不能になるためである。例えばノード3個の場合下図の様に11通りのDAGになる。ノードが10個だと4.8億通りDAGとなり事実上計算不能になる。

   f:id:mabonki0725:20190318093148p:plain

  従って本論文では5個のノードを有する58749通りのDAGがを対象としている。

  (このうち300個は試験用でその他の殆どは学習用にしている)

  (1-2) 生成されたDAGの各ノードの値

     ランダムに生成された5ノードのDAGでは、rootノードの情報は隠されているが、それ以外の親ノードを持たないノードは標準偏差0.1の乱数で値が設定されている。各矢印の重みw_{ij}には{-1,0,1}の何れかがランダムに設定されている。即ちノードの値は以下の乱数で設定されている。

 親ノードが無い場合

       p(X_i) = \mathcal{N}(\mu=0.0,\sigma=0.1)

    親ノードがある場合

  p(X_i|pa(X_i) ) =\mathcal{N} (\mu = \sum_j w_{ji} X_j,\sigma=0.1)  

     pa(X_i)はノードX_iの親ノード全部を示す

 

 (1-3) DAGからの情報

  rootノード以外の各ノードの値とノード間の相関係数はエージェントに伝えられる。しかし連結状態はエージェントには分からない。 

 

    (1-4) 介入(intervention)とは

  選択したノードに強制的に値を設定して、下図の様に介入したノードが因果の影響を与える全てのノードの値を変更する。下図には示されていないが変更されたノードはさらに因果の方向に変更を伝播させる。但し介入ノードは独立となり親ノードの影響を受けなくなる。

  

f:id:mabonki0725:20190318203618p:plain

介入の例(E=e)

 (1-5) DAGの学習方法

  この論文ではDAGの構造理解への学習フェーズは2過程に分かれている。

  (i) Information Phase (状況提供フェーズ)

        エージェントはノード数の数だけ介入しノードに値(5点)を設定することができる。この介入操作でDAGの各ノードの値は因果の方向に沿って伝播して変更されれ、エージェントはこの結果を収集することができる。

    (ii) Quiz Phase (問合せフェーズ)

   上記の情報フェーズ後、エージェントは影響が一番大きい(相関が一番大きい)ノードに(-5点)設定して、その負の介入によりDAG内で最大の値を持つノードを選択してこれを報酬とする。下図はDAG構造を推定して最大値(0.0)のノードを報酬とした例である。

  学習は上記の2フェーズをランダムに生成したDAGで報酬を得て、その報酬よりActor-CriticでQ関数を改善するが、パラメターはメタ学習で行う。

          f:id:mabonki0725:20190318153953p:plain

  (2) 実験

   以下の3種の実験を行い、どの様に観察するとエージェントが高い報酬を得られるか試行している。

   (i)  Information Phaseで介入操作が行われない場合(Observasional:観察のみ)

   (ii) Information Phaseで介入操作が行われる場合(Interventional:介入操作)

   (iii) Information Phase で介入が行われ、その値に摂動を与える場合(counterfactual:反証的操作)

 (2-1 ) Observasional実験

 Information Phaseで介入は行われないので、Quiz Phaseでの介入だけでの観察となる。

    この実験でのエージェントの観察方法

  Passive-Cond:5点のノードが見つかれば、そこから低い値の近傍へ因果の矢印があると解釈する

  Optimal-Assoc:互いに相関係数が高いノードが関連していると解釈する

        Obs.Map:全てのノードの因果方向について最尤となる構造を仮定する。

       これはデータからのベイジアンネットの推定と同じ方法

 図(c)の様にPassive-condの方が因果方向を捉えているのでQuiz Phaseではより高いノード(0点)を選択できている。また図(a)より最尤法の解釈は曖昧であることが分る。図(b)は親ノードが無い場合(Oprhan)は高い値を持つノードが判断しやすい事を示している。

 

f:id:mabonki0725:20190318210712p:plain

  (2-2)Interventional実験

 Information Phaseでは介入操作が行われ、その結果はエージェントが観測できる。

 この実験でのエージェントの観察方法

  Passive-Int:介入操作によって大きく値が変わったノードへ因果矢印があると解釈する

  int. Map:介入操作によって変化した状態を満たし最尤となる構造を推定する

 図(c)にある様に介入操作で矢印関係を正確に掴んでQuiz Phaseでノードを選択しているが少ない値を選んでいる。図(a)では介入による解釈が有意である事を示している。

f:id:mabonki0725:20190318211708p:plain

  (2-3) Counterfactual実験

  介入以外に反証的な操作として有り得ない値を設定している。
  この実験でのエージェントの観察方法

  Passive-CF:一連の介入と観察の最後にさらに+5を加点した介入をして観察して因果方向を解釈している

        Optimal-CF:反証的な介入での観察から最尤法によるDAGの解釈

 図(c)の左では介入だけでは同じ値で最大値を選択できていないが、反証的操作によって差ができて最大値ノードを選択できている。

f:id:mabonki0725:20190318212801p:plain

 

  (3) 感想

 一般に因果の方向を正しく推定するには介入や反証的介入が必要とされているが、項目数が多いと介入実験が複雑になってくる。この論文はこれをロボットに置き換えて自動化を試みたものといえる。しかしロボットを使った問題として介入毎に全ノードの観察データを取得してロボットに示さなければならず、またノードが増えた場合にはより膨大な処理時間が必要となると思われる。しかし正確な因果をロボットで試みるのは新しい考え方ではある。

  

[1][1606.04474] Learning to learn by gradient descent by gradient descent

[2][1611.05763] Learning to reinforcement learn

 

最難問ゲーム「Montezuma逆襲」でぶちぎりの得点を出したUberの論文を読む

下図の様にDeepMindDQN[1]でAtariゲームで最難問と云われる「Montezuma逆襲」でぶちぎりの得点を弾き出したUberの論文を読んでみる。(Uberはネットでのタクシー手配提供会社)

f:id:mabonki0725:20190118085207p:plain

この論文は下図の様に隔絶した得点を出したことが2018年末報告されており、その論文がやっと年初に出たので読んでみる。但し論文にはゲーム[Pitfall]の実験成果も報告されているが省略する。

[1901.10995] Go-Explore: a New Approach for Hard-Exploration Problems

このUberのモデル(以下Go-exp)は人間のゲーム知識を入れた得点(67万点)が赤枠で囲ったもので、青は人間のゲーム知識を入れない得点(4万4千点)である。

f:id:mabonki0725:20190303151510p:plain

上図の下辺を拡大した下図(スケールに注意)に示す様にゲームの知識を入れないモデルの比較でも隔絶した得点をたたき出していることがわかる。緑丸のRNDは2018年に出された好奇心で探索する画期的な「Random Network Distillation」[2]モデルで、これも相当凌駕している。

f:id:mabonki0725:20190303153407p:plain

 この様にどうして隔絶した得点を出せたかについて論文を読んでみる。

・モデル

 上述した様にRNDは内発的動機IM(intrinsic motivation)をモチーフにして探索するが、Go-expでも前方探索に[detachment]としてIM使い、後方探索として容易な戻り[derailment]が出来る方式を採用している。

Go-expはよく練られた2つのパイプライン(phase1 phase2)で構成されている。

f:id:mabonki0725:20190303154324p:plain

 phase1は要点(cell)の設定と要点間ルートの探索と保存を行い、phase2は保存された最適なルートを逆に辿って最大報酬が得られる様に強化学習[3](PPOモデル[4])をしている。

 phase2とphase1に分て次の様なアイデアで高得点を実現している。

 <phase2 >
 ①以前から複雑なミッション(例えば鍵のある部屋の探索等)ではゴールから逆向きに

  学習すればよいと云われていたが、phase2はゴールに達した保存されたルートから逆に辿って実現している。

 <phase1>

 ①phase1では探索がし易い様に、画像の次元を落として灰色の粗い画像上で行っている。 f:id:mabonki0725:20190303161559p:plain


 ②phase1の要点(cell)とは画像の各点の重要度が高い所を意味し、

  この設定は次の新規の重要な要点が発見しやすい所に高い要点の重みを設定している。

  即ち全く訪れていない場所の近くや重要な要点の近くに高い重みを設定している。

  (これについてはAppendex5を参照 論文中で唯一式が出てくる所)

 

 ③要点から別の要点を探索しており、要点間では複数のルートが生成されるが、

  ルート長やその間の報酬を評価して、優良なルートに入替えている。

  当然Goalに達すると探索は終了する。

  驚くべき事に要点設定とルート探索では全く深層学習を使っていないと言っている。

 ④phase1での要点間ルートの保存によって、エージェントが簡単に前の要点に戻れる

  工夫がなされている。即ち無駄な後戻り探索を抑止している。

 ⑤phase1の要点設定では、人間の知識を入れた要点の重みを設定することができる。

  (例えばエージェントが鍵のある部屋に入った場所の要点の価値を高くする)

  この効果で66万点を実現しているが、この設定をしなくても隔絶した得点を実現している。

 

・感想

  論文ではphase1はルート生成で、phase2はこのルートを逆向きに強化学習により統計的なイベントに対して頑健(robust)なモデルにしていると述べている。例えば「Montezumaの逆襲」ではランダムに現れる敵の攻撃を回避する必要がある。

 Go-expの最大の成果は以下と考えられる。

 ①phase2でGoalからの逆向きの探査で無駄な探索を排除したこと

 ②phase1で場所の価値を要点として設定でき、要点間を最適なルートで繋いだこと

 ③要点間は簡単に戻れることにより無駄な探索を省いたこと 

       これは木構造探索で末端で失敗すれば、元に戻って別の枝に移れるイメージであろう。

しかしGo-expの様に要点間連結と逆向きの強化学習は、ゴールが見えている2次元迷路探索には効率的だが、RNDの様な内発的動機の方が人間の志向に近いと思われ、ゴールが定かでない課題が一般的なので、内発動機の方が様々な分野に応用できそうな気がする。

 

[1] [1312.5602] Playing Atari with Deep Reinforcement Learning

[2][1810.12894] Exploration by Random Network Distillation

[3][1812.03381] Learning Montezuma's Revenge from a Single Demonstration

[4]【強化学習】実装しながら学ぶPPO【CartPoleで棒立て:1ファイルで完結】 - Qiita

DeepMindの2D画像から3D動画を生成するGQNの論文を読んでみる

GQNは下図の様に隠れた物体が写っている2Dの画面を様々な方向から見た3D画像にして評判になっているが、これは現象から実体(3Dでの位置)を掴むベイズ式をうまく実用化しているからである。

f:id:mabonki0725:20190210195126p:plain

まさしくプラトンイデア論[1]を実現した画期的な試みである。画期的というのは、ベイズは次式の通り観察xから実体zを推定する式であるが適当な実体の分布p(z)を仮定しなければならず実用的でなかった。しかしGQNはこれを深層学習で逐次的処理に置き換えて実用化したものと云える。

 p(z|x) \propto p(x|z) p(z)

GQNの論文は下記サイトの(open access version)から入手でき23頁から手法の記述がある

Neural scene representation and rendering | DeepMind

 (1) GQN(Generative query networks)

  観察p(x)の分布から実体q(z)の分布を推定するのは次のベイズを使ったq(z|x)の変分を使って最適化すればよい。

   \log p(x) = \mathcal{L}(q) + \mathcal{KL}(q||p)

  但し\mathcal{L}(q)は損失関数 \mathcal{KL}(q||p)はKL距離で以下が定義である。

     \mathcal{L}(q) = \int q(z) \log \frac{p(x,z)}{q(z)} dz

             \mathcal{KL}(q||p) = - \int q(z) \log \frac{p(z|x)}{q(z)} dz

  これは次の様に式を展開すると証明できる。

   \mathcal{L}(q) + \mathcal{KL}(q||p) = \int q(z) \log \frac{p(x,z)}{q(z)} \frac{q(z)}{p(z|x)} dz

           \mathcal{L}(q) + \mathcal{KL}(q||p) = \int q(z) \log \frac{p(x,z)}{p(z|x)} dz

   ところでp(z|x) = p(x,z) / p(x)なので

    \mathcal{L}(q) + \mathcal{KL}(q||p) = \int q(z) \log p(x) dz = \log(x)

 GQNは実体zを観察xで推測するが、見る場所を条件yとした条件付き変分式を解いている。

    \log p(x|y) = \mathcal{L}q(z|x,y) + \mathcal{KL}(q(z|x,y) || p(x|z,y))

    上式を論文の記述に従うと観測点が複数ある場合、損失関数\mathcal{F}(\theta,\phi)を使って

    \Sigma_i \log g_\theta(x_i | y_i) = \mathcal{F}(\theta,\phi) + \Sigma_i \mathcal{KL}(q_\phi(z_i|x_i,y_i) || g_\theta(z_i| x_i,y_i))

  上式を変形して論文の(S4)式が得られる。

    \mathcal{F}(\theta,\phi) = \Sigma_i \log g_\theta(x_i | y_i)  + \Sigma_i \mathcal{KL}(q_\phi(z_i|x_i,y_i) || g_\theta(z_i| x_i,y_i))          

    \mathcal{F}(\theta,\phi) \geq   \Sigma_i \log g_\theta(x_i | y_i)

    \mathcal{F}(\theta,\phi) \geq -  \mathcal{L}(\theta)         (S4)

   但し論文の記述に合わせて以下とした。

    \mathcal{L}(\theta) = - \Sigma_i \log g_\theta(x_i | y_i)        (S2)

  (S4)の左辺の損失関数をELBO(Evidence lower bound)と云っている。

 

 (a) \mathcal{KL}距離の最短化の問題

  確かに(S2)式のELBOは美しい式であるが簡単に解けない。KingmaのVAE[2]はgqも混合ガウス分布を仮定しているので\mathcal{KL}距離は解析的に解け最適化は容易である。しかしGQNの様な2Dから3Dの生成の様な複雑な課題に対しては混合ガウス分布の適用は難しいと考えられる。そこでGQNは変分に自己回帰の深層学習(RNN)を導入して時系列の繰返し処理で\mathcal{KL}距離を漸近的に最短化を図ろうとして画期的な試みをしている。下図の様にこの処理をRendering stepと云っている。

f:id:mabonki0725:20190209193104p:plain

  まず実体zをL個に分解して次の様な工夫をしている。

   \pi_\theta(z | v^q,r) = \Pi_{l=1}^L \pi_{\theta_l}(z_l | v^q,r,z_{z \gt l})       (S8)

       ここで

    v^qは推定したい画像のカメラ位置

              r=f(x^1,\dots,x^M,v^1,\dots,v^M)はM個の観測された画像群の特徴情報

                 但し実装ではfは単純和を採っていて、Mは最大30もあれば十分としている。

              x^iは観測画像 v^iは観測画像のカメラ位置と傾き 

      v^i[w^i,cos(yow^i),sin(yow^i),cos(pitch^i),sin(pitch^i)]

      w^iはカメラの位置 yowpitchはカメラの傾き

   この分割した実体z_lは上図に示す様に、生成モデル側(Generation process)と回帰モデル側(Inference process)との両方で推定し、この両方をELMOで一致させる事で精緻化を行っている。

 

  (a-1) Decoder側(Generation architecture)

        右辺は次の(S11)でh_l^gを使った正規分布で定義され、隠れ変数は(S12)の自己回帰型RNN深層学習ConvLSTM_\theta^gで更新している。但し\mathcal{N}は多次元正規分布を示す。

           g_{\theta_l}(z_l| v^q,r,z_{z \gt l}) = \mathcal{N}(z_l | \eta_\theta^\pi(h_l^g))     (S11)

           (c_{l+1}^g,h_{l+1}^g,u_{l+1}) = ConvLSTM_\theta^g(v_q,r,c_l^g,h_l,u_l,z_l)      (S12)

        また推定された画像xは次式でサンプリングしている。

   x \sim \mathcal{N}(x^q | \mu = \eta_\theta^g(u_L),\sigma = \sigma_t)

     ここで

               x^qは推定された画像

               u_Lは最終時の状態を示す情報

     u_{l+1} = u_l + \Delta(h_{l+1}^g)で更新される

 

 

  (a-2)Encoder側(inference architechture)

           (c_{l+1}^e,h_{l+1}^e) = ConvLSTM_\phi^e(x_q,v_q,r,c_l^e,h_l^e,h_l^g,u_l)      (S20)

           q_{\phi_l}(z_l | x_q,v_q,r,z{\gt l}) = \mathcal{N}(z_l|n_\phi^q(h_l^e))     (S21) 

 

  (a-3) ELBOによるz_lの一致 

        下図の様にRendering stepの生成側と回帰側で実体zをELBOで一致させている。論文では(S4)のELBOを上記の実体をL個に分割した結果を使って次式で解いている。

   \mathcal{F}(\theta,\phi) = \mathbb{E}_{x,v,z \sim \psi(\phi)} [-log (x^g ) + \Sigma_{l=1}^L \mathcal{KL} (z_l^g) || z_l^e) ]

  ここで

               x,v,z \sim \psi(\phi) = (x,v) \sim D,z \sim q_\phi

               D=(x^i,v^i)は観測データ群 

       また上述に示した様に次の定義を使うと論文の(S24)が得られる。

   x^g \sim \mathcal{N} (x^q| \eta_\theta^g(U_L))       (S14)

           z_l^g \sim \mathcal{N}(z_l | \eta_\theta^\pi(h_l^g))    (S11)

           z_l^e \sim \mathcal{N}(z_l | \eta_\phi^q(h_l^e))    (S21)

    \mathcal{F}(\theta,\phi) = \mathbb{E}_{x,v,z \sim \psi(\phi)} [-log N(x^q | \eta_\theta^g(u_L)) + \Sigma_{l=1}^L \mathcal{KL} (N(z | \eta_\phi^q(h_l^e)) || N(z | \eta_\theta^\pi(h_l^g)) ) ]      (S24)

  上式のELBOは全て多変量正規分布で記述されているので求めるパラメータ\theta,\phiは平均と分散となる。少なくとも\mathcal{KL}は解析的に計算でき、このELBOの最小化は局所解を持たず必ず収束できるはずである。

 

 

(2) 感想

 変分ベイズの美しい式で初めて実用化に成功したのはKingmaのVAEであった。しかしこのVAEでは簡単な画像を対象とし、回帰と生成画像は同じであったので、変分を混合ガウス分布と置いて\mathcal{KL}距離を解析に解き、回帰側と生成側はCNN型深層学習で近似する方法であった。

しかし2D画像を3Dにする複雑な課題では\mathcal{KL}を解析的に解けるモデルでは精度に限界があると予想される。そこでGQNではRenderingと称する実体zを分割して自己回帰型で逐次精緻化する手法を採ったと思われる。

 GQNは今まで変分ベイズでの\mathcal{KL}距離が混合ガウス分布しか適用できなかった限界を始めて超えたもので、VAEの応用を広める手法として画期的な手法として評価できる。

   なお松尾研の松島さんの報告[3]では松尾研で開発した状態表現用ライブラリィPixyzを使ってGQNを学部4年生が実装(公開済)したとのことである。

 

[1]イデア論 - Wikipedia

[2][1312.6114] Auto-Encoding Variational Bayes

[3]第32回 強化学習アーキテクチャ勉強会 状態表現学習と世界モデルの最近の研究,および深層生成モデルライブラリPixyzの紹介 #rlarch - Speaker Deck

画像から実体の推移を予測して学習する論文を読んでみる

プラトンイデア論では「本当にこの世に実在するのはイデアであって、我々が肉体的に感覚している対象や世界とはあくまでイデアの《似像》にすぎない」[1]としている。例えば3D迷路の場合、迷路内の自己位置が実体で、壁に囲まれた通路の視野が似像(画像)とするとプラトンイデア論そのものである。3D迷路内を効率的に探査するため、画像から実体を推定し、その遷移予測から画像を復元する論文(以下TD_VAE)を読んでみる。

[1806.03107] Temporal Difference Variational Auto-Encoder

       f:id:mabonki0725:20190202231633p:plain


(1)モデル

 (a)潜在空間モデル

 3D迷路の自己位置が時系列で移動するとして、実体が[z_1,\dots,z_T]と変動するに応じて観察[x_1,\dots,x_T]も変化する潜在空間モデルを考える。

 ここで実体の推移確率p(z_t|z_{t-1})を全観察[x_1,\dots,x_t]から推定するEncoderq(z|x)を導入する。

   p(z_t|z_{t-1}) \approx q(z|x) = q(z_t|z_{t-1},\phi_t(x))     (0)

           ここで \phi_t(x)は 全観察[x_1,\dots,x_t]上の関数である。

 また実体と観察の同時分布は尤度p(x_t|z_t)と推移確率p(z_t|z_{t-1})を使かうと次となる。

           p(x,z) = \Pi_t p_\theta(z_t|z_{t-1}) p(x_t | z_t)

 この対数表現は

           \log p(x,z) = \sum_t \log p(z_t|z_{t-1}) + \log p(x_t|z_t)

    上式の実体zでの期待値は

   \log p(x) = \int \log p(x,z) dz = \int \log p(x|z) p(z) dz = \mathbb{E}_{z \sim p(z|x)} [\log p(x|z) ]

    z \sim p(z|x)の代わりにz \sim q(z|x)を使うため(0)式のEncoderを使うと次の下位限界が得られる。

           \log p(x) \geq \mathbb{E}_{z \sim q(z|x)} [\sum_t \log p(x_t|z_t) + \{\log p(z_t|z_{t-1} ) - \log q(z_t|z_{t-1},\phi_t(x)) \} ]             (1)

           ここで中括弧内の(0)式の近似が一致する場合、両辺が一致することがわかる。

 (b)ELBO(Evidence Lower Band Optimizer)モデル

    (1)式で過去の観察x_{\lt t}に依存し、2回のz_t,z_{t-1}の両方がx_{\lt t}に依存すると(3)式に変形できる。

         \log p(x) = \sum_t \log p(x_t | x_{\lt t})

            \log p(z_t | z_{t-1}) = \log p(z_t,z_{t-1} | x_{\lt t})

    \log q(z_t | z_{t-1},\phi_t(x)) = \log q(z_t,z_{t-1} | x_{\lt t})

            を使って

            \log p(x_t | x_{\lt t} ) \geq \mathbb{E}_{z \sim q(z_t,z_{t-1}|x_{\lt t})} [\log p(x_t|z_t,x_{\lt t}) + \log p(z_t|z_{t-1} ) - \log q(z_t|z_{t-1},x_{\lt t})]             (3)  

 さらに以下の事実を使うと(4)式で示せる。

            p(x_t | z_{t-1},z_t,x_{\lt t}) = p(x_t | z_t)      x_{t}z_{t}のみ依存

            p(z_{t-1},z_t | x_{\lt t}) = p(z_{t-1} | x_{\lt t})p(z_t | z_{t-1})   実体遷移ではx_{\lt t}は無関係

    q(z_{t-1},z_t | x_{\lt t}) = q(z_t | x_{\lt t}) q(z_{t-1} | z_t,x_{\lt t})   Bayes公式

    \log p(x_t | x_{\lt t} ) \ge \mathbb{E}_{z \sim q(z_t,z_{t-1}|x_{\lt t})} [\log p(x_t|z_t) + \log(z_t|x_{\lt t} ) + \log p(z_t | z_{t-1}) - \log q(z_t|x_{\lt t}) - \log q(z_{t-1} | z_t,x_{\lt t})]             (4) 

 ここで記憶の概念b_tをRNNで導入する。即ちt時点までの観測x_{\lt t}を使う代わりに過去の記憶を反映できるRNNモデルb_t=f_B(b_t,x_t)とすると便利である。RNNを使ってp(z_t | x_t)p_B(z_t | b_t)とすると(4)式を変形して次のELBOの損失関数が定義できる。

   -\mathcal{L} = \mathbb{E}_{z_t,z_{t-1} \sim \psi(z,b)} [\log p(x_t|z_t) + \log p_B(z_t|b_t ) + \log p(z_t | z_{t-1}) - \log p_B(z_t|b_t) - \log q(z_{t-1} | z_t,b_{t-1},b_t)]   (5)

   但し

    \mathcal{L} = \log p(x_t | x_{\lt t})    負の対数尤度

    z_t,z_{t-1} \sim \psi(z,b) = z_t \sim p_B(z_t | b_t) , z_{t-1} \sim q(z_{t-1} | z_t,b_t,b_{t-1})

 (c)TD_VAE Jumpyモデル 

 ある目的を達成する場合は道標(マイルストーン)を設定して進む場合が多い。目的を達成する強化学習でも例外でなく逐次的処理を効率化できる。されに道標を設けることにより、道標間の上位モデルと道標内の下位モデルで階層モデルを導入できる。TD_VAEでは2階層のRNN構造階層モデルを構築している(論文図8参照)。そこでTD_VAEではステップ間[t_1 \sim t_2]でのELBOモデルに変換している。

     \mathcal{L}_{t_1,t_2} = \mathbb{E}_{z_{t_1},z_{t_2}\sim \psi(z,b)} [\log p(x_{t_2} | z_{t_2}) + \log p_B(z_{t1} | b_{t_1}) + \log p(z_{t_2}|z_{t_1}) - \log p_B(z_{t_2}|b_{t_2}) - \log q(z{t_1} | z_{t_2},b_{t_1},b_{t_2}) ]   (6)

 

(2) TD_VAEのアルゴリズム

     アルゴリズムでは下記の(a)と(b)は同じ実体z_{t_1}を示しており、Encoderqと実体の推定確率pとが同じになる様(下図ではSmoothing)に\mathcal{KL}距離最小化を損失関数に挿入している。

  \mathcal{L} = \mathcal{KL}(q_S^{t_1|t_2}||p_B^{t_1}) + \log p_B^{t_2}(z_{t_2}) - \log p_T^{t_2}(z_{t_2}) - \log p_D^{t_2}(x_{t_2})

 (6)式TD-VAEの損失関数とアルゴリズムの損失関数の対応を以下に示す。  

          (a) \log q(z_{t_1} | z_{t_2},b_{t_1},b_{t_2}) \to \mathcal{KL}(q_S^{t_1|t_2}|| \cdot)

          (b) \log p_B(z_{t1} | b_{t_1})  \to \mathcal {KL} (\cdot || p_B^{t_1})

          (c) \log p(z_{t_2}|z_{t_1})  \to \log p_B^{t_1}(z_{t_2})

          (d) \log p_B(z_{t_2}|b_{t_2}) \to \log p_T^{t_2}(z_{t_2})

          (e) \log (x_{t_2} | z_{t_2}) \to \log p_D^{t_2} (x_{t_2})

 

 論文では上記のアルゴリズムの手順を下図の①から⑧に示している。  

f:id:mabonki0725:20190203142435p:plain

TD-VAEアルゴリズム

  以下の ①から⑧を繰返して損失関数\mathcal{L}を改善してEncoderq(\phi)とDecoderp(\theta)のパラメータを改善する。

  十分改善した時、Encoderで画像を再生し強化学習より次の道標t_3に進む。

  ①RNNと観察x_{t_1}よりb_{t_1}を生成

  ②次の道標を選択

       ③RNNのb_{t_2}より(d)式で次の実体を予測

  ④(d)式により実体z_{t_2}を予測

  ⑤(b)式のEncoderq(\phi)と(a)式のDecoderp(\theta)との\mathcal{KL}を計算

  ⑥次の予測実体z_{t_2}を使ってEncoderq(\phi)を計算

  ⑦予測された実体z_{t_2}をEncodeして観察x_{t_2}を生成

  ⑧損失関数を最小化するためp(\phi)q(\theta)のパラメータを最適化

 

 (3) 実験

 DeepMind-Labの3D迷路では2種類の実験を行っている。

   (a) [1 ~40]をランダムの時点についてRNNで記憶bをさせて、適当に3つの記憶から実体zの推移5回予測してDecodeした画像を指名している。下図では異なった場面で連続した画像が得られていることが分る。

f:id:mabonki0725:20190203173036p:plain

 (b) TD-VAEで迷路探索を行った結果では、下図の4種類の画面遷移では全て前に進み通路に向かおうとしている事がわかる。これは実体を予測してDecodeした画像により強化学習を行っている事を示している。 

f:id:mabonki0725:20190203173639p:plain

(4) 感想

 (a)残念な事にTD-VAEでは(6)式の損失関数のみ定義されているだけで、次の分布の、詳細な記述が無い。KingmaのVAE[2]ではzは混合正規分布でしか収束が保障されないはずである(最近この拡張論文を知った[3])。報告されているアルゴリズムで正しい収束ができているか不安である。ELBOの収束の問題は[4]に詳しい。

   p(z)   実態の分布     (普通は正規分布)

      q(z|x)   変分Encoder (普通は混合正規分布  数千次元)

   p_B(b,x) 記憶呼出

   

    (b)TD-VAEではJumpy(飛ばし)な時系列を導入して、効率的な実体の予測をしているが実験ではランダムに時系列をサンプリングしているに過ぎない。論文の4.3節では価値関数Q_{t_1}V_{t_1}に対してt_2を探索すべきとある。また一方で記憶p_B(z_{t_1}|b_{t_1})p_B(z_{t_2}|b_{t_2})との訓練で得られるとあるが、具体的な方法が述べられていない。

 (c)3D迷路図でDecoderされた画像は相当粗いものらしく拡大しても精度が良くない。これではUNREAL[5]の様な迷路を解くモデルが適用できるか不明である。

 (d)TD-VAEは画像予測にVAEを使ったもので、強化学習はその予測を使うだけになっているが、Jumpyな画面遷移を予測できることからSuttonのoption等を導入できれば階層型強化学習として有望だと思われる。

 

[1] イデア論 - Wikipedia

[2][1312.6114] Auto-Encoding Variational Bayes

  Vae gan nlp

[3][1808.10805] Spherical Latent Spaces for Stable Variational Autoencoders

[4][1706.02262] InfoVAE: Information Maximizing Variational Autoencoders

[5] DeepMindのUNREALでの暗黙の特徴量 - mabonki0725の日記

 

砂のトラックを走行する実自動車での強化学習の論文を読む

下図の様な砂のトラックを走行する自動運転ではアクセルやハンドルの伝達誤差また砂利面との滑りや摩擦があり、予想し得ない事象が頻発すると想定する必要がある。下記の論文は実際の自動車での強化学習をMPPI(Model Predictiv Path Integral)と云う手法で実験した論文を読んでみる。 

https://www.cc.gatech.edu/~bboots3/files/InformationTheoreticMPC.pdf

f:id:mabonki0725:20190125190450p:plain


DQNやActor-Criticの様なModel-freeモデルでは、環境から持続的な特徴量の変化を抽出して最大報酬を得る様に行動決定のパラメータを調整するが、様々な原因で変異や誤差がある環境では学習に相当時間(2,3日)かかる事が報告されている。一方で実際の課題に沿ったモデル化から最適化を図るModel-Baseモデルは学習効果が著しいとされる[1]。

(1) モデル

 この論文は対象を限定せず制御誤差があり罰則(コスト)が設定されている動作物体の最適操作について汎用的に記述しているが、具体的にトラックを周回する自動運転での説明とする。

 動力エンジンの機構や地面との摩擦等により操作が自動車の制御機能に伝達するには誤差があるとして、その誤差を多変量正規分布とする。コストはゴール前の離脱やトラック(走行路)を逸脱すると与えられるとする。この論文では、この様な条件でコストを最小化する経路上の操作量uを求める。

  (1-1) 状態遷移モデルの定義 

    状態xの遷移過程は次の関数とし、具体的には観測された状態xと操作uの記録により全結合のニューロで学習する。

  x_{t+1} = F(x_t,v_t)  s.t   v_t = \mathcal{N}(u_t,\Sigma)   (1)

        ここで

   x_tは時刻tでの状態

   u_tは運転操作の量(アクセル、ブレーキ、ハンドル回転量)

           v_tは実際に自動車に伝わる制御分布。平均はu_tで分散を\Sigmaとする正規分布 

   Fは状態遷移関数で全結合のニューロで学習される。

 (1-2) 操作と制御の分布およびコスト関数の定義

 以下ではコスト関数の自由エネルギーの最小化を考え、経路上の時刻tでの操作量u_tを次の(8)式から(26)式で求める。

 ここで制御の経路V={v_0,\dots,v_T}を使って以下の定義をする。

  ・制御の分布

   p(V) = \pi_{t=0}^{T-1} Z^{-1} \exp(-\frac{1}{2} v_t^T \Sigma^{-1} v_t)    (2)

       ・運転誤差の分布

    q(V) = \pi_{t=0}^{T-1} Z^{-1} \exp(-\frac{1}{2} (v_t-u_t)^T \Sigma^{-1} (v_t-u_t))    (3)

       ・コスト関数

   S(V) = C(x_1,\dots,x_T) = \phi(x_T) + \sum_{t=1}^{T-1}q(x_t)     (6)

     ここで\phiはゴールに失敗のコストでq(x_t)は状態x_tでのコスト

 (1-3)コスト関数の自由エネルギーの導入

    ここで制御の分布p(V)について期待値を取ったコスト関数の自由エネルギーを定義して、この最小化によりコストが最小になる操作uを推定する。この手法については文献[2]が詳しい。

   \mathcal{F}(V) = -\lambda \log ( \mathbb{E_p} [\exp (-\frac{1}{\lambda} S(V) ) ] )          (8)

  上式の自由エネルギーを運転誤差の分布q(V)についての期待値に変換する。

   \mathcal{F}(V) = -\lambda \log ( \mathbb{E_q} [\frac{p(V)}{q(V)} \exp (-\frac{1}{\lambda} S(V) )])     (9)

        ここで\mathbb{E_p}[f(x)] = \int p(v) f(x) dv = \int q(v) f(x) \frac{p(v)}{q(v)} d v =\mathbb{E_q}[\frac{p(V)}{q(V)} f(x)] を使った。

 (9)式はJensenの不等式を使うとlogが期待値の中に入り次式になる

      \mathcal{F}(V) \ge -\lambda ( \mathbb{E_q} [\log \frac{p(V)}{q(V)} \exp (-\frac{1}{\lambda} S(V) )])     (10)

  式(10)で操作誤差分布が次の時、両辺とも定数になり不等式が一致するので自由エネルギーが最小になる。

        q^*(V) = \frac{1}{\eta} \exp(\frac{1}{\lambda} S(V)) p(V)      (14)

   ここで\etaは分配関数でq^*(V)を確率0~1にしている。    

     上式を(9)と(10)式に投入するとJensenの不等式が一致することが分る。

   \mathcal{F}(V) = -\lambda \log (\mathbb{E_q} [ \eta ]) = -\lambda \log \eta

        -\lambda ( \mathbb{E_q} [\log \frac{p(V)}{q(V)} \exp (-\frac{1}{\lambda} S(V) )] = -\lambda ( \mathbb{E_q} [ \log \eta] = -\lambda \log \eta

  そこで全経路について(14)式にできるだけ一致する操作u\mathbb{D}_{KL}で求める。

   u^* = min_{u} \mathbb{D}_{KL} (q^*(V) || q(V))

  経路Vの集合\tauでは\mathbb{D}_{KL}の定義より次の様になる。

   \int_\tau q^*(V) \log (\frac{q^*(V)}{q(V)}) dV

           =\int_\tau q^*(V) \log (\frac{q^*(V) p(V)} {p(V) q(V)}) dV

           =\int_\tau q^*(V) \log (\frac{q^*(V)}{p(V)}) - q^*(V) \log (\frac{q(V)}{p(V)}) dV

 上式の第一項でq^*(V)は(14)式、p(V)は(2)式より操作uと無関係なので

 上式の第二項を最大化すれば最適なuが求まる。

   u^* = max_u \int_\tau q^*(V) \log (\frac{q(V)*}{p(V)}) dV     (16)

    (16)式の中の\frac{q(V)*}{p(V)}は定義(2)と(3)式より以下となる。

   \frac{q(V)}{p(V)}=\exp (\sum_{t=0}^{T-1} - \frac{1}{2} u_t^T \Sigma^{-1}u_t + u_t^T \Sigma^{-1}v_t )   (17)

     (16)式は以下に変形できる。

    \int_\tau q^*(V) [\exp(\sum_{t=0}^{T-1} - \frac{1}{2} u_t^T \Sigma^{-1}u_t + u_t^T \Sigma^{-1}v_t) ] dV  (18)

     (18)式を\mathcal{G}(u)と置きuについて微分すると

   \mathcal{G}(u) = \sum_{t=0}^{T-1} ( \frac{1}{2} u_t^T \Sigma^{-1} u_t + u_t^T\int_\tau q^*(V) v_t dV)      (19)

           \frac{d \mathcal{G}(u)}{d u} = -\Sigma^{-1}u_t + \int_\tau \Sigma^{-1} q*(V) v_t dV

 上式を0とすると操作uの最適下は以下となる

   u^*_t = \int_\tau q^*(V) v_t dV   (20)

 (1-4) 実装のためのImportanceサンプリング手法の導入

 ここからは(20)式を実用的に使うため次式に変形してImportanceサンプリングw(V)導入する。

   u^*_t = \int_\tau q(V) \frac{q^*(V)}{p(V)} \frac{p(V)}{q(V)} v_t dV   (21)

           ここで w(V) =  \frac{q^*(V)}{p(V)} \frac{p(V)}{q(V)}とすると

      u^*_t =  \int_\tau q(V) w(v) v_t dV = \mathbb{E_q}[w(V) v_t ]    (22)

    Importanceサンプリングは(17)式と(14)式を使うと

   w(V) = \frac{q^*(V)}{p(V)} \exp (\sum_{t=0}^{T-1} - \frac{1}{2} u_t^T \Sigma^{-1}u_t - v_t^T \Sigma^{-1}u_t )

           w(V) = \frac{1}{\eta} \exp ( - \frac{1}{\lambda} S(V) + \sum_{t=0}^{T-1} - \frac{1}{2} u_t^T \Sigma^{-1}u_t - v_t^T \Sigma^{-1}u_t )        (23)

 ここで観測で得られた時間毎の誤差\varepsilon = (\epsilon_0,\dots,\epsilon_{T-1})を使うと v_t = u_t + \epsilon_tなので(23) 式は

   w(V) =w(\varepsilon)= \frac{1}{\eta} \exp ( - \frac{1}{\lambda} S(U+\varepsilon) + \sum_{t=0}^{T-1} - \frac{1}{2} u_t^T \Sigma^{-1}(u_t+2\epsilon_t))        (24)

   ここでU=(u_0,\dots,u_{T-1})である

 誤差\varepsilonが分っている場合、(22)の経路の集合\tauでの積分を観測可能な経路の集合に置き換えてサンプリングして、その総和で置き換えると操作u_tの最適制御は次式で更新できる。

   u_t^{i+1} = u_t^i + \sum_{n=1}^N w(\varepsilon_n) \epsilon_t^n

   但し \int_\tau q(V) v_t dV \approx \sum_{n=1}^N \epsilon_t^n  (26)

 (1-5) 状態遷移関数の学習

 コストを最小化(または報酬を最大化)する操作u_tは(26)式で求められたが、この操作によって状態xがどの様に推移するかは次のニューロで学習する。

   x_{t+1} = F(x_t,u_t) = (q_t + \dot{q}_t \Delta t,\dot{q}_t + f(x_t,u_t) \Delta t)

           ここで 

    x = (q,\dot{q}) 状態xはシステムの状態qとその変化\dot{q}とする

    f(x_t,u_t)は全結合のニューロで、状態x_t=(q_t,\dot{q}_t)のモニタリングと操作u_tの記録により学習する。

 

(2) 実験 

  実験は下図の様な砂のトラックの実験場で以下の条件の自動運転で行う。

 まず人間が30分程度毎に様々なスピードで多様な運転を行ってパラメータを取得している。安定的な自動走行が可能になった後、砂上トラックでの自動運転の実験を行っている。

f:id:mabonki0725:20190127181042p:plain

MPPIの実自動車の実験場

 (2-1)実験条件
    ・誤差\varepsilon

   ハンドル: 0.20 スロットル:0.25 

 ・(6)式のコスト関数 

  q(x) = 2.5(s - s_{des})^2 + 100M(x,y) + 50S_c

       \phi(x_T) = 100000C

       ここで

   sは走行時のspeed 

           s_{des}は設定speed 

    学習時 9m/s

    試験時  10m/sから13m/sに速度を上げて行う

   M(x,y)はトラック内を格子状にして設定したコスト

    トラックを外れるとコストが大きい

   S_cは横滑り許容角度を超える場合のコスト

    学習時の許容角度は15.76度 試験時の許容角度 21.5度 

   Cはクラッシュした場合は1 ゴールした場合は0

 

 (2-2) 実験結果

    訓練は5回行い(45回の周回)、試験はスピードを10m/s から 13m/sに徐々に上げる。下図は上段が訓練時、下段が試験時である。コーナではトラックから逸脱しない様に減速し、直線では増速していることが分る。

        

f:id:mabonki0725:20190127181808p:plain

 (3) 感想

  この論文では制御機能vと運転操作uの伝達に多変量正規分布の誤差がある場合で、定められたコストを最小にする強化学習を提案している。

 学習はImportantサンプリングによる最適操作量u_tと状態遷移f(x_t,u_t)とで2重に行われている。そのため安定するまで相当な走行が必要と思うが詳細な記述が無い。特に(26)式では観測できる経路の全てについて(24)式のImportantサンプルを求める事が必要である。

 またこのモデルは残念な事に(26)式にある様に全経路と各時点での操作と制御間のエラーの量が予め求められている必要がある。実験ではハンドルとスロットルの誤差のみ設定しているが、本当は各トラック上での操作誤差は事前のトラックの周回中の観測で得ている思われる。本論文のMPPIはパラメータの設定が難しいので、複雑な経路や凹凸がある場所での実機の試験については文献[1]の実績にある様に、短区間のみMPPIを使い、全区間ではメタ学習による更新ロジックと組み合わせるモデルが現実的と思われる。

 

[1]メタ学習による実世界での変異や誤差に対応した学習の論文を読む - mabonki0725の日記

[2]https://homes.cs.washington.edu/~todorov/papers/TheodorouCDC12.pdf

 

 

 

 

メタ学習による実世界での変異や誤差に対応した学習の論文を読む

 ゲームの世界と違って実世界では次の様な実際の環境の変化に柔軟に対応して制御する必要がある。

 ・接触摩擦 視覚ノイズ モータ誤差 地面の凹凸・勾配 空気抵抗 加速時間

この様な課題に対して、自動運転の場合は移動に誤差が生じ自己位置が不明になるので、センサーで逐次的に自己位置を修正する粒子フィルターやSLAM(Sumiltaneous Localizaion and Mapping)[1]と云う理論がある。一方ロボッテクスでは、実際の駆動誤差を最適に制御する現代制御理論とタスクの最適化をする機械学習を統合したGuided Policy Search[2]がある。

 今回読んだ論文は、報酬を最大化する強化学習として上記の様な変異に柔軟に対応するため、過去の経験から構築したメタ知識を変化に応じてon-line型で変更するモデルである。

[1803.11347] Learning to Adapt in Dynamic, Real-World Environments Through Meta-Reinforcement Learning

(1)  モデル

 過去の経験から更新規則u_\psiを使ってメタ知識の損失\mathcal{L}を最小化する次式を示している。

  min_{\theta,\psi} \mathbb{E}_ {\tau \sim p(\tau)} [ \mathcal{L}(D_\tau^{test},\theta') ]   s.t.    \theta' = u_\psi(D_\tau^{train},\theta)      (1)

        ここで

            \mathcal{L}(D_\tau^{test},\theta')はメタ知識を使った損失を示す

   D_\tau^{test}は経路\tauでの新たな経験

            D_\tau^{tarin}は経路\tauでの過去の経験

   u_\psi(D_\tau^{train})は過去の経験によるパラメータの更新規則

 よって(1)式はパラメータ\psiをもつ更新規則u_\psiが過去の経験D_\tau^{train}に基づいてメタ知識のパラメータ\thetaを更新し、これを後続の経験D_\tau^{test}で試した場合の損失\mathcal{L}を最小にするモデルと云える。

 (1)式の最適パラメター\theta\psiを解くには以下の2方法を示している。

  ①勾配法メタ学習(Gradient-based meta-learning)

    u_\psi(D_\tau^{train},\theta) = \theta - \psi \nabla_\theta \mathcal{L}(D_\tau^{tarin},\theta)

        ②再帰的メタ学習法(Reccurent-based meta-learning)

            これは深層学習RNNを使う方法で、深層学習RNNがパラメータ\theta\psiを決定してくれるので楽である[3]。

 (1)式について時間[i \sim j]の経路データ\tau_\varepsilon(i,j)を定義して損失関数\mathcal{L}を正確に記述する。

        min_{\theta,\psi} \mathbb{E}_{\tau_\varepsilon(t-M,t+K) \sim D} [\mathcal{L} (\tau_\varepsilon(t,t+K),\theta'_\varepsilon) ]     st  \theta'_\varepsilon = u_\psi (\tau_\varepsilon(t-M,t-1),\theta)

  \mathcal{L}(\tau_\varepsilon(t,t+K),\theta'_\varepsilon) \approx - \frac{1}{K} \sum_{k+t}^{t+K} \log \hat{p}_{\theta'_\varepsilon} (s_{k+1}| s_k,a_k)  (3)

  ここで

   \tau_\varepsilon(t-M,t+K)は環境\varepsilonでの時刻tで過去の時刻Mから先の時刻K後までの経路データ

   MKはハイパーパラメータで、t-Mが既存のパラメータ\theta_\varepsilonを使った訓練時間で、t+Kが新パラメータ\theta'_\varepsilonで試した時間

   \hat{p}_{\theta_\varepsilon}(s_{k+1}|s_k,a_k)は行動a_kによる状態の遷移確率

  即ち(3)式の損失関数\mathcal{L}はパラメータ\theta'_\varepsilonを使った遷移確率の負の対数尤度のK時間平均の値を示していて、遷移確率\hat{p}_{\theta_\varepsilon}の尤度が高ければ損失が低い事を意味している。

    パラメータ\theta_\varepsilonの更新ルールu_\psiも負の対数尤度を使って次式としている。

  \theta'_\varepsilon = u_\psi\tau_\varepsilon(t-M,t-1),\theta) = \theta_\varepsilon + \psi \nabla_\theta \frac{1}{M} \sum_{m=t-M}^{t-1} \log \hat{p}_\varepsilon(s_{m+1} | s_m,a_m)  (5)

 環境の変化が想定できない場合はModel-freeの様なモデルでは環境から適切な特徴量が得られないので、最適行動の推定が困難である。そのため、この論文では遷移確率\hat{p}_{\theta_\varepsilon}を最適化するModel-baseのモデルとしている。さらに変化に即応するためアルゴリズム2で示すmodel-basedのMPPI(model predictive path integration)[4]による強化学習で経路を生成し、これから最適な遷移確率\hat{p}_{\theta_\varepsilon}を求めている。

 

(2) アルゴリズム

 この擬似コードは(5)式のGrBAL(Gradient-Base Adaptive Learning)を示している。RNN型のReBAL(Reccurent-Base Adaption Learner)は全てRNN型深層学習によって学習されるのでアルゴリズムは示されていない。

  (4)式から判明する様に損失関数は時間Kの遷移確率\hat{p}_{\theta_\varepsilon}の負の対数尤度の平均なので、下図の注の様に損失関数の最適化するパラメータ\theta_\varepsilonは遷移確率\hat{p}_{\theta_\varepsilon}の尤度を最大化することになっている。

 アルゴリズム2はModel-Basedとして局所的な強化学習である。過去のK時間の履歴より最適な遷移確率\hat{p}_{\theta_\varepsilon}を求めてから報酬を最大化できる行動を選択している。この手法はMPPI(Model Predictive Path Integral)と云う[4]。ここでHは計画時間 n_Aは説明がない。

 下記の13、14行についての微分式の記述は無い。パラメータ\theta\psiの最適化は深層学習行っているので、深層学習の最上位層から逆伝播する場合の差分値を採っていると思われる。

f:id:mabonki0725:20190123181933p:plain

 (3)実験

  実験としては下図の6種で成果を示している。何れも通常の状態から突然環境が変化した場合に対応できるかが課題である。

      f:id:mabonki0725:20190123200358p:plain


  仮想上の環境の実験

   ①上左図:赤い部分が正しく連結していないチータの学習

   ②上右図:赤い部分の足が短小になった蟻の学習

   ③中央左図:平地から起伏を走るチータ

   ④中央右図:平地から水面に浮かぶ道を走るチータ

  実世界での実験

   ⑤下左図:発泡スチロールの上を移動する6足ロボット

   ⑥下右図:芝の上を移動する6足ロボット

  比較するモデルとしては以下を使っている。

   ・GrBAL+MPPI:Meta学習はアルゴリズム1でアルゴリズム2のMPPIを使う

   ・ReBAL+MPPI:Meta学習はReccurentモデルとアルゴリズム2のMPPIを使う

   ・TRPO:Model-free型

   ・MAML-RL[5]:Model-free型のMeta学習

   ・MB+MPPI:Model-Baseの強化学習+アルゴリズム2でMPPIを使う

   ・MB+DE+MPP:MB-MPPIにDynamic Evaluation(DE)を追加したもの

 (3-1)実験結果:M時間でパラメータを更新する効果

  pre-updateはパラメータの更新するまえのエラーの分散 post-updateは更新後のエラーの分散で、更新後のエラーの分布が0(左端)によっていることが分る    

    f:id:mabonki0725:20190123222715p:plain

 

  (3-2)実験結果:Model-Based と Model-freeとの比較

  左図は①の課題 右図は③の課題での各モデルの報酬を示す。

  環境が変わる場合はModel-Basedの方がModel-freeより驚異的に学習することが分かる。図中の鎖線はModel-freeで2,3日学習させて場合のreturnである。Model-basedでは数時間でこのレベルに達していることが分る。

   f:id:mabonki0725:20190123221533p:plain

 (3-3)実験結果:実機での性能試験

  実機ロボットは下図の様に左右に3足あり片側3足は同時に動く。中央のロボットは移動中に足が外れた状態を示している。このロボットには24次元の状態を持ち、行動は2次元で、左右の3足のスピードが調整できる。

f:id:mabonki0725:20190124074301p:plain

実機では以下の環境変化での報酬を比較した。

 ・勾配登り ・足の欠損 ・前方牽引 ・右側牽引 ・姿勢変化 
何れもGrBALが優れている。 

f:id:mabonki0725:20190124073559p:plain

  さらに環境の復元状態を進行方向]tex:x]と横方向yで示している。鎖線は正等な移動状態を示す。何れもGrBALでの横方向の誤差が少ない。

  左図から 足の欠損 横方向の勾配 姿勢の誤補正回数 左右の牽引

 

f:id:mabonki0725:20190124073716p:plain

(4) 感想

 予想し得ない環境変化が想定され場合は、環境から特徴量を作成して最適な行動を推定するModel-freeでは対処が困難である。この論文では予想し得ない環境に対処するためModel-Baseの手法である遷移確率の尤度の最大化による方法を採用している。また環境の変化に即応するため、メタ知識としての既存の遷移確率を直近の観測からOn-line手法を採用して逐次的に改善している。この手法の成果は(3-2)の図が示す様にModel-freeとは驚異的な性能の差で現れている。しかし遷移確率の尤度の最大化が報酬の最大化とは直接的ではなく、この間のモデル化はMPPIと記述されているだけで明瞭な記述がなく残念である。

 またこの(3-2)の図で特筆すべきは、RNNネットワークの構成だけでGrBALの勾配法と同じ性能を示していて、深層学習によるメタ学習は優良な学習能力を持つことが分かる。この理由については資料[4]が参考になる。

 実機での強化学習モデルとして、この論文は想定し得ない事象に柔軟に対処する効果的方法を提案したものである。複雑環境で様々なミッションを遂げるロボットを考える場合は、この提案手法の様な考え方は効果的と考えられるが、さらに環境の変化に即応できる様な手法が必要と思われる。
 

[1] S.Thrun et al.[probabilistic Robotics]

      https://docs.ufpr.br/~danielsantos/ProbabilisticRobotics.pdf

[2]S.Levine et al.[1504.00702] End-to-End Training of Deep Visuomotor Policies

[3]言語解析で使うAttention型の深層学習がメタ学習を示す論文を読む - mabonki0725の日記

[4] G.Williams et al.[1509.01149] Model Predictive Path Integral Control using Covariance Variable Importance Sampling

[5]C.Finn et al.[1710.11622] Meta-Learning and Universality: Deep Representations and Gradient Descent can Approximate any Learning Algorithm

 

 

言語解析で使うAttention型の深層学習がメタ学習を示す論文を読む

この論文は汎用翻訳モデルBertで使われるAttentionを使ったRNN型構造の深層学習が問題の構造に依らずメタ学習ができ、高次元のパターン認識強化学習でも驚異的な性能を示したとするICRL2018報告である。

 [1707.03141] A Simple Neural Attentive Meta-Learner

(1)SNAILモデル

 この手法[以下SNAIL:Simple neural attentive lerner)は下図の様なAttention層とCNN層を相互に挟んだRNN構造をしている。CNN層は一定幅のデータの特徴抽出をAttention層は可変長のデータを一定幅の特徴ベクトルに変換する役割を相互で行い、逐次的に投入される入力と出力データからパターンを学習して、入力を条件として出力を予測するものである。左図は教師ありデータの予測で右図は強化学習の行動予測で両者とも同じ構造で実現している。

 このSNAILの深層学習による学習は、全てのTask\tau_iの一連の入力x_tと出力a_tについて以下の損失関数\mathcal{L}_\thetaを最小にする様に調整している。

  min_\theta \mathbb{E}_{\tau_i \sim P(\tau)} [ \sum_{t=0}^{H_i}  \mathcal{L_\theta}_i(x_i,a_i) ] 

  但し

        s_i \sim P_i(x_t |x_{t-1},a_{t-1})  a_t \sim \pi(a_t|x_1,\dots,x_t;\theta)

   \tau_iはtask

           x_tは入力、

           a_tは出力

 ここで云うメタ学習とは同じモデルで異なる課題を学習できる事を示している。Taskの構造が異なっても、正解が判明している場合や学習済みの一連の入出力データをTaskとして生成し、これを逐次的にSNAILに通すことによってTaskが持つデータパターンを学習し、これを繰返す毎にその予測精度を向上させるものである。

f:id:mabonki0725:20190121215508p:plain


(1)アルゴリズム

    下記の①と②のプログラムは上図のネットワークの部分に対応している。ここでは言語解析で使う次の特徴抽出機能でデータを変換している。

 ①は入力を2の乗数毎に分割してCNNで特徴行列を作成している

 ②は自己注意(self-attension)を使って入力の特徴(Attension)を取出している。

     入力をk個で要素に分解した2つのデータに変換し、これらの内積(matmul)を計算して各要素の生起確率(Softmax)を計算した後、一定の数Vでの特徴量に変換している。

  (論文 Attension is All you need[1]参照)

f:id:mabonki0725:20190121215553p:plain

 (3-1) 教師ありデータの識別実験

 手書き文字OmniglotとImageNet画像の分類結果をSNAILに投入して驚異的な識別精度を示すことができている。両課題とも投入条件として、N個の分類毎にK個のデータでK×N個セットを1ブロックとしてランダムにSNAILに投入し繰り返し学習させている。 

・手書文字Omniglotの教師あり識別実験

 OmniglotはLakeが生成モデルによる文字の構造認識[2]に使った下図の様な手書き文字で、これの1200種を学習させ、その結果を教師データとしてSNAILに投入している。

f:id:mabonki0725:20190120175125p:plain

Omniglot

  SNAILによるOmniglotの文字種類の識別予測結果(N-way : Nは分類数 K-shot::Kは分類毎の学習データ数)では全てにおいて最良の結果が得られている。

f:id:mabonki0725:20190121123036p:plain

 ・ImageNetの画像の教師あり識別実験

  ImageNetは下図の様に分類別に画像をダウンロードできる。これもN分類毎にK個のデータでN×KのセットをSNAILへの投入を繰り返し学習させる。

f:id:mabonki0725:20190121132028p:plain

鳥の画像のダウロード画面

  ImageNetのSNAILでの識別結果(N-way : Nは分類数 K-shot::Kは分類毎の学習データ数)では全てにおいて最良の結果が得られている(±は95%信頼区間)。

 

                 f:id:mabonki0725:20190121131929p:plain

(3-2)強化学習での行動予測実験

 以下の4種類の課題について、何れも強化学習済みのTaskが生成する状況と行動をSNAILに投入して、次期の行動を予測する。この課題に使った強化学習は何れもTRPO/GAEモデルである。

    ①複数のスロットマシン(N腕バンディット問題)

          ②タブレット上の移動(省略)

    ③チータとアリの移動(省略)

    ④3D迷路での宝探し

 ①N腕バンディット問題

  K個のスロットマシンでそれぞれ当たる確率が異なる場合、定められた試行回数Nで最大の当たる回数(得点)を求める課題である。

f:id:mabonki0725:20190121145343p:plain

 ベイズモデルのGittenを無限回行うと理論解になる事が判明していて、SNAILでは試行回数が少ない場合はGittenより良い結果を出していることが分る。

f:id:mabonki0725:20190121145518p:plain

各モデルでの得点比較(N:試行回数 K:台数)

  ④3D迷路での宝探し

   下図の左橋図の様に自分視点(first person)の3D迷路と宝は強化学習用のツールであるVizDoomでランダムに生成されたものである。ここでは簡単な迷路と複雑な迷路の2種類でSNAILの性能を試している。ここで報酬は宝を得る(+1)、罰則は一歩毎(-0.01)と壁に当たると(-0.001)としている。

f:id:mabonki0725:20190121152722p:plain

   下表の迷路探索の結果は宝を見つけるまでの平均の歩数である。2つのエピソードの内epsortd2はepsortd1と同じ迷路での探索でepsort1の探索の学習を使っているので短く済んでいる。上図の赤線はepsord1で青線はepsort2で近道をしている事が分かる。

    f:id:mabonki0725:20190121152801p:plain

(4)感想

 全く異なった構造をしている教師付きラベルや強化学習の行動が同じ構造を持つSNAILで学習できる事は驚異的である。しかも高次元の画像でもよい性能を示している。人間の無意識での識別や行動決定は、課題別に解いてはエネルギーを費やすので、同じ様なメタモデルで経験的にパターンを学習して反応していると考えられる。著者達は最近このメタ学習モデルを実際のロボットに適用した報告している[3]。


[1]A.Vasawani et al. [1706.03762] Attention Is All You Need

[2]B.Lake et al. https://cims.nyu.edu/~brenden/LakeEtAl2011CogSci.pdf

[3]A.Nagabandi et al.[1803.11347] Learning to Adapt in Dynamic, Real-World Environments Through Meta-Reinforcement Learning


: