Variational Autoencoder for generating faces similar to frey face dataset.
Autoencoders are neural nets that learn to encode image into e.g. 10-dimensional vector and then decode from this vector back to original image.
Variational Autoencoders guarantee probability distribution of this 10-D space, which allows for generating new images.
Here is a nice lecture explaining it
This VAE learns on 2000 face images of Brendan Frey and generates new ones.
Code was based on this pytorch example