Paper Breakdowns  /  DDPM
Paper 22~9 min readNeurIPS 2020
Paper Breakdown

DDPM,
explained.

Diffusion was a decade-old idea that never quite worked — beautiful in theory, mediocre in practice. Then this paper made one deceptively humble change: instead of predicting complicated distributions, just train a network to guess the noise. That single simplification turned diffusion from a curiosity into the method behind DALL·E, Midjourney, and Stable Diffusion. Here's the original math, made intuitive.

Video breakdown
The animated walkthrough is in production.
Read the full breakdown below in the meantime ↓
01

The core intuition

Imagine dropping ink into water. It disperses until the glass is a uniform haze — an easy, predictable process to run forward. Now imagine running it backward: reassembling that haze into the original drop. Impossible to do exactly, but if you learned, at every tiny moment, how to nudge the haze one step back toward order, you could reverse the whole thing.

That's diffusion. The forward direction gradually destroys an image into noise — trivial. The reverse direction rebuilds an image from noise — hard, and exactly what we train a network to do. Generate by starting from pure noise and running the learned reverse steps until a picture appears.

02

The forward process: adding noise on a schedule

The forward process is a fixed Markov chain with no learnable parameters. Over T steps (the paper uses T = 1000), it repeatedly adds a little Gaussian noise. A noise schedule β₁ … β_T — small numbers that grow over time — sets how much noise each step injects:

q(x_t | x_{t-1}) = 𝒩( √(1−β_t)·x_{t-1},  β_t·I )

In words: each step shrinks the current image slightly and sprinkles in fresh noise. Start with a clean image x₀; after enough steps you reach x_T, which is indistinguishable from pure Gaussian noise. This process is a given — its only purpose is to define the corruption the network must learn to undo.

Forward adds noise · reverse removes it
x₀
→β→
x₁
→β→
x₂
→ … →
x₍T₋₁₎
→β→
x_T
clean image← learned reverse ←pure noise
03

The trick that makes training cheap

Adding noise a thousand times to make one training example would be painfully slow. A neat property of Gaussians rescues it: you can jump straight to any timestep in one shot. Define α_t = 1−β_t and ᾱ_t = α₁·α₂·…·α_t, and then

x_t = √(ᾱ_t)·x₀ + √(1−ᾱ_t)·ε,  ε ~ 𝒩(0, I)

So to make a training example at noise level t, you take a clean image, pick a random t, sample one blob of noise ε, and combine them by the formula above — no thousand-step loop needed. This closed form is what makes DDPM training efficient, and it's the key to the objective coming up.

04

The reverse process: the learned part

Reversing the chain means going from x_t to a slightly cleaner x_{t-1}. The true reverse step is intractable, but if each forward step adds only a little noise, each reverse step is well-approximated by a Gaussian too — so we train a network to predict its mean.

That network is a U-Net: an encoder-decoder with skip connections, well suited to images, that also takes the timestep t as input so it knows how noisy things currently are. Apply it repeatedly — x_T → x_{T-1} → … → x₀ — and noise becomes an image. All the model's intelligence lives in this one denoising network.

05

The masterstroke: just predict the noise

Earlier diffusion work derived a complicated variational bound and tried to predict full distributions — fiddly and unstable. DDPM's decisive move was to reparameterize the problem. Since x_t = √(ᾱ_t)x₀ + √(1−ᾱ_t)ε, knowing the noise ε is equivalent to knowing the clean image. So just predict ε. The training loss collapses to plain mean-squared error:

L = 𝔼x₀,ε,t ‖ ε − εθ(x_t, t) ‖²

The recipe is almost embarrassingly simple: take a clean image, add a known amount of noise, and ask the network to guess the noise you added. Penalize the squared error. That's it. This "simple objective" trained far more stably than the full variational bound and produced dramatically better samples — the entire reason diffusion suddenly worked.

Why this matters

Predicting noise turns generative modeling into ordinary supervised regression. No adversarial game, no delicate distribution matching — just "guess the noise," a loss any practitioner can train reliably. Simplicity was the breakthrough.

06

Sampling and results

To generate, start from pure noise x_T ~ 𝒩(0, I). At each step, run the network to predict the noise, subtract off a scaled portion to get a cleaner estimate, add a touch of fresh noise for stochasticity, and repeat down to x₀. After all T steps you have a fresh image the model has effectively imagined from static.

PropertyGANsDDPM
Generationone forward passmany denoising steps
Trainingadversarial (unstable)simple MSE (stable)
Sample diversityprone to mode collapsehigh, covers the data

DDPM produced image quality competitive with the best GANs of the time — without the instability or mode collapse — establishing diffusion as a serious, and soon dominant, family of generative models.

07

The limits

The obvious cost is speed. Generating one image means running the network hundreds or a thousand times — orders of magnitude slower than a GAN's single pass. DDPM also operates directly in pixel space, so high-resolution generation is very expensive in both compute and memory.

Both limits drove the follow-up work. DDIM and other fast samplers cut the step count dramatically; latent diffusion moved the whole process into a compressed space to slash the per-step cost. DDPM is the sturdy foundation those improvements were built on, not the final, efficient product.

08

Why it still matters

DDPM is the paper that made diffusion work, and it launched the generation era we're living in. Every major image and video generator — DALL·E 2, Imagen, Midjourney, Stable Diffusion — descends from the forward/reverse framework and the noise-prediction objective defined here. When a model "denoises" its way to a picture, it's running DDPM's idea.

Its deeper lesson is about the power of the right reframing: a hard generative problem became a simple supervised one by choosing to predict noise. That move dethroned GANs as the default for high-fidelity generation and reoriented the whole field around iterative denoising.

Read next

Pair this with latent diffusion (making it efficient enough for Stable Diffusion) and the broader diffusion models overview. DDPM is the mathematical bedrock beneath both.

Frequently asked

Quick answers

What is DDPM?

The 2020 paper (Ho et al.) that made diffusion generative models practical: a fixed forward process adds Gaussian noise over many steps, and a trained network reverses it to turn noise into images.

What is the forward process?

A fixed, parameter-free Markov chain that adds a little Gaussian noise at each step per a schedule, ending in pure noise. A closed form lets you jump to any noise level in one step.

What is the reverse process?

The learned U-Net that takes a noisy image and timestep and predicts a slightly cleaner image; run repeatedly from noise, it produces a full image.

What does it train the network to predict?

The noise that was added — with a simple mean-squared-error loss between true and predicted noise. That simplification is DDPM's key contribution.

How is it different from GANs?

GANs generate in one pass via an unstable adversarial game; DDPM generates over many steps with a stable regression loss, giving diverse samples at the cost of slower sampling.

Finished this one? 0 / 30 Paper Breakdowns done

Explore the topic

See this alongside everything else on the same subject — handbooks, system designs, challenges and tools, in one place.

More Paper Breakdowns