An autoencoder is a type of artificial neural network used to learn efficient codings of unlabeled data, primarily for the purpose of dimensionality reduction or feature learning. It consists of an encoder that compresses the input into a latent-space representation and a decoder that reconstructs the output from this representation, aiming to minimize the difference between the input and the reconstructed output.