扩散模型DDPM的Loss推导详解

0. DDPM的优化目标

扩散模型的最终目标是学习一个从噪声生成真实数据的分布 pθ(x0)p_\theta(x_0)。最直接的方法是极大似然估计

maxθlogpθ(x0)\max_{\theta} \log p_{\theta}(x_0)

其中x0x_0表示训练图片,pθp_{\theta}为参数为θ\theta的模型生成图片x0x_0的概率。

DDPM 本质上是一个隐变量生成模型(与 VAE 同类)。它不直接对复杂的高维数据分布建模,而是引入一组隐变量 x1,,xTx_1, \ldots, x_T,通过一个 TT 步的反向马尔可夫链定义联合分布

pθ(x0:T)=p(xT)t=1Tpθ(xt1xt)p_\theta(x_{0:T}) = p(x_T) \prod_{t=1}^T p_\theta(x_{t-1} \mid x_t)

既然模型定义的是联合分布,数据分布 pθ(x0)p_\theta(x_0)x0x_0是观测数据)就必然是这个联合分布的边缘分布——通过对所有隐变量积分得到:

pθ(x0)=pθ(x0:T)dx1:T=pθ(x0,x1:T)dx1:Tp_\theta(x_0) = \int p_\theta(x_{0:T}) \, dx_{1:T} = \int p_\theta(x_0, x_{1:T}) \, dx_{1:T}

解释:

  • pθ(x0:T)p_\theta(x_{0:T}) 是扩散模型反向过程的联合分布,表示从纯噪声 xTx_T 逐步去噪生成数据 x0x_0 的概率。
  • 但我们只关心最终生成数据 x0x_0 的似然(边缘似然),因此需要对所有中间隐变量 x1,x2,,xTx_1, x_2, \dots, x_T(简记为 x1:Tx_{1:T})进行积分,将其"边缘化"掉。

使用的定理:

  • 概率边缘化公式(Law of Total Probability / Marginalization)。对于连续随机变量,联合分布对其中一部分变量积分即得剩余变量的边缘分布。

这不是人为“引入”的数学技巧,而是模型定义的自然结果。 扩散模型选择用隐变量链来建模复杂数据分布,将“一次性从噪声生成高维数据”这个不可能直接学习的任务,分解为 TT 步简单的去噪高斯转移。代价就是:我们必须处理这个边缘积分。

这个边缘积分遍历了所有可能的隐变量(加噪序列)x1,x2,,xTx_1, x_2, \dots, x_T,他面临三个根本障碍:

困难 说明
无法解析积分 反向过程 pθ(xt1xt)p_\theta(x_{t-1}|x_t) 是神经网络,没有闭式解
无法直接采样 pθ(x0:T)p_\theta(x_{0:T}) 采样需要先验知识,而反向过程正是我们要学习的
无法求梯度 积分号包裹着神经网络,无法直接对 θ\theta 求梯度优化

因此,必须引入数学工具,将"不可积分的极大似然"转化为"可计算、可采样、可求梯度"的目标。


1. 从边缘似然到 ELBO

第 1 步:引入前向过程(构造重要性采样权重)

为了处理上述积分,DDPM 引入一个预定义且不含参数的前向加噪过程 q(x1:Tx0)q(x_{1:T} \mid x_0),并通过恒等变换(分子分母同乘 qq)改写边缘分布:

pθ(x0)=pθ(x0:T)q(x1:Tx0)q(x1:Tx0)dx1:Tp_\theta(x_0) = \int \frac{p_\theta(x_{0:T}) \cdot q(x_{1:T}|x_0)}{q(x_{1:T}|x_0)} \, dx_{1:T}

解释:

  • 这里分子分母同乘了 q(x1:Tx0)q(x_{1:T}|x_0),数学上值不变。
  • q(x1:Tx0)q(x_{1:T}|x_0) 是扩散模型的前向过程(加噪过程),它是已知且可计算的:给定真实数据 x0x_0,按照预定义的高斯转移核逐步加噪得到 x1,,xTx_1, \dots, x_T
  • 直接对 pθ(x0:T)p_\theta(x_{0:T}) 积分很困难(因为反向过程含神经网络参数 θ\theta),但前向过程 qq 是解析可知的。通过这种方式,我们把积分测度从"困难的 dx1:Tdx_{1:T}“转化为"已知的 q(x1:Tx0)dx1:Tq(x_{1:T}|x_0)dx_{1:T}”。

