Score-Based Diffusion 学习笔记
文章目录
Score Function
Score function:对于上的概率密度函数(probability density function)为,则之 score function 定义为其对数函数的梯度:
(省略的梯度下标一般可以通过上下文直接推断)
这是 Score-Based 生成模型的核心概念。类比一个实函数的导数可以相当程度地刻画原函数的特征,那么 p. d. f. 之 score func. 也可以刻画原本的概率分布。
Langevin Algorithm1
该算法的名称有很多: Metropolis-adjusted Langevin algorithm (MALA) or Langevin Monte Carlo (LMC)。Langevin 算法可以利用 score function 来生成服从该分布的随机变量。用到的公式是(表示)
其中表示一个标准布朗运动。使用离散化的算法实现它的方法有很多,比较简单的是 Euler–Maruyama method:
其中服从维高斯分布2。
Generative Modeling
生成模型可以理解为:输入的数据服从某个先验分布(例如均匀分布或者正态分布),输出的数据服从目标分布(例如人脸的分布)。因此生成模型的问题主要分为两个阶段:
- 训练一个模型能够很好地表达分布的特征,例如去拟合的 p. d. f.
- 根据模型生成服从目标分布的值。
而事实上,对于实际问题来说,目标分布常常由大量的样本点来代表,因此目标分布本身其实是一组样本点的最大似然。基于此,又可以对于生成模型的训练思路进一步分类:
- likelihood-based models:以最大似然估计为目标来拟合。
- implicit generative models:使用一些别的最优化目标来拟合(比如 GAN)。
Score-based 则代表另一种流派:拟合 p. d. f. 的梯度。同样的,我们面临两个阶段的问题:如何训练模型,以及如何生成服从目标分布的值。后者在上文中已经给出了一种思路,放在前面的原因是不涉及太多的背景知识。下文主要关注模型的训练。
Trainning Objective
任何模型的学习过程都是以最优化一个目标为导向。假设我们训练的模型是,表示带有参数的一个函数(分号用来区分自变量和参数)。那么一个最优的参数即为
更清楚地可以写成
如果满足一些条件 3,那么我们可以把范数的部分写成离散求和的形式:
可以发现被消了,但是出现了一个的梯度(也就是 p. d. f. 的二阶梯度),这东西是一个矩阵,非常不好求。
考虑现实情况的个样本点,那么上式的积分部分就变成了离散形式
简写一下可以变成
这个式子显然还是没法直接求,对此有人开发了一套 score matching 理论来求解。
Denoise Score Matching4
这个方法的 Trainning Objective 是
其中是一个扰动核(perturbation kernel),是的一个微小高斯扰动。表示数据分布。扰动后的数据分布可以表示为。
对于这里的高斯分布,性质比较好,带入可以写出它的数学形式5
这样就可以自然推出
因此上面的 Objective 可以进一步写为
DSM 的 Objective 被证明,在充分小的时候,与原始的 Objective 在最优化的角度是等价的。
Annealed Langevin Dynamics
顾名思义,这是一个在 Langevin Dynamics 采样方法上加入了退火思想的一个变种。它想要解决的问题是:即使我们训练出一个优秀的,也不一定能够在采样时得到目标分布。尤其是空间维度很大时,目标分布有时候会很稀疏,而如果迭代时的初始值位置不够好,就会很难在可接受的时间内收敛到对应的目标分布。
但注意到我们不一定非得一步到位。取为一个递减的序列(例如等比数列)。假设初始的随机变量服从先验分布。我们首先使用 Langevin 算法将转化为的一个采样,再以此为基础去生成的一个采样,以此类推,一步一步得到最终的目标分布的一个采样。这可以理解为,从前一个分布到达下一个分布是相对简单的,因为初始值距离下一个目标分布足够“近”,有较大可能收敛。
这个采样方法需要我们求出(),我们可以直接把作为网络的输入,训练出一个的模型。
Stochastic Differential Equation
从 Annealed Langevin Dynamics 进一步出发。当时,实际上就变成了一个连续变化的值。为了刻画的变化过程,我们可以把离散的迭代指标替换为时间,并不妨设。那么就是一个随时间变化的扰动系数。引入了时间,很容易想到使用物理的方法去描述采样的过程。于是我们引入以下形式的随机微分方程:
其中是一个标准布朗运动(Wiener process,类似标准高斯分布),称作平移系数(drift coef.),而称作扩散系数(diffusion coef.)。在 SBGM 的情境下,SDE 描述的是从一个数据分布出发,逐渐随机运动到先验分布的过程。不妨表示在时刻服从的分布,我们有,。
要描述采样的过程,我们需要求解上述 SDE 的时间倒流过程6:
要训练,记表示时刻的随机变量,表示从到的变换核(即上文的扰动核),是一个正的系数,那么最优的参数可以写成:
当时,始终是一个高斯扰动(和有关),此时 Trainning Objective 可以写成
其中表示的方差。另外论文中。
取就会得到
并且由经验可以得出. 因此在训练神经网络时可以手动 normalize.
此时可以得到原本的 SDE 为
对应的 Reverse SDE:
More SDE
接下来我们探索一些 SDE 的具体内容,可能会作为上文的引用。主要参考 Applied Stochastic Differential Equation7。
Brownian Motion
首先我们给出布朗运动(Brownian motion)的定义:是一个具有以下性质的随机过程:
- 服从一个均值为,协方差8矩阵为的高斯分布,其中是布朗运动的扩散矩阵(diffusion matrix)。
- 时间段不相交的是独立的。
- 。
关于它有两点需要注意:处处不可微,不过白噪声可以作为布朗运动的形式上的导数:。
The Stochastic Integral of Itô
一个随机过程,在任何时刻运动到的位置和速度等等都没有上下界,不是一个确定性的收敛的过程,因此没法用黎曼积分去刻画。
SDE 所对应的积分过程是 The Stochastic Integral of Itô,定义为意义下的极限:
其中,是一个矩阵函数。注意到这个积分不像黎曼积分,在分划的小区间里面随便取一个值。如果这样做其实会导致积分不收敛。
这个积分也解释了上文的形式导数的具体含义。因此随机微分方程
的具体定义也就清楚了,也可以写成
1. https://en.wikipedia.org/wiki/Metropolis-adjusted_Langevin_algorithm# ↩
2. https://en.wikipedia.org/wiki/Multivariate_normal_distribution ↩
3. Estimation of non-normalized statistical models by score matching. A. Hyvarinen. https://www.jmlr.org/papers/volume6/hyvarinen05a/hyvarinen05a.pdf ↩
4. A Connection Between Score Matching and Denoising Autoencoders. P. Vincent. https://www.iro.umontreal.ca/~vincentp/Publications/smdae_techreport.pdf ↩
5. https://en.wikipedia.org/wiki/Multivariate_normal_distribution#Non-degenerate_case ↩
6. Reverse-Time Diffusion Equation Models. Brian D.O. Anderson. https://core.ac.uk/download/pdf/82826666.pdf ↩
7. Simo Särkkä and Arno Solin (2019). Applied Stochastic Differential Equations. Cambridge University Press. https://users.aalto.fi/~asolin/sde-book/sde-book.pdf ↩
8. https://en.wikipedia.org/wiki/Covariance ↩
9. https://en.wikipedia.org/wiki/Partial_derivative#Definition ↩
修订记录
- 2023年11月25日 第3次修订
- 2023年5月29日 第2次修订
- 2023年5月28日 创建文章