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.

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s