An autoencoder is a neural network whose purpose is to code its input into small dimensions and the result obtained, to be able to reconstruct the input itself. Autoencoders are made up of the union of the following two subnets:
- Encoder, which calculates the function:
Given an input x, the encoder encodes it in a variable z, also called latent variable. z usually has much smaller dimensions than x.
- Decoder, which calculates the following function:
Since z is the code of x produced by the encoder, the decoder must decode it so that x' is similar to x.
The training of autoencoders is intended to minimize the mean square error between the input and the result.