扩散概率模型(Denoising Diffusion Probabilistic Models, DDPM) 是一种生成模型,用于生成高质量的数据样本,尤其在图像生成任务中取得了显著的成功。DDPM的基本思想是通过模拟一个图像的扩散过程,将数据逐步转化为噪声,然后学习如何从噪声中逆向恢复出原始数据。它依赖于扩散过程的逆过程,通过逐步去噪来生成新的样本。 参考资料:
https://github.com/YangLing0818/Diffusion-Models-Papers-Survey-Taxonomy
![[diffusion model process.png]]
1. 扩散过程(Forward Process)
扩散过程的目标是将数据样本 $x_0$(例如图像)转化为纯噪声。这个过程是一个马尔可夫过程,每一步都添加一定量的噪声。具体地,扩散过程通过以下方程表示:
$$
q(x_t | x_{t-1}) = \mathcal{N}(x_t; \sqrt{1 - \beta_t} x_{t-1}, \beta_t I)
$$
这里: • $x_0$ 是初始数据样本(例如图像)。 • $x_t$ 是在第 $t$ 步的样本,$t$ 从 $1$ 到 $T$(通常为一个大数,表示扩散的总步骤数)。 • $\beta_t$ 是在时间步 $t$ 添加的噪声的强度。通常,$\beta_t$ 会随着步数的增加而增大。 • $\mathcal{N}(\mu, \sigma^2)$ 是高斯分布,表示如何从 $x_{t-1}$ 生成 $x_t$。
扩散过程的核心是从 $x_0$ 开始,每次迭代都加上一个小的噪声,使得样本变得越来越不清晰,最终变成纯噪声。这样,$x_T$(在扩散过程的最后一步)几乎可以视为完全的噪声样本。
$\beta_t$ 是什么 #不懂
2. 逆扩散过程(Reverse Process) DDPM的目标是学习如何从噪声样本 $x_T$ 中恢复到真实的样本 $x_0$。逆扩散过程也是一个马尔可夫链,目标是学习每一步如何去除噪声,以逐步从噪声中恢复出原始样本。逆扩散过程的条件概率可以表示为:
$$
p_\theta(x_{t-1} | x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(t))
$$
这里,$p_\theta(x_{t-1} | x_t)$ 是模型学习的去噪分布,$\mu_\theta(x_t, t)$ 是去噪过程中的均值,$\Sigma_\theta(t)$ 是噪声的协方差。这个模型需要通过训练来拟合。
逆扩散过程的核心是逐步去除噪声,将 $x_T$ 恢复到原始样本 $x_0$。通过多次去噪,DDPM能够逐步恢复出一个新的样本。
3. 损失函数与训练
DDPM的训练目标是最小化生成过程中的误差,通常使用变分下界(Variational Lower Bound, VLB)来进行优化。具体来说,我们通过最大化以下目标来训练模型:
$$
\log p_\theta(x_0) \geq \mathbb{E}{q} \left[ \log \frac{p\theta(x_0, x_1, …, x_T)}{q(x_1, …, x_T | x_0)} \right]
$$
这个目标实际上是通过最大化逆过程(从噪声到数据)和正向扩散过程的对数似然来实现的。为了简化训练,DDPM通常采用一个变种的损失函数,这个损失函数只依赖于每个时间步的去噪任务。
通过去噪每一个时间步,DDPM的训练目标通常被简化为以下形式:
$$
\mathcal{L}(\theta) = \mathbb{E}{q} \left[ | \epsilon\theta(x_t, t) - \epsilon |^2 \right]
$$
其中:
• $\epsilon_\theta(x_t, t)$ 是模型输出的噪声预测,表示去噪模型的估计。
• $\epsilon$ 是实际的噪声,它是从正向过程生成的。
• $| \cdot |^2$ 是L2损失函数,表示模型预测的噪声与实际噪声之间的差异。
4. 采样过程
训练完成后,DDPM可以用于生成新的数据样本。生成过程遵循逆扩散过程,即从噪声样本 $x_T$ 开始,逐步去噪生成新的样本。在每一步,模型根据当前的样本 $x_t$ 和时间步 $t$,生成去噪后的样本 $x_{t-1}$。
最终,经过多次去噪,模型将从纯噪声生成出一个新的数据样本 $x_0$。
5. 总结
DDPM的核心思想是通过模拟一个逐步加噪声的扩散过程和一个逐步去噪的逆过程,训练一个模型来从噪声中恢复出真实数据。它的数学原理可以分为两个主要部分:
扩散过程:将数据逐步转化为噪声。
逆扩散过程:通过去噪逐步恢复数据。
通过最大化变分下界并使用L2损失函数,DDPM能够有效地训练一个去噪网络,以生成高质量的样本。
💬 评论