Re:ゼロから始めるML生活

どちらかといえばエミリア派です

【論文メモ:InfoGAN】InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets

論文

https://arxiv.org/abs/1606.03657

著者

Xi Chen, Yan Duan, Rein Houthooft, John Schulman, Ilya Sutskever, Pieter Abbeel

背景

教師なし学習は、膨大なラベルなしデータから値を抽出することと言い換えることことができるが、教師なし学習を何に使用するかは学習時に不明なことが多い。 後続の作業が分類、回帰、描画、はたまた強化学習なのか不明な状態で、教師なし学習を行っても後続作業に便利なように学習する必要がある。

教師なし学習の一角を担う分野は生成モデリングであり、概念を紐解いた画像を生成することを目的とする。 最近ではその手法はVAE (Variational Autoencoder) とGANが有力視されている。

目的とアプローチ

目的

アプローチ

  • Information Maximizing Generative Adversarial Networks (InfoGAN)
    • ノイズと観測の両方に調整を入れる機構を用いた学習

Information Maximizing Generative Adversarial Networks (InfoGAN)

GANの原理

Min-Max gameを使用した生成モデルをGANと呼ばれている。 GANでは、GeneratorとDiscriminatorの2つを使用する。

Generatorはノイズを入力に偽物の画像を作成し、Discriminatorは本物の画像とGeneratorによる偽物の画像を判別する。 ネットワーク全体としては下記の式を収束させることを目的関数とする。


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

<参考>

tsunotsuno.hatenablog.com

潜在変数を含む相互情報

通常のGANでは、入力に使用されるノイズにはその使用に対して特に制限がかけられているわけではない一方、ノイズに工夫は特に施されない。 結果として、ノイズベクトルの一部に強く影響されてしまう。

一方で、通常入力には意味のあるファクターの組が想定される。 例えば、MNISTでは入力には0 - 9の離散的な値と、数字の角度と太さについての入力があることが考えられる。 このような場合には、入力は単なるランダムなノイズではなく、独立かつ目立った変数が画像の生成には有効である。

本論文では、ノイズベクトルを下記の2種類に分解して使用する。

  • Incompressive noise
  • latent code

f:id:nogawanogawa:20181113154458j:plain:w500

一方、一般的なGANではGeneratorは付加情報であるLatent codeを使用する強制力は持たず、P_G(x|c) = P_G(x)となるようにLatent codeを無視して画像を生成する恐れがある。

f:id:nogawanogawa:20181113154514j:plain:w500

そこで提案手法であるInfoGANでは、Latent codeと生成画像間の関連性を考慮したLossを設計する。 設計の方針としては下記に示す項Iを導入する。

I(X; Y) = H(X)- H(X|Y)

状態Yが導入される前後でのエントロピーの差分をとったものを示しており、Iが小さいほどLatent codeが与える影響が小さいことになる。 これを踏まえてLossを次式のように設定する。

min_G max_D V_1(D, G) = V(D, G) - \lambda I(c; G(x,c))

I(c; G(z,c)) = \mathbb{E}_{x \sim G(z,c)} [\mathbb{E}_{c' \sim P(c|x)}[log P(c'|x)]] + H(c)

実際にこのIを算出しようとするのは困難であるが、Iの下限Lは算出可能でありそれを導入することでLossに使用する。

L(G|Q) = \mathbb{E}_{x \sim G(z,c)} [\mathbb{E}_{c' \sim P(c|x)}[log Q(c'|x)]] + H(c)

実際にはQは係数付きのガウシアン分布で十分で、Latent codeを使用の有無に関しての距離にガウシアン関数を適用する。 そのため、全体としてLossは下記の様になる。

min_G max_D V_{InfoGAN}(D, G, Q) = V(D, G) - \lambda L_I(G, Q)

※細かい証明等が論文にはありますが、詳しいことは論文をご参照ください。

評価

評価の観点は

  • 効率よく相互情報が最大化されているか
  • 複数入力による豊かな表現が可能になっているか

とする。

収束の効率化

相互情報の最大化を評価するために、MNISTでのIterationごとのLossに関する評価を行う。 評価結果を下記に示す。

f:id:nogawanogawa:20181113154528j:plain:w500

通常のGANより早くLossが収束していることがわかる。 本手法によって効率良い学習過程をたどることで、収束が早まっている。

表現力に関する評価

次に表現力に関する評価を行う。 評価に際し、下記のような入力を設定して評価を行う。

  • c1 : カテゴリコード(0 ~ 10)
  • c2 : 回転
  • c3 : 幅

MNISTに関する評価結果を下記に示す。

f:id:nogawanogawa:20181113154602j:plain

c1を変化させた場合には、error rateは5%の分類器程度に学習したが、"7"が"9"に見間違う場合も見られた。

c2とc3に関して、単純に回転・伸縮をするだけでなく、自然な画像が出力されていることがわかる。 また、振幅を大きくしても正しく表現できていることから、InfogGANが表現よく画像を生成できている。

次に人の顔と、椅子の画像に対して評価を行う。

人の顔については、先行研究であるDC-IGNでは、左右角/上下角/光源の3種類の潜在変数を使用していた。 本評価でもそれらを使用する。 評価結果を下記に示す。

f:id:nogawanogawa:20181113154542j:plain

DC-IGNでは教師あり学習を使用しているが、InfoGANは教師なし学習であり潜在変数を正当に反映した画像が生成されている事がわかる。

椅子についての評価結果を下記に示す。

f:id:nogawanogawa:20181113154616j:plain

椅子についても、回転角や幅に関して潜在変数を入力した結果、入力が反映された画像が出力されている。

次にStreet View House Number (SVHN) にInfoGANを適用させた結果を示す。

f:id:nogawanogawa:20181113154627j:plain

SVHNは教師データの解像度がまちまちだったり、紛らわしい要素が含まれていたりとノイズが激しいが、光の写りと軸となる数字に関しては潜在変数のコントロールが可能であった。

最後にCelebAについてInfoGANを適用した結果を下記に示す。

f:id:nogawanogawa:20181113154637j:plain

同じ画像に対して回転角のバラけた顔を描画できている。 また、メガネやヘアスタイル、表情などを教師なし学習で作成できることがわかった。

結論

教師なし学習における表現豊かな描画を目的にInfoGANを提案した。 InfoGANにより、表現豊かな画像を描画し、僅かな追加計算によって学習を効率化できることを示した。

感想

数式が多いのと、個人的に苦手な英語の書き方だったので、結構しんどかったです。

あと、割とGANの初期のころの論文だったので、あんまり目新しいことはやってないですね。