Autoencoder (AE) consists of two neural networks called encoder and decoder. It aims to compress the input instances by passing them through the encoder and then reconstructing them to the original values with the decoder. Once the AE is trained, it can be used to generate new instances.
Variational autoencoder [1]} is a special type of autoencoder, where the vectors \( z \)  in the latent dimension (output of the encoder and input of the decoder) are normally distributed.
Encoder is therefore approximating the posterior distribution \( p(z|x) \) , where we assume \( p(z|x) \sim \mathcal {N}(\mu _x, \Sigma _x).\) 
The generator proposed by [2]} uses the Monte Carlo dropout [3]} on the trained decoder.
The idea of this generator is to propagate the instance \( x \)  through the encoder to obtain its latent encoding \( z \) . This can be propagated many times through the decoder, obtaining every time a different result due to the Monte Carlo dropout but preserving similarity to the original instance \(x\) .
