#はじめに
InfoGANの論文; Chen et al., 2016 (UC Berkeley)
InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets
ss-InfoGANの論文; Spurr et al., 2017 (ETH Zurich)
Guiding InfoGAN with Semi-supervision
メモなので足りない箇所があるかもしれませんが、ご容赦ください。
ただ、もし内容に間違いや不明な点があれば、ご意見ご指導をいただければ幸いに存じます。
##InfoGAN
- 普通のGANは$z$(ノイズ)を何かを生成する際に種として使う
- だが$z$は表現として絡まっていて、いじってもなかなか人が理解できるように変化をアウトプットに反映されない(Radford, 2016のようにうまくいく方が珍しい)。
- そこで$z$の一部を$c$(latent variable)とする。完全にノイズであるzに反して、$c$はdatasetの「何かの特徴」に対応すると想定されるように設計される。例えば、データセットをMNISTとする。生成する画像の推知の値そのものを捉えたいとしたら、$c_1$を10カテゴリーの離散変数にする。文字の太さや傾きなどを捉えたいとしたら、$c_2$, $c_3$を連続変数とする。そんな風に$c=c_1, c_2, c_3...c_n$を設定する。
- それ以上何もしなければ、$c$は訓練の過程で無視される
- なので、生成されるもの$G(z, c)$に対し、$c$と関係を持たせたい。
- そこでMutual Informationを使う。
- 損失関数に組み込んで、Mutual Informationを最大化したい
- Mutual Information についてこの記事にはぜひ参照したい
- かくかくしかじかでMutual Informationがこんな風に書き換えられる $$I(X;Y) = D_{KL} \Big( P_{XY}(x,y)||P_X(x)P_Y(y) \Big),$$
- $P(x)$と$P(y)$が独立した時だけ$P(x)P(y) = P(x, y)$ ---->$I(X;Y)$が最小化される
- 大まかな構図は以上
- ところが$I(c; G(z,c))$を求めるのが難しいらしい。$P(c|x)$を必要とするから。 <---------------ここちょっと理解がまだ完全ではない、要再考
- そこで$P(c|x)$に近似するための分布$Q(c|x)$を作る
- Variational Information Maximizationという手法で$I(c; G(z,c))$のLower boundにあたる$L_I(G, Q)$を求める。
- 最終的に実装するとき損失関数がこうなる:
##ss-InfoGAN
-
大体上と同じ
-
一部だけreal sampleのラベルとして$y$が提供される。それを利用して生成するものの質の向上を図る。
-
変更点として$c$を$c_{ss}$ semi-supervised code、と$c_{us}$ unsupervised codeに分かれる。$c_{ss} \cup c_{us} =c$
-
最大化するMutual Information(延いてはLower bound)も二つになる
-
要するに$I(C_{ss};X)$を最大化することで、$Q_{ss}$を訓練する時、ラベルのあるデータ(x, y)で$Q_{ss}$にラベル$y$の意味を学習させる。
-
同時に$I(C_{ss};\tilde{X})$を最大化することで、$G$が間接的に$y$に含まれる情報を学習する。それで少数のラベルでもGがラベルの情報を取り入れることが出来る。
上のInfoGANのやつと合わせてさらにこうなるのではないかと
$$\min_{G, Q_{us}, Q_{ss}}\max_{D}V(D, G)- \lambda_1L_{I}(G, Q_{us}) - \lambda_2(L^1_{IS}(Q_{ss}) + L^2_{IS}(G, Q_{ss})) $$
-
(11)と(12)についてはこういう理解もできる:
-
(13)では$X$と$\tilde{X}$両者とも$C_{ss}$から独立したと仮定する(式8により)
- $I(X;\tilde{X}|C_{ss})$の理解については、上の円$H(C_{ss})$を上方にずらすと想像する
- ずらしてると、ある瞬間を境に、灰色の部分がなくなる。これが$X$と$\tilde{X}$両者とも$C_{ss}$から独立したということにあたる。
- 最終的には(14)になる
-
それ以降は字面通りに理解できる