敵対的VAEの論文を読む

ランニングできず 英語できず

(1)敵対的VAEの論文を読む

 「Adversarial Autoencodes」https://arxiv.org/abs/1511.05644

 前のCyclicに画像を学習するモデルでは敵対的VAEを使っていたので、その論文を読みました。

    様々な癖がある手書き文字が数種類ある場合(例えば手書きの0~9)、その種類毎に手書きの癖が存在します。そこで判明している種類の文字の画像とVAEが生成した画像をGANで与え、類似しているかGANに判断させVAEの隠れ変数の精度を向上させ様とするものです。

 構造としてはVAEにGANが結合する構成となっています。

 ・VAEは隠れ変数zの推定

 ・GANは隠れ変数の分布q(z)を正しい分布p(z)に近づける(正則化)

 f:id:mabonki0725:20170915232825p:plain

(1.1) 手法

 この構成では以下の変分式で隠れ変数の分布q(z)をVAEとGANで解くことができます。

       \mathbb{E}_{x \sim p_\delta}(x) \left(-\log p(x) \right) \le  \mathbb{E}_x \left( \mathbb{E}_{q(z|x)} ( - \log p(x|z))\right) + \mathbb{E}_x \left( \mathcal{KL}(q(z|x) || p(z)) \right)

       =  \mathbb{E}_x \left( \mathbb{E}_{q(z|x)} ( - \log p(x|z))\right) - \mathbb{E}_x \left(\sum_i \log \delta_i(x)) \right) + \mathbb{E}_{q(z)} \left ( - \log p(z) \right) + const

   上式は第1項は一般のVAE 第2項はエントロヒ 第3項はGANとなります。

       \mathbb{E}_{x \sim p_\delta}(x) \left(-\log p(x) \right) \le  VAE - Entoropy + CrossEntropy(q(z),p(z))

 

     この論文では半教師学習(ラベルが一部分る)や非教師学習(ラベルが無い)では下図の3層モデルを提案しています。

 ・ラベルGANではラベルが何であるかVAEに与えています。

  (VAEのSoftmaxのベクトルの正例を与えています)

 ・ガウス分布GANでは手書き癖がガウス分布と一致する様にしています。

f:id:mabonki0725:20170916075210p:plain

(1.2) 結果

 正解の分布を使うので隠れ変数の分布q(z)は当然クリアになります。

 図Eは入力画像例 図Aは敵対的VAE 図Aは一般のVAEとなります

  

f:id:mabonki0725:20170916002519p:plain

 非教師学習の敵対的VAEでは下図の結果が得られています。非教師学習なので16個種類のラベルがVAEで生成されています。 

f:id:mabonki0725:20170916080253p:plain

(1.3) 感想

 現状のVAEではガウス混合分布の半教師学習は解けないので、このGANを用いる方法は実用的です。しかしKingmaの半教師学習VAEは普遍的で素晴らしい数学でできているだけに、GANという正例の質に依存するモデルになってしまうのは残念と思います。

 Semi vae memo (1)