Variational Autoencoder (VAE) came into existence in 2013, when Kingma et al. published the paper Auto-Encoding Variational Bayes. This paper was an extension of the original idea of Auto-Encoder primarily to learn the distribution of the data. VAEs are devised within the variational inference framework and approximately model the data distribution after training, making it computationally cheap to generate new samples.
In VAE the idea is to encode the input as a probability distribution rather than a point estimate as in vanilla auto-encoder. Then VAE uses a decoder to reconstruct the original input by using samples from that probability distribution.
cd vision/vae_mnist
julia --project vae_mnist.jl
Original image
5 epochs
10 epochs
20 epochs
julia --project vae_plot.jl
Latent space clustering
2D manifold