前向加噪过程与噪声调度

核心 约 30 分钟 ★ 最小路径 扩散模型前向过程噪声调度DDPM最小路径
前置知识点(建议先学)
学习状态:

一句话定义

前向过程(forward process)按噪声调度逐步向真实图像添加微小高斯噪声,经 T 步后得到近似纯噪声,且任意时刻 t 的加噪结果有闭式解。

为什么重要

前向过程定义了「要被逆转的对象」:没有它就没有训练目标。它的两个设计量——步数 T 与噪声调度 β_t——直接决定模型难度与出图质量的底层上限;而「任意 t 一步到位的闭式解」是扩散模型可训练的关键工程性质,也是 img2img(kp-012)能从中途注入图像的数学基础。理解调度曲线,还能解释社区调参中「某些步数下画面突然变脏」的现象。

前置知识

kp-003(潜空间:加噪实际发生在潜码上);高斯分布的线性组合规则(本节推导给出)。

核心概念

原理与机制

前向过程是一个固定(无参数)的马尔可夫链,每一步做轻微高斯扰动:

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 形式的闭式解。自测推导:请亲手展开三步验证方差合并律,这是理解整条链的钥匙。

图示

x₀ 原图→x₁→x₂ …→x₅₀₀ 半噪半图→x_T ≈ 纯噪声

ᾱt 单调递减:线性调度前段下降快(细节先死);余弦调度中段平缓(细节存活更久,训练信号更均衡)。

直观类比

像复印机「代际复印」:每代复印机都只有 3% 偏差,复印一百代后原件信息消失殆尽;ᾱ_t 就是「第 t 代还能认出原件的比例」。闭式解则像「可以直接计算第 37 代的复印件长什么样」而不必真复印 37 次。

实例或案例

常见误区

自测题

  1. 写出 x_t 的闭式解并解释两项含义。

答案要点:x_t = √ᾱ_t x₀ + √(1−ᾱ_t)ε;前者是信号保留部分,后者是等效累积噪声。

  1. 为什么调度要保证 ᾱ_1 ≈ 1?

答案要点:第一步几乎不加噪,保证 t 链覆盖「无损图像到纯噪声」的完整区间,否则近数据端无训练样本。

  1. 余弦调度解决了线性调度的什么问题?

答案要点:线性调度在高分辨率下末端 ᾱ 过快趋零,图像细节过早被噪声吞没;余弦调度让 ᾱ 平滑下降,训练更均衡。

与其他知识点的关系

kp-006 在此链上定义反向去噪与训练目标;kp-009 的采样器复用同一 ᾱ 表;kp-012 用闭式解实现中途注入;kp-024 讨论调度与步数对算力的影响。

延伸阅读

DDPM 论文(NeurIPS 2020)第 4 节;Improved DDPM(ICML 2021)第 3 节关于余弦调度的动机与曲线图。

相关知识点