他们的核心思想都是将来自简单分布的噪声转换为数据样本,DDPM 也正是如此,它从纯噪声开始学习并逐渐对数据进行去噪;
DDPM 主要包含两个处理过程,
从数据分布(某个数据集)采样一张真实图像,前向过程在每一时间步都对上一时间步的图像添加采样自高斯分布的噪声,以获得当前加噪图像。经过充分大时间步且具有较好的添加噪声的模式,最终会在有限步内(例如 $T=1000$)获得各向同性高斯分布。
真实数据分布记为 $q(x_0)$,采样的图像表示为 $x_0\sim q(x_0)$,已知的方差模式为 $0< \beta_1 < \beta_2 < \cdots < \beta_T <1$,则前向过程定义为
$$ q(x_t|x_{t-1}) = N(x_t; \sqrt{1-\beta_t}x_{t-1},\beta_tI) $$
时间步 $t$ 处的包含更大噪声的图像是从上一时间步 $t-1$ 加噪而来,构造的数据分布为条件高斯分布,即从该条件高斯分布中采样得到。条件高斯分布的参数为,$\mu_t = \sqrt{1-\beta_t}x_{t-1}, \sigma_t^2 = \beta_t$。
我们知道对一个非标准正态分布 $x\sim N(\mu, \sigma^2)$,其标准化对应的公式为 $z=\frac{x-\mu}{\sigma}\sim N(0, 1)$ 可以将其转变为标准正态分布。因此我们易得,$x$ 对应的变换公式为 $x = \mu + \sigma z$
因此,我们可以在每一时间步通过采样 $\epsilon\sim N(0, I)$ 然后表示