This page is a workout . The parent note built the machinery; here we run it through every kind of question the topic can ask. Before each answer you must forecast — guess the result. Guessing wrong is how you learn where your intuition breaks.
Everything below only uses tools the parent already earned:
β t = the amount of noise added at step t (a small positive number).
α t = 1 − β t = the fraction of signal strength kept at step t .
α ˉ t = α 1 α 2 ⋯ α t = total signal kept from the start up to step t (a running product).
SNR ( t ) = 1 − α ˉ t α ˉ t = signal-to-noise ratio (how loud the picture is versus the static).
σ ( x ) = 1 + e x e x = the sigmoid, a smooth S that squashes any number into ( 0 , 1 ) .
Intuition One picture to hold onto
α ˉ t starts near 1 (clear photo) and slides down toward 0 (pure static). The schedule is just the shape of that slide. Every example below is a question about that slide: how fast, at which point, what happens at the ends.
Every question this topic throws lands in one of these cells. The worked examples afterward are labelled with the cell they cover.
Cell
What makes it tricky
Example
A. Single step forward
apply one β t , no product yet
Ex 1
B. Multi-step collapse to x 0
recursive product α ˉ t
Ex 2
C. Linear schedule, interior point
evaluate α ˉ t from a formula
Ex 3
D. Cosine schedule, interior point
trig-based α ˉ t
Ex 4
E. Boundary t = 0 (degenerate)
α ˉ 0 = 1 ⇒ SNR = ∞
Ex 5
F. Boundary t = T (limiting)
α ˉ T → 0 , does it reach prior?
Ex 5
G. Invert SNR to get α ˉ
sigmoid appears
Ex 6
H. Sign / monotonicity check
is β t > 0 ? is α ˉ decreasing?
Ex 7
I. Real-world word problem
pick a schedule for a budget of steps
Ex 8
J. Exam twist
"prove one recovers the other" edge case
Ex 9
Worked example Ex 1 — Cell A: one forward step, by hand
Statement. You have a clean pixel value x 0 = 4 . The schedule gives β 1 = 0.01 . A noise sample ϵ 0 = 1.5 is drawn. What is x 1 from x 1 = α 1 x 0 + 1 − α 1 ϵ 0 ?
Forecast: the signal barely shrinks, plus a little noise — guess x 1 close to 4 .
α 1 = 1 − β 1 = 0.99 . Why this step? α is defined as the kept fraction; we always convert β → α before using the update.
α 1 = 0.99 ≈ 0.994987 . Why? The update scales the signal by α , not α — this keeps total variance at 1 (see Ex 2).
1 − α 1 = 0.01 = 0.1 . Why? This is the noise amplitude added this step.
x 1 = 0.994987 ⋅ 4 + 0.1 ⋅ 1.5 = 3.979949 + 0.15 = 4.129949 .
Verify: Signal term 3.98 is just under 4 (tiny shrink ✓), noise adds 0.15 . Result ≈ 4.13 sits near 4 as forecast. Units: pixel intensity in, pixel intensity out ✓.
Worked example Ex 2 — Cell B: why the variances add to exactly
1
Statement. Show that if x 0 is fixed and each ϵ is standard normal (variance 1 ), then α ˉ t and 1 − α ˉ t are the correct signal and noise variances in x t = α ˉ t x 0 + 1 − α ˉ t ϵ . Check numerically for t = 2 , α 1 = 0.99 , α 2 = 0.98 .
Forecast: the two independent noise pieces should combine into one piece whose variance is 1 − α ˉ 2 .
α ˉ 2 = α 1 α 2 = 0.99 ⋅ 0.98 = 0.9702 . Why? α ˉ is the running product of kept fractions.
Expand the two-step recurrence: x 2 = α 2 ( α 1 x 0 + 1 − α 1 ϵ 0 ) + 1 − α 2 ϵ 1 . Why? We substitute x 1 's formula into x 2 's — that's what "recursive" means.
Noise variance = α 2 ( 1 − α 1 ) + ( 1 − α 2 ) . Why this step? Independent Gaussians add variances (parent's key insight); each noise term contributes its squared amplitude.
= α 2 − α 2 α 1 + 1 − α 2 = 1 − α 1 α 2 = 1 − α ˉ 2 . Why? The α 2 cancels, leaving exactly the complement of the product. ✓
Number: 1 − α ˉ 2 = 1 − 0.9702 = 0.0298 .
Verify: signal var 0.9702 + noise var 0.0298 = 1.0000 . Total variance is preserved — that is why we scale by α and not α . ✓
Worked example Ex 3 — Cell C: linear schedule at an interior step
Statement. Linear DDPM, T = 1000 , β 1 = 1 0 − 4 , β T = 0.02 . Estimate α ˉ 100 .
Forecast: parent quoted ≈ 0.90 . Let's see the arithmetic that lands there.
β t = β 1 + T − 1 ( t − 1 ) ( β T − β 1 ) , so the first 100 β 's run from 1 0 − 4 up to about β 100 ≈ 0.00208 . Why? Linear interpolation between endpoints.
α ˉ 100 = ∏ s = 1 100 ( 1 − β s ) . Why? Definition of α ˉ .
Use log α ˉ 100 = ∑ s = 1 100 log ( 1 − β s ) ≈ − ∑ β s since β s is tiny. Why this step? For small x , log ( 1 − x ) ≈ − x — turns a scary product into an easy sum.
∑ s = 1 100 β s ≈ 100 ⋅ 2 1 0 − 4 + 0.00208 = 100 ⋅ 0.00109 = 0.109 . Why? Average of a linear ramp × count = area of a trapezoid.
α ˉ 100 ≈ e − 0.109 ≈ 0.897 .
Verify: 0.897 ≈ 0.90 ✓ matches the parent's table. About 10% signal lost by step 100 — consistent with "linear rushes early."
Worked example Ex 4 — Cell D: cosine schedule at the midpoint
Statement. Cosine schedule, T = 1000 , s = 0.008 . Compute α ˉ 500 using α ˉ t = f ( 0 ) f ( t ) , f ( t ) = cos 2 ( 1 + s t / T + s ⋅ 2 π ) .
Forecast: parent says cosine keeps half the signal at the midpoint. Guess ≈ 0.5 .
Inner angle at t = 500 : 1.008 0.5 + 0.008 ⋅ 2 π = 0.50397 ⋅ 1.570796 = 0.79163 rad. Why? Plug t / T = 0.5 ; the s -offset just shifts it slightly.
f ( 500 ) = cos 2 ( 0.79163 ) = ( 0.70320 ) 2 = 0.49449 . Why cos 2 ? Squaring keeps f ≥ 0 so α ˉ stays a valid variance-fraction.
f ( 0 ) = cos 2 ( 1.008 0.008 ⋅ 2 π ) = cos 2 ( 0.012467 ) = 0.999845 . Why? Normalizing so that α ˉ 0 = f ( 0 ) / f ( 0 ) = 1 exactly.
α ˉ 500 = 0.49449/0.999845 = 0.49456 .
Verify: 0.4946 ≈ 0.50 ✓. Compare to linear's α ˉ 500 ≈ 0.03 (Ex 3's cousin) — cosine holds 16× more signal at the same midpoint. That is the whole point of the S-curve.
Worked example Ex 5 — Cells E & F: the two boundaries
Statement. (E) Evaluate SNR ( 0 ) for a raw schedule with α ˉ 0 = 1 . (F) For linear DDPM, is α ˉ 1000 small enough to call x T "pure noise" (< 1 0 − 2 )?
Forecast: (E) something blows up. (F) yes, very close to 0 .
(E) SNR ( 0 ) = 1 − α ˉ 0 α ˉ 0 = 1 − 1 1 = 0 1 . Why does this matter? Division by zero — log SNR ( 0 ) = + ∞ . This is the degenerate boundary the parent warned about.
Fix: clip α ˉ 0 = 1 − ε . With ε = 1 0 − 5 : SNR ( 0 ) = 1 0 − 5 1 − 1 0 − 5 ≈ 99999 , so log SNR ≈ 11.5 — finite. Why? A tiny bit of noise makes the ratio well-defined without changing the picture visibly.
(F) Full linear sum: ∑ s = 1 1000 β s ≈ 1000 ⋅ 2 1 0 − 4 + 0.02 = 1000 ⋅ 0.01005 = 10.05 . Why? Trapezoid area again over all 1000 steps.
α ˉ 1000 ≈ e − 10.05 ≈ 4.3 × 1 0 − 5 . Why e − sum ? Same log ( 1 − x ) ≈ − x trick as Ex 3.
Verify: (E) ∞ tamed to ≈ 11.5 ✓. (F) 4.3 × 1 0 − 5 < 1 0 − 2 ✓ — x T is statistically indistinguishable from the N ( 0 , I ) prior, exactly what the reverse process assumes as its starting point (4.5.11-Forward-and-reverse-diffusion-process ).
Worked example Ex 6 — Cell G: invert log-SNR back into
α ˉ
Statement. An SNR-linear schedule sets λ ( t ) = log SNR ( t ) with λ m a x = 11.5 , λ m i n = − 11.5 , T = 1000 . Find α ˉ t at t = 500 .
Forecast: at the exact middle λ = 0 , and σ ( 0 ) = 0.5 , so α ˉ 500 = 0.5 .
λ ( 500 ) = λ m a x − 1000 500 ( λ m a x − λ m i n ) = 11.5 − 0.5 ⋅ 23 = 0 . Why? Straight-line interpolation of log-SNR — the design goal (constant difficulty per step).
Invert the SNR definition: from 1 − α ˉ α ˉ = e λ we solve α ˉ = 1 + e λ e λ = σ ( λ ) . Why sigmoid? It is the exact algebraic inverse of "ratio → fraction"; no approximation.
α ˉ 500 = σ ( 0 ) = 1 + 1 1 = 0.5 .
Verify: σ ( 0 ) = 0.5 ✓. Sanity: at t = 0 , α ˉ 0 = σ ( 11.5 ) = 0.99999 (just under 1, the regularized start ✓); at t = T , α ˉ T = σ ( − 11.5 ) = 1.0 × 1 0 − 5 (near pure noise ✓). Both boundaries land where the parent said they should — see 4.5.15-Score-matching for why constant log-SNR spacing keeps score magnitudes tame.
Worked example Ex 7 — Cell H: sign & monotonicity sanity check
Statement. Someone hands you β = ( 0.01 , 0.02 , − 0.005 , 0.03 ) for T = 4 . Is this a valid schedule? What breaks?
Forecast: the negative β 3 is illegal — noise amount can't be negative.
Check each β t ∈ ( 0 , 1 ) . β 3 = − 0.005 < 0 . Why does this matter? β t is a variance; variances are never negative.
Consequence: α 3 = 1 − ( − 0.005 ) = 1.005 > 1 . Why bad? α 3 > 1 would amplify the signal — the forward process must only shrink it.
Monotonicity of α ˉ : with a valid schedule α ˉ t = α ˉ t − 1 ⋅ α t and α t < 1 forces α ˉ t < α ˉ t − 1 (strictly decreasing). Here α ˉ 3 = α ˉ 2 ⋅ 1.005 > α ˉ 2 — signal increased , impossible. Why? Adding noise can never restore signal.
Verify: Valid prefix α ˉ 2 = 0.99 ⋅ 0.98 = 0.9702 (decreasing ✓); invalid step gives α ˉ 3 = 0.9702 ⋅ 1.005 = 0.97505 > 0.9702 ✗. Rule: every β t ∈ ( 0 , 1 ) and α ˉ must be strictly decreasing.
Worked example Ex 8 — Cell I: real-world budget word problem
Statement. You can only afford T = 250 sampling steps for 256 × 256 faces. Linear-1000 gave FID 3.17 ; cosine-1000 gave FID 2.94 ; cosine-250 gave FID 3.21 . Which schedule do you ship, and roughly how much faster is it than cosine-1000?
Forecast: cosine-250 — it keeps quality while cutting steps.
Compare quality: cosine-250 FID 3.21 vs linear-1000 FID 3.17 . Why compare to linear-1000? It's the standard baseline; cosine-250 nearly matches it with 4 1 the steps.
Speed ratio vs cosine-1000: 250 1000 = 4 × fewer steps. Why? Wall-clock scales roughly linearly with number of denoising steps (4.5.18-Fast-sampling ).
Quality loss vs cosine-1000: 3.21 − 2.94 = 0.27 FID. Why acceptable? A sub-0.3 FID gap is visually negligible for a 4 × speedup.
Verify: Ship cosine-250 : 4 × faster, FID 3.21 (still better-or-equal to linear baseline 3.17 within noise). Trade-off math checks out ✓.
Worked example Ex 9 — Cell J: exam twist ("prove the two views agree")
Statement. Show that the cosine schedule and the SNR-sigmoid schedule are two faces of the same object: given any α ˉ t ∈ ( 0 , 1 ) , the log-SNR you'd read off equals log 1 − α ˉ t α ˉ t , and pushing that back through σ returns the original α ˉ t . Test with cosine's α ˉ 500 = 0.49456 from Ex 4.
Forecast: round-trip should return 0.49456 exactly.
Forward: λ = log 1 − 0.49456 0.49456 = log 0.50544 0.49456 = log ( 0.97847 ) = − 0.021764 . Why? This is the log-SNR implied by cosine at that step — no new schedule, just a re-read.
Backward: σ ( λ ) = 1 + e − 0.021764 e − 0.021764 = 1.978471 0.978471 = 0.49456 . Why? σ and log 1 − x x are exact inverses (logit and sigmoid).
Conclusion: any α ˉ -schedule can be renamed a log-SNR schedule and vice-versa. Why care? Denoising-objective weightings (4.5.13-Denoising-objective ) are often written in log-SNR because it's the natural difficulty coordinate.
Verify: round-trip returns 0.49456 to 5 decimals ✓. Cosine and SNR-linear differ only in which coordinate they draw a straight line in , not in kind.
Recall Quick self-test
Every valid β t lies in which interval? ::: ( 0 , 1 ) — strictly positive, strictly below one.
Why is SNR ( 0 ) infinite and how do we tame it? ::: α ˉ 0 = 1 gives 0 1 ; clip α ˉ 0 = 1 − ε .
What single number converts a log-SNR λ back to α ˉ ? ::: the sigmoid, α ˉ = σ ( λ ) .
At the midpoint, cosine keeps roughly how much signal vs linear? ::: cosine ≈ 0.50 , linear ≈ 0.03 .
Mnemonic The slide never climbs
B eta in ( 0 , 1 ) , A lpha-bar only D escends. "BAD stays down" — a schedule where α ˉ ever rises is a BAD schedule.