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|x) \log \frac{p(x,z)}{q(z|x)} dz

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

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

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

           \mathcal{L}(q) + \mathcal{KL}(q||p) = \int q(z/x) \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|x) \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|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) 生成モデル側(Generation architecture)

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

           \pi_{\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) 回帰モデル側(inference architechture)

           (c_{l+1}^g,h_{l+1}^g) = 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}) - 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


:

 

 

 

 

 

封建的階層型の強化学習の論文を読んでみる

上位レベルはoption(サブゴールへの方策)を使った戦略、下位レベルはサブゴールまでを最適に行動する。この様に上位下達の封建的な分業関係を使った強化学習の論文(以下FuNs)を読んでみる。 

[1703.01161] FeUdal Networks for Hierarchical Reinforcement Learning

(1) モデル

    この論文は封建的強化学習(1992)[1]の構想をoption(局面的方針)に適用したとものと言える。

 上位レベル(以下Master)と下位レベル(以下Worker)別に学習方法を記述する。

 (1.1) Master(上位レベル)の学習

  この論文ではoptionの終端はcステップで固定になっている。

  Masterのoptionを使った方策は移転方策(TP:Transfer Policy)と云い、次式の様にoption\mu(s,\theta)を条件とするcステップ先の分布になっている。

        \pi^{TP}(s_{t+c} | s_t) = p(s_{t+c} | s_t,\mu(s,\theta))     (1)

     但し

         \mu(s,\theta):option関数  \thetaのパラメータを持つ

     方策勾配法[2]よりoptionの最適な\thetaは方策\pi^{TP}の勾配で更新できる。

  即ちFuNsでのoptionの関数\mu(s,\theta)はパラメータ\thetaに対して微分可能を前提にしている。

   \nabla_\theta \pi_t^{TP} = \mathbb{E} [(R_t - V(s_t)) \nabla_\theta \log p(s_{t+c} | s_t,\mu(s_t,\theta)) ]     (2)

         \theta = \theta + \alpha \nabla_\theta \pi_t^{TP}

           ここでV(s_t,\theta)は価値関数である。

  この移転方策\pi_t^{TP}でのWorkerに対する擬似報酬g_tを以下で改善する。

   \nabla g_t = A_t^M \nabla_\phi d_{cos}(s_{t+c} - s_t,g_t(\phi))    (3)

         ここで 

     A_t^M = R_t - V_t(s_t,\theta)は利益関数

              d_{cos}はコサイン類似度で以下で定義される。

              d_{cos}(\alpha,\beta) = \frac{\alpha^T \beta}{|\alpha||\beta|}

   ここで擬似報酬g_tは状態の移転差s_{t+c} - s_tと擬似報酬g_tとのコサイン類似度によって増減し、同じ方向なら増幅されることになる。

 (1.2) Worker(下位レベル)の学習

  Workerの内部報酬r_t^IはMasterで設定した以下の擬似報酬の平均である。

    r_t^I = \frac{1}{c} \sum_{i=1}^c d_{cos} (s_t - s_{t-i},g_{t-i})       (4)

   Workerの方策は以下の方策勾配法で改善される。

       \nabla_\vartheta \pi_t = A_t^D \nabla_\vartheta \log \pi(a_t | x_t;\vartheta)    (5)

         ここでA_t^DはWorkerの利益関数で内部報酬r_t^Iで計算される。

             A_t^D = (R_t + \alpha r_t^I - V_t ^D(x_t,\theta))

  実装では上記の精緻化は下記の(a)-(c)の深層学習を使っている。

    (a) 状況s_tはWorkerでの観測値x_tを深層学習で特徴ベクトル化したものとしている。

     z_t = CNN(x_t)

             s_t = Neuro(z_t)  完全結合のニューロ

    (b) 式(3)の擬似報酬g_tは実装上では過去の隠れ変数を使用したLSTMで改善している。

   但しLSTMは拡張(dilated)されており、隠れ変数は剰余演算t \% rを使って更新単位rの残りのベクトルを入れている。論文ではこの拡張による学習効果を実証している。

    g_t = LSTM(s_t,h_{t-1}^{t\%r},\phi^{LSTM})

    (c) 式(5)のWorkerの方策の改善でも過去の隠れ変数を使用したLSTMを使っている。

    \pi_t = SoftMax(U_t,r_t^I)

            U_t = LSTM(z_t,h_{t-1})

 

 モデルの全体図は以下となる。但し赤字は自分の解釈である

