DeepLearning
GANs
robotics

論文まとめ:Learning Plannable Representations with Causal infoGAN

はじめに

NIPS2018にacceptされている T. Kurutach らの「Learning Plannable Representations with Causal infoGAN」をまとめてみた。

NIPSの該当ページはこちら。
https://nips.cc/Conferences/2018/Schedule?showEvent=11834

開催前なので論文は貼られてないが、arXivには既にあがってる。
https://arxiv.org/abs/1807.09341

概要

  1. infoGANの仕組みを使ってロボットなどの軌跡を推定するモデル

まずはinfoGANのまとめ

infoGANの特徴

MNISTのデータで考える。

vanilaなGANではノイズzからMNISTの0〜9を生成するものの、zをどういった値にしたら特定の数字(例えば5)を生成できるかは、いろいろ試さないとわからない。

(0.3, 4.5, -2.2)にしたら5っぽい。(0.2, 4.5, -2.2)にしたら更に5っぽくなった・・・etc。

infoGANではzのそれぞれの次元が数字の1、2、・・・5、・・・9に対応するように学習させることが目的。

GANのminmaxな式

まずGANでお決まりの minmax な式。

\min_G \max_D V(G,D) = \min_G \max_D \mathbb{E}_{o \sim P_{data}} [\log D(o)] + \mathbb{E}_{z \sim P_{noise}} [\log (1 - D(G(z)))]

infoGANのminmaxな式

infoGANではこれに正則化項を加える。まず入力をノイズzと状態 $s \sim P(s)$ に分離した上で

\min_G \max_D V(G,D) - \lambda I (s;G(z,s))

とする。

ここで $I (s;G(z,s))$ は相互情報量で

I (s;G(z,s)) = H(s) - H(s \ | \ G(z,s)) = H(G(z,s)) - H(G(z,s) \ | \ s)

一番右側で考えると、$G(z,s)$ のエントロピーと、s を知った後の $G(z,s)$ のエントロピーとの差。

相互情報量項の意味するところ

例えば、s を指定せずに $(z,s)$ をGeneratorに入力すると、出力される $G(z,s)$ は以下の図のように分布の広がりが大きくなる。

c_infogan_02.png

一方、 s を指定して $G(z, s_i)$ をGeneratorに入力すると、出力する $G(z,s_i)$ の分布は下図のように限定された領域になる。

c_infogan_03.png

そうすると s を指定した場合のエントロピー $H(G(z,s) \ | \ s)$ は s を指定しない場合のエントロピー $H(G(z,s))$ より大きくなるだろう。

見方を変えると、前者と後者のエントロピーの差

I (s;G(z,s)) = H(G(z,s)) - H(G(z,s) \ | \ s)

を大きくするには、入力 s によって出力の $G(z, s)$ がある限定された領域になればなるほどいい。

s を10種類の値にすると、それぞれの $s_i$ がMNISTの数字に相当するように学習されるだろう。

変分な相互情報量

I (s;G(z,s)) = H(s) - H(s \ | \ G(z,s))

で考える。$H(s \ | \ G(z,s))$ が直接求まらないので、代わりに変分な値を使う。(数式間違ってたら連絡下さい)

\begin{eqnarray}
I (s;G(z,s)) &=& H(s) - H(s \ | \ G(z,s)) \\
  &=& \mathbb{E}_{x \sim G(z,s)}[\mathbb{E}_{s' \sim P(s|x)}[\log P(s'|x)]] + H(s) \\
 &=& \mathbb{E}_{x \sim G(z,s)}[\mathbb{E}_{s' \sim P(s|x)}[\log \frac{P(s'|x)}{Q(s'|x)} Q(s'|x) ]] + H(s) \\
 &=& \mathbb{E}_{x \sim G(z,s)}[\mathbb{E}_{s' \sim P(s|x)}[\log \frac{P(s'|x)}{Q(s'|x)} + \log Q(s'|x) ]] + H(s) \\
 &=& \mathbb{E}_{x \sim G(z,s)}[\mathbb{E}_{s' \sim P(s|x)}[\log \frac{P(s'|x)}{Q(s'|x)}] + \mathbb{E}_{s' \sim P(s|x)}[\log Q(s'|x) ]] + H(s) \\
 &=& \mathbb{E}_{x \sim G(z,s)}[D_{KL}(P(\cdot | x) \ \| \ Q(\cdot | x)) + \mathbb{E}_{s' \sim P(s|x)}[\log Q(s'|x) ]] + H(s) \\
\end{eqnarray}

ここで KL-divergenceは正なので、これを取っ払って

\begin{eqnarray}
I (s;G(z,s)) &=&  \mathbb{E}_{x \sim G(z,s)}[D_{KL}(P(\cdot | x) \ \| \ Q(\cdot | x)) + \mathbb{E}_{s' \sim P(s|x)}[\log Q(s'|x) ]] + H(s) \\
&\geq&  \mathbb{E}_{x \sim G(z,s)}[\mathbb{E}_{s' \sim P(s|x)}[\log Q(s'|x) ]] + H(s) \\
\end{eqnarray}

$H(s)$ をとりあえず固定して考えると $I (s;G(z,s))$ を最大化させるには

\mathbb{E}_{x \sim G(z,s)}[\mathbb{E}_{s' \sim P(s|x)}[\log Q(s'|x) ]]

を最大化させればいい。 結局

\begin{eqnarray}
I (s;G(z,s)) &\geq& \mathbb{E}_{x \sim G(z,s)}[\mathbb{E}_{s' \sim P(s|x)}[\log Q(s'|x) ]] + H(s) \\
&=& L_I (G,Q)
\end{eqnarray}

となるので、変分下限 $L_I (G,Q)$ を最大化させることで $I (s;G(z,s))$ を最大化させる。

$Q(s'|x)$ は実用上、Discriminatorから分岐させたモデルとする。

causal infoGAN の目的関数

reference

[1] Xi. Chen, et. al. "InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets"

[2] L. Maaten, et. al. "Visualizing Data using t-SNE"

書きかけ