Generative Adversarial Network (GAN)

Generative Adversarial Networks (GANs) were introduced in 2014 by Ian Goodfellow and are a fast-growing area in deep neural networks that can be used to generate realistic images, speech, prose, and more.

Presented here is an image of a GAN-generated person who does not otherwise exist:

A fake image of a person generated by https://thispersondoesnotexist.com/

“[GANs are] the most interesting idea in the last 10 years in Machine Learning” -- Yann LeCun

Architecture

GANs are composed of two networks:

  • Generator: creates new synthetic data (e.g. an image) that tricks the discriminator into believing the fake data is authentic

  • Discriminator: evaluates samples passed from the generator and attempts to discern if the data (e.g. image) belongs to the training dataset, meaning it's authentic, or if it was generated, meaning it's fake

Steps in a GAN

Source: becominghuman.ai
  1. The generator creates a fake sample

  2. A generate (fake) sample is fed into the discriminator alongside a real sample taken from the training dataset

  3. The discriminator returns a prediction with a probability from 0 - 1 with 0 being definitely fake and 1 being definitely authentic