0. DDPM的优化目标
扩散模型的最终目标是学习一个从噪声生成真实数据的分布 pθ(x0)。最直接的方法是极大似然估计:
θmaxlogpθ(x0)
其中x0表示训练图片,pθ为参数为θ的模型生成图片x0的概率。
DDPM 本质上是一个隐变量生成模型(与 VAE 同类)。它不直接对复杂的高维数据分布建模,而是引入一组隐变量 x1,…,xT,通过一个 T 步的反向马尔可夫链定义联合分布:
pθ(x0:T)=p(xT)t=1∏Tpθ(xt−1∣xt)
既然模型定义的是联合分布,数据分布 pθ(x0) ( x0是观测数据)就必然是这个联合分布的边缘分布——通过对所有隐变量积分得到:
pθ(x0)=∫pθ(x0:T)dx1:T=∫pθ(x0,x1:T)dx1:T
解释:
- pθ(x0:T) 是扩散模型反向过程的联合分布,表示从纯噪声 xT 逐步去噪生成数据 x0 的概率。
- 但我们只关心最终生成数据 x0 的似然(边缘似然),因此需要对所有中间隐变量 x1,x2,…,xT(简记为 x1:T)进行积分,将其"边缘化"掉。
使用的定理:
- 概率边缘化公式(Law of Total Probability / Marginalization)。对于连续随机变量,联合分布对其中一部分变量积分即得剩余变量的边缘分布。
这不是人为“引入”的数学技巧,而是模型定义的自然结果。 扩散模型选择用隐变量链来建模复杂数据分布,将“一次性从噪声生成高维数据”这个不可能直接学习的任务,分解为 T 步简单的去噪高斯转移。代价就是:我们必须处理这个边缘积分。
这个边缘积分遍历了所有可能的隐变量(加噪序列)x1,x2,…,xT,他面临三个根本障碍:
| 困难 |
说明 |
| 无法解析积分 |
反向过程 pθ(xt−1∣xt) 是神经网络,没有闭式解 |
| 无法直接采样 |
从 pθ(x0:T) 采样需要先验知识,而反向过程正是我们要学习的 |
| 无法求梯度 |
积分号包裹着神经网络,无法直接对 θ 求梯度优化 |
因此,必须引入数学工具,将"不可积分的极大似然"转化为"可计算、可采样、可求梯度"的目标。
1. 从边缘似然到 ELBO
第 1 步:引入前向过程(构造重要性采样权重)
为了处理上述积分,DDPM 引入一个预定义且不含参数的前向加噪过程 q(x1:T∣x0),并通过恒等变换(分子分母同乘 q)改写边缘分布:
pθ(x0)=∫q(x1:T∣x0)pθ(x0:T)⋅q(x1:T∣x0)dx1:T
解释:
- 这里分子分母同乘了 q(x1:T∣x0),数学上值不变。
- q(x1:T∣x0) 是扩散模型的前向过程(加噪过程),它是已知且可计算的:给定真实数据 x0,按照预定义的高斯转移核逐步加噪得到 x1,…,xT。
- 直接对 pθ(x0:T) 积分很困难(因为反向过程含神经网络参数 θ),但前向过程 q 是解析可知的。通过这种方式,我们把积分测度从"困难的 dx1:T“转化为"已知的 q(x1:T∣x0)dx1:T”。
使用的定理/原理:
- 重要性采样(Importance Sampling) 的基本思想。当目标分布难以直接采样或积分时,引入一个容易处理的提议分布(proposal distribution) q,通过权重 qp 修正偏差。
直觉类比:
- 想象你要测量一块崎岖地形(目标分布 p)的平均高度,但直接在地形上均匀撒点很困难。于是你搭建一个规则的脚手架(提议分布 q),在脚手架上均匀撒点,然后给每个点乘以一个修正系数(权重 p/q),使得最终结果等价于直接在原地形上测量。
核心目的:
引入 q 不是为了"消掉 pθ",而是为了把"无法下手的积分"变成"可以采样或解析处理的期望"。 pθ 仍然参与计算,但现在它出现在一个我们已经知道如何操作(采样或解析展开)的数学结构中。
为什么这样做使问题变得可解?
| 维度 |
直接处理 pθ |
引入 q 后 |
| 采样 |
无法从复杂的反向过程采样 |
可以从前向过程 q 采样 x1:T |
| 积分测度 |
未知结构的 dx1:T |
已知高斯链的 q(x1:T∣x0)dx1:T |
| 前提 |
— |
q 的支撑集必须覆盖 p 的支撑集(DDPM 中 q 是高斯,自动满足) |
第 2 步:积分转期望
∫q(x1:T∣x0)pθ(x0:T)⋅q(x1:T∣x0)dx1:T⇒∫q(x1:T∣x0)pθ(x0:T)⋅q(x1:T∣x0)dx1:T⇒Ex1:T∼q(x1:T∣x0)[q(x1:T∣x0)pθ(x0:T)]
解释:
- 根据连续型随机变量期望的定义,若 x∼q(x),则 Eq[f(x)]=∫f(x)q(x)dx。
- 这里 f(x1:T)=q(x1:T∣x0)pθ(x0:T),测度为 q(x1:T∣x0)dx1:T,因此积分直接转化为期望形式。
- 这意味着:数据 x0 的似然等于在前向加噪轨迹 x1:T 上,反向联合概率与前向条件概率之比 的期望。
使用的定理 :期望的积分定义(Definition of Expectation for Continuous Random Variables)。
第 3 步:计算ELBO
- 对第2步的等式两边取对数,利用 Jensen 不等式(log 是严格凹函数,故 logE[⋅]≥E[log⋅]):
logpθ(x0)=logEx1:T∼q(x1:T∣x0)[q(x1:T∣x0)pθ(x0:T)]≥Eq(x1:T∣x0)[logq(x1:T∣x0)pθ(x0:T)]
- 再对 x0∼q(x0) 取期望,利用 q(x0:T)=q(x0)q(x1:T∣x0),即得 ELBO:
Ex0∼q(x0)[logpθ(x0)]≥ELBOEx0:T∼q(x0:T)[logq(x1:T∣x0)pθ(x0:T)]
使用的定理 :Jensen 不等式:对凹函数 f ,有$ f(E[X])≥E[f(X)] $。
总结:使用的核心定理
| 步骤 |
核心定理/原理 |
作用 |
| 第 1 步 |
重要性采样(Importance Sampling) |
引入已知的前向分布 q 作为提议分布 |
| 第 2 步 |
期望的积分定义 |
将难以直接计算的积分转化为可采样的期望 |
| 第 3 步 |
Jensen 不等式 |
计算期望的ELBO |
这三行推导的本质是:用已知的前向加噪过程作为"桥梁",将未知的反向生成过程的边缘似然,转化为一个可以通过采样估计的期望形式,从而使整个扩散模型的训练成为可能。
2. 从 ELBO 到可解析的KL
记 ELBO 为 LELBO(最大化它即最大化对数似然logpθ(x0)的下界):
LELBO=Eq(x0:T)[logq(x1:T∣x0)pθ(x0:T)]
第 1 步:联合分布的链式分解
利用马尔可夫假设,联合分布可以分解为时间步的乘积。具体形式如下。
反向过程的联合分布(由模型定义:含参数 θ):
pθ(x0:T)=p(xT)t=1∏Tpθ(xt−1∣xt)
其中 p(xT)=N(xT;0,I) 是先验,pθ(xt−1∣xt) 是去噪转移模型。
前向过程的条件分布(已知且固定:加噪,无参数):
q(x1:T∣x0)=t=1∏Tq(xt∣xt−1)
其中 q(xt∣xt−1)=N(xt;1−βtxt−1,βtI)。
代入 ELBO:
LELBO=Eq(x0:T)[logp(xT)+t=1∑Tlogpθ(xt−1∣xt)−t=1∑Tlogq(xt∣xt−1)](11)
第 2 步:利用贝叶斯定理求得去噪后验
这是推导中最关键的一步。要求解LELBO中的 pθ(xt−1∣xt),则需要pθ(xt−1∣xt)匹配某个真实的反向去噪分布。但前向过程只定义了 q(xt∣xt−1)(加噪),没有直接给出 q(xt−1∣xt)(后向去噪过程)。引入原始数据x0后,则可以解析后向去噪过程q(xt−1∣xt,x0)。
条件于 x0 不是可选的,而是必须的——没有 x0 作为锚点,反向过程在统计上是不可识别的。
直觉解释:
- 前向加噪是"把清晰图片 x0 一步步变成纯噪声"——路径确定。反向去噪是"从噪声恢复图片"——如果你只知道当前噪声图 xt,你根本不知道它来自哪张原始图片,统计上不可识别。但如果你额外知道原始清晰图 x0,那么"从 x0 到 xt 的路径"就是唯一确定的,"上一步 xt−1 应该是什么"就有了确定性的统计答案。
具体地,由贝叶斯定理得到q(xt−1∣xt,x0):
q(xt−1∣xt,x0)=q(xt∣x0)q(xt∣xt−1,x0)q(xt−1∣x0)(12)
由于分子分母都是高斯分布,结果仍是高斯分布,且均值和方差有闭式解析表达式(由 αt,αˉt 等超参数决定)。
要将(11)中q(xt∣xt−1)转换为q(xt−1∣xt,x0)。首先,利用贝叶斯变换可以从(12)得到q(xt∣xt−1,x0):
q(xt∣xt−1,x0)=q(xt−1∣x0)q(xt−1∣xt,x0)q(xt∣x0)
然后,利用前向过程的马尔可夫性 q(xt∣xt−1,x0)=q(xt∣xt−1),整理得:
q(xt∣xt−1)=q(xt−1∣x0)q(xt−1∣xt,x0)q(xt∣x0)
对 t=1 到 T 求积:
t=1∏Tq(xt∣xt−1)=∏t=1Tq(xt−1∣x0)∏t=1Tq(xt−1∣xt,x0)⋅∏t=1Tq(xt∣x0)
调整求和指标 ∏t=1Tq(xt−1∣x0)=∏t=0T−1q(xt∣x0),于是分子分母交叉相消(telescoping):
t=1∏Tq(xt∣xt−1)=q(x0∣x0)∏t=1Tq(xt−1∣xt,x0)⋅q(xT∣x0)
取对数(q(x0∣x0) 为 delta 分布,logq(x0∣x0) 为常数,可忽略):
t=1∑Tlogq(xt∣xt−1)=logq(xT∣x0)+t=1∑Tlogq(xt−1∣xt,x0)+C
将结果代回(11)公式中,得到:
LELBO=Eq(x0:T)[logq(xT∣x0)p(xT)+t=1∑Tlogq(xt−1∣xt,x0)pθ(xt−1∣xt)]+C
第 3 步:将 ELBO 分解为 KL 散度之和
利用期望的线性性,将ELBO 拆为 T+1 个独立期望之和:
LELBO=第 0 项Eq(x0:T)[logq(xT∣x0)p(xT)]+t=1∑T第 t 项Eq(x0:T)[logq(xt−1∣xt,x0)pθ(xt−1∣xt)]+C
利用重期望公式(Law of Total Expectation / Tower Property),对第 0项 :
Eq(x0:T)[logq(xT∣x0)p(xT)]=Eq(x0)[Eq(xT∣x0)[logq(xT∣x0)p(xT)]]=−DKL(q(xT∣x0)∥p(xT))
利用重期望公式(Law of Total Expectation / Tower Property),对每一项 t:
Eq(x0:T)[logq(xt−1∣xt,x0)pθ(xt−1∣xt)]=Eq(x0,xt)[Eq(xt−1∣xt,x0)[logq(xt−1∣xt,x0)pθ(xt−1∣xt)]]
=−Eq(x0,xt)[DKL(q(xt−1∣xt,x0)∥pθ(xt−1∣xt))]
最终得到精确的变分下界(VLB):
LVLB=−DKL(q(xT∣x0)∥p(xT))−t=1∑TLt−1Eq(x0,xt)[DKL(q(xt−1∣xt,x0)∥pθ(xt−1∣xt))]+C
其中 Lt−1 为核心训练目标。他表示每一步去噪分布 pθ 要匹配真实去噪后验 q。
使用的定理/原理:
- KL 散度的定义:DKL(q∥p)=Eq[log(q/p)]
- 期望的线性性(Linearity of Expectation)
- 重期望公式/塔性质(Law of Total Expectation):
Eq(x0:T)[⋅]=Eq(x0,xt)[Eq(x1:T∖{t}∣x0,xt)[⋅]]
3. 从 KL 散度到噪声预测的MSE
第 1 步:计算高斯分布间的 KL 散度
在 DDPM 中,所有分布均为高斯:
前向后验 q(xt−1∣xt,x0)(通过贝叶斯定理可解析求出):
q(xt−1∣xt,x0)=N(xt−1;μ~t(xt,x0),β~tI)
其中:
μ~t(xt,x0)=1−αˉtαˉt−1βtx0+1−αˉtαt(1−αˉt−1)xt,β~t=1−αˉt1−αˉt−1βt
模型分布 pθ(xt−1∣xt)(设为高斯,方差固定):
pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),σt2I)
两个同方差高斯 N(μq,σq2I) 与 N(μp,σp2I),其 KL 散度有解析公式:
DKL(N(μq,σq2I)∥N(μp,σp2I))=21[dlogσq2σp2−d+σp2dσq2+σp2∥μq−μp∥2]
当 σq2=β~t 且 σp2=σt2 均固定时,前 3 项与 θ 无关,因此:
Lt−1∝Eq(x0,xt)[2σt21∥μ~t(xt,x0)−μθ(xt,t)∥2]+C
优化 ELBO 等价于最小化后验均值与模型均值之间的 L2 距离。
第 2 步:噪声参数化(Noise Parameterization)
这是将损失转化为 MSE 的核心技巧。
由前向过程的重参数化:
xt=αˉtx0+1−αˉtϵ,ϵ∼N(0,I)
反解出 x0=αˉtxt−1−αˉtϵ,代入 μ~t(xt,x0):
μ~t(xt,x0)=αt1(xt−1−αˉtβtϵ)
DDPM 将模型均值设为相同形式,但用网络 ϵθ 预测噪声:
μθ(xt,t)=αt1(xt−1−αˉtβtϵθ(xt,t))
将μ~t和μθ(xt,t)代入 Lt−1:
∥μ~t−μθ∥2=αt(1−αˉt)βt2∥ϵ−ϵθ(xt,t)∥2
第 3 步:简化目标得到 MSE 损失
严格来说,精确的 ELBO 优化的损失应为:
Lexact=t=1∑TEx0,ϵ[2σt2αt(1−αˉt)βt2∥ϵ−ϵθ(xt,t)∥2]+LT+L0
但 Ho et al. (2020) 发现:忽略与 θ 无关的常数项和权重系数(即对所有 t 使用相同权重),训练效果更好。由此得到简化损失:
Lsimple=Ex0∼q(x0),ϵ∼N(0,I),t∼U{1,T}∥ϵ−ϵθ(xtαˉtx0+1−αˉtϵ,t)∥2
这正是 DDPM 论文中的 MSE 损失——模型 ϵθ 学习预测前向过程中注入的噪声 ϵ。
4. 总结:推导链中的关键定理
| 推导阶段 |
使用的核心定理/数学工具 |
| 边缘似然 → 期望 → ELBO |
边缘化公式、重要性采样恒等式、期望定义、Jensen 不等式(logE[Z]≥E[logZ]) |
| ELBO → KL 之和 |
贝叶斯定理、马尔可夫性、重期望公式、KL 散度定义 |
| KL → 精确 MSE → 简化 MSE |
多元高斯 KL 解析公式、重参数化技巧、工程近似(忽略权重系数) |
整个推导的本质是从"无法优化的极大似然"到"可执行的训练代码"。DDPM 的推导经历了以下逻辑链条:
-
模型定义:扩散模型通过隐变量链 pθ(x0:T) 定义生成过程,数据分布 pθ(x0) 是其边缘分布,必须通过对 x1:T 积分得到。
-
原始困难:logpθ(x0) 需要对包含神经网络的高维隐变量积分,无法解析、无法采样、无法求梯度。
-
引入前向过程(重要性采样):通过改变积分测度,将"对未知空间的积分"转化为"对已知分布的期望"。此时 pθ 仍在,但已嵌入可采样的结构中。
-
构造 ELBO:利用 Jensen 不等式得到可优化的下界。ELBO 是关于 q 的期望,可以通过前向过程采样估计。
-
贝叶斯求后验:通过贝叶斯定理,得到条件后验 q(xt−1∣xt,x0)。这是训练时可用的"教师分布",但依赖 x0。
-
参数化与重参数化:将反向过程参数化为高斯,利用两个高斯 KL 散度的解析解,再通过重参数化技巧,将"预测均值"转化为"预测噪声",最终得到:
Loss=∥ϵ−ϵθ(xt,t)∥2
通过最小化上面的loss,训练ϵθ(xt,t)的过程可以看做是学生模型ϵ对教师分布 q(xt−1∣xt,x0)的拟合 :教师分布 q(xt−1∣xt,x0) 是"开卷答案",推理时不可用;神经网络 pθ(xt−1∣xt) 是"闭卷能力",通过拟合大量开卷答案学会泛化。