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

生成模型可以理解为:输入的数据服从某个先验分布(例如均匀分布或者正态分布),输出的数据服从目标分布(例如人脸的分布)。因此生成模型的问题主要分为两个阶段:

  1. 训练一个模型能够很好地表达分布的特征,例如去拟合的 p. d. f.
  2. 根据模型生成服从目标分布的值。

而事实上,对于实际问题来说,目标分布常常由大量的样本点来代表,因此目标分布本身其实是一组样本点的最大似然。基于此,又可以对于生成模型的训练思路进一步分类:

  1. likelihood-based models:以最大似然估计为目标来拟合。
  2. 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)的定义:是一个具有以下性质的随机过程:

  1. 服从一个均值为,协方差8矩阵为的高斯分布,其中是布朗运动的扩散矩阵(diffusion matrix)。
  2. 时间段不相交的是独立的。

关于它有两点需要注意:处处不可微,不过白噪声可以作为布朗运动的形式上的导数:

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