Generative Adversarial Networks (GANs)
In this chapter, we'll be investigating generative adversarial networks (GANs) [1]. GANs belong to the family of generative models. However, unlike autoencoders, generative models are able to create new and meaningful outputs given arbitrary encodings.
In this chapter, the working principles of GANs will be discussed. We'll also review the implementations of several early GANs using tf.keras
, while, later on in the chapter, we'll demonstrate the techniques needed to achieve stable training. The scope of this chapter covers two popular examples of GAN implementations, Deep Convolutional GAN (DCGAN) [2] and Conditional GAN (CGAN) [3].
In summary, the goals of this chapter are:
- To introduce the principles of GAN
- To present one of the early working implementations of GAN, called DCGAN
- An improved DCGAN called CGAN, which uses a condition
- To implement DCGAN and CGAN in
tf.keras
Let...