This advanced chapter showed you how to create GAN networks. You learned the major components of GANs, a generator and a critic, and their role in the learning process. You learned about adversarial learning in the context of breaking models and making them robust against attacks. You coded an MLP-based and a convolutional-based GAN on the same dataset and observed the differences. At this point, you should feel confident explaining why adversarial training is important. You should be able to code the necessary mechanisms to train a generator and a discriminator of a GAN. You should feel confident about coding a GAN and comparing it to a VAE to generate images from a learned latent space. You should be able to design generative models, considering the societal implications and the responsibilities that come with using generative models.
GANs are very interesting and have yielded amazing research and applications. They have also exposed the vulnerabilities of other systems. The...