Generative Adversarial Nets
Authors: Ian Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio
Year: 2014 | NeurIPS
Source: goodfellow-2014-generative-adversarial-nets
What it is
GANs introduced a new way to train generative models: instead of maximizing likelihood or using MCMC, pit two networks against each other in a game. The generator learns to produce realistic samples by trying to fool a discriminator; the discriminator learns to tell real from fake. At equilibrium, the generator recovers the data distribution exactly.
The framework
Two networks
Generator G(z; θ_g): takes noise z ~ p_z as input, outputs a sample in data space. Learns a mapping from a simple distribution to the data distribution.
Discriminator D(x; θ_d): takes a data point (real or generated) as input, outputs a probability in [0,1] — the probability that x came from real data rather than G.
The objective
min_G max_D V(D,G) = E_{x~p_data}[log D(x)] + E_{z~p_z}[log(1 − D(G(z)))]
- D maximizes: assign D(x) ≈ 1 to real data, D(G(z)) ≈ 0 to generated data
- G minimizes: make D(G(z)) ≈ 1, i.e., fool D into thinking generated samples are real
Training
Alternate between:
- Update D for k steps (maximize V)
- Update G for 1 step (minimize V)
Practical G objective: instead of minimizing log(1−D(G(z))), maximize log D(G(z)). Reason: early in training, D easily rejects all of G’s samples, making the gradient of the original objective near zero. The alternative provides stronger gradients while having the same Nash equilibrium.
Theoretical analysis
Optimal discriminator
For a fixed generator G, the optimal discriminator is:
D*(x) = p_data(x) / (p_data(x) + p_g(x))
When D is at its optimum, the generator’s objective becomes the Jensen-Shannon divergence between p_data and p_g:
C(G) = -log(4) + 2 · JSD(p_data || p_g)
JSD ≥ 0 with equality iff p_g = p_data. So the global minimum is:
p_g = p_data, D*(x) = 1/2 everywhere
At equilibrium: the discriminator can’t distinguish real from generated data.
Convergence
The paper proves that alternating gradient descent converges to this optimum under idealized conditions (unlimited network capacity, exact gradient updates). In practice, training is often unstable — but the theoretical framework is sound.
Why GANs were a breakthrough
Prior generative models required either:
- MCMC sampling (Boltzmann machines, energy-based models): slow, requires many steps per sample
- Explicit likelihood (VAEs, flow models): constrains the model architecture; often blurry
- Approximate inference (VAEs): introduces a bound that may be loose
GANs generate samples in a single forward pass — as fast as any discriminative network. No Markov chains, no variational bounds, no explicit density computation.
The original results (2014)
The 1-page paper trained small MLPs (not CNNs) on:
- MNIST: plausible digit images
- Toronto Face Database: rough face images
- CIFAR-10: early-stage object images
By 2014 standards the images were crude. The contribution was the framework, not the image quality.
Known failure modes
Mode collapse: G learns to generate a narrow subset of the data distribution that reliably fools D, rather than learning the full distribution. G ignores most of the noise input.
Training instability: D and G can fall out of sync. If D is too strong, G gets near-zero gradients. If G is too strong, D fails and provides no useful training signal.
No encoder: unlike VAEs, a GAN doesn’t learn to map data back to latent space — you can’t get latent codes for real examples.
What came after
| Year | Variant | Advance |
|---|---|---|
| 2015 | DCGAN | Convolutional GANs; stable training |
| 2014 | cGAN | Condition G on class labels |
| 2017 | CycleGAN | Unpaired image-to-image translation |
| 2018 | StyleGAN | High-fidelity face synthesis |
| 2018 | BigGAN | Large-scale class-conditional generation |
| 2020 | DDPM | Diffusion models overtake GANs in image quality |
GANs dominated generative image modeling from ~2015 to ~2022. Diffusion models (Ho et al. 2020) then surpassed them in quality and training stability.
See also
- rumelhart-1986-learning-representations-by-back-propagating-errors — Backpropagation: how G and D are trained
- vaswani-2017-attention-is-all-you-need — Transformer: now combined with GANs in many variants