去噪扩散概率模型 (DDPM) 代表了扩散模型的一种主要方法,侧重于参数化的前向和反向马尔可夫链。基于得分的生成模型提供了另一种密切相关的视角。这种方法主要在于直接对数据概率密度函数对数的梯度(被称为得分函数)在各种噪声水平下进行建模。了解这种视角能阐明扩散模型与得分匹配和朗之万动力学等已建立技术之间的关联。得分函数:对数概率的梯度对于给定的数据分布 $p(\mathbf{x})$,得分函数定义为其对数概率相对于数据 $\mathbf{x}$ 的梯度:$$ \nabla_{\mathbf{x}} \log p(\mathbf{x}) $$这个向量场很重要,因为它指向任意给定点 $\mathbf{x}$ 处对数概率密度最陡峭的上升方向。通俗来说,它告诉我们如何修改 $\mathbf{x}$,使其在分布 $p(\mathbf{x})$ 下的概率略微增加。在扩散模型的背景下,我们关注的是扰动后的数据分布 $p_t(\mathbf{x}_t)$ 在不同噪声水平 $t$ 下的得分函数。值得注意的是,$\mathbf{x}_t$ 是数据点 $\mathbf{x}0$ 经过 $t$ 步前向加噪过程后的结果。得分函数 $\nabla{\mathbf{x}_t} \log p_t(\mathbf{x}_t)$ 指示如何调整一个带噪声的样本 $\mathbf{x}_t$,以增加其在时间 $t$ 的边际分布下的似然性。将得分与反向扩散过程关联起来扩散模型中的反向过程旨在对样本 $\mathbf{x}t$ 进行去噪以估计 $\mathbf{x}{t-1}$。结果表明,使数据似然最大化的最优反向转移与得分函数 $\nabla_{\mathbf{x}_t} \log p_t(\mathbf{x}_t)$ 紧密相关。具体来说,Tweedie 公式提供了一个关联,表明在给定噪声版本 $\mathbf{x}t$ 的条件下,原始数据点 $\mathbf{x}0$ 的条件期望涉及噪声分布 $p_t$ 的得分。反向转移 $p\theta(\mathbf{x}{t-1} | \mathbf{x}_t)$ 的均值取决于对该得分的估计。在 DDPM 中使用简化目标函数训练的神经网络 $\boldsymbol{\epsilon}_\theta(\mathbf{x}_t, t)$:$$ L_{simple}(\theta) = \mathbb{E}_{t, \mathbf{x}0, \boldsymbol{\epsilon}} \left[ | \boldsymbol{\epsilon} - \boldsymbol{\epsilon}\theta(\sqrt{\bar{\alpha}_t}\mathbf{x}_0 + \sqrt{1-\bar{\alpha}_t}\boldsymbol{\epsilon}, t) |^2 \right] $$实际上是在学习带噪声数据分布 $p_t(\mathbf{x}_t)$ 的得分函数的一个重标度版本。该关系近似如下:$$ \boldsymbol{\epsilon}_\theta(\mathbf{x}_t, t) \approx -\sqrt{1-\bar{\alpha}t} \nabla{\mathbf{x}_t} \log p_t(\mathbf{x}_t) $$这表明,即使在训练 DDPM 来预测噪声 $\boldsymbol{\epsilon}$ 时,模型也在隐式学习中间噪声数据分布的得分。使用得分匹配训练得分模型不同于通过噪声预测隐式学习得分,基于得分的模型旨在训练一个神经网络(通常表示为 $\mathbf{s}\theta(\mathbf{x}, t)$)来直接估计得分函数 $\nabla{\mathbf{x}} \log p_t(\mathbf{x})$。一个朴素的方法是最小化模型输出与真实得分之间的平方差:$$ \mathcal{L}(\theta) = \mathbb{E}{t} \mathbb{E}{p_t(\mathbf{x}t)} \left[ | \mathbf{s}\theta(\mathbf{x}t, t) - \nabla{\mathbf{x}_t} \log p_t(\mathbf{x}_t) |^2_2 \right] $$然而,计算真实得分 $\nabla_{\mathbf{x}_t} \log p_t(\mathbf{x}_t)$ 通常难以进行,因为 $p_t(\mathbf{x}_t)$ 包含一个未知的归一化常数,并且需要对所有可能的 $\mathbf{x}_0$ 进行积分。得分匹配 提供了一种解决此问题的方法。原始的得分匹配目标函数,等同于上面那个,涉及得分模型海森矩阵的迹,这可能计算成本很高。存在更实际的变体:去噪得分匹配 (DSM): 该方法用已知噪声轻微扰动数据,并训练模型来预测扰动分布的得分。值得注意的是,高斯噪声下的 DSM 目标函数结果表明与 DDPM 中使用的噪声预测目标紧密相关。它通过最小化一个与从噪声版本中恢复干净数据相关的目标函数来训练得分网络 $\mathbf{s}_\theta(\mathbf{x}, t)$,从而将得分估计与去噪关联起来。切片得分匹配 (SSM): 这种技术通过将得分匹配目标投射到随机方向上,避免计算完整的海森矩阵迹,使其更适用于高维数据。训练一个基于得分的模型 $\mathbf{s}_\theta(\mathbf{x}_t, t)$ 包含对时间步长 $t$ 的采样、对数据点 $\mathbf{x}_0$ 的采样、使用前向过程生成相应的带噪声样本 $\mathbf{x}_t$,然后使用像 DSM 这样合适的得分匹配目标函数来优化 $\theta$。通过朗之万动力学生成样本一旦时间依赖的得分模型 $\mathbf{s}_\theta(\mathbf{x}, t)$ 训练完成,我们就可以通过模拟反向扩散过程来生成新样本。一个常用算法是退火朗之万动力学。朗之万动力学是一种迭代方法,最初在物理学中用于通过得分函数 $\nabla_{\mathbf{x}} \log p(\mathbf{x})$ 从概率分布 $p(\mathbf{x})$ 中采样。其更新规则结合了对数概率的梯度上升步骤(遵循得分)和高斯噪声注入:$$ \mathbf{x}_{i+1} = \mathbf{x}i + \frac{\eta}{2} \nabla{\mathbf{x}} \log p(\mathbf{x}_i) + \sqrt{\eta} \mathbf{z}_i $$这里,$\eta$ 是步长,$\mathbf{z}_i \sim \mathcal{N}(0, \mathbf{I})$ 是高斯噪声。对于基于得分的生成模型,我们将此思想应用于递减的噪声水平(退火)。我们从先验分布中获取一个样本开始,通常是纯高斯噪声 $\mathbf{x}T \sim \mathcal{N}(0, \mathbf{I})$,并使用学习到的得分函数 $\mathbf{s}\theta(\mathbf{x}_t, t)$ 对其进行迭代改进,针对 $t = T, T-1, \dots, 1$。一个典型的更新步骤如下所示:$$ \mathbf{x}_{t-1} = \mathbf{x}t + \alpha_t \mathbf{s}\theta(\mathbf{x}_t, t) + \sqrt{2 \alpha_t} \mathbf{z}_t $$其中 $\alpha_t > 0$ 是一个取决于噪声水平 $t$ 的步长,$\mathbf{z}_t \sim \mathcal{N}(0, \mathbf{I})$。这个过程在学习到的得分场的引导下,逐步将样本从噪声中移开,并移向数据分布下高概率的区域。更精密的采样程序,通常涉及受求解 SDE 数值方法启发的预测器-校正器步骤,常用于提高样本质量和有效性。这些采样器通常类似于 DDPM 中使用的反向过程采样器。统一观点:DDPM 与基于得分的模型基于得分的视角突出了得分函数在通过扩散进行生成建模中的基础作用。它表明:DDPM 尽管被训练用于预测噪声,但它们隐式学习得分函数。它们的采样过程是模拟受得分支配的反向时间 SDE 的离散化版本。基于得分的模型显式训练一个网络来使用得分匹配技术估计得分。采样通过使用退火朗之万动力学等算法完成,这些算法也近似反向时间 SDE。随机微分方程 (SDE) 公式(之前讨论过)提供了一个连续时间框架,它自然包含 DDPM 和基于得分的模型。这两种方法都可以看作是离散化和实现相同的底层连续扩散过程的不同方式。总结基于得分的生成模型提供了一个有力的理论视角,用于理解扩散模型。通过关注得分函数 $\nabla_{\mathbf{x}} \log p_t(\mathbf{x}_t)$,它将扩散过程与用于训练的得分匹配和用于采样的朗之万动力学关联起来。这种视角不仅阐明了 DDPM 背后的原理,还为基于直接估计和使用噪声下演变数据分布的得分函数来设计新模型和采样器提供了途径。DDPM 中的噪声预测与得分估计之间的紧密关系,强调了这些看起来不同公式之间的密切关联。