Skip to content
← Generative AI
Q49

DDPM noise schedule: alpha-bar and signal-to-noise decay

DiffusionDDPMNoise Schedule
A DDPM uses a noise schedule beta_1, beta_2, beta_3 over 3 timesteps. The question's original source gave specific numeric values that were lost in copy-paste — they did NOT survive into this text. Given a toy schedule, calculate alpha_t, the cumulative products alpha_bar_t, and sqrt(alpha_bar_t)/sqrt(1-alpha_bar_t). Analyze how the signal and noise contributions change across the diffusion steps.

What's actually being asked

Work out α_t, the cumulative products ᾱ_t, and the signal-to-noise term √ᾱ_t / √(1−ᾱ_t) for a 3-step DDPM schedule, then explain the trend across steps.

Answer

Note on the numbers: the source text for this question lost the actual β_1, β_2, β_3 values during copy-paste — they never made it into what's given here. So below is the method worked fully and correctly on an illustrative 3-step schedule (β_1 = 0.1, β_2 = 0.2, β_3 = 0.3) — swap in the real numbers and redo these same three steps if you get them.

Step 1 — α_t

α_t = 1 − β_t

tβ_tα_t = 1 − β_t
10.10.9
20.20.8
30.30.7

Step 2 — cumulative product ᾱ_t

ᾱ_t = Π_{s=1}^{t} α_s — multiply every α up to and including step t.

  • ᾱ_1 = α_1 = 0.9
  • ᾱ_2 = α_1·α_2 = 0.9 × 0.8 = 0.72
  • ᾱ_3 = α_1·α_2·α_3 = 0.72 × 0.7 = 0.504

ᾱ_t only ever shrinks as t grows — every α_s < 1, so multiplying in one more always pulls it down further.

Step 3 — √ᾱ_t and √(1−ᾱ_t)

From the closed form x_t = √ᾱ_t · x_0 + √(1−ᾱ_t) · ε, √ᾱ_t is the weight on the original signal x_0 and √(1−ᾱ_t) is the weight on the injected noise ε.

tᾱ_t√ᾱ_t1−ᾱ_t√(1−ᾱ_t)√ᾱ_t / √(1−ᾱ_t)
10.9000.94870.1000.31623.000
20.7200.84850.2800.52921.603
30.5040.70990.4960.70431.008

(Check at t=1: 0.9/0.1 = 9, and √9 = 3 exactly, so no rounding slop there.)

Analysis — signal vs noise across steps

The ratio √ᾱ_t / √(1−ᾱ_t) is effectively the signal-to-noise ratio (SNR) of x_t. In this toy schedule it falls from 3.0 at t=1 to about 1.0 by t=3 — by the third step the signal term and the noise term are contributing almost equally to x_t. Matlab shabdo mein, har step ke saath original image ka contribution kam hota jaa raha hai aur random noise ka contribution badhta jaa raha hai.

Two things worth carrying forward:

  • ᾱ_t is monotonically decreasing in t, always — it's a product of numbers each less than 1, so it can never go back up.
  • A real DDPM schedule (e.g. linear β from 1e-4 to 0.02 over T = 1000 steps) decays far more gently per step than this fast 3-step toy example — SNR only approaches 0 near the final timestep, by which point x_T is, by design, indistinguishable from pure Gaussian noise N(0, I).

Exam tip

If the paper gives actual β values, repeat the exact three steps in order — α_t → ᾱ_t (cumulative product, not sum) → the two square roots. The most common mistake is summing β_t instead of multiplying (1−β_t) terms; always convert to α_t first, then take the running product.