Generative Adversarial Network
A generative adversarial network (GAN) is a generative model which is trained by "playing" a zero-sum game against a corresponding discriminative model which aims to distinguish generated versus real data. Both models are trained simultaneously in alternating steps where the generative model is updated to increase the probability that its outputs are classified by the discriminator (wrongly) as real data, while the discriminator is updated to increase its accuracy (correctly classifying generated vs real data). The improvements in both models imply that the GAN's outputs become more realistic at each step. GANs were originally developed for image generation.