From Eyewire
Revision as of 14:46, 23 April 2012 by Robertb (Talk | contribs)

Jump to: navigation, search

An autoencoder, also known as an autoassociative encoder,[1] is a neural network which reduces the dimensionality of a set of input vectors. For example, if the input consists of a 10x10 square array of binary pixels -- so, 100-dimensional vectors -- at autoencoder might attempt to reduce the input set to 25 features -- so, 25-dimensional vectors.

A deep autoencoder is an autoencoder with more than one reduction layer.[2] For example, the set of 25-dimensional feature vectors in the example above might be further reduced to a 10-dimensional feature vector, thus providing two layers of dimensionality reduction.

A sparse autoencoder is an autoencoder where the dimensionality is not reduced, but may in fact be increased. However, most of the neurons in the output vector set have zero output.[3] In the example above, perhaps the input is better represented by a sparse autoencoder using a set of 200 features, only some of which are activated at any one time.


An autoencoder can be trained using supervised learning techniques. In this case, a neural network is constructed where the input layer is fully connected to a hidden layer of reduced (or enlarged, for sparse autoencoders) dimensionality, and the hidden layer is then fully connected to an output layer of dimensionality equal to the input layer. Each input pattern is then presented to the network which must generate an output pattern identical to the input pattern.

For sparse autoencoders, additional constraints must be placed on the hidden layer during learning. For example, the hidden layer could be constrained to have a very low average activation over all hidden neurons.[4]

Autoencoders may also be trained using a combination of supervised and unsupervised learning techniques, which is especially useful for deep autoencoders where a poor choice for initial weights may lead to poor autoencoding. For example, a deep encoder may first be trained using a restricted Boltzmann machine to the point where the resulting weights may then be used in feedforward backpropagation.[2]


  1. Template:Cite book
  2. 2.0 2.1 Script error: No such module "Citation/CS1".
  3. Template:Citation/core
  4. Template:Citation/core