adversarial autoencoders
TRANSCRIPT
輪読:ADVERSARIAL AUTOENCODERS
2016 年 3 月 11 日 計数工学科3年 上原 雅俊
概要 選定理由 :generative model は面白いから ・トロント大の人と Google の人 (Goodfellow さんとか ) が著者 ・ GAN を Auto encoder に利用した ( これが Adversarial autoencoder)
・半教師とかにも適用 ・すると VAE,GAN 単体とかより良かった * Adversarial autoencoder を時々勝手に AAE と略すときがあります
VAE の問題点 ?( 特徴 )
ここで Reparametrization trick を使って z をサンプリングするわけだが結局 Gausiaan とか単純な分布に限られてしまう
* 図と式を岩澤さんのスライドから転用
GAN の説明 1 ・VAEは推論モデル(事後確率)として決定論的なNNにガウス分布やベルヌーイ分布をのっけている感じなので確率的(?)な複雑が足りない(ちょっと怪しいです) ・GANは事後確率を陽に表さずに識別モデル、生成モデルを直接NNで推定 ・直感的な解釈 1:Generator(G)とDiscriminator(D)ある 2: P_data(経験分布:ホントの分布)とZ(なんでもよい:嘘の分布)ある 3: Dはなるべく経験分布からのデータを重要視したい(だからmax) 4:Gはなるべく嘘の分布を生成してDを騙したい(だからmin)
・
GAN の説明 2
http://evjang.com/articles/genadv1
Adversarial auto encoder( 教師なし )・ q(Z) を p(Z) に近づけたい ここに GAN 使う
・ Algorithm:Reconstruction phase:Encoder と decoder を update(reconstruction error を減らすように )Regularization phase(GAN と同じ ):Discriminative network を updateGenerative network を update(GAN のあの式を減らすように )
*Generative network は encoder と同じ DIscriminator
Decoder(x のgenerative model)
Encoder(z の generator)
Encoder(q(z|X)) の選び方 ・ 3 つが提案 1, 決定論的 2,Gaussian posterior 3,Universal approximate posterior
・2が VAE+GAN になる . ・一見、 2,3 の方が確率論的で smooth にデータを生成しそうだが 1 とそんなに変わらなかった ( パラメータチューニングが難しいらしい )
・よって後の実験は 1 のみでしかやっていない
VAE との比較 ・ VAE の regulation term を GAN に置き換えた VAE: q(Z|X) を p(Z) にちょい近づけるため KL divergence
AAE: q(Z) を GAN で p(Z) に近づけている *VAE における KL_divergence の計算のため実際に解析的な計算したり、そのためサンプリングしないところも AAE の良さ
Z を2次元としたときの MNISTの z のプロット、左の方が綺麗なことがわかる* 上と下は p(Z) の違い
GAN と GMMNs の比較 ・ GAN は P(Z) の選択が難しい ・ AAE は P(Z) をシンプルにしてもよい .AAE は一旦、低次元にしてから GAN を適用しているから(ここらへん怪しいです )
・ GMMNs (Generative moment matching networks) はモーメントを近づけていく方法 .
(追えてないです、詳しいことは論文参照 )
Semi-supervised AAE ・2つの approach
(x の generative model に label を配置する方法 or discriminator に label を配置する方法 )
Semi supervised AAE. A ・こっちは潜在空間をうまく推定したときに使う ・ MNIST の場合、 10 次元に加えて配置してラベルありなしを意味する 1 次元を追加 ・ Semi-supervised VAE みたいにちょい複雑にする必要なく自然に拡張できる
One hot vector
Semi supervised AAE.B ・こっちは生成モデルとして使いたときに向いている .
・ Semi supervised VAE みたいに” style” 成分を自在に変えて生成可能
One hot vector
Likelihood analysis
テストデータの周辺尤度を図っているAAE が一番よいことがわかる
まとめと感想 ・ AAE は VAE 単体よりよい ・ AAE は GAN 単体よりよい ( つまり GAN は高次元でいきなりやるより低次元に落としてこんでから適用した方が吉 ) ・ VAE+GAN は。。。 ・ semi supervised の AAE の識別器と x の生成器どっちともに教師情報を利用したら。。。 ・これから生成モデルはどうなっていくんでしょうか。。。(意見とかあったらぜひ)
参考資料 ・ Adversarial auto encoders http://arxiv.org/pdf/1511.05644v1.pdf
・ Generative http://arxiv.org/pdf/1406.2661v1.pdf
・ Semi supervised VAE http://papers.nips.cc/paper/5352-semi-supervised-learning-with-deep-generative-models.pdf
・ VAE http://arxiv.org/pdf/1312.6114v10.pdf
・ GAN のわかりやすい tutorial http://evjang.com/articles/genadv1
・ VAE のスライド https://ift6266h15.files.wordpress.com/2015/04/20_vae.pdf
・ Variational inference のスライド http://www.shakirm.com/papers/VITutorial.pdf
・岩澤さんの semi supervised VAE のスライド ・鈴木さんの Variational Inference with Rényi Divergence のスライド ・ tokui seiya さんの生成モデルの deep learning のスライド