So far in this book, we have covered the three main types of neural networks—feedforward neural networks (FNNs), convolutional neural networks (CNNs), and recurrent neural networks (RNNs). Each of them are discriminative models; that is, they learned to discriminate (differentiate) between the classes we wanted them to be able to predict, such as is this language French or English?, is this song classic rock or 90s pop?, and what are the objects present in this scene?. However, deep neural networks don't just stop there. They can also be used to improve image or video resolution or generate entirely new images and data. These types of models are known as generative models.
In this chapter, we will cover the following topics related to generative models:
- Why we need generative models
- Autoencoders
- Generative adversarial networks
- Flow-based networks...