Generative Adversarial Network - ( GAN )
Generative Adversarial Network
There are lots of different ways we can classify the learning process for computers like supervised, unsupervised, reinforcement learning. One of the popular ways is discriminative and generative. Generative is the concept of joint probability where the aim is to model how the data is created.
We get the knowledge about the data distribution for any type of training data and this distribution can hence be used to create new data. Discriminative on the other hand find the probability of one variable given the other and is thus used for classification and is very easy to use. So, discriminative models learn the boundaries between classes while generative algorithms learn the distribution of classes. One class of these generative models is the Generative Adversarial Network (GANs).
In GANs we have two neural networks- Generative network and Discriminative network. Think of the generator as the robber or more accurately the counterfeiter who tries to replicate the input data to produce counterfeit data or fake data, the discriminator, on the other hand, is like a cob we need to be able to distinguish between the real data which is from the data set and the counterfeit data which is produced by the generator. The loss of the discriminator is used as the objective function for the generator in the next time around. GANs can solve the problem of insufficient labeled training data by learning from existing data and synthesizing never-before-seen data to augment the current data set.
The common uses include creating a color image from black and white images, turning maps into digital maps, converting a hand-drawn picture into a digital picture, etc. GANs take a long time to train. On a single GPU, a GAN might take hours and on a single CPU more than a day. While difficult to tune and therefore to use, GANs have stimulated a lot of interesting research and writing.