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