GANs Explained: How Generative Adversarial Networks Work
A GAN pits a generator against a discriminator in a training loop that produces realistic synthetic data. How the adversarial setup works.
A generative adversarial network, or GAN, is a generative model built from two neural networks trained against each other — a generator that produces synthetic samples and a discriminator that tries to tell them apart from real data. The two are trained in a loop: the generator gets better at fooling the discriminator, and the discriminator gets better at catching it, and the competition itself is what drives the generator toward realistic output.
GANs were, for years, the dominant approach to high-quality image synthesis before diffusion models became the default for most generative image and video work. The adversarial idea is still worth understanding on its own terms — it’s a genuinely different training strategy from anything else in the generative-model toolbox.
The generator-discriminator loop
- The generator takes random noise as input and transforms it into a synthetic sample — an image, typically, though the same setup works for audio, tabular data, and other domains. It never sees real data directly; all of its feedback comes through the discriminator’s judgments.
- The discriminator is a binary classifier. It sees a mix of real samples (from the training set) and fake samples (from the generator) and has to label each one real or fake.
Training alternates between the two: update the discriminator to get better at distinguishing real from fake, then update the generator to produce output that the current discriminator misclassifies as real. Each network’s loss depends on the other’s current state, which makes GAN training a minimax game rather than a straightforward optimization — the generator is trying to maximize the discriminator’s error rate while the discriminator tries to minimize it.
At the theoretical optimum, the generator produces samples indistinguishable from real data and the discriminator is reduced to guessing at random. In practice, training rarely reaches that clean equilibrium, which is the source of most of GANs’ well-documented training difficulties.
Why GAN training is notoriously unstable
- Mode collapse. The generator finds a small handful of outputs that reliably fool the discriminator and stops exploring — it converges to producing a narrow range of samples instead of the full diversity of the training distribution. This is the single most common GAN failure mode.
- Vanishing gradients. If the discriminator gets too good too fast, it confidently rejects everything the generator produces, and the generator’s gradient signal collapses toward zero — there’s no useful direction left to improve in.
- No single stopping criterion. Because the two networks’ losses are relative to each other rather than to a fixed target, loss curves don’t reliably indicate quality the way they would in a standard supervised-training setup. Practitioners typically rely on periodic qualitative sampling or auxiliary metrics rather than watching the loss curve alone.
Balancing generator and discriminator capacity, using techniques like gradient penalties, and careful learning-rate scheduling all help, but GAN training remains meaningfully more finicky to get right than training a single network toward a fixed objective.
GANs vs diffusion models
Diffusion models have displaced GANs for most state-of-the-art image and video generation, largely because they sidestep the adversarial training instability entirely — a diffusion model has a single, well-defined denoising objective rather than a moving target set by a competing network.
| GANs | Diffusion models | |
|---|---|---|
| Training setup | Two networks competing (adversarial) | Single network, fixed denoising objective |
| Training stability | Prone to mode collapse, harder to tune | Generally more stable |
| Sampling speed | Fast — one forward pass | Slower — many denoising steps |
| Output diversity | Can collapse to a narrow range | Typically covers the data distribution well |
| Common use today | Fast, specialized synthesis tasks | General-purpose image and video generation |
GANs kept a real advantage on inference speed for a long time — generating a sample takes a single forward pass through the generator, versus dozens of iterative denoising steps for a typical diffusion model — which is why GANs remain a reasonable choice for latency-sensitive synthesis tasks even where diffusion produces higher-fidelity output elsewhere.
What GANs are still used for
Beyond image generation, the adversarial framework shows up in synthetic data generation for training other models, data augmentation for domains where labeled examples are scarce, super-resolution (upscaling low-resolution images), and style transfer. The core idea — training one network to generate and another to critique — has also influenced training setups well outside image synthesis, including some approaches to evaluating vision-language models output.
The takeaway
A GAN trains a generator and a discriminator against each other, with the generator improving only by learning to fool an increasingly capable adversary. That adversarial setup produces sharp, realistic samples in a single forward pass, but it’s also why GAN training is harder to stabilize than most other model architectures — mode collapse and vanishing gradients are recurring failure modes rather than edge cases. Diffusion models have taken over most general-purpose image generation because their training objective is simpler to reason about, but GANs remain a practical choice wherever inference speed matters more than matching the absolute state of the art.
Tagged
Keep reading
Chisato · · 4 min read What Is a Vision Transformer (ViT)?
A Vision Transformer applies the transformer architecture to images by splitting them into patches processed with self-attention instead of convolutions.
Chisato · · 5 min read Grouped-Query Attention (GQA) Explained: MHA vs MQA vs GQA
Grouped-query attention shares key and value heads across groups of query heads, shrinking the KV cache with little quality loss. GQA vs MHA and MQA.
Chisato · · 5 min read Constrained Decoding: How LLMs Output Guaranteed JSON
Constrained decoding masks invalid tokens at each step so an LLM can only emit output matching a grammar, regex, or JSON Schema. How it works and its limits.