生成扩散模型漫谈:构建ODE的一般步骤(上)

生成扩散模型漫谈:构建ODE的一般步骤(上)_第1张图片

©PaperWeekly 原创 · 作者 | 苏剑林

单位 | 追一科技

研究方向 | NLP、神经网络

书接上文,在《生成扩散模型漫谈:从万有引力到扩散模型》中,我们介绍了一个由万有引力启发的、几何意义非常清晰的 ODE 式生成扩散模型。有的读者看了之后就疑问:似乎“万有引力”并不是唯一的选择,其他形式的力是否可以由同样的物理绘景构建扩散模型?另一方面,该模型在物理上确实很直观,但还欠缺从数学上证明最后确实能学习到数据分布。

本文就尝试从数学角度比较精确地回答“什么样的力场适合构建 ODE 式生成扩散模型”这个问题。

a55b65d1744c2d5c07cc9aac3ffa875e.png

基础结论

要回答这个问题,需要用到在《生成扩散模型漫谈:“硬刚”扩散ODE》中我们推导过的一个关于常微分方程对应的分布变化的结论。

考虑 的一阶(常)微分方程(组)

54aab2039b265aba48330ea8e34b5768.png

它描述了从 到 的一个(可逆)变换,如果 是一个随机变量,那么整个过程中的 也都是随机变量,它的分布变化规律,可以由如下方程描述

f349c9b04ab2784d60b4d02fee53f653.png

该结果可以按照《生成扩散模型漫谈:“硬刚”扩散 ODE》的格式用“雅可比行列式+泰勒近似”的方式推导,也可以像《生成扩散模型漫谈:一般框架之ODE篇》一样先推导完整的“Fokker-Planck方程”,然后让 。顺便一提,方程(2)在物理上非常出名,它被称为“连续性方程” [1],是各种守恒定律的体现之一。

回到扩散模型,扩散模型想要做的事情,是构造一个变换,能够将简单分布的样本变换成目标分布的样本。而利用式(2),理论上我们可以通过给定的 来可以求出可行的 ,继而利用式(1)完成生成过程。注意,式(2)只是一个方程,但是要求解的 有 个分量,所以这是一个不定方程,原则上来说我们可以任意指定完整的 (而不单单是 两个边界)来求解 。

所以从理论上来说,构建 ODE 式扩散模型只是求解一个非常轻松的几乎没约束的不定方程。确实如此,但问题是这样求出来的解在实践上会有困难,说白了就是代码上不好实现。因此,问题的准确提法是如何从式(2)中求出更实用的解。

7f0b11a096bbb1341cf3e6aada9860b7.png

简化方程

留意到,式(2)可以改写成

生成扩散模型漫谈:构建ODE的一般步骤(上)_第2张图片

如上式所示,我们刚好可以当成 维的梯度 ,正好可以组成了一个 的向量 ,所以(2)可以写成简单的散度方程

8e4834baa4d2d0cc4cbcd57b6a525181.png

在此形式之下有

生成扩散模型漫谈:构建ODE的一般步骤(上)_第3张图片

其中 、 分别代表 的第一维分量和后 维分量。当然,不能忘了约束条件

生成扩散模型漫谈:构建ODE的一般步骤(上)_第4张图片

其中 是数据分布,即要生成的目标样本分布。对于 时的终值分布,我们对它的要求只是尽可能简单,方便采样,除此之外没有定量要求,因此这里暂时不用写出。

05f1580c247393497eab8f77532165bc.png

格林函数

经过这样的形式变换后,我们可以将 看成一个 维的向量场,而微分方程(5)正好描述的是质点沿着场线运动的轨迹,这样就跟《生成扩散模型漫谈:从万有引力到扩散模型》所给出的物理图景同出一辙了。

为了求出 的一般解,我们可以用格林函数的思想。首先尝试求解如下问题:

生成扩散模型漫谈:构建ODE的一般步骤(上)_第5张图片

容易证明,如果上式成立,那么

