Skip to content

Latest commit

 

History

History

vaes

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Variational AutoEncoders

Variational AutoEncoder

https://arxiv.org/abs/1312.6114

Quick explanation

The easiest way to understand VAEs is by analogy with vanilla autoencoders. If you understand autoencoders, the only difference is that for VAEs, we want to be able to sample new images that are similar to the ones in our dataset. VAEs enable this by making the latent a z-distribution and not just a z-vector. When we want new samples from our generative model, we can sample the z-distribution and get them.

This is a minor change (only a few lines) from the vanilla autoencoder. Instead of a single latent vector, our network produces two latent vectors, one for the mean and one for the variance of a multivariate Normal distribution. Additionally, we must add an extra KL divergence constraint between the z-dist and a standard Normal distribution, so that our network doesn't just collapse to the standard autoencoder, and instead uses the full space and let's us generate samples by just sampling from a standard Normal.

Long explanation

TODO

VQ-VAE

TODO: explanation. basically vae with discrete latent codes. the encoder and decoder are pretty standard, besides passing through the discretization. you have to do some tricks to learn the prior so you can sample from it. usually you use an autoregressive model like pixelcnn which operates on the latent codes as if they were an image.