LoginSignup
1
1

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-10-25

はじめに

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"

書きかけ

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1