bdb261030b3777db95c8c325323188be.png

将是方程(4)满足相应约束的解。这样一来,我们就将 表示为了训练样本的期望形式,这有利于模型的训练。不难看出,这里的 实际上就是扩散模型中的条件概率 。

事实上,式(7)所定义的 ,并非通常意义下的格林函数。一般的格林函数指的是点源下的解,而这里的格林函数的“点源”放到了边界处。但即便如此,所定义的 依然具有常规格林函数类似的性质,它本身也相当于点源产生的“力场”,而式(8)也正好是对点源的场进行积分,求出了连续分布源的场。

99ed5a7cda19749fd24254894e5b5110.png

万有引力

现在我们根据上述框架,求解一些具体的结果。前面已经提到,方程(4)或(7),都是“ 个未知数、一个方程”的不定方程,理论上具有无穷多的各式各样的解,我们要对它进行求解,反而要引入一些额外的假设,使得它的解更为明确一些。第一个解是基于各向同性假设,它正好对应《生成扩散模型漫谈:从万有引力到扩散模型》中的结果。

1f0325ec8d07e5429c378978f86659fc.png

假设求解

注意,这里的“各向同性”,指的是在 组成的 维空间中的各向同性,这意味着是指向源点 的,且模长只依赖于 ,因此可以设

7028f7ce676a83dc537bd55226b57885.png

于是

生成扩散模型漫谈:构建ODE的一般步骤(上)_第6张图片

也即 ,或 ,即 ,因此一个候选解是

7434131927aa10a3bf11239f66f4cfba.png

d83ec1ad532fd88c3b9cf43761d47e74.png

约束条件

可以看到,在各向同性假设下,万有引力解是唯一解了。为了证明是可行解,还要检验约束条件,其中关键一条是

71421f7e4bc2659cb15cdf9031f6c685.png

其实我们只需要检验积分结果跟 和 都没关系,那么就可以选择适当的常数 让积分结果为0。而对于 ,可以检验做变量代换 ,由于 的范围是全空间的,所以 也是全空间的,代入上式得到

3676b2b5fa09144147e6677a5933cc03.png

现在可以看出积分结果跟 和 都无关了。因此只要选择适当的 C,积分为 1 这一条检验可以通过。下面都假设已经选择了让积分为 1 的 。

至于初值,我们需要验证 ,这只需要按照狄拉克函数的定义进行检验就行了:

1、当 时,极限显然为 0;

2、当 时,极限显然为 ;

3、刚才我们已经检验了, 关于 的积分恒为 1。

这三点正好是狄拉克函数的基本性质,甚至可以说是狄拉克函数的定义,因此初值检验也可以通过。

cf08b03c3cfb97c60bc1ac9e0815df30.png

结果分析

现在,根据式(8)我们就有

生成扩散模型漫谈:构建ODE的一般步骤(上)_第7张图片

接下来利用 构建一个类似得分匹配的目标进行学习就行了,这个过程已经说过多次,不再重复展开。

前面提到过, 实际上就是 ,现在我们已经知道它的具体形式为

生成扩散模型漫谈:构建ODE的一般步骤(上)_第8张图片

当 足够大的时候, 的影响就微乎其微,即 退化为跟 无关的先验分布

生成扩散模型漫谈:构建ODE的一般步骤(上)_第9张图片

之前我们在《生成扩散模型漫谈:从万有引力到扩散模型》中推导这一结果还颇费周折,而在这个框架下这一结果可谓是“水到渠成”了。不仅如此,现在我们 也有了,那么理论上就可以完成 的采样了。从式(13)的推导我们知道,如果做代换 ,就有

生成扩散模型漫谈:构建ODE的一般步骤(上)_第10张图片

于是我们可以先从 中采样,然后通过 来得到相应的 。至于从 的采样,它只依赖于模长,所以我们可以通过逆累积函数法先采样模长,然后随机采样一个方向来构成采样结果,这跟先验分布的采样是完全一样的。不过,笔者在进一步研究下面的遗留问题时,发现了一个让人意外的“惊喜”!

