Summary: Image Generation with GANs
Get a quick recap of the major learning points in this chapter.
In this chapter, we were introduced to a new class of generative models called generative adversarial networks. Inspired by concepts of game theory, GANs present an implicit method of modeling the data generation probability density. We started the chapter by first placing GANs in the overall taxonomy of generative models and comparing how these are different from some of the other methods we have covered in earlier chapters. Then we moved on to understanding the finer details of how GANs actually work by covering the value function for the minimax game, as well as a few variants like the non-saturating generator loss and the maximum likelihood game. We developed a multilayer perceptron-based vanilla GAN to generate MNIST digits using TensorFlow Keras APIs.
In the next section, we touched upon a few improved GANs: deep convolutional GANs, conditional GANs, and, finally, Wasserstein GANs. We not only explored major contributions and enhancements but also built some code bases to train these improved versions. The next section involved an advanced variant called progressive GANs. We went through the nitty-gritty details of this advanced setup and used a pretrained model to generate fake faces. In the final section, we discussed a few common challenges associated with GANs.
This chapter was the foundation required before jumping onto some even more advanced architectures.
Get hands-on with 1400+ tech skills courses.