Skip to content

Denoising diffusion implicit model

DDIM reuses a diffusion noise predictor to sample along a chosen time grid. With eta zero, updates are deterministic given the initial noise, but generated samples remain random.

A denoising diffusion implicit model (DDIM) generates data by repeatedly applying a trained diffusion noise predictor, with a sampling rule that can omit intermediate noise levels. Its usual deterministic form adds no fresh noise during these updates. For a quant experimenting with synthetic market scenarios, this offers a way to reduce generation cost; it does not establish that the resulting scenarios have realistic financial tails or dependence. Song, Meng and Ermon, §§4.1–4.2.

Read the clock before the update

Diffusion time indexes noise level, not trading time. A whole return window could be one observation x0x_0; the index tt then describes how much artificial noise has been added to that window.

In the usual DDPM notation, let βt\beta_t be the forward noise variance, αt=1−βt\alpha_t=1-\beta_t, and

αˉt=∏j=1tαj,αˉ0=1.\bar\alpha_t=\prod_{j=1}^{t}\alpha_j,\qquad \bar\alpha_0=1.

The bar matters: αˉt\bar\alpha_t is cumulative signal retention, not one step's retention. The forward marginal can be sampled as

xt=αˉt x0+1−αˉt ϵ,ϵ∼N(0,I).x_t=\sqrt{\bar\alpha_t}\,x_0+\sqrt{1-\bar\alpha_t}\,\epsilon, \qquad \epsilon\sim\mathcal{N}(0,I).
Here II is the identity covariance; for a scalar it is 1. Increasing tt reduces αˉt\bar\alpha_t and increases the noise weight. Generation runs the other way: from a noisy state tt to an earlier state s<ts<t, where αˉs>αˉt\bar\alpha_s>\bar\alpha_t. These conventions follow Ho, Jain and Abbeel, §2; the DDIM paper writes the cumulative quantity as αt\alpha_t without a bar.
A network ϵθ(xt,t)\epsilon_\theta(x_t,t) learns to predict the injected noise across noise levels using a squared-error objective. The standard-normal draw used to corrupt a training observation is known during training; it must be inferred at generation time. Ho et al., §3.4.

Estimate clean data, then move to less noise

Write ϵ^=ϵθ(xt,t)\hat\epsilon=\epsilon_\theta(x_t,t). The predicted clean observation is

x^0=xt−1−αˉt ϵ^αˉt.\hat x_0=\frac{x_t-\sqrt{1-\bar\alpha_t}\,\hat\epsilon}{\sqrt{\bar\alpha_t}}.

For a chosen earlier sampling time ss, the generalised update is

xs=αˉs x^0+1−αˉs−σt,s2 ϵ^+σt,sz,z∼N(0,I),x_s=\sqrt{\bar\alpha_s}\,\hat x_0 +\sqrt{1-\bar\alpha_s-\sigma_{t,s}^2}\,\hat\epsilon +\sigma_{t,s}z, \qquad z\sim\mathcal{N}(0,I), σt,s=η1−αˉs1−αˉt1−αˉtαˉs.\sigma_{t,s} =\eta\sqrt{\frac{1-\bar\alpha_s}{1-\bar\alpha_t}} \sqrt{1-\frac{\bar\alpha_t}{\bar\alpha_s}}.
Take 0≤η≤10\leq\eta\leq1 here. At η=0\eta=0, the final random term disappears, leaving a weighted clean estimate and a retained predicted-noise direction. The noise-direction term generally remains nonzero. At η=1\eta=1, this variance choice gives a DDPM-type stochastic update on the selected grid; it does not describe every DDPM variance convention. The authors' reference implementation computes these three components explicitly.
For a fixed predictor, conditioning inputs and grid, zero-noise updates are deterministic given the starting state. Sampling normally begins with random xT∼N(0,I)x_T\sim\mathcal{N}(0,I), so repeated draws of that initial state still generate a distribution of outputs.

One scalar step you can audit

Use an artificial dimensionless clean value x0=2x_0=2 and stipulated noise ϵ=−1\epsilon=-1. With αˉt=0.64\bar\alpha_t=0.64,

xt=0.8(2)+0.6(−1)=1.x_t=0.8(2)+0.6(-1)=1.

Assume a perfect predictor returns ϵ^=−1\hat\epsilon=-1. It recovers

x^0=1−0.6(−1)0.8=2.\hat x_0=\frac{1-0.6(-1)}{0.8}=2.

Now choose an earlier noise level with αˉs=0.81\bar\alpha_s=0.81. The deterministic update is

xs=0.9(2)+0.19(−1)=1.3641101056…x_s=0.9(2)+\sqrt{0.19}(-1) =1.3641101056\ldots

The scalar has increased while becoming less noisy: denoising need not decrease a coordinate's value. This calculation stipulates the correct noise; a real trained predictor does not receive the original clean value or its corruption draw. Exact recovery here is an assumption of the toy, not a DDIM guarantee.

Synthetic perfect-predictor DDIM step with eta zero: at alpha-bar 0.64, clean contribution 1.6 plus noise contribution minus 0.6 gives 1. At alpha-bar 0.81, 1.8 minus 0.43589 gives 1.36411. Fresh-noise contribution is zero.
Synthetic perfect-predictor DDIM step with eta zero: at alpha-bar 0.64, clean contribution 1.6 plus noise contribution minus 0.6 gives 1. At alpha-bar 0.81, 1.8 minus 0.43589 gives 1.36411. Fresh-noise contribution is zero.
Original dimensionless scalar example, not a fitted financial model. The predicted clean value and noise are held fixed for one update; their schedule weights change.

What fewer steps change

DDIM changes the sampling construction while reusing the DDPM denoising objective. Its derivation uses alternative, non-Markovian forward joint distributions with the same noisy-data marginals. This does not mean the generated update needs the entire past trajectory: the displayed rule uses the current state and predictor.

A shorter selected time grid requires fewer sequential network evaluations. With an imperfect predictor, changing the grid can change the final output even for identical initial noise. The original image experiments demonstrate a speed–quality trade-off, not universal accuracy at any step count. DDIM, §§3–5.

For a financial diffusion generator, evaluate the chosen sampling grid on held-out periods, including joint dependence, tail events and downstream risk calculations. Keep conditioning information and preprocessing within the relevant historical cutoff. Faster sampling cannot correct a misspecified training distribution or information leakage. Nor does the denoising clock itself define an arbitrage-free price process.

Sources

Last updated
  • generative modelling
  • diffusion models
  • sampling
  • denoising
← Back to the glossaryBack to top ↑