1fc94127a7e71584de8a5f2906c624ae.png

问题重拾

在《生成扩散模型漫谈(十三):从万有引力到扩散模型》中,我们曾指出原论文给出的采样方案是:

5a17b5718a150cad12cf0d8d95215556.png

其中 ,, 是 维单位球面上均匀分布的单位向量,而   则都是常数。当时对这个采样的评价是“有颇多的主观性”,也就是觉得是原作者主观设计的,没太多的理由。然而,不知道作者有意还是无意,笔者发现了一个神奇的“巧合”:这个采样正好是式(17)的一个实现!

接下来我们证明这一点。首先,我们将上式后半部分代入前半部分,得到

生成扩散模型漫谈:构建ODE的一般步骤(上)_第11张图片

形式上已经跟上一节说的 一样了,并且 也是各向同性的单位随机向量,所以问题变为 是否跟 同分布,答案是肯定的!注意,概率密度从笛卡尔坐标变为球坐标,要多乘以一个 半径,所以根据式(17)有

生成扩散模型漫谈:构建ODE的一般步骤(上)_第12张图片

而根据 (由于研究的是比值,方差可以约掉,因此简单起见取 )有

fcebb06d72310164e225524874c30512.png

记 ,则 ,然后根据概率的相等性,有

生成扩散模型漫谈:构建ODE的一般步骤(上)_第13张图片

因此 ,跟(20)完全一致。所以, 确实提供了 的一种有效采样方式,这在实现上要比逆累积函数法简单得多,但原论文并没有提及这一点。

01084fecb9366c1516b261c967f509ce.png

时空分离

刚才我们求解了 组成的 维空间中的各向同性解,其实某种意义上来说,这算是最简单的一个解。可能这种说明有些读者难以接受,毕竟这个万有引力扩散模型在数学上看上去明显复杂得多。但事实上,在求解数学物理方程时,很多时候各向同性解确实是作为最简单的解来试探求解的。

当然,将 看成“时-空”整体的各向同性,在理解上确实没那么直观,我们更习惯的是理解空间上的各向同性,将时间维度独立开来,这一节就在这个假设下求解。

86664a00c2f3929964f5e1acda2ef7a0.png

假设求解

也就是说,这部分的“各向同性”,指的是在 的 维空间中的各向同性,被分解为 两部分来理解。其中 只是一个标量,各向同性意味着它只依赖于 ,我们将它记为;是一个 维向量,各向同性意味着 指向源点 ,且模长只依赖于 ,因此可以设

3987d85296e46502a58a496901d5d665.png

于是

生成扩散模型漫谈:构建ODE的一般步骤(上)_第14张图片

这里有两个待定函数 、,但只有一个方程,所以求解就更简单了。由于约束条件约束的是 ,也就是 而不是 ,所以简单起见通常是给定满足条件的 来求解 ,结果是

10adb8f589e839bf8fbba272b1d0edad.png

b3d6191489820895f8061139b175aed7.png

高斯扩散

这部分我们来表明,常见的基于高斯分布假设的 ODE 扩散模型,也是式(25)的一个特例。对于高斯分布假设,有

0455c4f3eec5ee15e6955d503872c91e.png

即 ,其中 是关于 的单调递增函数,满足 且 足够大, 是为了成立初值条件, 足够大是为了先验分布与数据无关,至于积分等于1的约束,这是高斯分布的基本性质,自然满足。

代入式(25)后解得:

45475d99f19ea4424d4cb7e2c67b4247.png

其中 的积分涉及到不完全伽马函数,比较复杂,笔者是直接用 Mathematica 算的。有了这个结果后,我们有

生成扩散模型漫谈:构建ODE的一般步骤(上)_第15张图片

从而根据式(5)有

b96850899baa8ea73e25099a3c228c80.png

这些结果跟《生成扩散模型漫谈:“硬刚”扩散ODE》的完全一致,剩下的处理细节,也可以参考该文章。