使用的定理/原理

  • 重要性采样(Importance Sampling) 的基本思想。当目标分布难以直接采样或积分时,引入一个容易处理的提议分布(proposal distribution) qq,通过权重 pq\frac{p}{q} 修正偏差。

直觉类比

  • 想象你要测量一块崎岖地形(目标分布 pp)的平均高度,但直接在地形上均匀撒点很困难。于是你搭建一个规则的脚手架(提议分布 qq),在脚手架上均匀撒点,然后给每个点乘以一个修正系数(权重 p/qp/q),使得最终结果等价于直接在原地形上测量。

核心目的

引入 qq 不是为了"消掉 pθp_\theta",而是为了把"无法下手的积分"变成"可以采样或解析处理的期望"。 pθp_\theta 仍然参与计算,但现在它出现在一个我们已经知道如何操作(采样或解析展开)的数学结构中。

为什么这样做使问题变得可解?

维度 直接处理 pθp_\theta 引入 qq
采样 无法从复杂的反向过程采样 可以从前向过程 qq 采样 x1:Tx_{1:T}
积分测度 未知结构的 dx1:Tdx_{1:T} 已知高斯链的 q(x1:Tx0)dx1:Tq(x_{1:T} \mid x_0) dx_{1:T}
前提 qq 的支撑集必须覆盖 pp 的支撑集(DDPM 中 qq 是高斯,自动满足)

第 2 步:积分转期望

pθ(x0:T)q(x1:Tx0)q(x1:Tx0)dx1:Tpθ(x0:T)q(x1:Tx0)q(x1:Tx0)dx1:TEx1:Tq(x1:Tx0)[pθ(x0:T)q(x1:Tx0)]\int \frac{p_\theta(x_{0:T}) \cdot q(x_{1:T}|x_0)}{q(x_{1:T}|x_0)} \, dx_{1:T} \Rightarrow \int \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)} \cdot q(x_{1:T}|x_0) \, dx_{1:T} \Rightarrow \mathbb{E}_{x_{1:T} \sim q(x_{1:T}|x_0)} \left[ \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)} \right]

解释:

  • 根据连续型随机变量期望的定义,若 xq(x)x \sim q(x),则 Eq[f(x)]=f(x)q(x)dx\mathbb{E}_q[f(x)] = \int f(x) q(x) dx
  • 这里 f(x1:T)=pθ(x0:T)q(x1:Tx0)f(x_{1:T}) = \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)},测度为 q(x1:Tx0)dx1:Tq(x_{1:T}|x_0)dx_{1:T},因此积分直接转化为期望形式。
  • 这意味着:数据 x0x_0 的似然等于在前向加噪轨迹 x1:Tx_{1:T} 上,反向联合概率与前向条件概率之比 的期望

使用的定理期望的积分定义(Definition of Expectation for Continuous Random Variables)。

第 3 步:计算ELBO

  1. 对第2步的等式两边取对数,利用 Jensen 不等式log\log 是严格凹函数,故 logE[]E[log]\log\mathbb{E}[\cdot] \geq \mathbb{E}[\log \cdot]):

logpθ(x0)=logEx1:Tq(x1:Tx0)[pθ(x0:T)q(x1:Tx0)]Eq(x1:Tx0)[logpθ(x0:T)q(x1:Tx0)]\log p_\theta(x_0) = \log \mathbb{E}_{x_{1:T} \sim q(x_{1:T}|x_0)} \left[ \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)} \right] \geq \mathbb{E}_{q(x_{1:T}|x_0)}\left[\log \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)}\right]

  1. 再对 x0q(x0)x_0 \sim q(x_0) 取期望,利用 q(x0:T)=q(x0)q(x1:Tx0)q(x_{0:T}) = q(x_0)q(x_{1:T}|x_0),即得 ELBO:

