Skip to main content

Forward Diffusion Process

Forward diffusion process は、clean data x0x_0 に少しずつ Gaussian noise を加えていく process です。最終的には、data distribution はほぼ standard Gaussian になります。

Markov chain

DDPM では、forward process は固定された Markov chain として定義されます。

q(xtxt1)=N(xt;1βtxt1,βtI)q(x_t \mid x_{t-1}) = \mathcal{N}(x_t; \sqrt{1 - \beta_t}x_{t-1}, \beta_t I)

ここで、βt\beta_t は noise schedule です。各 step でどれだけ noise を加えるかを決めます。

Closed form

αt=1βt\alpha_t = 1 - \beta_tαˉt=s=1tαs\bar{\alpha}_t = \prod_{s=1}^{t}\alpha_s とすると、x0x_0 から任意の時刻 ttxtx_t を直接 sampling できます。

q(xtx0)=N(xt;αˉtx0,(1αˉt)I)q(x_t \mid x_0) = \mathcal{N}(x_t; \sqrt{\bar{\alpha}_t}x_0, (1 - \bar{\alpha}_t)I)

したがって、次のように書けます。

xt=αˉtx0+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)

Langevin dynamics との関係

Diffusion process は、noise を加えながら distribution を変化させる process であり、stochastic gradient Langevin dynamics とも関係があります。Diffusion model の reverse process は、noise を取り除きながら score に沿って data distribution へ戻る process として解釈できます。

関連ページ