d3ec5ee7cd83e77472b0c8db2a77a958.png

逆向构造

像刚才那样给定 来求解 的做法在理论上很简单,但在实践上会有两个困难:1) 既要满足初值条件,又要满足积分条件,不是那么容易构造的;2)对 的积分也不一定有简单的初等形式。既然如此,我们可以想一个逆向构造的方法。

我们知道, 是在笛卡尔坐标下的概率密度,换到球坐标下要乘以 ,而这正好是式(25)的被积函数,所以式(2)中的积分

435324233d5c1d4540ae4312f7f82d6b.png

正好是一个累积概率函数(更准确说,是累积概率函数加上一个常数),而从概率密度算累积概率不一定容易,但从累积概率算概率密度很简单(求导),所以我们可以先构造累积概率函数,然后再去求相应的 ,这样就免去了积分的困难。

具体来说,构造累积概率函数 ,满足如下条件:

1、,;

2、 关于 单调递增;

3、。

稍微研究过激活函数的同学,应该不难构造满足上述条件的函数,它其实这就是“阶跃函数” [2] 的光滑近似,比如 、 等。有了 后,根据式(25),我们就有

5564e515206cbd9a725f840219f3138b.png

其中 是 的任意函数,一般情况下可以直接设为 0。当然,这些各向同性解本质上都是等价的,包括前一节推导的“万有引力扩散”也是如此,它们都可以纳入上式之中,也可以通过坐标变换相互推导,这是因为上式只依赖于一个一元的累积概率函数 ,不同分布之间的累积概率函数一般都可以相互变换(它们都是形态良好的单调递增函数)。

7009f026b2db5c28d6f92344a9e13c14.png

文章小结

本文构建了一个 ODE 式扩散的一般框架,理论上来说,所有的 ODE 式扩散模型可以纳入到该框架之中,我们也可以从中推导出各种新奇的、奇葩的 ODE 式扩散模型,比如目前的推导都是基于各向同性假设的,其实也可以将各向同性的 换成更一般的 ,这可以利用《一阶偏微分方程的特征线法》[3] 的方法来完成求解,得到一簇新的模型。总的来说,这是一个名副其实的 ODE 式扩散模型的“生产车间”。

可能有读者想问,我不就想要一个可用的生成扩散模型而已,你搞那么多花里花俏的变体又有什么价值?事实上,跟之前《f-GAN简介:GAN模型的生产车间》、《Designing GANs:又一个GAN生产车间》一样,我们希望发现、掌握生成模型的构建规律,以便进一步理解生成模型的关键,从而发现更有效的生成模型,这是一个追求完美的永无止境的过程。

之前“万有引力扩散”论文中的实验结果已经表明,作为一个 ODE 式扩散模型,它要比高斯扩散的效果要好些。这就说明,即便是基于各向同性假设,这些数学本质等价的扩散模型在实践上依然会有效果差异。所以,如何更好地结合实验细节来回答“什么样的设计才是更好的扩散模型”,将会是未来的一个非常有意义的研究问题。

outside_default.png

参考文献

outside_default.png

[1] https://en.wikipedia.org/wiki/Continuity_equation

[2] https://en.wikipedia.org/wiki/Heaviside_step_function

[3] https://kexue.fm/archives/4718

更多阅读

生成扩散模型漫谈:构建ODE的一般步骤(上)_第16张图片

生成扩散模型漫谈:构建ODE的一般步骤(上)_第17张图片

生成扩散模型漫谈:构建ODE的一般步骤(上)_第18张图片

d3d54585a85b80535c61a5aa406de0c6.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

 投稿通道:

• 投稿邮箱:[email protected] 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

生成扩散模型漫谈:构建ODE的一般步骤(上)_第19张图片

△长按添加PaperWeekly小编

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

·

2ea3637d7c9e2fe624f21a10bc3fab40.jpeg

你可能感兴趣的:(生成扩散模型漫谈:构建ODE的一般步骤(上))