Variational Auto Encoder

z : latent variable
x : target data


Intractable calculation issue

/assets/img/posts/GraduationPaper/vae/model.png

Derivation 1

/assets/img/posts/GraduationPaper/vae/derivation1.png

Derivation 2

/assets/img/posts/GraduationPaper/vae/derivation2.png


LOSS Function

/assets/img/posts/GraduationPaper/vae/fullmodel.png

Variational Inference ($\phi$)

\begin{align} \log(p(x)) \ge E_{q{_\phi} (z|x)} [ \log (p(x|z))] - KL(q_\phi(z|x) |p(z)) = ELBO(\phi) \end{align}

Maximum Likelihood ($\theta$)

\begin{align} -{\sum}_i {\log(p(x_i))} \le -{\sum}_i { E_{q{_\phi} (z|x_i)} [ \log (p(x_i|g_\theta(z)))] - KL(q_\phi(z|x) |p(z))} \end{align}

Optimization

\begin{align} argmax_({\phi, \theta}) {\sum}_i -{E_{q{_\phi} (z|x_i)} [ \log (p(x_i|g_\theta(z)))] + KL(q_\phi(z|x_i) |p(z))} \end{align}

Regularization (Encoder)

/assets/img/posts/GraduationPaper/vae/KL.png

두 normal distribution 사이의 KL divergence

Reparameterization Trick

/assets/img/posts/GraduationPaper/vae/reparameterization.png

KLD까지 통과를 하고 이제 Decoder 부분으로 넘어가면 되는데 문제가 있다. $q_\theta ()$에서는 sampling을 진행하게 되며, z는 Gaussian distribution이므로 Backpropagation이 불가능하다.

\begin{align} z^{i,j} = \mu_i +{\sigma{_i}}^2 \odot \epsilon \end{align}

Reconstruction Error (Decoder)

/assets/img/posts/GraduationPaper/vae/decoder.png

/assets/img/posts/GraduationPaper/vae/reconstruction.png

/assets/img/posts/GraduationPaper/vae/reconstruction2.png

References

오토인코더의 모든 것 - 2/3
ratsgo’s blog