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