Ex0q(x0)[logpθ(x0)]Ex0:Tq(x0:T)[logpθ(x0:T)q(x1:Tx0)]ELBO\boxed{\mathbb{E}_{x_0 \sim q(x_0)}\left[\log p_\theta(x_0)\right] \geq \underbrace{\mathbb{E}_{x_{0:T} \sim q(x_{0:T})}\left[\log \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)}\right]}_{\text{ELBO}}}

使用的定理 :Jensen 不等式:对凹函数 ff ,有$ f(E[X])≥E[f(X)] $。

总结:使用的核心定理

步骤 核心定理/原理 作用
第 1 步 重要性采样(Importance Sampling) 引入已知的前向分布 qq 作为提议分布
第 2 步 期望的积分定义 将难以直接计算的积分转化为可采样的期望
第 3 步 Jensen 不等式 计算期望的ELBO

这三行推导的本质是:用已知的前向加噪过程作为"桥梁",将未知的反向生成过程的边缘似然,转化为一个可以通过采样估计的期望形式,从而使整个扩散模型的训练成为可能。


2. 从 ELBO 到可解析的KL

记 ELBO 为 LELBO\mathcal{L}_{\text{ELBO}}(最大化它即最大化对数似然logpθ(x0)\log p_\theta(x_0)的下界):

LELBO=Eq(x0:T)[logpθ(x0:T)q(x1:Tx0)]\mathcal{L}_{\text{ELBO}} = \mathbb{E}_{q(x_{0:T})}\left[\log \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)}\right]

第 1 步:联合分布的链式分解

利用马尔可夫假设,联合分布可以分解为时间步的乘积。具体形式如下。

反向过程的联合分布(由模型定义:含参数 θ\theta):

pθ(x0:T)=p(xT)t=1Tpθ(xt1xt)p_\theta(x_{0:T}) = p(x_T) \prod_{t=1}^T p_\theta(x_{t-1}|x_t)

其中 p(xT)=N(xT;0,I)p(x_T) = \mathcal{N}(x_T; 0, I) 是先验,pθ(xt1xt)p_\theta(x_{t-1}|x_t) 是去噪转移模型。

前向过程的条件分布(已知且固定:加噪,无参数):

q(x1:Tx0)=t=1Tq(xtxt1)q(x_{1:T}|x_0) = \prod_{t=1}^T q(x_t|x_{t-1})

其中 q(xtxt1)=N(xt;1βtxt1,βtI)q(x_t|x_{t-1}) = \mathcal{N}(x_t; \sqrt{1-\beta_t}x_{t-1}, \beta_t I)

代入 ELBO:

LELBO=Eq(x0:T)[logp(xT)+t=1Tlogpθ(xt1xt)t=1Tlogq(xtxt1)](11)\mathcal{L}_{\text{ELBO}} = \mathbb{E}_{q(x_{0:T})}\left[\log p(x_T) + \sum_{t=1}^T \log p_\theta(x_{t-1}|x_t) - \sum_{t=1}^T \log q(x_t|x_{t-1})\right] \tag{11}

第 2 步:利用贝叶斯定理求得去噪后验

这是推导中最关键的一步。要求解LELBO\mathcal{L}_{\text{ELBO}}中的 pθ(xt1xt)p_\theta(x_{t-1} \mid x_t),则需要pθ(xt1xt)p_\theta(x_{t-1} \mid x_t)匹配某个真实的反向去噪分布。但前向过程只定义了 q(xtxt1)q(x_t \mid x_{t-1})(加噪),没有直接给出 q(xt1xt)q(x_{t-1} \mid x_t)(后向去噪过程)。引入原始数据x0x_0后,则可以解析后向去噪过程q(xt1xt,x0)q(x_{t-1}|x_t, x_0)

条件于 x0x_0 不是可选的,而是必须的——没有 x0x_0 作为锚点,反向过程在统计上是不可识别的。

直觉解释

  • 前向加噪是"把清晰图片 x0x_0 一步步变成纯噪声"——路径确定。反向去噪是"从噪声恢复图片"——如果你只知道当前噪声图 xtx_t,你根本不知道它来自哪张原始图片,统计上不可识别。但如果你额外知道原始清晰图 x0x_0,那么"从 x0x_0xtx_t 的路径"就是唯一确定的,"上一步 xt1x_{t-1} 应该是什么"就有了确定性的统计答案

