Class GaussianDiffusion()
calculate_for_diffusion()
q ( x t − 1 ∣ x t , x 0 ) ∝ N ( x t − 1 ; μ ~ ( x t , x 0 , t ) , σ 2 ( t ) I ) q\left(x_{t-1} \mid x_t, x_0\right) \propto \mathcal{N}\left(x_{t-1} ; \tilde{\boldsymbol{\mu}}\left(x_t, x_0, t\right), \sigma^2(t) I\right) q(xt−1∣xt,x0)∝N(xt−1;μ~(xt,x0,t),σ2(t)I), where
{ μ ~ ( x t , x 0 , t ) = α t ( 1 − α ˉ t − 1 ) 1 − α ˉ t x t + α ˉ t − 1 ( 1 − α t ) 1 − α ˉ t x 0 , σ 2 ( t ) = ( 1 − α t ) ( 1 − α ˉ t − 1 ) 1 − α ˉ t . \left\{\begin{array}{l} \tilde{\boldsymbol{\mu}}\left(\boldsymbol{x}_t, \boldsymbol{x}_0, t\right)=\frac{\sqrt{\alpha_t}\left(1-\bar{\alpha}_{t-1}\right)}{1-\bar{\alpha}_t} x_t+\frac{\sqrt{\bar{\alpha}_{t-1}}\left(1-\alpha_t\right)}{1-\bar{\alpha}_t} \boldsymbol{x}_0, \\ \sigma^2(t)=\frac{\left(1-\alpha_t\right)\left(1-\bar{\alpha}_{t-1}\right)}{1-\bar{\alpha}_t} . \end{array}\right. {
μ~(xt,x0,t)=1−αˉt