f:id:mabonki0725:20190117103022p:plain

FuN構成図(赤字は解釈)



 (3) 実験

   FuNsの実験ではA3C(Actor-Criticの並列計算)システムを使ったと記述があるので、(2)モデルで示した\nabla \pi_t^{TD} \nabla \pi_t V_t^M V_t^Mは全てActor-Criticで最適計算したと思われる。

 ここではATTARIゲームの以下を使ってFuNsの有効性を示している。

  ①Montezuma's revenge

  ②記憶の再現 (non-match T-maze Water maze)

  ③option-Criticモデルとの比較

  ④10種類のATTARIゲームの学習効率

  ⑤optionの視覚化

 比較対象としてRNN-LSTM  BPTT(Backpropagation Though Time)を使っている。

 

 実験①Montezuma's revenge

     下図の様にこのゲームは2013年にDeepMindDQNを発表した際、一番解けなかったゲームで、敵を回避して数々の仕掛けをクリアーし鍵を入手して次の場面に進むので様々なアイテムを認識する必要がある。

f:id:mabonki0725:20190118085207p:plain

  下図の様にこのゲームを攻略するため様々なモデルが編み出され多大な発展に寄与してきた[4]。(図中のRND[5]は現在では最強でない )

f:id:mabonki0725:20190118201251p:plain

モデルの変遷とスコア


  下図の様に実験結果を示している。
   左図は学習効率の比較(数字は割引率)

   右図は学習過程でのサブゴールに達した回数(ピークは適切なサブゴールを示す)

    ピークの所はゲーム中では梯子を渡る場面や鍵を取る所に対応していて明示的な設定せずともoptionが認識されている事がわかる。

f:id:mabonki0725:20190117171534p:plain

  実験②記憶の再現

   記憶をOptionと認識する課題である。

   non-match(左図)はロボットが下段の部屋にある物体の形状を覚え、ボタンを押下すると上段の部屋に移動する。そこで下段の部屋の物体と異なるものを選択すれば正解である。  

   T_maze(中央図)はT字路先の得られる報酬と物体の形状を覚え、リセットした後記憶を辿り報酬を得られるかの課題である。

   何れも形状の記憶をoptionとして認識させており、早期に学習に繋がっている。

f:id:mabonki0725:20190117184222p:plain

   Water maze(下図)は円型プール中で複数の見えないゴールを探る課題である。左図と中央図では緑の経路が見えないゴールを探索して迷走している状態だが、これに続く黄・青・赤の経路はゴール探索をOptionとして認識してるので経路が短くなっている。右端はゴールの位置(プールの壁から位置)までもOptionとして認識しているので、同心円を描く様に探索している状態を示している。

f:id:mabonki0725:20190117185157p:plain

  実験③Option-Cliticモデルとの比較

   Actor-Criticをoptionに適用したモデルOption-Criticはサブゴールの終端までを認識する優れたものである[3]。一方FuNsはサブゴールはcステップ先として固定である。やはりoptionの認識と終端の両方を認識するのは難し様で下記の2種類のゲームではFuNsが優れていることが報告されている。

f:id:mabonki0725:20190117190155p:plain

  実験④10種類のATARIゲームでの学習効率の比較

   上段の枠内はFuNsが優れているゲームで、下段の枠内は劣っているゲームである。論文では下段の様に単純なゲームではFuNsは役に立たないと述べている。

f:id:mabonki0725:20190117191348p:plain

  実験⑤optionの視覚化

   FuNsでは潜水艦ゲームでoptionの視覚化を下図の様に示しているが、解釈が容易でない。論文では下図の分布図はサブゴールを固定してWorkerの動作を記録したとある。右端の分布は左端のゲーム場面で潜水艦が酸素補給のため浮上している所とある。

