一句话定义
前向过程(forward process)按噪声调度逐步向真实图像添加微小高斯噪声,经 T 步后得到近似纯噪声,且任意时刻 t 的加噪结果有闭式解。
为什么重要
前向过程定义了「要被逆转的对象」:没有它就没有训练目标。它的两个设计量——步数 T 与噪声调度 β_t——直接决定模型难度与出图质量的底层上限;而「任意 t 一步到位的闭式解」是扩散模型可训练的关键工程性质,也是 img2img(kp-012)能从中途注入图像的数学基础。理解调度曲线,还能解释社区调参中「某些步数下画面突然变脏」的现象。
前置知识
kp-003(潜空间:加噪实际发生在潜码上);高斯分布的线性组合规则(本节推导给出)。
核心概念
- 噪声调度(noise schedule):每步加噪强度序列 β_1,…,β_T,决定「多快变成纯噪声」。
- α_t 与 ᾱ_t:记 α_t = 1 − β_t,累计量 ᾱ_t = α_1·α_2⋯α_t,是「原始信号保留比例」。
- 信噪比(SNR):信号方差与噪声方差之比 ᾱ_t/(1−ᾱ_t),随 t 单调下降。
- 重参数化(reparameterization):把随机变量表示成「确定性函数 + 独立噪声」,闭式解由此而来。
- 端点条件:ᾱ_T ≈ 0(信号几乎耗尽),ᾱ_1 ≈ 1(第一步几乎无噪)。
原理与机制
前向过程是一个固定(无参数)的马尔可夫链,每一步做轻微高斯扰动:
q(xt | xt−1) = 𝒩( xt ; √(1−βt) · xt−1 , βt I ), t = 1…T
√(1−β_t) 的缩放保证信号方差不发散(方差守恒)。关键性质是任意时刻可一步采样:反复应用高斯「均值相加、方差相加」的叠加规则(归纳推导见下节),得到闭式解:
xt = √ᾱt · x0 + √(1 − ᾱt) · ε, ε ∼ 𝒩(0, I)
直观读法:x_t 是「√ᾱ_t 份原图 + √(1−ᾱ_t) 份噪声」的线性混合,ᾱ_t 从 1 单调滑向 0。调度的选择因此就是在画这条 ᾱ 曲线:DDPM 原始论文用线性调度(β 从 10⁻⁴ 线性升到 0.02,T=1000);Improved DDPM 发现线性调度在高分辨率下过早摧毁信号,改用余弦调度(cosine schedule),让 ᾱ 在中间段缓慢下降、两端平滑,显著提升小尺寸细节的保真。后续工作(截至 2026-10 的主流实践)进一步关注末端 SNR 是否真正归零,影响采样端亮度稳定性。
公式与推导
两步归纳即可得闭式解。第一步:
xt = √αt xt−1 + √(1−αt) εt,代入 xt−1 = √αt−1 xt−2 + √(1−αt−1) εt−1
⟹ xt = √(αtαt−1) xt−2 + √( αt(1−αt−1) + (1−αt) ) ε̃
第二个噪声项方差为 α_t(1−α_{t−1}) + (1−α_t) = 1 − α_tα_{t−1}(展开即合),两个独立高斯之和仍是高斯。对模式「均值系数相乘、噪声方差补余」作 t 步归纳,得 ᾱ_t 形式的闭式解。自测推导:请亲手展开三步验证方差合并律,这是理解整条链的钥匙。
图示
ᾱt 单调递减:线性调度前段下降快(细节先死);余弦调度中段平缓(细节存活更久,训练信号更均衡)。
直观类比
像复印机「代际复印」:每代复印机都只有 3% 偏差,复印一百代后原件信息消失殆尽;ᾱ_t 就是「第 t 代还能认出原件的比例」。闭式解则像「可以直接计算第 37 代的复印件长什么样」而不必真复印 37 次。
实例或案例
- 取同一张潜码,令 t=0 输出几乎原图,t=250 出现「噪点蒙版下的原图」,t=999 为与种子相关的纯高斯图——这就是 img2img 选取中间时刻注入参考图的原理(kp-012)。
- 线性调度在 512² 分辨率上训练的模型,小物体(远处人脸)细节常弱于余弦调度模型——Improved DDPM 论文的核心实验结论。
常见误区
- 误区一:加噪越快(β 大)训练越高效。信号过早湮灭使大部分 t 的样本几乎不含原图信息,网络在中后段学到的是纯噪声预测,浪费容量且细节差。
- 误区二:x_t 的噪声是「叠加在同一层噪声上」。每步噪声独立,方差按 1−α_tα_{t−1} 规律合并,闭式解中的 ε 是「等效单次抽样」。
- 误区三:ᾱ_T 严格等于 0。只是近似 0;末端残余信号是部分模型(未做 zero-terminal SNR 修正时)生成图亮度整体偏亮的原因之一。
自测题
- 写出 x_t 的闭式解并解释两项含义。
答案要点:x_t = √ᾱ_t x₀ + √(1−ᾱ_t)ε;前者是信号保留部分,后者是等效累积噪声。
- 为什么调度要保证 ᾱ_1 ≈ 1?
答案要点:第一步几乎不加噪,保证 t 链覆盖「无损图像到纯噪声」的完整区间,否则近数据端无训练样本。
- 余弦调度解决了线性调度的什么问题?
答案要点:线性调度在高分辨率下末端 ᾱ 过快趋零,图像细节过早被噪声吞没;余弦调度让 ᾱ 平滑下降,训练更均衡。
与其他知识点的关系
kp-006 在此链上定义反向去噪与训练目标;kp-009 的采样器复用同一 ᾱ 表;kp-012 用闭式解实现中途注入;kp-024 讨论调度与步数对算力的影响。
延伸阅读
DDPM 论文(NeurIPS 2020)第 4 节;Improved DDPM(ICML 2021)第 3 节关于余弦调度的动机与曲线图。