Generative adversarial networks (GANs) are a class of unsupervised machine learning models used to generate new data with the same statistics as the training set. GANs work by having two neural networks, a generator and discriminator, compete against each other. The generator tries to generate fake images that look real, while the discriminator tries to tell real images apart from fake ones. This adversarial process allows the generator to produce highly realistic images. The paper proposes GANs and introduces their objective functions and training procedure to generate images similar to samples from the training data distribution.