f:id:mabonki0725:20190117215115p:plain


(3) 感想

 昔から上下関係で強化学習を戦略と実行を分業化するのは、複雑なミッションを行うには合理的と考えられてきたが[1]、確かに上図にあるシステム図は下からは環境データ上位からは擬似報酬とシンプルで説得力がある。しかしこの分業が可能かは残念ながらFuNsの実験が示す様に課題やその難易度に拠っている段階である。FuNsではoptionが\thetaの連続関数であるので最適解が微分で得られているが、この連続値のoptionが明瞭でなく解釈が難しい。またサブゴールがcステップ先として固定である事と下位の擬似報酬がコサイン類似度を使っている2点は合理的な理由が論文では示されていない。サブゴールの終端の認識はOption-Critic[3]で示されているが学習が難しいと云われている。またコサイン類似度を使う擬似報酬でMontezmaゲームの様な渡橋や鍵が入手できるのが不思議である。戦略と実行とで分業するのは複雑なゲームより様々なモーターを使い誤差の制御が難しいロボッテックスの方が切実と考えられる。その点DeepMindの論文は全てゲームを対象としており実世界からは離れている。最近ではロボッテクスに適合した階層型分業モデル[6]の研究も報告されている。

 

[1] P.Dayan G.Hinton (1992) Feudal Reinforcement Learning

[2]  ①方策勾配法 反証的な複数エージェントの強化学習を読む - mabonki0725の日記

[3] 報酬に依らず暗示型optionを使った強化学習の論文を読んでみる - mabonki0725の日記

[4] Reinforcement Learning with Prediction-Based Rewards

[5][1810.12894] Exploration by Random Network Distillation

[6][1805.08296] Data-Efficient Hierarchical Reinforcement Learning

 

 

 

   

 

相互情報量を使ったOptionを認識する論文を読んでみる

Open-AIの強化学習のリスト[1]でVariational(変分)のカテゴリィにあった論文だが、環境から得られる相互情報量を変分を使っての最大化し、Optionを認識しようとするものである。

[1611.07507] Variational Intrinsic Control

 この論文はoptionの始点s_0と終点(サブゴール)s_fとの相互情報量(mutial information)の最大化によってOptionを環境から認識しようとする論文[2]をLSTMを使って拡張したものである。

 この論文はサブゴールを認識対象としているオプションのモデル[3]と異なり、サブゴールが明示されているもので、多数のサブゴールがあるオプションの中から有意なものを相互情報量で認識するモデルである。

 相互情報量を使ってOptionを認識する方法は数理的に完成されたものなので醍醐味があり、この方法について説明する。

 (LSTM版はこの相互情報量の最大化と同じであるが、この強化学習による動作をLSTMで過去の情報を利用しただけなので割愛する。しかしこの方法によってより高次元の問題を解ける様になったと述べている)

 

