Deep Learning: GANs and Variational Autoencoders