GAN (or Generative Adversarial Network) is a class of machine learning techniques that pits two neural networks against each other for training purposes.

The first network is known as the generator. It tries to make fake copies—of whatever the thing at hand may be, for example handwriting or synthetic photos—that are convincing enough to fool the second network, or the discriminator. The second network has a single job—to determine which items are real and which are fakes created by the generator. As the two networks go through each training pass (called an epoch), they learn and improve—the generator to make better fakes, and the discriminator to get sharper at detecting fakes. Sometimes a GAN system will go through thousands of training epochs. This basic idea has produced spectacular results across a large range of AI application areas.

The concept of a GAN architecture was first proposed by computer scientist Ian Goodfellow and his colleagues at the Université de Montréal in June 2014. It has become one of the most productive and influential architectures for machine learning, spawning what some researchers call the “GAN Zoo” of over 500 different published variations.

Text To Speech

Miquel Perelló Nieto, DeepDream through all the layers of GoogleNet (video still), 2016