An unsupervised learning algorithm that applies back propagation, setting the target values to be equal to the inputs. Also, we impose a sparsity constraint on the hidden units, then the autoencoder will still discover interesting structure in the data, even if the number of hidden units is large.