原论文:link
参考博客:link1、link2(封面来源)、link3
在 DDPM 中,我们通过学习逆向过程的分布 来从 中生成图像,而基于分数的生成模型给出了另一种思路:放弃使用 ,转而学习样本分布 的梯度 ,随后通过 Langevin dynamics 过程,在 中进行采样,以生成新的数据。因此,基于分数的生成模型可以看作由以下两部分构成:
- 通过分数匹配,训练 ;
- 通过基于分数的采样算法,随机采样近似 的样本。
分数匹配方法起初是为了学习具有如下形式的分布:
其中 是归一项。如果要使用最大似然法,那么就不得不计算 ,而这需要遍历 ,在多数情况下不适用。而该分布的分数 却很容易计算:
因此,我们可以转而学习该分布的分数,而不需要首先训练一个模型,来预测 。而这个方法显然不局限于这种形式的分布。训练该模型,需要最小化均方误差 ,而该损失函数还可以进一步写作与 无关的形式:
expand to see details
(直接挪用了 GPT 的回答)
从以下目标函数形式:
推导到目标函数的另一种形式:
关键步骤如下:
平方项展开:
代入 :
拆分为三项:
注意,得分函数 定义为:
由此,积分中的第二项可以化简为:
对第二项应用分部积分(忽略边界项),有:
因此:
- 为什么能省略边界项 ? 在分部积分中,边界项其实是 ,而在真实分布中, 两点的概率密度基本为0。
- 为什么是 ? 由向量场 的散度定义。
将化简结果代入 :
注意到,第一项是与参数 无关的常数,可以忽略。
因此:
整理后为:
但是, 的计算成本很高(因为是二阶偏导),针对这个问题,有两种解决方法:
Denoising score matching
这类方法可以完全绕开 的计算,通过向原始分布 添加噪声 ,我们可以得到新的分布 ,等价的。而可以证明,对于 的目标函数等价于:
这个目标函数具有以下特点:
- 同样与 无关,方便计算;
- 最终得到的是 ,这要求添加的扰动程度不能太大。
Sliced score matching
使用随机投影来近似计算 ,目标函数为
朗之万动力采样(Langevin dynamics sample,后简记为 )算法可以从 中生成样本,而只需要用到分布的分数。首先,从某个已知的先验分布 中采样 ,然后迭代如下过程:
因此,我们可以首先通过分数匹配训练 , 随后通过 来生成样本。
在实际情况中,样本可能集中在高维样本空间的低维流形上 (某些维度不包含信息,例如全是0),这会导致 SMLD 做法的一些问题。首先, 在无效维度上无法定义;其次,当数据无法填满空间时,还会导致 预测不一致。
在概率密度较低的区域,我们能获取的样本相应的也会更少,这会导致训练不足;
对于一个分布 ,我们称 为其支持集,其中每个点称为一个 mode。假设有一个混合分布 ,在 的支持集中,我们有 ,可以发现梯度与混合系数 无关。在 的支持集中,也能得出类似的结论。这就意味着,生成样本的过程并不会取决于 。假设我们在空间内随机采样初始点,因为生成过程与 无关,这会导致最终生成的样本均匀分布在各 mode 上。同时,当各 mode 之间存在低密度区域时,也会导致 需要需要很小的步长、很大的迭代次数,才能正确采样。(个人理解:正确的 应当能够实现跨 mode 生成,否则样本的生成将取决于其初始点的选取,这显然不是 ,而是一个取决于 的条件分布。而 SMLD 忽略混合系数 的特性会导致在跨域低密度区域时困难,进而导致跨 mode 困难。较小的步长是为了稳定,否则会跳过 mode。)
Warning
对于流形导致的两个问题、 在低密度区域存在时的问题,笔者暂时还不能完全理解,所以表述可能并不准确。如果你在读这篇笔记,请务必查看原论文。
基于上述问题,原论文作者提出了 NCSN(Noise Conditional Score Networks)。该方法的提出基于以下观察:
- 加入噪声可以解决上述问题:加噪会改变原有的数据分布:,当噪声足够大时,我们甚至可以使得 ,变成一个已知的先验分布。最直接的,加噪可以解决流型假设问题和低密度区域问题;而对于混合分布问题,原文并没有给出详细的解释,个人理解应当也和低密度区域的消除有关。
- 较小的噪声水平可以使得学习到的 与 足够接近,不会影响生成结果。
显然,这两个诉求是冲突的。那就设置不同强度的噪声,并且让模型同时学习不同强度下的 。
令 为满足 的正几何序列。给定噪声 ,加噪后的分布为
其中,设置 足够大,使得加噪后的分布能够克服上述的问题; 设置 足够小,使得噪声对生成结果的影响足够小。而模型的训练目标针对所有噪声的:
称 为一个 NCSN。
训练过程以 denoising score matching 为例:加噪过程 ,因此 ,代入 (3) 式可知:
再对所有的 统一处理,可得:
推理过程可以看作 的改良版,文章中称为 "annealed Langevin dynamics",其实就是在不同的噪声水平上进行相应的 。
Figure 1: Annealed Langevin dynamics.