adversarial autoencoders

15
輪輪ADVERSARIAL AUTOENCODERS 2016 輪 3 輪 11 輪 輪輪輪輪輪 輪 輪輪 輪輪

Upload: -

Post on 16-Apr-2017

3.273 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: ADVERSARIAL AUTOENCODERS

輪読:ADVERSARIAL AUTOENCODERS

  2016 年 3 月 11 日 計数工学科3年 上原 雅俊

Page 2: ADVERSARIAL AUTOENCODERS

概要 選定理由 :generative model は面白いから ・トロント大の人と Google の人 (Goodfellow さんとか ) が著者 ・ GAN を Auto encoder に利用した ( これが Adversarial autoencoder)

・半教師とかにも適用 ・すると VAE,GAN 単体とかより良かった * Adversarial autoencoder を時々勝手に AAE と略すときがあります

Page 3: ADVERSARIAL AUTOENCODERS

VAE の問題点 ?( 特徴 )

ここで Reparametrization trick を使って z をサンプリングするわけだが結局 Gausiaan とか単純な分布に限られてしまう

* 図と式を岩澤さんのスライドから転用

Page 4: ADVERSARIAL AUTOENCODERS

GAN の説明 1 ・VAEは推論モデル(事後確率)として決定論的なNNにガウス分布やベルヌーイ分布をのっけている感じなので確率的(?)な複雑が足りない(ちょっと怪しいです) ・GANは事後確率を陽に表さずに識別モデル、生成モデルを直接NNで推定 ・直感的な解釈 1:Generator(G)とDiscriminator(D)ある 2: P_data(経験分布:ホントの分布)とZ(なんでもよい:嘘の分布)ある 3: Dはなるべく経験分布からのデータを重要視したい(だからmax) 4:Gはなるべく嘘の分布を生成してDを騙したい(だからmin)

Page 5: ADVERSARIAL AUTOENCODERS

GAN の説明 2

http://evjang.com/articles/genadv1

Page 6: ADVERSARIAL AUTOENCODERS

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)

Page 7: ADVERSARIAL AUTOENCODERS

Encoder(q(z|X)) の選び方 ・ 3 つが提案 1, 決定論的  2,Gaussian posterior 3,Universal approximate posterior

・2が VAE+GAN になる .   ・一見、 2,3 の方が確率論的で smooth にデータを生成しそうだが 1 とそんなに変わらなかった ( パラメータチューニングが難しいらしい )

・よって後の実験は 1 のみでしかやっていない

Page 8: ADVERSARIAL AUTOENCODERS

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) の違い 

Page 9: ADVERSARIAL AUTOENCODERS

GAN と GMMNs の比較 ・ GAN は P(Z) の選択が難しい ・ AAE は P(Z) をシンプルにしてもよい .AAE は一旦、低次元にしてから GAN を適用しているから(ここらへん怪しいです )

・ GMMNs   (Generative moment matching networks) はモーメントを近づけていく方法 .

(追えてないです、詳しいことは論文参照 )

Page 10: ADVERSARIAL AUTOENCODERS

Semi-supervised AAE ・2つの approach

(x の generative model に label を配置する方法 or discriminator に label を配置する方法 )

Page 11: ADVERSARIAL AUTOENCODERS

Semi   supervised AAE. A ・こっちは潜在空間をうまく推定したときに使う ・ MNIST の場合、 10 次元に加えて配置してラベルありなしを意味する 1 次元を追加 ・ Semi-supervised VAE みたいにちょい複雑にする必要なく自然に拡張できる

One hot vector

Page 12: ADVERSARIAL AUTOENCODERS

Semi supervised AAE.B ・こっちは生成モデルとして使いたときに向いている .

・ Semi supervised VAE みたいに” style” 成分を自在に変えて生成可能

One hot vector

Page 13: ADVERSARIAL AUTOENCODERS

Likelihood analysis

テストデータの周辺尤度を図っているAAE が一番よいことがわかる

Page 14: ADVERSARIAL AUTOENCODERS

まとめと感想 ・ AAE は VAE 単体よりよい ・ AAE は GAN 単体よりよい ( つまり GAN は高次元でいきなりやるより低次元に落としてこんでから適用した方が吉 ) ・ VAE+GAN は。。。 ・ semi supervised の AAE の識別器と x の生成器どっちともに教師情報を利用したら。。。 ・これから生成モデルはどうなっていくんでしょうか。。。(意見とかあったらぜひ)

Page 15: ADVERSARIAL AUTOENCODERS

参考資料 ・ 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 のスライド