Generative Adversarial Networks are a machine learning model family that can learn to “hallucinate” new examples of complex data. GANs may be used for generating images, for instance—so-called “deepfake” images use GANs.
A GAN’s Training Process
The GAN has two parts: a Generator, and a Discriminator. The Generator learns to produce increasingly realistic pictures by randomly making up pictures and showing them to the Discriminator. The Discriminator has a set of real pictures, and it tries to distinguish the made up pictures from the real ones. The generator is programmed to try and fool the discriminator into thinking the made up pictures are real.
When the Generator does trick the Discriminator, it learns what looks like a real image to the discriminator, so over time, the Generator gets better at fooling the Discriminator, and the generated fakes start resembling real pictures.
The competition between these two kinds of models has led to quite convincing results!