Working principles of an autoencoder