(1)モデル

 現在点s_0を条件としてオプション\Omegaとその終点s_fとの条件確率と相互情報量を考える。

  条件確率     p(\Omega,s_f | s_0)

     相互情報量 \mathcal{I}(\Omega,s_f | s_0)

 この相互情報量を最大化することは現時点s_0と様々なOptionのサブゴールs_fについての分布に差が大きくなることである。この方法で同様なOptionを排除して相異なるOptionを認識しょうとするアイデアである。

 

   また同時確率はベイズを使って次に変形できる。

  p(\Omega,s_f | s_0)=p^J(s_f | s_0,\Omega) p^C(\Omega | s_0)

       ここでp^J p^Cと記述するのは違いを明示しているだけである。

 

   相互情報量はエントロフィの同時確率なので次の定理がある。

  \mathcal{I}(X,Y) = H(X,Y) = -H(X)+ H(X|Y)

   これを使うと相互情報量は次式で展開できる。

  \mathcal{I}(\Omega,s_f|s_0) = H(\Omega | s_0) - H(\Omega | s_f,s_0)    

        ところでエントロフィの定義から

         H(\Omega | s_0) = \sum_\Omega p^C(\Omega | s_0) \log p^C(\Omega | s_0)

   H(\Omega | s_f,s_0) = \sum_{\Omega,s_f} p(\Omega | s_f,s_0) \log p(\Omega | s_f,s_0)

            \sum_{s_f}  p(\Omega | s_f,s_0) = \sum_{s_f} p(s_f  | s_0,\Omega) p(\Omega|s_0)

       なので論文の記述が得られた。

    \mathcal{I}(\Omega,s_f|s_0)= - \sum_\Omega p^C(\Omega | s_0) \log p^C(\Omega | s_0) + \sum_{\Omega,s_f} p^J(s_f |s_0,\Omega) p^C(\Omega| s_0)  \log p(\Omega | s_f,s_0)

 この相互情報量を最大化するため変分\log p(\Omega | s_f,s_0) \to \color{blue}{\log q_\phi(\Omega | s_f,s_0)}を導入する。

 またoptionのサンプリング確率p^C(\Omega,s)\thetaをパラメータとして与えると、変分相互情報量は以下で表現できる。

 \mathcal{I}_{\theta}^{VB}(\Omega,s_f|s_0)= - \sum_\Omega p_\theta^C(\Omega | s_0) \log p_\theta^C(\Omega | s_0) + \sum_{\Omega,s_f} p^J(s_f |s_0,\Omega) p_\theta^C(\Omega| s_0)  \color{blue}{\log q_\phi(\Omega | s_f,s_0)}

  Appendex2に従って変分相互情報量\mathcal{I}_{\theta}^{VB}を最大化するため\theta微分してみる。

     \nabla_\theta \mathcal{I}^{VB} = - \sum_\Omega\{(\nabla_\theta p_\theta^C (\Omega | s_0) \log p_\theta^C(\Omega | s_0) +   p_\theta^C (\Omega | s_0) \nabla_\theta \log p_\theta^C(\Omega | s_0) \} + \sum_{\Omega,s_f} \{p^J(s_f | s_0,\Omega) \nabla_\theta p_\theta^C(\Omega | s_0) log_\phi(\Omega | s_0,s_f) \}

 ここで次の式を使うと論文の記述が得られる。

  \nabla_\theta p_\theta^C(\Omega|s_0) = p_\theta^C(\Omega|s_0) \nabla_\theta \log(\Omega | s_0)

     \nabla_\theta \mathcal{I}^{VB} = - \sum_\Omega p_\theta^C(\Omega | s_0) \{ -1 - \log p_\theta^C(\Omega|s_0) + \sum_{s_f} p^J(s_f | s_0,\Omega) \log_\phi(\Omega,s_f) \} \nabla_\theta \log p_\theta^C(\Omega|s_0)

     \nabla_\theta \mathcal{I}^{VB} = - \sum_{\Omega,s_f} p^J(s_f | s_0,\Omega) p_\theta^C(\Omega | s_0) [-1 - \log p_\theta^C(\Omega|s_0) + \log q_\phi(\Omega | s_f,s_0)] \nabla_\theta \log p_\theta^C(\Omega|s_0)

ここで 擬似報酬r_Iを考え、以下と置く

 r_I  = \log q_\phi(\Omega|s_0,s_f) - \log p_\theta^C(\Omega|s_0) - b(s_0)と置くと

    \nabla_\theta \mathcal{I}^{VB} = - \sum_{\Omega,s_f} p^J(s_f | s_0,\Omega) p_\theta^C(\Omega | s_0) [ r_I - e(s_0)] \nabla_\theta \log p_\theta^C(\Omega|s_0) 

よって 相互情報量を大きく改善するには擬似報酬r_Iを大きく得る方策を採ればよいことが分る。

    但し b(s_0)はベースラインでAppendix2では任意の値を設定しても0値になることが示してあり、実装上では回帰で算出される。

    擬似報酬は次式なので、option \Omegaが稀にサンプリングされるが、始点s_0とサブゴールs_fとでそのoptionの発生確率が高ければ擬似報酬は大きい値をもつ。(注):言語解析で稀に出る単語で結び付きの高い単語があれば有意な関連を持つのと同じである。

 r_I = \log q_\phi(\Omega|s_0,s_f) - \log p_\theta^C(\Omega|s_0) = \log\frac{q_\phi(\Omega|s_0,s_f)}{p_\theta^C(\Omega|s_0)}

 ここでサブゴールs_fで報酬r_Iを得る方策\pi(a|\Omega,s_0)を考える。この方策\piは報酬の多寡によってサブゴールへの効率が異なる。またサブゴールs_fに至る確率p^J(s_f | s_0,\Omega)は観測できるものである。

 以上により相互情報量\mathcal{I}(\Omega,s_f|s_0)を最大化するアルゴリズムが構築できる。

 

(2) アルゴリズム

 Agent の初期位置s_0とする

 以下をM回繰返す 

  \Omega \sim p_\theta^C(\Omega|s_0) optionをサンプリングする 

  \Omegaで設定されたサブゴールs_f\pi(a |\Omega,s)の方策で向かう。

    (注)方策の訓練が十分でない場合は効率が悪く(迂回して)s_f点に至ることになる。

       観測されたs_0,s_fでoption\Omegaを回帰して\color{blue}{q_\phi(\Omega|s_0,s_f)}のパレメータ\phiを改善する。

  r_I \gets \log q_\phi(\Omega | s_0,s_f) - \log_\theta^C(\Omega|s_0) 擬似報酬を得る

  \Omegaで設定したサブゴールで擬似報酬r_Iを得る方策\pi(a | \Omega,s_0)強化学習モデルで訓練する

  擬似報酬が高いと方策\pi(a | \Omega,s_0)がよく訓練され効率がよくなる。

  \theta \gets \theta + \alpha \nabla_\theta I_\theta^{VB}(\Omega,s_f,s_0)で更新する

  p_\theta^C(\Omega|s_0)を更新する

  s_0 \gets s_f

 上記の様な繰返で、選択されたopitonに従って移動しながら次の3つの確率を精緻化して相互情報量を最大化している。その結果、相互に有意なoptionを識別していることが分る。

    方策\pi(a | \Omega)

    optionの優先選択p_\theta^C(\Omega | s_0)

    変分 \color{blue}{q_\phi(\Omega | s_0,s_f)}  

 

(3) 実験結果

  実験①30点のoptionで互いに離れている位置への到達の学習

     グリッド上は20%の確率でランダムに移動する。  左図の中央から30点が互いに離れている位置への移動の学習で右図の20画面の明るい所がサブゴールを示す。

f:id:mabonki0725:20190114010654p:plain

 実験②間違った方向を採ると左上隅に落ちるグリッド

  グリッドワードの青色は壁で、チェックの上下の領域では、赤字で示す様に上側は左右、下側は上下に動くとペナルティとして左上隅に落込んで暫く動けない。またある確率でランダムに移動するので、少し動くとどの領域にいるか分らなくなる。

  最下段は領域の区別をしない学習で、左上隅に落ち込まない様に真ん中を避けてサブゴールを設定する様子を表している。

  1段目と2段目は自分がどの領域に居るか識別できている学習で、次のサブゴールを示している。 

f:id:mabonki0725:20190114011151p:plain

(4) 感想

 サブゴールが明示的なOptionの場合は、相互情報量を使わず全オプションを評価した方が簡単で効率的でないかと思えるが、実験②の様に2つの領域が突然変化する場合は、環境からの相互情報量を使うモデルが有効である事が分る。なお著者が述べている様に、このモデルには課題が低次元で近似関数も線形が使われている。高次元でも学習するにはLSTMを使った拡張版が必要なのかもしれない。  

 

[1]Key Papers in Deep RL — Spinning Up documentation

[2] C.Salge et al. 2014  [1611.07507] Variational Intrinsic Control

[3] P.Barcon et al. 2016 [1609.05140] The Option-Critic Architecture