An autoencoder is a neural-network architecture trained to compress input data into a smaller representation and then reconstruct the original input from that representation.
Autoencoders are used for dimensionality reduction, anomaly detection, denoising, representation learning, and generative-model components. They are often discussed with unsupervised or self-supervised learning.