Machine learning (ML) and deep learning can be described by two terms: generative and discriminative modeling. When discussing the machine learning techniques that most people are familiar with, the thinking of a discriminative modeling technique, such as classification.
Generative and discriminative models
How to do it...
The difference between these two types of can be described by the following analogy:
- Discriminative modeling: Observe paintings and determine the style of painting based on observations.
Here are a few steps that describe how we would do this in machine learning:
- First, we create a machine learning model that use convolutional layers or other learned features to understand the divisions in the data
- Next, we collect a dataset that has both a training set (60-90% of your data) and a validation dataset (10-40% of your data)
- Train the machine learning model using your data
- Use this model to predict which datapoint belongs to a particular class - in our example, which painting belongs to which author
- Generative modeling: Learn and reproduce paintings in various painters' styles and determine the painting style from the styles you learned.
Here are a few steps to describe a possible way to accomplish this type of modeling:
- Create a machine learning model that learns how to reproduce different painting styles
- Collect a training and validation dataset
- Train the machine learning model using the data
- Use this model to predict (inference) to produce examples of the paint author - use similarity metrics to verify the ability of the model to reproduce the painting style.
How it works...
Discriminative models will learn the boundary conditions between classes for a distribution:
- Discriminative models get their power from more data
- These models are not designed to work in an unsupervised manner or with unlabeled data
This can be described in a more graphical way, as follows:
- Generative models will model the distribution of the classes for a given input distribution:
- This creates a probabilistic model of each class in order to estimate the distribution
- A generative model has the ability to use unlabeled data since it learns labels during the training process
This can be described in a more graphical way, as follows:
So, generative models are incredibly difficult to produce as they have to accurately model and reproduce the input distribution. The discriminative models are learning decision boundaries, which is why neural networks have been incredibly successful in recent years. The GAN architecture represents a radical departure from older techniques in the generative modeling area. We'll cover how neural networks are developed and then dive right in the GAN architecture development.