扩散模型中的概率流常微分方程(Probability Flow ODE)
字数 3220
更新时间 2025-12-21 14:07:09

扩散模型中的概率流常微分方程(Probability Flow ODE)

题目描述

在扩散模型中,标准的生成(采样)过程需要遵循一个迭代的反向随机过程(如DDPM中的多步去噪),这通常较慢。概率流常微分方程(Probability Flow ODE)是一种将扩散模型中的随机扩散过程转化为一个确定性过程的方法,它允许通过求解一个常微分方程(ODE)来从噪声中生成样本,从而实现更高效、更灵活的采样。本题将深入解析概率流ODE的数学原理、推导过程及其在扩散模型加速采样中的应用。

解题过程循序渐进讲解

1. 问题背景与动机

扩散模型(如DDPM)包含两个过程:

  • 前向过程:在时间 \(t \in [0, T]\) 内,逐步向数据 \(x_0\) 添加高斯噪声,得到 \(x_t\)。
  • 反向过程:从噪声 \(x_T\) 开始,逐步去噪,最终生成数据 \(x_0\)。

标准DDPM的反向过程是一个随机过程(每一步都采样随机噪声),需要数百到数千步迭代,采样速度慢。概率流ODE的核心思想是:将扩散过程转化为一个连续时间的确定性过程,从而可以用ODE求解器(如Runge-Kutta法)进行加速采样,甚至实现一步或少量步生成。

2. 前向扩散过程的随机微分方程(SDE)形式

首先,将离散前向过程表达为连续时间形式。前向过程是向数据添加噪声,可写成以下随机微分方程(SDE):

\[dx = f(x, t) dt + g(t) dw \]

其中:

  • \(x\) 是数据,\(t\) 是连续时间(通常 \(t=0\) 对应数据,\(t=T\) 对应纯噪声)。
  • \(f(x, t)\) 是漂移系数(drift coefficient),描述确定性演变。
  • \(g(t)\) 是扩散系数(diffusion coefficient),控制噪声强度。
  • \(w\) 是标准维纳过程(布朗运动)。

对于常见的前向过程(如DDPM的方差调度),具体形式为:

\[dx = -\frac{1}{2} \beta(t) x \, dt + \sqrt{\beta(t)} \, dw \]

其中 \(\beta(t)\) 是噪声调度函数(例如线性从 \(\beta_{\text{min}}\) 到 \(\beta_{\text{max}}\))。

3. 概率流ODE的推导

关键洞见:同一个前向SDE对应一个确定性ODE,两者的边缘概率分布 \(p_t(x)\) 随时间演变相同。这个ODE称为概率流ODE。

推导基于以下步骤:

  • 考虑前向SDE: \(dx = f(x, t) dt + g(t) dw\)。
  • 根据Fokker-Planck方程,该SDE对应的概率密度 \(p_t(x)\) 演变方程为:

\[ \frac{\partial p_t(x)}{\partial t} = -\nabla_x \cdot [f(x, t) p_t(x)] + \frac{1}{2} g(t)^2 \Delta_x p_t(x) \]

其中 \(\nabla_x \cdot\) 是散度,\(\Delta_x\) 是拉普拉斯算子。

  • 目标:找到一个确定性ODE \(\frac{dx}{dt} = h(x, t)\),使得其概率密度演变与SDE相同。对于确定性ODE,其概率密度演变由连续性方程描述:

\[ \frac{\partial p_t(x)}{\partial t} = -\nabla_x \cdot [h(x, t) p_t(x)] \]

  • 令两个方程相等,可得:

\[ h(x, t) p_t(x) = f(x, t) p_t(x) - \frac{1}{2} g(t)^2 \nabla_x p_t(x) \]

  • 整理得到概率流ODE:

\[ \frac{dx}{dt} = f(x, t) - \frac{1}{2} g(t)^2 \nabla_x \log p_t(x) \]

其中 \(\nabla_x \log p_t(x)\) 是 \(p_t(x)\) 的分数函数(score function)。

4. 与扩散模型的联系

在扩散模型中,我们通过训练一个神经网络 \(s_\theta(x_t, t)\) 来估计分数函数 \(\nabla_x \log p_t(x)\)。因此,概率流ODE可写为:

\[\frac{dx}{dt} = f(x, t) - \frac{1}{2} g(t)^2 s_\theta(x, t) \]

这是一个确定性的常微分方程。给定初始噪声样本 \(x_T \sim p_T(x)\)(通常是标准高斯分布),从 \(t=T\) 到 \(t=0\) 反向求解此ODE,即可得到生成的数据 \(x_0\)。

5. 具体实例:与DDPM和DDIM的关系

  • DDPM:其前向SDE为 \(dx = -\frac{1}{2} \beta(t) x \, dt + \sqrt{\beta(t)} \, dw\),即 \(f(x, t) = -\frac{1}{2} \beta(t) x\),\(g(t) = \sqrt{\beta(t)}\)。代入概率流ODE公式得:

\[ \frac{dx}{dt} = -\frac{1}{2} \beta(t) x - \frac{1}{2} \beta(t) s_\theta(x, t) \]

这恰好是DDPM的确定性版本(去掉了随机噪声项)。

  • DDIM:可以视为概率流ODE的一种离散化形式。DDIM的更新规则:

\[ x_{t-1} = \sqrt{\bar{\alpha}_{t-1}} \left( \frac{x_t - \sqrt{1-\bar{\alpha}_t} s_\theta(x_t, t)}{\sqrt{\bar{\alpha}_t}} \right) + \sqrt{1-\bar{\alpha}_{t-1}} s_\theta(x_t, t) \]

当忽略随机项时,它对应于概率流ODE的一阶离散化。

6. 采样(求解ODE)过程

要从噪声生成数据:

  1. 初始化:从标准高斯分布采样 \(x_T\)。
  2. 反向求解ODE:从 \(t=T\) 到 \(t=0\),数值求解:

\[ \frac{dx}{dt} = f(x, t) - \frac{1}{2} g(t)^2 s_\theta(x, t) \]

可使用ODE求解器(如Euler法、Runge-Kutta法、自适应步长方法)。
3. 输出:\(x_0\) 即为生成样本。

优点:

  • 确定性:相同 \(x_T\) 总生成相同 \(x_0\),适合插值等任务。
  • 快速采样:可用大步长或高阶求解器,减少步数(如20~50步)。
  • 灵活性:可结合隐空间编辑、条件生成等。

7. 实际应用与扩展

  • 加速采样:如DDIM、PNDM、DPM-Solver等基于概率流ODE的加速器。
  • 可控生成:在ODE轨迹上施加条件(如分类器引导)。
  • 概率流ODE训练:一致性模型(Consistency Models)直接学习ODE轨迹的映射,实现一步生成。

总结

概率流ODE为扩散模型提供了一个确定性、连续时间的视角,将随机扩散过程转化为可高效求解的ODE。其核心是利用分数函数(由神经网络估计)构造漂移项,从而允许使用ODE求解器进行快速、灵活的采样。这一框架是许多扩散模型加速技术的基础,并促进了扩散模型在生成质量与效率上的平衡。

相似文章
相似文章
 全屏