Skip to main content

VAE with Flows

VAE with Flows は、Variational Autoencoder の approximate posterior qϕ(zx)q_\phi(z \mid x) を、Normalizing Flow によってより flexible にする方法です。

問題

通常の VAE では、qϕ(zx)q_\phi(z \mid x) を diagonal Gaussian として parameterize することが多いです。しかし、真の posterior pθ(zx)p_\theta(z \mid x) が複雑な形を持つ場合、diagonal Gaussian では十分に近似できません。

Flow による posterior の変換

Base posterior から sample した latent variable z0z_0 に対して、invertible transformation を連続して適用します。

zK=fKf1(z0)z_K = f_K \circ \cdots \circ f_1(z_0)

このとき、density は change of variables によって補正されます。

logqK(zKx)=logq0(z0x)k=1Klogdetfkzk1\log q_K(z_K \mid x) = \log q_0(z_0 \mid x) - \sum_{k=1}^{K}\log\left|\det \frac{\partial f_k}{\partial z_{k-1}}\right|

意味

VAE with Flows は、VAE の encoder が表現できる posterior family を広げます。これによって、ELBO が tight になり、より良い generative model を学習できる可能性があります。

関連ページ