具体地,由贝叶斯定理得到q(xt1xt,x0)q(x_{t-1}|x_t, x_0)

q(xt1xt,x0)=q(xtxt1,x0)q(xt1x0)q(xtx0)(12)q(x_{t-1}|x_t, x_0) = \frac{q(x_t|x_{t-1}, x_0) q(x_{t-1}|x_0)}{q(x_t|x_0)} \tag{12}

由于分子分母都是高斯分布,结果仍是高斯分布,且均值和方差有闭式解析表达式(由 αt,αˉt\alpha_t, \bar{\alpha}_t 等超参数决定)。

要将(11)中q(xtxt1)q(x_t|x_{t-1})转换为q(xt1xt,x0)q(x_{t-1}|x_t, x_0)。首先,利用贝叶斯变换可以从(12)得到q(xtxt1,x0)q(x_t|x_{t-1}, x_0)

q(xtxt1,x0)=q(xt1xt,x0)q(xtx0)q(xt1x0)q(x_t|x_{t-1}, x_0) = \frac{q(x_{t-1}|x_t, x_0)q(x_t|x_0)}{ q(x_{t-1}|x_0)}

然后,利用前向过程的马尔可夫性 q(xtxt1,x0)=q(xtxt1)q(x_t|x_{t-1}, x_0) = q(x_t|x_{t-1}),整理得:

q(xtxt1)=q(xt1xt,x0)q(xtx0)q(xt1x0)q(x_t|x_{t-1}) = \frac{q(x_{t-1}|x_t, x_0) \, q(x_t|x_0)}{q(x_{t-1}|x_0)}

t=1t=1TT 求积:

t=1Tq(xtxt1)=t=1Tq(xt1xt,x0)t=1Tq(xtx0)t=1Tq(xt1x0)\prod_{t=1}^T q(x_t|x_{t-1}) = \frac{\prod_{t=1}^T q(x_{t-1}|x_t, x_0) \cdot \prod_{t=1}^T q(x_t|x_0)}{\prod_{t=1}^T q(x_{t-1}|x_0)}

调整求和指标 t=1Tq(xt1x0)=t=0T1q(xtx0)\prod_{t=1}^T q(x_{t-1}|x_0) = \prod_{t=0}^{T-1} q(x_t|x_0),于是分子分母交叉相消(telescoping):

t=1Tq(xtxt1)=t=1Tq(xt1xt,x0)q(xTx0)q(x0x0)\prod_{t=1}^T q(x_t|x_{t-1}) = \frac{\prod_{t=1}^T q(x_{t-1}|x_t, x_0) \cdot q(x_T|x_0)}{q(x_0|x_0)}

取对数(q(x0x0)q(x_0|x_0) 为 delta 分布,logq(x0x0)\log q(x_0|x_0) 为常数,可忽略):

t=1Tlogq(xtxt1)=logq(xTx0)+t=1Tlogq(xt1xt,x0)+C\sum_{t=1}^T \log q(x_t|x_{t-1}) = \log q(x_T|x_0) + \sum_{t=1}^T \log q(x_{t-1}|x_t, x_0) + C

将结果代回(11)公式中,得到:

LELBO=Eq(x0:T)[logp(xT)q(xTx0)+t=1Tlogpθ(xt1xt)q(xt1xt,x0)]+C\mathcal{L}_{\text{ELBO}} = \mathbb{E}_{q(x_{0:T})}\left[\log \frac{p(x_T)}{q(x_T|x_0)} + \sum_{t=1}^T \log \frac{p_\theta(x_{t-1}|x_t)}{q(x_{t-1}|x_t, x_0)}\right] + C

第 3 步:将 ELBO 分解为 KL 散度之和

利用期望的线性性,将ELBO 拆为 T+1T+1 个独立期望之和:

