张芷铭的个人博客

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 核心思想:

  1. 扩散过程:将数据逐步转化为噪声
  2. 逆扩散过程:通过去噪逐步恢复数据

通过最大化变分下界并使用 L2 损失,DDPM 有效训练去噪网络生成高质量样本。

Comments