阅读了很多扩散模型的论文,根本不理解其数学原理,因此通过理解相关数学概念,对其原理进行探寻。

布朗运动

布朗运动描述的是一个介质中悬浮粒子的随机运动。这种运动模式通常包括粒子在流体子域内位置的随机波动,伴随着该子领域相对另一个子领域的移动。每次移动都伴随着一个新的封闭体积内更多的浮动。这种模式描述了给定温度流体的热平衡。在这样一个流体内,这里不存在一个流动的偏好方向。确切的说,流体整体的线性动量和角度动量关于时间为空。分子布朗运动的动能,加上分子旋转和振动的动能,加在一起就是流体内能的热能成分。原子轰击力的方向不断变化,并且在不同时间,粒子在一侧比另一侧受到的撞击更多,从而产生随机运动。

这种多体交互产生的布朗运动无法通过一个考虑每个分子的模型所求解,只有通过把概率模型应用到分子群上描述它。

在数学上,布朗运动被描述为Winner过程,一个连续时间的随机过程。维纳过程$W_t$满足:

  1. $W_0=0$
  2. $W_t$几乎必然连续的(概率为1)
  3. $W_t$拥有独立增量
  4. $\forall 0\le s\le t,W_t-W_s\sim\mathcal{N}(0,t-s)$

独立增量的条件意思是:若$0\le s_1\le t_1\le s_2\lt t_2$,那么$W_{t_1}-W_{s_1}$与$W_{t_2}-W_{s_2}$为独立的随机变量。根据独立增量的条件,可知,布朗运动属于一个Markov过程。布朗运动也可被建模为随机行走,且拥有缩放不变的特性。根据条件4,可知,布朗运动的微分服从正态分布。

布朗粒子位置随时间变化本身可被描述为朗之万方程,一个包含随机力场的方程可以表示布朗粒子上solvent热浮动的效果。在长时间规模上,布朗运动被朗之万方程很好的描述。在小时间规模上,朗之万方程中惯性影响很大,否则产生奇异值。然而,布朗运动中不考虑惯性。

随机微分方程

一个随机微分方程是一个拥有一项或多项随机过程的微分方程,其解也为随机过程,其数学形式为
$$
\begin{aligned}
dX_t=\mu(X_t,t)dt+\sigma(X_t,t)dW_t
\end{aligned}\tag{1}
$$
式中$W$为标准布朗运动。这只是随机微分方程在概率论中的定义。

那么,其积分方程为
$$
\begin{aligned}
X_{t+s}-X_t=\int_{t}^{t+s}\mu(X_{u},u)du+\int_{t}^{t+s}\sigma(X_u,u)dW_u
\end{aligned}\tag{2}
$$
式(2)也被称为$It\hat{o}$过程,,表明连续时间随机过程$X_t$的行为可表述为一个Lebesgue积分和$It\hat{o}$积分之和。随机微分方程的启发式解释是:在小的时间间隔$\delta$内,随机过程$X_t$值的改变量服从均值为$\mu(X_t,t)\delta$和方差为$\sigma(X_t,t)^2\delta$的正态分布,且该过程与过去行为无关。这是由于布朗运动的增量为独立的高斯分布引起的。函数$\mu$为漂移系数,$\sigma$为扩散系数。实际上,随机过程$X_t$的增量的分布取决于漂移系数和扩散系数的形式。其中,漂移系数可以理解为$X_t$的平均变化率,而扩散系数可以理解为$X_t$的波动或不确定性。随机过程$X_t$为扩散过程,且满足马尔可夫特性。在概率论与统计中,扩散过程为连续时间的马尔可夫过程,拥有几乎连续(概率为1)样本路径。

由于式(2)右侧第一项为确定性函数,可利用Lebesgue积分获得其值。其中,Lebesgue积分可简单的视为常见微积分的泛化形式。对于式(2)中右侧第二项,由于其属于对随机过程的积分,那么需要利用$It\hat{o}$积分获得。

朗之万方程与朗之万动力学

在物理学中,一个朗之万方程是一个随机微分方程,描述了一个服从于确定性力浮动(“随机”)而演化的系统。在朗之万方程中,因变量为缓慢变化的共同变量,而快变量负责方程的随机性。朗之万方程的一个应用是布朗运动,建模了一个流体中小粒子的浮动运动。
在物理学中,朗之万动力学是一种使用朗之万方程对分子系统动力学进行数学建模的方法。该方法的特点是使用简化模型,同时通过使用随机微分方程来解释省略的自由度。朗之万动力学模拟是一种蒙特卡罗模拟。因此基于分数的扩散生成模型SGM,是基于朗之万方程对噪音和数据之间的随机过程建模。

与扩散模型的关系

通过连续时间随机微分方程建模的扩散模型Score-SDE,实质上建模了标准正态分布与真实数据分布的一个随机过程。该随机过程具有Markov特性,在$\delta$时间间隔内$X_t$的变化为均值和方差取决于当前时刻的高斯分布。

同时,扩散过程的逆过程也是一个扩散过程,即
$$
\begin{aligned}
d\mathbf{x}=[\mathbf{f}(\mathbf{x},t)-g(t)^2\nabla_{\mathbf{x}}log{p_t(\mathbf{x})}]dt+g(t)d\mathbf{\bar{w}}
\end{aligned}\tag{3}
$$
式(3)中$\nabla_{\mathbf{x}}log{p_t(\mathbf{x})}$为随机过程的分数。

由此,通过对数据加入高斯噪音的方式生成数据,用于训练噪音到数据的随机过程的分数模型,即用神经网络拟合以时刻$t$和状态$X_t$为输入的高斯分布,也是随机过程$X_t$的导数或向量场。

随机微分方程的求解有两种方式,第一种是随机积分,常用$It\hat{o}$积分;第二种方式是数值求解器。因此,可利用数值求解器直接求解逆时间随机微分方程,从而实现采样。

标签: 扩散模型

版权: 本篇博文采用《CC BY-NC-ND 4.0》,转载必须注明作者和本文链接

仅有一条评论

  1. 真棒!

添加新评论