In this chapter, Generative Adversarial Networks (GANs) and the adversarial training process will be presented. In the first section, we will go over a theoretical overview of the GAN framework, while highlighting the strengths of the adversarial training process and the flexibility that was introduced by using neural networks as the model of choice for creating GANs. The theoretical part will give you an intuitive idea about which part of the GAN value function is being optimized during the adversarial training process and show you why the non-saturating value function should be used instead of the original one.
We will then go through a step-by-step implementation of GAN models and their training, with a visual explanation of what happens during this process. You will become familiar with the concept of target and learned distributions, which...