SDE:
前置:ODE to SDE
首先回顾一下常微分方程ODE的相关知识。ODE通常解决下面一类问题:存在一个未知的函数,如果方程中不仅含有自变量x,还包含位置函数的导数,那么就被成为微分方程,如果未知函数只包含一个未知变量,那么就是ODE,如果多元函数,那么就是PDE。ODE可以用公式形式化表示如下:
了解完ODE,再来看随机微分方程SDE。和ODE类似,SDE也不是数学家们凭空想出来的一些方程,它和现实世界中的随机过程有着紧密联系。什么叫随机过程呢?随机过程就是指值随着时间以不确定的方式变化,并且我们只能知道在某个时间点,这个值的分布。(相反地,确定性过程就是只要给定了时间t,我们就能确定这个时间点的值x(t))。现实世界中,存在最广泛的一类随机过程就是物理课本上的布朗运动(Brownian motion),它还有另外一个常见的名字Wiener Process(维纳过程)。下面我们简单了解下Wiener Process。
Wiener Process是一种Markov随机过程,因此它未来时刻的状态只取决于当前状态,而与历史状态无关。它有一些比较特别的性质:
1.在 时间内发生的变化,可以用 表示,其中 。根据这个式子,我们知道 也是一个正态分布: 。方差会随着时间 t越来越大,越来越难预测。
2.在某一个时间点 T
其中, 。这个性质就很有意思,我们可以简单改写一下上式:
从上面可以看出,Wiener Process的均值恒定不变,就是 (通常,我们就取 )。而在某个时刻 T的值,则是多个正态分布随机变量的和 。
从上面均值恒定不变的Wiener Process,数学家们又推导出了Generalized Wiener Process
这里的 a代表drift term,表示随机过程中平均数的变化,而 b则是variance rate,代表方差的变化,Z则是普通的Wiener Process里的随机变量。这里有一个结论:普通的Wiener Process实际上是drift term= 0, variance rate=1的特殊情况。
那么是否还存在更一般的随机过程呢?存在,它就是It process(伊藤过程):
这里,我们看到It process实际上就是将drift term和variance rate从常量变成了x,t的函数。这里的
和 我们称为drift和velocity。需要注意的是,对于伊藤过程,我们没法直接推导出 和 Var(dX)。
。除此之外,伊藤过程还有个特殊的名字:diffusion process。
SDE
推荐阅读:
这篇文章是宋飏博士发表在 ICLR 2021 上面的一篇文章,它的核心贡献是对先前扩散模型相关工作(NCSN或者说Score Matching、DDPM) 从 SDE(随机微分方程)的视角进行了解读和统一。基于 SDE 的扩散模型不仅能够获得更高质量的生成样本,还能进行准确的对数似然(log-likelihood)计算,以及有利于逆问题(inverse problem)求解中的可控样本生成。这个工作也获得了 ICLR 2021 Outstanding Paper Award。
扩散模型的前向过程可以看作是向信号里面逐渐加入高斯噪声,直到信号被噪声淹没。此前的工作 NCSN 和 DDPM 推导了离散情况下扩散模型的原理与公式,而借助随机微分方程 Itô SDE (stochastic differential equation),我们则可以从连续的视角来描述扩散过程,其前向模型可以由如下 SDE 定义:
其中, , 是漂移函数, 是噪声函数, 是 Wiener 分布(standard Brownian motion), dW可以看成无限小的白噪声。
SDE 方程中的设置并不是固定的,而是人为设计的。后面我们会看到,其NCSN 和 DDPM 本质上就是对应了两种不同的的设计,它们都可以实现样本生产的目的。
基于上面SDE中定义的$\mathrm{d}\mathbf{x}$,当给定一个极小的时间步长$\Delta t \rightarrow 0$,$\mathbf{x}t$在扩散过程中的变化可以离散化地表示为$\mathbf{x}_t \rightarrow \mathbf{x}{t + \Delta t}$:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
任何的SDE都有一个对应的reverse SDE,它可以解析地写成以下形式(推导见Appendix):
其中,$\mathrm{d}t$是一个负的极小的时间步长(因为是反向过程,所以$t$是从大变小),$p_t(\mathbf{x})$是$\mathbf{x}$在时刻$t$的边缘概率分布。