去噪扩散概率模型定义一个逐渐破坏数据的固定过程,并学习一个逐步重建样本的逆过程。
前向过程
设方差调度为 βt,且 αt=1−βt,
q(xt∣xt−1)=N(xt;αtxt−1,(1−αt)I).
令 αˉt=∏s=1tαs。任意时间步都可以直接从干净数据采样:
xt=αˉtx0+1−αˉtϵ,ϵ∼N(0,I).
这个闭式形式使训练时无需模拟此前的每一步加噪。
学习逆过程
生成需要逆向转移
pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),Σθ(xt,t)).
一种常见参数化会预测加入 x0 的噪声。广泛使用的简化目标为
Ex0,t,ϵ[ϵ−ϵθ(αˉtx0+1−αˉtϵ,t)22].
这种噪声预测损失与变分目标有关,但具体加权和参数化非常重要;“用均方误差预测噪声”并不是所有扩散模型的完整定义。
- 从选定的噪声分布中采样 xT。
- 对 t=T,…,1,使用学习到的模型和采样器得到 xt−1。
- 返回最终的 x0 表示。
条件控制会向去噪器提供额外信息,例如类别、文本表示或测量值。引导可以增强条件约束,但也会改变多样性、保真度或校准之间的权衡。
从噪声预测得到逆向一步
对原始论文算法 1–2中的离散高斯 DDPM,取 0<βt<1、αˉ0=1。噪声调度须使 αˉT 接近零,终端分布才近似标准高斯;否则从 N(0,I) 开始生成会有分布失配,不能仅凭步数很多就忽略它。
使用预测 epsilon 的网络时,逆向均值为
μθ(xt,t)=αt1(xt−1−αˉtβtϵθ(xt,t)).
一种固定方差选择是 β~t=βt(1−αˉt−1)/(1−αˉt)。在 t>1 时重新抽取 ξ∼N(0,I),计算 xt−1=μθ+β~tξ;t=1 时直接返回均值,不再加新噪声。这只定义了一种采样器。给定 xt 和 x0 的精确前向后验是高斯,但不知道 x0 时的逆向条件分布一般不是高斯;学习到的高斯转移是一种建模近似。
手算一个标量例子:αˉt=0.64、x0=2、本次训练噪声 ϵ=1,则 xt=0.8(2)+0.6(1)=2.2。若网络预测 0.5,噪声平方误差为 0.25,对应 x^0=(2.2−0.6(0.5))/0.8=2.375。如果预测恰好等于本次抽取的噪声,算术上可恢复 2;但仅凭 xt 无法唯一确定这次噪声。MSE 学习的是条件均值预测,不是能精确逆转每次随机抽样的“答案”。
训练时抽取数据、时间步(通常从 1 到 T 均匀抽取)和噪声,计算一次去噪器,再用梯度更新参数。生成时没有干净目标,权重固定,反复调用去噪器。噪声目标和网络输出的形状都与 xt 相同,时间步条件告诉网络要处理哪个噪声水平。本文覆盖离散高斯 DDPM,不扩展到流匹配或全部连续时间、蒸馏采样方法。
设计与评估边界
- 噪声调度、预测目标、模型架构和采样器是彼此独立的设计选择。
- 标准采样是迭代式的,可能需要多次模型求值;更快的采样器会用近似行为换取计算量。
- 较低的去噪目标值本身不能证明感知质量、多样性、似然质量或实用性。
- 条件生成可能复现训练数据中的偏见或记忆结构。
- 模型的输出空间、预处理和解码器可能与去噪器同样重要。
- 当前的图像、音频或 API 产品属于前沿笔记;本文只负责持久的概率过程。
规范起点是论文 Denoising Diffusion Probabilistic Models。框架特定的 U-Net 和采样实现留给持续维护的库与论文。