LELBO=Eq(x0:T) ⁣[logp(xT)q(xTx0)]第 0 项+t=1TEq(x0:T) ⁣[logpθ(xt1xt)q(xt1xt,x0)]第 t 项+C\mathcal{L}_{\text{ELBO}} = \underbrace{\mathbb{E}_{q(x_{0:T})}\!\left[\log\frac{p(x_T)}{q(x_T|x_0)}\right]}_{\text{第 0 项}} +\sum_{t=1}^{T}\underbrace{\mathbb{E}_{q(x_{0:T})}\!\left[\log\frac{p_\theta(x_{t-1}|x_t)}{q(x_{t-1}|x_t,x_0)}\right]}_{\text{第 }t\text{ 项}} + C

利用重期望公式(Law of Total Expectation / Tower Property),对第 00项 :

Eq(x0:T) ⁣[logp(xT)q(xTx0)]=Eq(x0) ⁣[Eq(xTx0) ⁣[logp(xT)q(xTx0)]]=DKL ⁣(q(xTx0)p(xT))\mathbb{E}_{q(x_{0:T})}\!\left[\log\frac{p(x_T)}{q(x_T|x_0)}\right] = \mathbb{E}_{q(x_0)}\!\left[ \mathbb{E}_{q(x_T|x_0)}\!\left[\log\frac{p(x_T)}{q(x_T|x_0)}\right] \right] = -D_{KL}\!\bigl(q(x_T|x_0)\,\|\,p(x_T)\bigr)

利用重期望公式(Law of Total Expectation / Tower Property),对每一项 tt

Eq(x0:T)[logpθ(xt1xt)q(xt1xt,x0)]=Eq(x0,xt)[Eq(xt1xt,x0)[logpθ(xt1xt)q(xt1xt,x0)]]\mathbb{E}_{q(x_{0:T})}\left[\log \frac{p_\theta(x_{t-1}|x_t)}{q(x_{t-1}|x_t, x_0)}\right] = \mathbb{E}_{q(x_0, x_t)}\left[\mathbb{E}_{q(x_{t-1}|x_t, x_0)}\left[\log \frac{p_\theta(x_{t-1}|x_t)}{q(x_{t-1}|x_t, x_0)}\right]\right]

=Eq(x0,xt)[DKL ⁣(q(xt1xt,x0)pθ(xt1xt))]= -\mathbb{E}_{q(x_0, x_t)}\left[D_{KL}\!\left(q(x_{t-1}|x_t, x_0) \,\|\, p_\theta(x_{t-1}|x_t)\right)\right]

最终得到精确的变分下界(VLB):

LVLB=DKL(q(xTx0)p(xT))t=1TEq(x0,xt)[DKL(q(xt1xt,x0)pθ(xt1xt))]Lt1+C\boxed{\mathcal{L}_{\text{VLB}} = -D_{KL}\big(q(x_T|x_0) \,\|\, p(x_T)\big) - \sum_{t=1}^T \underbrace{\mathbb{E}_{q(x_0, x_t)}\left[D_{KL}\big(q(x_{t-1}|x_t, x_0) \,\|\, p_\theta(x_{t-1}|x_t)\big)\right]}_{L_{t-1}} + C}

其中 Lt1L_{t-1} 为核心训练目标。他表示每一步去噪分布 pθp_\theta 要匹配真实去噪后验 qq

使用的定理/原理:

  • KL 散度的定义DKL(qp)=Eq[log(q/p)]D_{KL}(q\|p) = \mathbb{E}_q[\log(q/p)]
  • 期望的线性性(Linearity of Expectation)
  • 重期望公式/塔性质(Law of Total Expectation):

Eq(x0:T)[]=Eq(x0,xt)[Eq(x1:T{t}x0,xt)[]]\mathbb{E}_{q(x_{0:T})}[\cdot] = \mathbb{E}_{q(x_0,x_t)}\left[\mathbb{E}_{q(x_{1:T \setminus \{t\}}|x_0,x_t)}[\cdot]\right]


3. 从 KL 散度到噪声预测的MSE

第 1 步:计算高斯分布间的 KL 散度

在 DDPM 中,所有分布均为高斯:

前向后验 q(xt1xt,x0)q(x_{t-1}|x_t, x_0)(通过贝叶斯定理可解析求出):

q(xt1xt,x0)=N ⁣(xt1;μ~t(xt,x0),β~tI)q(x_{t-1}|x_t, x_0) = \mathcal{N}\!\left(x_{t-1}; \tilde{\mu}_t(x_t, x_0), \tilde{\beta}_t I\right)

