A successful strategy we can take to improve the model's robustness is to introduce a noise in the encoding phase. Indeed, we call a denoising autoencoder a stochastic version of an autoencoder, in which the input is stochastically corrupted, but the uncorrupted version of the same input is used as a target for the decoding phase.
Intuitively, a denoising autoencoder does two things: first, it tries to encode the input, preserving the concerning information, and then it seeks to nullify the effect of the corruption process applied to the same input.
In the following section, we'll show an implementation of a denoising autoencoder.