扩散模型中的概率流常微分方程(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求解器进行快速、灵活的采样。这一框架是许多扩散模型加速技术的基础,并促进了扩散模型在生成质量与效率上的平衡。

扩散模型中的概率流常微分方程(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)过程 要从噪声生成数据: 初始化:从标准高斯分布采样 \( x_ T \)。 反向求解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法、自适应步长方法)。 输出:\( x_ 0 \) 即为生成样本。 优点: 确定性 :相同 \( x_ T \) 总生成相同 \( x_ 0 \),适合插值等任务。 快速采样 :可用大步长或高阶求解器,减少步数(如20~50步)。 灵活性 :可结合隐空间编辑、条件生成等。 7. 实际应用与扩展 加速采样 :如DDIM、PNDM、DPM-Solver等基于概率流ODE的加速器。 可控生成 :在ODE轨迹上施加条件(如分类器引导)。 概率流ODE训练 :一致性模型(Consistency Models)直接学习ODE轨迹的映射,实现一步生成。 总结 概率流ODE为扩散模型提供了一个 确定性、连续时间 的视角,将随机扩散过程转化为可高效求解的ODE。其核心是利用分数函数(由神经网络估计)构造漂移项,从而允许使用ODE求解器进行快速、灵活的采样。这一框架是许多扩散模型加速技术的基础,并促进了扩散模型在生成质量与效率上的平衡。