Generative Adversarial Networks (GAN)

GANs are generative models create new data instances that resemble your training data. GANs consist of any two networks (although often a combination of Feed-Forward Neural Networks (FFNN) and Convolutional Neural Networks (CNN)), with one tasked to generate content and the other has to judge content.

Components of GANs:

  • Generator: learns to produce the target output.
  • Discriminator: learns to distinguish true data from the output of the generator

Discriminator’s output is judged and used to tune both itself and generator until generated(fake) result are acceptable. The two models are trained for a zero-sum game until it's proven that the generator model is producing reasonable results


GANs pit two neural networks against each other: a generator that generates new examples and a discriminator that learns to distinguish the generated content as either real (from the domain) or fake (generated).


  • GANs can be quite difficult to train, as you don’t just have to train two networks (either of which can pose it’s own problems) but their dynamics need to be balanced as well.