The Difference Between an Autoencoder and a Variational Autoencoder

A neural autoencoder and a neural variational autoencoder sound alike, but they’re quite different.

An autoencoder accepts input, compresses it, and then recreates the original input. This is an unsupervised technique because all you need is the original data, without any labels of known, correct results. The two main uses of an autoencoder are to compress data to two (or three) dimensions so it can be graphed, and to compress and decompress images or documents, which removes noise in the data.

Example of denoising images of digits. Original noisy images on top row.

A variational autoencoder assumes that the source data has some sort of underlying probability distribution (such as Gaussian) and then attempts to find the parameters of the distribution. Implementing a variational autoencoder is much more challenging than implementing an autoencoder. The one main use of a variational autoencoder is to generate new data that’s related to the original source data. Now exactly what the additional data is good for is hard to say. A variational autoencoder is a generative system, and serves a similar purpose as a generative adversarial network (although GANs work quite differently).

Artificial faces generated by a variational autoencoder. See excellent post at:

This entry was posted in Machine Learning. Bookmark the permalink.