Skip to main content

Reverse Diffusion Process

Reverse diffusion process は、noise から data を生成する process です。Forward process が x0x_0 に noise を加えて xTx_T に向かうのに対して、reverse process は xTx_T から x0x_0 へ戻ります。

Learned reverse transition

DDPM では、reverse process を次の Gaussian transition として parameterize します。

pθ(xt1xt)=N(xt1;μθ(xt,t),Σθ(xt,t))p_\theta(x_{t-1} \mid x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(x_t, t))

Neural network は、各時刻 tt において、どのように xtx_t から noise を取り除いて xt1x_{t-1} を得るかを学習します。

Denoising の見方

Reverse process は、step ごとの denoising として理解できます。各 step では、現在の noisy sample xtx_t から、少しだけ clean な sample xt1x_{t-1} を予測します。

DDPM algorithm

画像出典: Lilian Weng, “What are Diffusion Models?”。DDPM の training と sampling の algorithm が示されています。

なぜ step が多いのか

一度に pure noise から clean data を生成するのは難しいため、Diffusion Model は多くの小さな denoising step に分解します。この分解によって、各 step の問題は比較的単純になります。一方で、sampling には多くの step が必要になるため、速度が課題になります。

関連ページ