其中:

μ~t(xt,x0)=αˉt1βt1αˉtx0+αt(1αˉt1)1αˉtxt,β~t=1αˉt11αˉtβt\tilde{\mu}_t(x_t, x_0) = \frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{1-\bar{\alpha}_t} x_0 + \frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t} x_t, \quad \tilde{\beta}_t = \frac{1-\bar{\alpha}_{t-1}}{1-\bar{\alpha}_t}\beta_t

模型分布 pθ(xt1xt)p_\theta(x_{t-1}|x_t)(设为高斯,方差固定):

pθ(xt1xt)=N ⁣(xt1;μθ(xt,t),σt2I)p_\theta(x_{t-1}|x_t) = \mathcal{N}\!\left(x_{t-1}; \mu_\theta(x_t, t), \sigma_t^2 I\right)

两个同方差高斯 N(μq,σq2I)\mathcal{N}(\mu_q, \sigma_q^2 I)N(μp,σp2I)\mathcal{N}(\mu_p, \sigma_p^2 I),其 KL 散度有解析公式:

DKL ⁣(N(μq,σq2I)N(μp,σp2I))=12[dlogσp2σq2d+dσq2σp2+μqμp2σp2]D_{KL}\!\left(\mathcal{N}(\mu_q, \sigma_q^2 I) \,\|\, \mathcal{N}(\mu_p, \sigma_p^2 I)\right) = \frac{1}{2}\left[d\log\frac{\sigma_p^2}{\sigma_q^2} - d + \frac{d\sigma_q^2}{\sigma_p^2} + \frac{\|\mu_q - \mu_p\|^2}{\sigma_p^2}\right]

σq2=β~t\sigma_q^2 = \tilde{\beta}_tσp2=σt2\sigma_p^2 = \sigma_t^2 均固定时,前 3 项与 θ\theta 无关,因此:

Lt1Eq(x0,xt)[12σt2μ~t(xt,x0)μθ(xt,t)2]+CL_{t-1} \propto \mathbb{E}_{q(x_0, x_t)}\left[\frac{1}{2\sigma_t^2} \left\|\tilde{\mu}_t(x_t, x_0) - \mu_\theta(x_t, t)\right\|^2\right] + C

优化 ELBO 等价于最小化后验均值与模型均值之间的 L2L_2 距离

第 2 步:噪声参数化(Noise Parameterization)

这是将损失转化为 MSE 的核心技巧。

由前向过程的重参数化

xt=αˉtx0+1αˉtϵ,ϵN(0,I)x_t = \sqrt{\bar{\alpha}_t}\, x_0 + \sqrt{1-\bar{\alpha}_t}\, \epsilon, \quad \epsilon \sim \mathcal{N}(0, I)

反解出 x0=xt1αˉtϵαˉtx_0 = \dfrac{x_t - \sqrt{1-\bar{\alpha}_t}\,\epsilon}{\sqrt{\bar{\alpha}_t}},代入 μ~t(xt,x0)\tilde{\mu}_t(x_t, x_0)

μ~t(xt,x0)=1αt(xtβt1αˉtϵ)\tilde{\mu}_t(x_t, x_0) = \frac{1}{\sqrt{\alpha_t}}\left(x_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}}\epsilon\right)

DDPM 将模型均值设为相同形式,但用网络 ϵθ\epsilon_\theta 预测噪声:

μθ(xt,t)=1αt(xtβt1αˉtϵθ(xt,t))\mu_\theta(x_t, t) = \frac{1}{\sqrt{\alpha_t}}\left(x_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}}\epsilon_\theta(x_t, t)\right)

μ~t\tilde{\mu}_tμθ(xt,t)\mu_\theta(x_t, t)代入 Lt1L_{t-1}

μ~tμθ2=βt2αt(1αˉt)ϵϵθ(xt,t)2\left\|\tilde{\mu}_t - \mu_\theta\right\|^2 = \frac{\beta_t^2}{\alpha_t(1-\bar{\alpha}_t)} \left\|\epsilon - \epsilon_\theta(x_t, t)\right\|^2

