2
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

論文まとめ: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"

書きかけ

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
2
Help us understand the problem. What are the problem?