This is a rapid-fire misconception hunter for Denoising diffusion probabilistic models (DDPM). Every item is a trap the theory sets for you. Read the prompt, answer out loud in one sentence, then reveal. If you can only say "true" or "false" without the why, you haven't understood it yet.
Before we start, a plain-words glossary so no symbol ambushes you:
Recall Why the closed-form sampler
xt=αˉtx0+1−αˉtϵ holds — walk it, don't memorize it
What we want: skip all the intermediate steps and land at xt straight from x0.
Step 1 (one step):x1=α1x0+1−α1ϵ1.
Step 2 (compose):x2=α2x1+1−α2ϵ2. Substitute x1:
x2=α2α1x0+two independent Gaussiansα2(1−α1)ϵ1+1−α2ϵ2.Step 3 (the key merge): two independent zero-mean Gaussians add their variances, so the noisy tail collapses to a single Gaussian with variance α2(1−α1)+(1−α2)=1−α1α2. Hence x2=α1α2x0+1−α1α2ϵ.
Step 4 (induction): the same "signal shrinks by α, noise fills the rest to keep variance 1" pattern repeats, giving αˉt=∏s=1tαs in front of x0 and 1−αˉt in front of the merged noise. Intuition: the signal-share αˉt and the noise-share 1−αˉt always sum to 1 — the picture below shows one bar splitting into signal (red) and noise (black) as t grows.
Recall The true reverse-posterior parameters
μ~t and β~t — where they come from
What: conditioned on the clean data x0, the reverse step q(xt−1∣xt,x0)=N(xt−1;μ~t,β~tI) is Gaussian.
Why Gaussian: by Bayes, q(xt−1∣xt,x0)∝q(xt∣xt−1)q(xt−1∣x0) — a product of two Gaussians in xt−1, and a product of Gaussians is again Gaussian (add the two "−21(⋅)2" exponents and complete the square).
The parameters that fall out of completing the square are
β~t=1−αˉt1−αˉt−1βt,μ~t=1−αˉtαˉt−1βtx0+1−αˉtαt(1−αˉt−1)xt.Read it:μ~t is a weighted blend of "where we came from" (x0) and "where we are" (xt); the network's job is to reproduce this blend without being told x0.
Recall Why predicting
ϵ and predicting x0 are the same parameterization (invertible linear map)
Start from the forward closed form:xt=αˉtx0+1−αˉtϵ.
Solve for x0 (pure algebra — move terms, divide):
x0=αˉtxt−1−αˉtϵ.Solve for ϵ the same way:
ϵ=1−αˉtxt−αˉtx0.The point: given the known xt and the fixed constants αˉt,1−αˉt, each of x0 and ϵ is an affine (straight-line) function of the other — knowing one hands you the other exactly. So a network predicting ϵ implicitly predicts x0; they carry identical information. Empirically the ϵ target is unit-scale for every t, so it trains more stably.
True or false: the forward step q(xt∣xt−1) is a Gaussian centred at αtxt−1.
True — by definition q(xt∣xt−1)=N(xt;αtxt−1,βtI); the mean shrinks the previous point and βt is the added variance.
True or false: the forward diffusion process has parameters the network learns.
False — the forward process is completely fixed by the schedule β1,…,βT; only the reverse process pθ contains learnable weights.
True or false: after infinitely many steps, xT still remembers a little bit of x0.
False — as t→∞, αˉt→0, so xt→N(0,I) and every trace of the original signal is washed out.
True or false: we can jump straight from x0 to x500 in one line of code.
True — the closed form xt=αˉtx0+1−αˉtϵ (derived above by merging the per-step Gaussians) lets us sample any step directly without looping.
True or false: we can likewise jump from x500 straight to x0 in one reverse step.
False — the reverse has no closed form over many steps; the network only approximates one small step at a time, so generation must iterate.
True or false: the true reverse step q(xt−1∣xt) is Gaussian.
False in general — it is only Gaussian when we also condition on x0 (that is the μ~t,β~t posterior); unconditioned, it depends on the whole data distribution and is intractable.
True or false: the scaling factor 1−βt exists to make the images darker.
False — it shrinks the signal so total variance stays bounded (near 1); it is a variance-control trick, not a brightness one.
True or false: DDPM training uses the true reverse-time video of an image being denoised as a label.
True in spirit — because q(xt−1∣xt,x0) has a known Gaussian form, we have a supervised target, which is why the loss reduces to matching that target.
True or false: predicting the noise ϵ and predicting the clean image x0 are mathematically equivalent parameterizations.
True — they are related by the invertible affine map derived above (x0=(xt−1−αˉtϵ)/αˉt), so either recovers the other; but predicting ϵ empirically trains more stably.
True or false: the first KL term DKL(q(xT∣x0)∥p(xT)) needs gradient updates.
False — it contains no learnable parameters (both sides are fixed), so it is a constant we ignore during optimization.
True or false: increasing T (more steps) always makes each individual denoising step easier to learn.
True (roughly) — a larger T over the same total noise means smaller per-step βt, so each reverse step is closer to a simple Gaussian, which is the whole point of breaking generation into many tiny steps.
"Since xt=1−βtxt−1+βtϵ, the variance grows as Var[xt−1]+βt each step."
Error: it forgets the 1−βt scaling — variance is (1−βt)Var[xt−1]+βt, which stays at 1, not grows.
"To combine two Gaussians aϵ1+bϵ2 we add the standard deviations: (a+b)ϵ."
Error: independent Gaussians add variances, not standard deviations, so the result is a+bϵ — exactly the merge that gives the closed-form sampler.
"The reverse posterior mean μ~t depends on xt only."
Error: it depends on bothxtandx0 (see the two-term blend above); at generation time we don't have x0, which is exactly why we need a network to stand in for it.
"Lsimple=E[∥ϵ−ϵθ(xt,t)∥2] where xt is a clean image."
Error:xt is the noised image αˉtx0+1−αˉtϵ; feeding a clean image would give the network nothing to denoise.
"Because αˉt=∏s=1tαs, larger t gives larger αˉt."
Error: each αs<1, so multiplying more of them shrinksαˉt toward 0 as t grows.
"The network outputs a full image at each reverse step, so we discard xt afterwards."
Error: the ϵ-prediction network outputs a noise estimate, which we combine with xt (via the μθ formula) to get xt−1 — xt is essential input, not discarded.
"DDPM is a VAE with one latent, so it has one encoder step."
Error: DDPM is like a VAE with a fixed, non-learned encoder unrolled over T latents x1,…,xT — a deep chain, not a single latent.
"At the last generation step we add fresh Gaussian noise to x0 before outputting."
Error: the final step (t=1→0) uses the mean only, adding no extra noise, otherwise the clean output would be re-corrupted.
Why do we condition on x0 to make the reverse step tractable, when at generation time we don't have x0?
Step-by-step: (1) the raw reverse q(xt−1∣xt) needs the whole data distribution, which we don't have; (2) but Bayes lets us write q(xt−1∣xt,x0)∝q(xt∣xt−1)q(xt−1∣x0), a product of two known Gaussians; (3) that product is a clean Gaussian N(μ~t,β~tI) we use as a training target; (4) the network learns to imitate μ~t from xt and t alone, so at inference it no longer needs x0.
Why does predicting noise ϵ work better than predicting the mean μ directly?
Because of the affine map derived above, all three targets (ϵ, x0, μ) carry the same information, butϵ∼N(0,I) has fixed unit scale for every t, whereas μ's magnitude swings with αˉt across timesteps; a constant-scale target keeps the loss well-conditioned and the gradients balanced.
Why must the reverse process take many small steps instead of one big learned jump?
A single jump would demand modeling the full, multi-modal data distribution from pure noise in one shot; instead, when each βt is tiny the true reverse step is provably nearly Gaussian, so a Gaussian network with a mean and variance is an accurate approximation — the Markov-chain framing stitches those easy steps into one hard generation.
Why is the forward process a Markov chain (each step depends only on the previous one)?
(1) The Markov structure lets the joint q(x1:T∣x0) factor into a product of one-step Gaussians; (2) that factorization is exactly what makes the per-step variances add when we merge them; (3) the merge is what collapses t steps into the single closed-form Gaussian q(xt∣x0) — no Markov property, no closed form.
Why can we drop the weighting terms and use the plain Lsimple loss?
The exact variational bound weights each timestep's KL by a factor that depends on βt,αˉt; Ho et al. found that setting all those weights to 1 (uniform over t) still descends the same landscape and empirically yields better samples, because it stops the loss from over-emphasizing the low-noise steps that already have tiny error.
Why do we normalize input data to roughly unit variance before diffusion?
The variance-preserving schedule keeps Var[xt]≈1only ifVar[x0]≈1; otherwise the endpoint xT would not match the N(0,I) prior we sample from at generation, and the reverse chain would start from the wrong distribution.
Why is the same U-Net used for all timesteps instead of one network per step?
We inject t as an input (via a time embedding), so a single weight-sharing network handles every noise level; with T=1000 steps, one network per step would be 1000× the parameters and impossible to train.
What happens to the reverse posterior variance β~t at t=1?
With αˉ0=1, we get β~1=1−αˉ11−αˉ0β1=0, meaning the last denoising step is deterministic — consistent with adding no noise at the final step.
What is xt if βt=0 for some step?
With βt=0 we have αt=1, so xt=xt−1 exactly — a "do-nothing" step that neither adds noise nor loses signal.
What is xt if βt=1?
Then αt=0, so xt=ϵ — the signal is erased in a single step, which is why schedules keep βt strictly below 1.
At t=0, what does the "noised" sample equal?
αˉ0=1 gives x0=1x0+0ϵ=x0 — no noise, the original data, as it must be.
If two independent noise draws ϵ1,ϵ2 happened to cancel, is the closed form still valid?
Yes — the closed form describes the distribution of xt, not any single draw; individual cancellations are just low-probability events within that Gaussian.
What happens at generation if the network's ϵθ is perfect (zero loss)?
Then pθ exactly matches the true conditional reverse posterior, and iterating it from N(0,I) produces samples from the true data distribution — the ideal but unreachable limit.
For very small t (nearly clean image), why is the network's job almost trivial?
With αˉt≈1 only a whisper of noise is present, so ϵθ has an easy target and the reverse step barely changes the image.
What is the largest and smallest value t can take?
t ranges over the finite integers 1 to T (with t=0 reserved for clean data); there is no step beyond T, so xT is the terminal near-Gaussian and the whole chain has fixed, bounded length.
Recall One-line self-test
Which of q and pθ is learned? ::: Only pθ (reverse); q (forward) is fixed.
Is q(xt−1∣xt) Gaussian? ::: Only when also conditioned on x0.
Does αˉt grow or shrink with t? ::: Shrinks toward 0.
What is the transition q(xt∣xt−1)? ::: N(xt;αtxt−1,βtI).