第 3 步:简化目标得到 MSE 损失

严格来说,精确的 ELBO 优化的损失应为:

Lexact=t=1TEx0,ϵ[βt22σt2αt(1αˉt)ϵϵθ(xt,t)2]+LT+L0\mathcal{L}_{\text{exact}} = \sum_{t=1}^T \mathbb{E}_{x_0, \epsilon}\left[\frac{\beta_t^2}{2\sigma_t^2\alpha_t(1-\bar{\alpha}_t)} \left\|\epsilon - \epsilon_\theta(x_t, t)\right\|^2\right] + L_T + L_0

但 Ho et al. (2020) 发现:忽略与 θ\theta 无关的常数项和权重系数(即对所有 tt 使用相同权重),训练效果更好。由此得到简化损失

Lsimple=Ex0q(x0),ϵN(0,I),tU{1,T}[ϵϵθ(αˉtx0+1αˉtϵxt,t)2]\boxed{\mathcal{L}_{\text{simple}} = \mathbb{E}_{x_0 \sim q(x_0),\, \epsilon \sim \mathcal{N}(0,I),\, t \sim \mathcal{U}\{1,T\}}\left[\|\epsilon - \epsilon_\theta(\underbrace{\sqrt{\bar{\alpha}_t}\,x_0 + \sqrt{1-\bar{\alpha}_t}\,\epsilon}_{x_t}, t)\|^2\right]}

这正是 DDPM 论文中的 MSE 损失——模型 ϵθ\epsilon_\theta 学习预测前向过程中注入的噪声 ϵ\epsilon


4. 总结:推导链中的关键定理

推导阶段 使用的核心定理/数学工具
边缘似然 → 期望 → ELBO 边缘化公式、重要性采样恒等式、期望定义、Jensen 不等式logE[Z]E[logZ]\log\mathbb{E}[Z] \geq \mathbb{E}[\log Z]
ELBO → KL 之和 贝叶斯定理马尔可夫性重期望公式、KL 散度定义
KL → 精确 MSE → 简化 MSE 多元高斯 KL 解析公式、重参数化技巧、工程近似(忽略权重系数)

整个推导的本质是从"无法优化的极大似然"到"可执行的训练代码"。DDPM 的推导经历了以下逻辑链条:

  1. 模型定义:扩散模型通过隐变量链 pθ(x0:T)p_\theta(x_{0:T}) 定义生成过程,数据分布 pθ(x0)p_\theta(x_0) 是其边缘分布,必须通过对 x1:Tx_{1:T} 积分得到。

  2. 原始困难logpθ(x0)\log p_\theta(x_0) 需要对包含神经网络的高维隐变量积分,无法解析、无法采样、无法求梯度。

  3. 引入前向过程(重要性采样):通过改变积分测度,将"对未知空间的积分"转化为"对已知分布的期望"。此时 pθp_\theta 仍在,但已嵌入可采样的结构中。

  4. 构造 ELBO:利用 Jensen 不等式得到可优化的下界。ELBO 是关于 qq 的期望,可以通过前向过程采样估计。

  5. 贝叶斯求后验:通过贝叶斯定理,得到条件后验 q(xt1xt,x0)q(x_{t-1} \mid x_t, x_0)。这是训练时可用的"教师分布",但依赖 x0x_0

  6. 参数化与重参数化:将反向过程参数化为高斯,利用两个高斯 KL 散度的解析解,再通过重参数化技巧,将"预测均值"转化为"预测噪声",最终得到:

Loss=ϵϵθ(xt,t)2\text{Loss} = \|\epsilon - \epsilon_\theta(x_t, t)\|^2

通过最小化上面的loss,训练ϵθ(xt,t)\epsilon_\theta(x_t, t)的过程可以看做是学生模型ϵ\epsilon对教师分布 q(xt1xt,x0)q(x_{t-1} \mid x_t, x_0)的拟合 :教师分布 q(xt1xt,x0)q(x_{t-1} \mid x_t, x_0) 是"开卷答案",推理时不可用;神经网络 pθ(xt1xt)p_\theta(x_{t-1} \mid x_t) 是"闭卷能力",通过拟合大量开卷答案学会泛化。