生成モデルVAE(Variational Autoencoder)

(2018-12-11)

生成モデルというのはデータの分布をモデリングしてそこから新しいデータを生成するもの。 VAEは入力xに対して何らかの分布を仮定し、例えばガウス分布(正規分布)だとすると平均μと分散σを推論し、 これをz=μ+(σ・ε) (ε~N(0,1))の潜在変数に変換して生成モデルへの入力とし、その出力の尤度が最大化するように学習させる。

VAE

Variational Autoencoderという名前はこの分布を推論して生成する流れがAutoencoderの形式と似ているところから来ている。 Autoencoder(自己符号化器)というのはある入力をエンコードしてデコードしたときに入力と同じものを出力するように学習させたもので、 これによって次元削減された潜在変数zが得られる。

推論モデルの確率分布q(z|x)、生成モデルの確率分布p(x|z)および対数尤度に対してイェンセンの不等式より次の式が成り立つ。 最後の右辺LをEvidence Lower Bound (ELBO)といい、推論モデルと生成モデルのパラメータを交互に最適化してこれを最大化させることで尤度の底を引き上げていく。

VAEの対数尤度のEvidence Lower Bound

p(x|z)がベルヌーイ分布に従うとするとLは次のようになる。

Lの式

また対数尤度とLの差は次のKL情報量となる。

自己情報量、エントロピー、KL情報量、交差エントロピーと尤度関数 - sambaiz-net

対数尤度とELBOの差

ほかの生成モデルとしてGAN(Generative Adversarial Networks)があって、これはデータの分布を最初に仮定せずより近い分布から良いデータを生成するのを目指す。

参考

Kerasで学ぶAutoencoder

Carl Doersch (2016) Tutorial on Variational Autoencoders

Variational Autoencoder徹底解説 - Qiita