Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

はじめに

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"

書きかけ

masataka46
株式会社ウェブファーマー代表。 人工知能の開発。人工知能のコンサルティング。 2006年に株式投資を始め、8年で資産を75倍にする。 情報処理学会、電子情報通信学会、人工知能学会所属。
http://web-farmer.net
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした