DDPM(Denoising Diffusion Probabilistic Models)通过模拟扩散过程将数据逐步转化为噪声,再学习逆向去噪恢复数据。
参考资料:Diffusion Models Papers Survey
扩散过程(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 \in [1, T]$
- $\beta_t$:时间步 $t$ 添加的噪声强度,随步数增加而增大
- $\mathcal{N}(\mu, \sigma^2)$:高斯分布
核心过程:从 $x_0$ 开始,每次迭代添加小噪声,样本逐渐变得不清晰,最终 $x_T$ 接近纯噪声。
逆扩散过程(Reverse Process)
目标是从噪声样本 $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)$:噪声协方差
损失函数与训练
训练目标最大化变分下界(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]$$
简化为噪声预测损失:
$$\mathcal{L}(\theta) = \mathbb{E}{q} \left[ | \epsilon\theta(x_t, t) - \epsilon |^2 \right]$$
- $\epsilon_\theta(x_t, t)$:模型预测的噪声
- $\epsilon$:实际噪声
- $| \cdot |^2$:L2 损失函数
采样过程
训练完成后,从噪声样本 $x_T$ 开始逐步去噪生成新样本。每一步模型根据当前样本 $x_t$ 和时间步 $t$ 生成去噪后的样本 $x_{t-1}$。
总结
DDPM 核心思想:
- 扩散过程:将数据逐步转化为噪声
- 逆扩散过程:通过去噪逐步恢复数据
通过最大化变分下界并使用 L2 损失,DDPM 有效训练去噪网络生成高质量样本。
张芷铭的个人博客
Comments