扩散模型的SDE与ODE描述

Brief Introduction

我们已经用两篇文章从VAE到DDPMScore-Based Generative Models 分别介绍了 DDPM 和 SMLD,并说明了它们的本质其实是相同的。进一步,论文[1]把它们扩展到了连续时间情形并使用随机微分方程(Stochastic Differential Equations, SDE)描述。在该视角下,DDPM 和 SMLD 是两个特殊形式 SDE 的离散化。DDPM / SMLD 的加噪过程对应 forward SDE,去噪过程对应 reverse SDE,解 reverse SDE 的过程就是生成过程。除了使用通用的 SDE 数值解法以外,作者根据问题特点提出了 Predictor-Corrector Samplers,统一并扩展了 DDPM / SMLD 的去噪过程。作者还构造了与 SDE 具有相同边缘分布的 ODE,从而得到确定性生成过程。

DDPM Recap

加噪过程(前向过程):DDPM 将前向过程构建为一个离散时间马尔可夫链 ,转移概率为: 其中 是每一步转移的正态分布的方差。上式等价写作: 在该转移概率下,可以推得一个优秀的性质: 其中 .

去噪过程(逆向过程):去噪过程是前向过程的逆向,若以 score function 为目标构建模型 ,则: 或写作: 损失函数:由 ELBO 可推得:

SMLD Recap

加噪过程:SMLD 首先定义了从原数据到以 加噪的变换: 逆向思考,该分布可由如下相邻两个 noise scale 的转移得到: 或写作: 去噪过程 (Annealed Langevin Dynamics):在每个 noise scale 加噪的数据分布上,执行 步 Langevin dynamics: 其中 是步长相关参数。对 均执行上述过程。

损失函数:由在每个 noise scale 上做 denoising score matching 可推得:

Forward SDE

DDPM 和 SMLD 都是在离散时间点扩散的,倘若将时间连续化,那么我们就能够得到对应的 SDE 描述。为了连续化,我们只需要将 式和 式写作差分形式,取 ,即可得到微分形式。

DDPM: VP SDE

为了方便叙述,定义 ,那么 式改写作: ,那么对于 ,上式可写作: 很小时,根据近似 ,有: 因此,令 ,得到 : 其中 是标准维纳过程(也称作布朗运动)。

维纳过程(布朗运动)直观解释

考虑一个马尔可夫随机过程 ,其以一年为时间单位,下一年相比这一年的变化量服从 ,即: 那么两年后,总变化量就是两个正态随机变量之和,服从 反过来想,一年的变化量是两个半年变化量之和,所以半年的变化量应该服从 以此类推,如果考虑 的时间,变化量就应该服从 ,则:

这就是 式的后一项。

论文作者称 式为 Variance Preserving (VP) SDE,因为当初始分布有单位方差时,该 SDE 描述的随机过程也始终有固定的方差。为了说明这点,作者直接给出了如下关于方差演进过程的 ODE: 解该 ODE 得: 因此,当 时,始终有 . 另外,即便 ,当 时,,也有 . 其实从 DDPM 的角度看,这无非就是说扩散过程最后会服从 .

SMLD: VE SDE

类似地,设 ,那么对于 式可写作: 很小时,根据一阶泰勒展开 ,有: ,得到: 该 SDE 被作者称为 Variance Exploding (VE) SDE,因为随着 ,其描述的随机过程方差将无限制增大。

General Form

上文我们分别推导了 DDPM 和 SMLD 对应的 SDE 形式。更一般地,对于一个连续时间的扩散过程 ,其中 并且 ,即 表示数据分布, 表示先验分布,我们可以用 Itô diffusion SDE 来描述这个扩散过程: 其中 是一个向量值函数,称作 drift coefficient; 是一个标量函数,称作 diffusion coefficient. 特别地,VP SDE 和 VE SDE 分别对应:

  • VP SDE:
  • VE SDE:

因此我们在引言里说,DDPM 和 SMLD 分别是两个特殊形式 SDE 的离散化。

Reverse SDE

同 DDPM 类似,forward SDE 将数据 变换为了先验分布 ,而 reverse SDE 将该过程逆向,即可得到生成模型。

的概率分布, 为从 的转移概率分布。对于 式,根据论文[9]的结论,其 reverse-time SDE 为: 其中 是一个标准维纳过程(布朗运动), 表示 的边缘分布。

我们又看到了老朋友 score function ,因此依旧可以使用 denoising score matching 训练模型近似之: 其中 是加权系数。与 DDPM / SMLD 类似,可以选取 .

在训练好模型之后,用模型替换 式中的 score function 即可:

Solving the Reverse SDE

为了生成数据,我们随机采样 ,通过求解 式得到 . 作者首先指出,我们可以使用常见的通用数值求解方法解该 SDE;随后考虑到问题的特殊性,提出了 Predictor-Corrector 方法提高性能。

Numerical SDE Solvers

存在一些广泛适用的 SDE 数值解法,例如 Euler-Maruyamastochastic Runge-Kutta,它们分别是求解 ODE 的 Euler 法和 Runge-Kutta 法在 SDE 上的扩展。

