Diffusion Model¶
约 861 个字 预计阅读时间 3 分钟
总览 ¶
DDPM(Denoising Diffusion Probabilistic Models)的核心是两件事:
- 前向扩散:把真实数据逐步加噪,最后变成高斯噪声。
- 反向扩散:训练模型逐步去噪,从噪声还原出数据。
主线可以概括为:forward -> reverse -> optimization(ELBO) -> training -> sampling。
前向扩散是为了反向扩散训练 Noise Predictor 作为训练数据
前向扩散(Forward Process)¶

设数据为 \(x_0\),时间步 \(t=1,\dots,T\),噪声调度为 \(\beta_t \in (0,1)\),并定义: $$ alpha_t = 1-beta_t,quad bar{alpha}t = prodalpha_s $$}^{t
前向一步马尔可夫过程:
前向闭式:
等价重参数化:

直观理解
当 \(t\) 增大时,\(\bar{\alpha}_t\) 变小,图像信号衰减、噪声占比上升,最终接近纯高斯噪声。
反向扩散(Reverse Process)¶
这里面 Denoise 的模块和参数是完全一样的,但是噪声的模糊程度是不一样的,因此引入了一个新的参数 step(Time Embedding)。

上面是一个图简介,但实际上并不是简单的加噪声,详细的数学推导如下

真实后验 \(q(x_{t-1}|x_t)\) 直接求很难,因此用神经网络近似: $$ p_theta(x_{t-1}|x_t)=mathcal{N}left(x_{t-1};mu_theta(x_t,t),sigma_t^2 Iright) $$
DDPM 常用“预测噪声”参数化:网络输出 \(\epsilon_\theta(x_t,t)\),再由它构造均值:
采样时(从 \(x_T\sim\mathcal{N}(0,I)\) 开始
当 \(t=1\) 时通常不再加随机噪声(令 \(z=0\)
训练目标与 ELBO ¶
最大似然目标:
通过变分推导可得到 ELBO(课件中的 optimization view
实践中常用简化损失(MSE 预测噪声
为什么通常预测噪声而不是直接预测 \(x_0\)?
噪声在不同时间步的统计形式更一致,目标尺度更稳定,训练通常更容易收敛。
方差设置 ¶
反向过程的 \(\sigma_t^2\) 常见策略:
- Fixed-small:固定较小方差
- Fixed-large(DDPM):固定较大方差
- Hybrid(IDDPM):部分学习、部分固定
- Analytic/Optimal:解析或近似最优设定
方差设置会影响生成质量、采样稳定性和速度。
训练与采样流程 ¶
训练
- 采样真实样本 \(x_0\)、时间步 \(t\)、高斯噪声 \(\epsilon\)
- 用闭式公式构造 \(x_t\)
- 输入 \((x_t,t)\) 到 UNet,输出 \(\epsilon_\theta\)
- 用 \(\mathcal{L}_{\text{simple}}\) 回传更新参数
采样
- 从 \(x_T\sim\mathcal{N}(0,I)\) 开始
- 对 \(t=T,T-1,\dots,1\) 迭代去噪得到 \(x_{t-1}\)
- 最终得到生成样本 \(x_0\)
总结 ¶
DDPM 的本质是:先学会“加噪数据的统计规律”,再用神经网络学习其逆过程,实现从纯噪声到数据分布的逐步生成。