GAN - AshokBhat/ml GitHub Wiki
About
- Generative adversarial network (GAN)
- A class of machine learning frameworks designed by Ian Goodfellow and his colleagues in 2014.
Method
The generative network generates candidates while the discriminative network evaluates them. The contest operates in terms of data distributions.
Typically, the generative network learns to map from a latent space to a data distribution of interest, while the discriminative network distinguishes candidates produced by the generator from the true data distribution.
The generative network's training objective is to increase the error rate of the discriminative network (i.e., "fool" the discriminator network by producing novel candidates that the discriminator thinks are not synthesized (are part of the true data distribution)).
A known dataset serves as the initial training data for the discriminator. Training involves presenting it with samples from the training dataset until it achieves acceptable accuracy. The generator trains based on whether it succeeds in fooling the discriminator.
Typically the generator is seeded with randomized input that is sampled from a predefined latent space (e.g. a multivariate normal distribution). Thereafter, candidates synthesized by the generator are evaluated by the discriminator.
[Backpropagation]] is applied in both networks so that the generator produces better images, while the discriminator becomes more skilled at flagging synthetic images. The generator is typically a [[deconvolutional neural network]], and the discriminator is a [convolutional neural network.
Key terms
- Latent space
- Generator
- Discriminator
FAQ
- What is GAN?
- What are the typical applications?