分数函数
设 q ( x ) q(x) q ( x ) 是在其支撑集内部为正且可微的概率密度。它的分数函数是对数密度关于样本坐标的梯度:
s q ( x ) = ∇ x log q ( x ) s_q(x) = \nabla_x \log q(x)
s q ( x ) = ∇ x log q ( x )
直接使用 ∇ x q ( x ) \nabla_x q(x) ∇ x q ( x ) 会让梯度大小随密度的整体尺度变化,而取对数后有 ∇ x log q ( x ) = ∇ x q ( x ) / q ( x ) \nabla_x\log q(x)=\nabla_xq(x)/q(x) ∇ x log q ( x ) = ∇ x q ( x ) / q ( x ) ,衡量的是当前位置发生微小变化时的相对密度增幅。它指向密度增长最快的方向,模长则反映局部密度变化有多陡。例如 q ( x ) = N ( μ , σ 2 I ) q(x)=\mathcal N(\mu,\sigma^2I) q ( x ) = N ( μ , σ 2 I ) 时,
s q ( x ) = − x − μ σ 2 , s_q(x)=-\frac{x-\mu}{\sigma^2},
s q ( x ) = − σ 2 x − μ ,
偏离均值越远,指回中心的作用越强;方差越小,分布越集中,相同偏移对应的校正也越大。
若密度写为 p ( x ) = p ~ ( x ) / Z p(x)=\tilde p(x)/Z p ( x ) = p ~ ( x ) / Z ,其中 Z = ∫ p ~ ( x ) d x Z=\int \tilde p(x)dx Z = ∫ p ~ ( x ) d x 是配分函数,则 Z Z Z 与 x x x 无关,因此
∇ x log p ( x ) = ∇ x log p ~ ( x ) \nabla_x\log p(x)=\nabla_x\log\tilde p(x)
∇ x log p ( x ) = ∇ x log p ~ ( x )
高维生成模型难以计算 Z Z Z ,分数却把只负责全局归一化的常数消掉,使模型可以学习“概率质量在局部应往哪里集中”,而不必先求出完整密度。采样过程只需在当前位置反复查询这个方向,就能逐步把被噪声摊开的概率质量重新组织成数据分布。分数只在密度为正且光滑处定义,原始经验分布由有限样本构成,并不满足这一条件;给数据加入高斯噪声会把尖锐的样本点平滑成处处有密度的分布,这也是扩散模型先构造含噪概率路径的重要原因。
流匹配和扩散模型都使用一条从初始分布 p i n i t p_{init} p ini t 到数据分布 p d a t a p_{data} p d a t a 的概率路径。对数据点 z ∈ R d z\in\mathbb R^d z ∈ R d ,条件路径 p t ( x ∣ z ) p_t(x\mid z) p t ( x ∣ z ) 满足
p 0 ( ⋅ ∣ z ) = p i n i t , p 1 ( ⋅ ∣ z ) = δ z p_0(\cdot\mid z)=p_{init},\qquad p_1(\cdot\mid z)=\delta_z
p 0 ( ⋅ ∣ z ) = p ini t , p 1 ( ⋅ ∣ z ) = δ z
这里的时间方向是“噪声到数据”。将条件路径对数据分布边缘化,得到边缘路径:
p t ( x ) = ∫ p t ( x ∣ z ) p d a t a ( z ) d z p_t(x)=\int p_t(x\mid z)p_{data}(z)dz
p t ( x ) = ∫ p t ( x ∣ z ) p d a t a ( z ) d z
训练时固定 z z z 后,条件分布由人为选定的加噪过程决定,因此条件分数 ∇ x log p t ( x ∣ z ) \nabla_x\log p_t(x\mid z) ∇ x log p t ( x ∣ z ) 可以解析计算;采样真正需要的边缘分数 ∇ x log p t ( x ) \nabla_x\log p_t(x) ∇ x log p t ( x ) 却依赖所有数据样本形成的混合分布。对边缘密度求导并把每一项改写成“密度乘以对数密度梯度”,得到与流匹配相同的后验平均关系:
∇ x log p t ( x ) = ∫ ∇ x p t ( x ∣ z ) p d a t a ( z ) d z p t ( x ) = ∫ ∇ x log p t ( x ∣ z ) p t ( x ∣ z ) p d a t a ( z ) p t ( x ) d z = E z ∼ p 1 ∣ t ( ⋅ ∣ x ) [ ∇ x log p t ( x ∣ z ) ] . \begin{aligned}
\nabla_x\log p_t(x)
&=\frac{\int \nabla_x p_t(x\mid z)p_{data}(z)dz}{p_t(x)}\\
&=\int \nabla_x\log p_t(x\mid z)
\frac{p_t(x\mid z)p_{data}(z)}{p_t(x)}dz\\
&=\mathbb E_{z\sim p_{1\mid t}(\cdot\mid x)}\left[\nabla_x\log p_t(x\mid z)\right].
\end{aligned} ∇ x log p t ( x ) = p t ( x ) ∫ ∇ x p t ( x ∣ z ) p d a t a ( z ) d z = ∫ ∇ x log p t ( x ∣ z ) p t ( x ) p t ( x ∣ z ) p d a t a ( z ) d z = E z ∼ p 1 ∣ t ( ⋅ ∣ x ) [ ∇ x log p t ( x ∣ z ) ] .
其中 p 1 ∣ t ( z ∣ x ) = p t ( x ∣ z ) p d a t a ( z ) / p t ( x ) p_{1\mid t}(z\mid x)=p_t(x\mid z)p_{data}(z)/p_t(x) p 1 ∣ t ( z ∣ x ) = p t ( x ∣ z ) p d a t a ( z ) / p t ( x ) 表示观察到含噪状态 x x x 后,各个干净样本 z z z 与它相容的程度。单个 x x x 通常无法唯一确定来源,边缘分数便把各条件分数按这一后验加权;高噪声时后验较分散,模型只能给出多种可能共同支持的方向,低噪声时后验逐渐集中,校正会更具体地指向局部数据结构。这一关系让可计算的条件分数成为未知边缘分数的无偏监督信号。
高斯路径
常用的高斯条件路径写为
p t ( x ∣ z ) = N ( x ; α t z , β t 2 I d ) p_t(x\mid z)=\mathcal N(x;\alpha_tz,\beta_t^2I_d)
p t ( x ∣ z ) = N ( x ; α t z , β t 2 I d )
其中 α t \alpha_t α t 缩放数据信号,β t \beta_t β t 缩放独立高斯噪声,二者的比值 α t / β t \alpha_t/\beta_t α t / β t 决定信噪比。端点条件 α 0 = 0 , β 0 = 1 \alpha_0=0,\beta_0=1 α 0 = 0 , β 0 = 1 、α 1 = 1 , β 1 = 0 \alpha_1=1,\beta_1=0 α 1 = 1 , β 1 = 0 让路径从纯噪声逐渐过渡到数据;日程变化过快会让某些时间段的目标剧烈变化,过慢则把大量训练预算放在相似的噪声水平上。在内部时间 0 < t < 1 0<t<1 0 < t < 1 ,假设 α t > 0 \alpha_t>0 α t > 0 、β t > 0 \beta_t>0 β t > 0 ;端点由分布的极限定义,不能直接代入下方含分母的公式。重参数化采样为
z ∼ p d a t a , ϵ ∼ N ( 0 , I d ) , x t = α t z + β t ϵ ∼ p t ( ⋅ ∣ z ) z\sim p_{data},\qquad \epsilon\sim\mathcal N(0,I_d),\qquad x_t=\alpha_tz+\beta_t\epsilon\sim p_t(\cdot\mid z)
z ∼ p d a t a , ϵ ∼ N ( 0 , I d ) , x t = α t z + β t ϵ ∼ p t ( ⋅ ∣ z )
重参数化把“从随 z , t z,t z , t 变化的高斯分布采样”化成了对标准噪声的仿射变换,使任意时间的训练样本都能一步构造。对 x x x 求梯度可得可计算的条件分数:
∇ x log p t ( x ∣ z ) = − x − α t z β t 2 = − ϵ β t \nabla_x\log p_t(x\mid z)=-\frac{x-\alpha_tz}{\beta_t^2}=-\frac{\epsilon}{\beta_t}
∇ x log p t ( x ∣ z ) = − β t 2 x − α t z = − β t ϵ
式中的 x − α t z x-\alpha_tz x − α t z 正是当前状态相对条件均值的残差,负号使方向指回均值,1 / β t 2 1/\beta_t^2 1/ β t 2 则按不确定性调节校正强度。将采样式代入后残差为 β t ϵ \beta_t\epsilon β t ϵ ,所以标签等于 − ϵ / β t -\epsilon/\beta_t − ϵ / β t ;当 β t → 0 \beta_t\to0 β t → 0 时,即使实际残差同步变小,分数模长仍会增大。这发生在低噪声、接近数据端的位置,也是直接预测分数容易出现数值尺度失衡的原因。
高斯路径下,条件目标向量场为
u t t a r g e t ( x ∣ z ) = ( α ˙ t − β ˙ t β t α t ) z + β ˙ t β t x u_t^{target}(x\mid z)=\left(\dot\alpha_t-\frac{\dot\beta_t}{\beta_t}\alpha_t\right)z+\frac{\dot\beta_t}{\beta_t}x
u t t a r g e t ( x ∣ z ) = ( α ˙ t − β t β ˙ t α t ) z + β t β ˙ t x
向量场要求粒子的分布按日程改变,分数则描述同一时刻的密度几何。把上式反解为 z = ( x + β t 2 ∇ x log p t ( x ∣ z ) ) / α t z=(x+\beta_t^2\nabla_x\log p_t(x\mid z))/\alpha_t z = ( x + β t 2 ∇ x log p t ( x ∣ z )) / α t 并代回条件向量场,令
a t = β t 2 α ˙ t α t − β ˙ t β t , b t = α ˙ t α t a_t=\beta_t^2\frac{\dot\alpha_t}{\alpha_t}-\dot\beta_t\beta_t,\qquad b_t=\frac{\dot\alpha_t}{\alpha_t}
a t = β t 2 α t α ˙ t − β ˙ t β t , b t = α t α ˙ t
则在 0 < t < 1 0<t<1 0 < t < 1 有
u t t a r g e t ( x ∣ z ) = a t ∇ x log p t ( x ∣ z ) + b t x u_t^{target}(x\mid z)=a_t\nabla_x\log p_t(x\mid z)+b_tx
u t t a r g e t ( x ∣ z ) = a t ∇ x log p t ( x ∣ z ) + b t x
其中 b t x b_tx b t x 负责所有位置共有的整体缩放,a t ∇ x log p t a_t\nabla_x\log p_t a t ∇ x log p t 根据当前密度形状补上非均匀的重排;若只保留前者,简单的线性缩放无法把高斯变成多峰数据分布。对 z z z 取后验平均后,系数与 z z z 无关,条件分数又恰好平均为边缘分数,因此得到
u t t a r g e t ( x ) = a t ∇ x log p t ( x ) + b t x u_t^{target}(x)=a_t\nabla_x\log p_t(x)+b_tx
u t t a r g e t ( x ) = a t ∇ x log p t ( x ) + b t x
因此,满足上述条件的高斯路径中,边缘向量场与边缘分数函数只是同一概率路径的两种局部描述:前者直接给出样本速度,后者给出密度几何,并通过由噪声日程确定的 a t , b t a_t,b_t a t , b t 转换。这个关系让同一个网络输出可以服务于 ODE 或 SDE 采样,但当 α t \alpha_t α t 或 β t \beta_t β t 接近零时,转换系数可能病态,实际实现通常选择数值更稳定的参数化。
去噪器使用另一种等价参数化,定义为干净数据的后验均值:
D t ( x ) = E z ∼ p 1 ∣ t ( ⋅ ∣ x ) [ z ] D_t(x)=\mathbb E_{z\sim p_{1\mid t}(\cdot\mid x)}[z]
D t ( x ) = E z ∼ p 1 ∣ t ( ⋅ ∣ x ) [ z ]
含噪状态可能对应多个干净样本,平方误差下无法可靠恢复其中某个未知来源,后验均值却是均方误差最小的单值估计。它直接给出分数与向量场:
∇ x log p t ( x ) = α t D t ( x ) − x β t 2 \nabla_x\log p_t(x)=\frac{\alpha_tD_t(x)-x}{\beta_t^2}
∇ x log p t ( x ) = β t 2 α t D t ( x ) − x
u t t a r g e t ( x ) = ( α ˙ t − β ˙ t β t α t ) D t ( x ) + β ˙ t β t x u_t^{target}(x)=\left(\dot\alpha_t-\frac{\dot\beta_t}{\beta_t}\alpha_t\right)D_t(x)+\frac{\dot\beta_t}{\beta_t}x
u t t a r g e t ( x ) = ( α ˙ t − β t β ˙ t α t ) D t ( x ) + β t β ˙ t x
第一式也表明,α t D t ( x ) − x \alpha_tD_t(x)-x α t D t ( x ) − x 是网络认为应从当前状态中修正掉的部分,再除以噪声方差便得到局部密度梯度。高噪声时 D t ( x ) D_t(x) D t ( x ) 倾向于给出较粗的全局结构,低噪声时它主要修正细小残差。实际网络可以预测分数 s t s_t s t 、噪声 ϵ t \epsilon_t ϵ t 或去噪结果 D t D_t D t ,它们在高斯路径内部满足
ϵ t ( x ) = − β t s t ( x ) , D t ( x ) = x + β t 2 s t ( x ) α t , \epsilon_t(x)=-\beta_ts_t(x),
\qquad
D_t(x)=\frac{x+\beta_t^2s_t(x)}{\alpha_t},
ϵ t ( x ) = − β t s t ( x ) , D t ( x ) = α t x + β t 2 s t ( x ) ,
因而表达能力相同,但训练标签和网络输出的尺度不同。噪声预测把标准目标保持在 O ( 1 ) O(1) O ( 1 ) 尺度,去噪预测的语义更直接;靠近端点时除以很小的 α t \alpha_t α t 或 β t \beta_t β t 会放大误差,仍需依靠合适的噪声日程、预条件和数值处理。
SDE 采样
设 u t t a r g e t u_t^{target} u t t a r g e t 驱动的 ODE 已经沿边缘路径 p t p_t p t 演化。若直接加入布朗噪声,概率质量会额外向外摊开,原有边缘分布便被破坏;要在保留同一 p t p_t p t 的同时获得随机轨迹,漂移必须增加一项恰好抵消这种密度扩散的校正。对任意连续、随时间变化且与状态无关的标量扩散系数 σ t ≥ 0 \sigma_t\ge0 σ t ≥ 0 ,可构造
X 0 ∼ p i n i t , d X t = [ u t t a r g e t ( X t ) + σ t 2 2 ∇ x log p t ( X t ) ] d t + σ t d W t X_0\sim p_{init},\qquad dX_t=\left[u_t^{target}(X_t)+\frac{\sigma_t^2}{2}\nabla_x\log p_t(X_t)\right]dt+\sigma_t dW_t
X 0 ∼ p ini t , d X t = [ u t t a r g e t ( X t ) + 2 σ t 2 ∇ x log p t ( X t ) ] d t + σ t d W t
这就是 SDE Extension Trick。σ t d W t \sigma_t\mathrm dW_t σ t d W t 使单条轨迹随机扩散,方差增长速度由 σ t 2 \sigma_t^2 σ t 2 决定;额外的分数项以同样的 σ t 2 / 2 \sigma_t^2/2 σ t 2 /2 为系数,把概率质量推回高密度方向。本文沿“噪声到数据”的正时间方向采样,所以补偿项取正号;若采用常见的“数据到噪声”正向过程并推导反向 SDE,公式的时间方向与符号写法会相应改变。加入校正后,单条路径及相同初值对应的终点会改变,但理想情况下每个时刻的一点边缘分布仍是同一个 p t p_t p t 。
这一结论可由 Fokker-Planck 方程验证。对于
d X t = μ t ( X t ) d t + σ t d W t dX_t=\mu_t(X_t)dt+\sigma_tdW_t
d X t = μ t ( X t ) d t + σ t d W t
其密度满足
∂ t p t ( x ) = − ∇ ⋅ ( p t ( x ) μ t ( x ) ) + σ t 2 2 Δ p t ( x ) \partial_tp_t(x)=-\nabla\cdot\bigl(p_t(x)\mu_t(x)\bigr)+\frac{\sigma_t^2}{2}\Delta p_t(x)
∂ t p t ( x ) = − ∇ ⋅ ( p t ( x ) μ t ( x ) ) + 2 σ t 2 Δ p t ( x )
将
μ t ( x ) = u t t a r g e t ( x ) + σ t 2 2 ∇ x log p t ( x ) \mu_t(x)=u_t^{target}(x)+\frac{\sigma_t^2}{2}\nabla_x\log p_t(x)
μ t ( x ) = u t t a r g e t ( x ) + 2 σ t 2 ∇ x log p t ( x )
代入,并使用 p t ∇ x log p t = ∇ x p t p_t\nabla_x\log p_t=\nabla_xp_t p t ∇ x log p t = ∇ x p t ,可得
∂ t p t = − ∇ ⋅ ( p t u t t a r g e t ) − σ t 2 2 Δ p t + σ t 2 2 Δ p t = − ∇ ⋅ ( p t u t t a r g e t ) . \begin{aligned}
\partial_t p_t
&=-\nabla\cdot(p_tu_t^{target})-\frac{\sigma_t^2}{2}\Delta p_t+\frac{\sigma_t^2}{2}\Delta p_t\\
&=-\nabla\cdot(p_tu_t^{target}).
\end{aligned} ∂ t p t = − ∇ ⋅ ( p t u t t a r g e t ) − 2 σ t 2 Δ p t + 2 σ t 2 Δ p t = − ∇ ⋅ ( p t u t t a r g e t ) .
右侧正是目标 ODE 的连续性方程:布朗运动产生的 + ( σ t 2 / 2 ) Δ p t +(\sigma_t^2/2)\Delta p_t + ( σ t 2 /2 ) Δ p t 与分数漂移产生的负拉普拉斯项逐点抵消,因此两种动力学具有相同的边缘概率路径。σ t = 0 \sigma_t=0 σ t = 0 时回到确定性 ODE,增大 σ t \sigma_t σ t 则让轨迹具有更强的随机探索和纠错能力;边缘等价只在真实向量场、真实分数和连续时间下严格成立,实际网络近似误差与离散误差可能被更强噪声放大,所以 σ t \sigma_t σ t 仍需与步长一起选择。
用步长 h = 1 / n h=1/n h = 1/ n 进行 Euler-Maruyama 采样时,令 t k = k h t_k=kh t k = kh ,并在每一步独立采样 ξ k ∼ N ( 0 , I d ) \xi_k\sim\mathcal N(0,I_d) ξ k ∼ N ( 0 , I d ) :
X t k + 1 = X t k + h [ u t k θ ( X t k ) + σ t k 2 2 s t k θ ( X t k ) ] + σ t k h ξ k X_{t_{k+1}}=X_{t_k}+h\left[u_{t_k}^\theta(X_{t_k})+\frac{\sigma_{t_k}^2}{2}s_{t_k}^\theta(X_{t_k})\right]+\sigma_{t_k}\sqrt h\,\xi_k
X t k + 1 = X t k + h [ u t k θ ( X t k ) + 2 σ t k 2 s t k θ ( X t k ) ] + σ t k h ξ k
从 X 0 ∼ p i n i t X_0\sim p_{init} X 0 ∼ p ini t 开始迭代至 t = 1 t=1 t = 1 ,返回 X 1 X_1 X 1 。式中漂移位移随 h h h 缩小,随机位移随 h \sqrt h h 缩小,这正好保证把时间步切细后单位时间的累计方差不变;每一步还要使用独立的 ξ k \xi_k ξ k ,否则会改变布朗运动的时间相关性。若网络预测的是噪声 ϵ t θ \epsilon_t^\theta ϵ t θ ,则在内部时间以 s t θ ( x ) = − ϵ t θ ( x ) / β t s_t^\theta(x)=-\epsilon_t^\theta(x)/\beta_t s t θ ( x ) = − ϵ t θ ( x ) / β t 代入即可。减小步长通常能改善离散精度,却会增加网络调用次数,而随机采样还会使同一初始点的结果产生方差。
当概率路径恒为 p t = p p_t=p p t = p 且 u t t a r g e t = 0 u_t^{target}=0 u t t a r g e t = 0 时,不再需要把分布从一个端点搬到另一个端点,只需让噪声扩散与分数回拉保持平衡,上式便退化为过阻尼朗之万动力学:
d X t = σ t 2 2 ∇ x log p ( X t ) d t + σ t d W t dX_t=\frac{\sigma_t^2}{2}\nabla_x\log p(X_t)dt+\sigma_tdW_t
d X t = 2 σ t 2 ∇ x log p ( X t ) d t + σ t d W t
若 X 0 ∼ p X_0\sim p X 0 ∼ p ,向外扩散和向内回拉在分布层面精确抵消,所以 p p p 是该过程的平稳分布;这不意味着每条轨迹静止,样本仍会持续运动,只是总体分布不变。从其他初始分布出发,是否收敛到 p p p 还取决于遍历性、步长和运行时间等条件,有限步离散化通常只会得到带偏近似。
分数匹配
采样需要在任意噪声水平和状态查询边缘分数 ∇ x log p t ( x ) \nabla_x\log p_t(x) ∇ x log p t ( x ) ,但它包含未知的数据分布,训练集也无法为一个含噪 x x x 直接给出这个混合密度的梯度。分数网络写为
s t θ : R d × [ 0 , 1 ] → R d s_t^\theta:\mathbb R^d\times[0,1]\rightarrow\mathbb R^d
s t θ : R d × [ 0 , 1 ] → R d
理想的边缘分数匹配损失是
L S M ( θ ) = E t ∼ U n i f [ 0 , 1 ] , x ∼ p t [ ∥ s t θ ( x ) − ∇ x log p t ( x ) ∥ 2 ] \mathcal L_{SM}(\theta)=\mathbb E_{t\sim\mathrm{Unif}[0,1],\,x\sim p_t}\left[\left\|s_t^\theta(x)-\nabla_x\log p_t(x)\right\|^2\right]
L SM ( θ ) = E t ∼ Unif [ 0 , 1 ] , x ∼ p t [ s t θ ( x ) − ∇ x log p t ( x ) 2 ]
这个目标准确表达了需求,却不可直接计算。条件去噪分数匹配改用已知的条件分数:
L C S M ( θ ) = E t ∼ U n i f [ 0 , 1 ] , z ∼ p d a t a x ∼ p t ( ⋅ ∣ z ) [ ∥ s t θ ( x ) − ∇ x log p t ( x ∣ z ) ∥ 2 ] \mathcal L_{CSM}(\theta)=\mathbb E_{\substack{t\sim\mathrm{Unif}[0,1],\,z\sim p_{data}\\x\sim p_t(\cdot\mid z)}}\left[\left\|s_t^\theta(x)-\nabla_x\log p_t(x\mid z)\right\|^2\right]
L CSM ( θ ) = E t ∼ Unif [ 0 , 1 ] , z ∼ p d a t a x ∼ p t ( ⋅ ∣ z ) [ s t θ ( x ) − ∇ x log p t ( x ∣ z ) 2 ]
对固定 ( x , t ) (x,t) ( x , t ) 而言,随机的条件分数以边缘分数为条件均值,因此它可以看成带有不可约噪声的监督标签。由前文的后验平均关系,展开两个平方损失的交叉项可得
L C S M ( θ ) = L S M ( θ ) + C \mathcal L_{CSM}(\theta)=\mathcal L_{SM}(\theta)+C
L CSM ( θ ) = L SM ( θ ) + C
其中 C = E ∥ ∇ x log p t ( x ∣ z ) − ∇ x log p t ( x ) ∥ 2 ≥ 0 C=\mathbb E\|\nabla_x\log p_t(x\mid z)-\nabla_x\log p_t(x)\|^2\ge0 C = E ∥ ∇ x log p t ( x ∣ z ) − ∇ x log p t ( x ) ∥ 2 ≥ 0 与 θ \theta θ 无关,表示仅观察 x x x 时无法确定干净来源所产生的标签方差。因此二者梯度相同,最小化可计算的条件损失即可学习边缘分数;C C C 不影响总体最优解,但会影响有限批量梯度的方差与训练速度。
对高斯路径,将 x t = α t z + β t ϵ x_t=\alpha_tz+\beta_t\epsilon x t = α t z + β t ϵ 和条件分数 − ϵ / β t -\epsilon/\beta_t − ϵ / β t 代入,可得
L C S M ( θ ) = E t , z , ϵ [ ∥ s t θ ( x t ) + ϵ β t ∥ 2 ] = E t , z , ϵ [ 1 β t 2 ∥ ϵ t θ ( x t ) − ϵ ∥ 2 ] , \begin{aligned}
\mathcal L_{CSM}(\theta)
&=\mathbb E_{t,z,\epsilon}\left[\left\|s_t^\theta(x_t)+\frac{\epsilon}{\beta_t}\right\|^2\right]\\
&=\mathbb E_{t,z,\epsilon}\left[\frac{1}{\beta_t^2}\left\|\epsilon_t^\theta(x_t)-\epsilon\right\|^2\right],
\end{aligned} L CSM ( θ ) = E t , z , ϵ [ s t θ ( x t ) + β t ϵ 2 ] = E t , z , ϵ [ β t 2 1 ϵ t θ ( x t ) − ϵ 2 ] ,
其中 ϵ t θ ( x ) = − β t s t θ ( x ) \epsilon_t^\theta(x)=-\beta_ts_t^\theta(x) ϵ t θ ( x ) = − β t s t θ ( x ) 是噪声预测网络。把目标从 − ϵ / β t -\epsilon/\beta_t − ϵ / β t 改写为标准高斯噪声 ϵ \epsilon ϵ ,可避免低噪声端的标签本身发散,但严格等价的损失仍带有 1 / β t 2 1/\beta_t^2 1/ β t 2 权重。该权重会强烈强调 β t \beta_t β t 较小的低噪声样本,因为此时同样大小的噪声预测误差会被转换成更大的分数误差。常见的 DDPM 简化损失将其改为常数权重:
L D D P M ( θ ) = E t ∼ U n i f [ 0 , 1 ] , z ∼ p d a t a ϵ ∼ N ( 0 , I d ) [ ∥ ϵ t θ ( α t z + β t ϵ ) − ϵ ∥ 2 ] \mathcal L_{DDPM}(\theta)=\mathbb E_{\substack{t\sim\mathrm{Unif}[0,1],\,z\sim p_{data}\\\epsilon\sim\mathcal N(0,I_d)}}\left[\left\|\epsilon_t^\theta(\alpha_tz+\beta_t\epsilon)-\epsilon\right\|^2\right]
L DD PM ( θ ) = E t ∼ Unif [ 0 , 1 ] , z ∼ p d a t a ϵ ∼ N ( 0 , I d ) [ ϵ t θ ( α t z + β t ϵ ) − ϵ 2 ]
去掉权重后,不同时间的噪声标签都处在近似统一的数值尺度,优化通常更稳定,也不会让少量低噪声样本主导梯度;代价是各噪声水平的相对重要性被重新定义。在网络容量无限且能对每个 ( x , t ) (x,t) ( x , t ) 独立达到条件均值时,两者的逐点最优预测相同;在有限容量、共享参数和有限训练预算下,它们会把能力分配到不同时间段,因而不应视为严格相同的目标。这里仍采用“噪声到数据”的课程时间方向,经典 DDPM 文献常把加噪过程记作正向时间;两种记法可以通过时间反转和日程重参数化对应,阅读公式时必须先确认端点约定。
每个小批量的训练步骤如下:
从数据集采样 z z z ,再采样 t ∼ U n i f [ 0 , 1 ] t\sim\mathrm{Unif}[0,1] t ∼ Unif [ 0 , 1 ] 和 ϵ ∼ N ( 0 , I d ) \epsilon\sim\mathcal N(0,I_d) ϵ ∼ N ( 0 , I d ) ;实际实现通常避开使 β t \beta_t β t 过小的端点,以免分数标签和转换系数过大。
用闭式加噪公式构造 x t = α t z + β t ϵ x_t=\alpha_tz+\beta_t\epsilon x t = α t z + β t ϵ ,一次计算即可得到任意时间的正确边缘样本,无需从端点逐步模拟到 t t t 。
若训练分数网络,使用目标 − ϵ / β t -\epsilon/\beta_t − ϵ / β t 计算条件分数匹配损失;若训练噪声网络,计算带权 DSM 损失或上式的 DDPM 简化损失。虽然标签中的 ϵ \epsilon ϵ 是本次人为加入的具体噪声,网络只看到 x t , t x_t,t x t , t ,在反复训练后输出的是所有相容噪声的条件均值。
对损失反向传播并更新参数。各样本可独立选择时间和噪声,因此训练能够并行;生成时则必须根据预测的分数或向量场连续执行多步更新,训练的一步监督并没有消除采样的积分成本。
训练完成后,噪声预测、分数预测或去噪器预测都可转换为采样所需的分数或向量场,再通过 ODE 或 SDE 数值积分生成样本。选择 ODE 会在给定初值后产生确定轨迹,选择具有补偿漂移的 SDE 会在保持理想边缘路径的同时继续注入随机性;参数化、噪声日程与求解器共同决定数值稳定性和所需网络调用次数。