Euler 法回顾(摘自《计算方法》课程笔记)

对于初值问题: 数值求解方法是指:取定步长 ,在一系列点 上求 .

Euler 法是最简单的数值求解方法之一。考虑在 上对 积分,有: 以此公式迭代求解即可。若做出图来, 其实就是不断沿当前导数方向走折线,因此也称作 Euler 折线法

如果用更准确的梯形公式而非矩形来近似积分,可得: 但这是关于 的隐格式,无法直接求解。故一般先使用 Euler 折线法求出一个初始值,再依梯形公式迭代。

特别地,如果只迭代一次,称作改进 Euler 法

Runge-Kutta 法回顾(摘自《计算方法)课程笔记)

理论上, 的差距由泰勒展开给出: 如果允许,我们可以截断到任意精度,让解更加准确。Euler 法只有 一项,其实是截断到一阶;利用泰勒展开可以证明,改进 Euler 法截断到了二阶。然而直接计算高阶导数非常麻烦,Runge-Kutta 法提供了一种巧妙的构造,间接地利用了这种思想。

我们可以将 Euler 法写作: 改进 Euler 法写作: 以此类推, 阶 R-K 法写作: 其中 为参数,以使得 泰勒展开后 系数为 (),即截断到 阶。

Euler-Maruyama 法和 Euler 法类似,只需要从初值开始,选定步长反复迭代即可。具体而言,对于 式,选择一个小步长 ,初始化 ,然后迭代执行下述过程直至

Reverse Diffusion Samplers

除了使用 Euler-Maruyama 等通用 SDE solver 以外,我们还有其他求解 reverse SDE 式的做法吗?在第二节中,我们将前向过程连续化得到 forward SDE,那反过来,把 reverse SDE 离散化不就得到逆向过程了吗? 作者将这种方法称作 reverse diffusion samplers.

Predictor-Corrector Samplers

与一般的 SDE 不同的是,我们现在有一个 score model ,可以利用 score-based MCMC 方法来改进通用 SDE solvers 的解。具体而言,每一步首先由通用 SDE solvers 给出一个解 (predictor),然后由 MCMC 方法来修正解的分布 (corrector),因此作者称该方法为 Predictor-Corrector (PC) samplers. 特别地,DDPM 相当于用 ancestral sampling 作为 predictor、identity function 作为 corrector;而 SMLD 相当于用 identity function 作为 predictor、Langevin dynamics 作为 corrector.

Probability Flow ODE

上文中,我们已经构建了连续时间扩散模型的 SDE 描述。宋飏等人提出,对于任一 SDE 描述的扩散过程,都存在一个 ODE 描述的确定性过程与之有相同的边缘分布 . 具体地, 式和 式对应的 ODE 为: 证明是通过说明 式或 式与上式具有相同的 Fokker-Planck 方程完成的。注意 SDE 需要分前向与逆向(因为维纳过程有一个方向),但是 ODE 本身就是可逆的,所以只需要一个。

将 score model 代入上式得: 同上一节类似,我们可以用通用的 ODE 求解器 (如 RK45) 来解上式,也可以将其离散化为 ​ 求解,并且 predictor-corrector samplers 的思想也依然适用。但是作者指出,尽管解 ODE 比解 SDE 更快,其生成图片的质量往往不如 SDE.

References

  1. Song, Yang, Jascha Sohl-Dickstein, Diederik P. Kingma, Abhishek Kumar, Stefano Ermon, and Ben Poole. Score-Based Generative Modeling through Stochastic Differential Equations. In International Conference on Learning Representations. 2020. ↩︎
  2. Yang Song. Generative Modeling by Estimating Gradients of the Data Distribution. https://yang-song.net/blog/2021/score/ ↩︎
  3. 扩散模型与能量模型,Score-Matching和SDE,ODE的关系 - 中森的文章 - 知乎 https://zhuanlan.zhihu.com/p/576779879 ↩︎
  4. 苏剑林. (Aug. 03, 2022). 《生成扩散模型漫谈(五):一般框架之SDE篇 》[Blog post]. Retrieved from https://kexue.fm/archives/9209 ↩︎
  5. 苏剑林. (Aug. 08, 2022). 《生成扩散模型漫谈(六):一般框架之ODE篇 》[Blog post]. Retrieved from https://kexue.fm/archives/9228 ↩︎
  6. Wiener Process and Ito's Lemma - 无情小超超的文章 - 知乎 https://zhuanlan.zhihu.com/p/148808235 ↩︎
  7. Score-based Generative Models总结 - o00O00o的文章 - 知乎 https://zhuanlan.zhihu.com/p/583666759 ↩︎
  8. Tanmaya Shekhar Dabral. Stochastic Differential Equations and Diffusion Models. https://www.vanillabug.com/posts/sde/ ↩︎
  9. Anderson, Brian DO. Reverse-time diffusion equation models. Stochastic Processes and their Applications 12, no. 3 (1982): 313-326. ↩︎

扩散模型的SDE与ODE描述
https://xyfjason.github.io/blog-main/2022/12/04/扩散模型的SDE与ODE描述/
作者
xyfJASON
发布于
2022年12月4日
许可协议