What are Generative Adversarial Networks?
A generative adversarial network (GAN) is an unsupervised machine learning technique that trains two neural networks by forcing them to “outwit” each other in a zero-sum learning game. Most often used in image or video processing, these types of networks have a higher accuracy rate and faster learning curve than many other unsupervised learning techniques.
How does a Generative Adversarial Network Work?
Generally, the first “generative” network guesses classifier candidates and the other “discriminative” network evaluates them. In most cases, the generative network tries to map from a latent space to a certain “data distribution of interest,” all while the discriminative network discriminates between instances from the true data distribution and those coming from the generator.
To increase learning speed, the generative network is programmed to increase the discriminative network’s error rate. The generator algorithm will “trick” the evaluator by producing synthetic instances that seem to come from the true data distribution. Backpropagation is then used to improve both network’s accuracy. In particular, so that the generator network processes data more realistically, while the discriminator network gains more skill at spotting artificial constructs.
Most of the time, the generator is designed as a deconvolutional neural network, while the discriminator is a convolutional neural network.