GAN-Generative Advarsarial Network is a class of machine learning frameworks first introduced by Ian Goodfellow in 2014. GAN learns to generate new data with same statistic as the training dataset. This technique has huge application in photograph generation.
Reference for the above Jupyter notebook: https://machinelearningmastery.com/how-to-develop-a-conditional-generative-adversarial-network-from-scratch/
A ppt demonstrating GAN by Ian Goodfellow: