通向最优分布之路:概率空间的最小化

949abc2da4ae144642f202e669f962c9.gif

©PaperWeekly 原创 · 作者 | 苏剑林

单位 | 科学空间

研究方向 | NLP、神经网络

当要求函数的最小值时,我们通常会先求导函数然后寻找其零点,比较幸运的情况下,这些零点之一正好是原函数的最小值点。如果是向量函数,则将导数改为梯度并求其零点。当梯度零点不易求得时,我们可以使用梯度下降来逐渐逼近最小值点。

以上这些都是无约束优化的基础结果,相信不少读者都有所了解。然而,本文的主题是概率空间中的优化,即目标函数的输入是一个概率分布,这类目标的优化更为复杂,因为它的搜索空间不再是无约束的,如果我们依旧去求解梯度零点或者执行梯度下降,所得结果未必能保证是一个概率分布。因此,我们需要寻找一种新的分析和计算方法,以确保优化结果能够符合概率分布的特性。

对此,笔者一直以来也感到颇为头疼,所以近来决定”痛定思痛“,针对概率分布的优化问题系统学习了一番,最后将学习所得整理在此,供大家参考。

446983639ad84a56cd4065032d5a384e.png

梯度下降

我们先来重温一下无约束优化的相关内容。首先,假设我们的目标是

bdf4cbcff8647c6a299afd79435b58f9.jpeg

高中生都知道,要求函数的最值,往往先求导在让它等于零来找极值点,这对很多人来说已经成为“常识”。但这里不妨考考各位读者,有多少人能证明这个结论?换句话说,函数的最值为什么会跟“导数等于零”扯上关系呢?

搜索视角

我们可以从搜索的视角来探究这个问题。假设我们当前所知的 为 ,我们怎么判断 是不是最小值点呢?这个问题可以反过来思考:如果我们能找到 ,使得 ,那么 自然就不可能是最小值点了。为此,我们可以搜索如下格式的 :

当 足够光滑、 足够小时,我们认为一阶近似的精度是够用的,于是可以利用一阶近似:

6188080a50452a36cf52a900bf3afe6f.jpeg

只要 ,我们我们就可以选取 ,使得

b215285278b664cf6625239f04888646.jpeg

这意味着,对于足够光滑的函数,它的最小值只能在满足 的点或者无穷远处取到,这也就是为什么求最值的第一步通常是“导数等于零”。如果 ,我们总可选择足够小的 ,通过

d6cad6b852d14134ffd6063f0ed1f2ee.png

来得到让 更小的点,这便是梯度下降。如果让 ,我们可以得到 ODE:

这就是《梯度流:探索通向最小值之路》介绍过的“梯度流”,它可以视为我们用梯度下降搜索最小值点的轨迹。

投影下降

刚才我们说的都是无约束优化,现在我们来简单讨论梯度下降在约束优化中的一个简单推广。假设我们面临的问题是:

bdf320228a813d6eee1df320f3102d78.png

其中 是 的一个子集,如果是理论分析,通常要给 加上“有界凸集”的要求,但如果是简单了解的话,我们就可以先不管这些细节了。

如果此时我们仍用梯度下降(5),那么最大的问题就是无法保证 ,但其实我们可以多加一步投影运算

b9f68f9e11b4214dc3efa32f127ec713.png

从而形成“投影梯度下降”:

309a7dc7323e41e59801f1bfc9f3db99.jpeg

说白了,投影梯度下降就是先梯度下降,然后在 中找到跟梯度下降结果最相近的点作为输出,这样就保证了输出结果一定在 内。在《让炼丹更科学一些:SGD的平均损失收敛》中我们证明了,在一定假设下,投影梯度下降可以找到约束优化问题(7)的最优解。

从结果来看,投影梯度下降将约束优化(7)转化为了“梯度下降+投影”两步,而投影(8)本身也是一个约束优化问题,虽然优化目标已经固定了,但仍属于未解决的问题,需要具体 具体分析,因此还需要进一步探索下去。

8af894fa9fce77a10e5e3574c76d7ce7.png

离散分布

本文聚焦于概率空间中的优化,即搜索对象必须是一个概率分布,这一节我们先关注离散分布,搜索空间我们记为 ,它是全体 n 元离散型概率分布的集合,即

9384e58025bdfb98d155eb9921735853.jpeg

我们的优化目标则是

06e0a349c0289adce0d34f6872db47f9.jpeg

拉氏乘子

对于等式或不等式约束下的优化问题,标准方法通常是“拉格朗日乘子法”[1],它将约束优化问题(11)转化为一个弱约束的 问题:

39a6cd0ef85f21820c7fd7b1c708fc80.jpeg

注意在这个 优化中,我们去掉了 这个约束,只是在 这一步有一个比较简单的 的约束。怎么证明右边的优化问题等价于左边呢?其实并不难,分三步来理解:

1. 我们先要理解右端的 含义: 在左, 在右,这意味着我们最终是要求一个尽可能小的结果,但这个目标函数是先要对某些变量取 ;

2. 当 时,那么 这一步必然有 ,此时结果目标函数值是 ,而如果 ,那么 这一步就必然有 ,此时目标函数值是有限的,显然后者更小一点,因此当右端取最优值时 成立,同理我们也可以证明 成立;

3. 由第 2 步的分析可知,当右端取最优值时,必然满足 ,且多出来的项为零,那么就等价于左边的优化问题。

接下来要用到一个“Minimax 定理”[2]:

如果 是两个凸集,,并且 关于 是凸函数的(对于任意固定 ),关于 是凹函数的(对于任意固定 ),那么成立

63e3e51eeea832b148826e65c02a2f86.jpeg

Minimax 定理提供了 可交换的一个充分条件,这里边出现了一个新名词“凸集”,指的是集合内任意两点的加权平均,结果依然在集合内,即

160ad358f5a6fc79cdf3388afff7e0ef.png

由此可见凸集的条件并不是太苛刻, 都是凸集,还有全体非负数也是凸集,等等。

对于式(12)右端的目标函数,它关于 是一次函数,因此符合关于 是凹函数的条件,并且除开 外的项关于 也是一次的,所以整个目标函数关于 的凸性,等价于 关于 的凸性,即如果 是关于 的凸函数,那么式(12)的 就可以交换:

4868e20748195b8b1d217c45e4255374.png

这样我们就可以先对 求 了,这是一个无约束最小化问题,可以通过求解梯度等于零的方程组来完成,结果将带有参数 和 ,最后通过 、 和 来确定这些参数。

凸集搜索

然而,尽管拉格朗日乘子法被视为求解约束优化问题的标准方法,但它并不算直观,而且它只能通过解方程来求得精确解,并不能导出类似梯度下降的迭代逼近算法,因此我们不能满足于拉格朗日乘子法。

从搜索的视角看,求解概率空间中的优化问题的关键,是保证在搜索过程中试探点都在集合 内。换句话说,假设当前概率分布为 ,我们怎么构造下一个试探点 呢?它有两个要求,一是 ,二是可以通过控制 的大小来控制它跟 的接近程度。这时候 的“凸集”性质就可以派上用场了,利用这一性质我们可以将 定为

2c3d4574c99bbbfaa3078ccb3f747e61.png

那么有

03d90dc10337596994574c584a8a8b03.png

假设一阶近似的精度足够,那么要获得下降最快的方向,就相当于求解

5f75f78c87f69e3cc68646efb852eebc.png

这个目标函数倒是很简单,答案是

5462f1d918edee79ed183d6d69b06607.png

这里 是一个向量,对一个向量做 指的是找出最小分量的位置。所以,上式也就是说 是一个 one hot 分布,其中 1 所在的位置,就是梯度 最小的分量所在的位置。

由此可见,概率空间的梯度下降形式是

aeee4e15400a49a83fd8fdccb1ed842d.png

以及 是 极小值点的条件是:

9a2bf1146958c8efdd51bd31892a4e53.png

这里对向量的 是指返回最小的那个分量。

一个例子

《通向概率分布之路:盘点Softmax及其替代品》介绍的 Sparsemax 为例,它的原始定义为

4c9e88e39983b18aeff55a76cda1fc44.png

其中 。不难发现,从前面投影梯度下降的角度来看,Sparsemax 正好是从 到 的“投影”操作。

我们记 ,它对 的梯度是 ,所以根据式(21),极小值点满足的方程就是

bc7b9af26841404afdb93af61277a316.png

我们约定 ,这里没有加粗的下标如 表示向量 的第 i 个分量(即是一个标量),前一节加粗的下标如 表示 的第 t 次迭代结果(即还是一个向量),请读者细心区分。

在该约定下,由上式可以得到

b7100df05d93691d3f33b41724396669.png

因为 可以由 确定,所以 是 的函数,我们记为 ,那么 ,但这只是对于 成立,对于 ,我们有 ,即 。基于这两点,我们可以统一记

其中 由 的各分量之和为 1 来确定,其他细节内容请参考《通向概率分布之路:盘点Softmax及其替代品》

d17c418e4fd2f06acfdfab66230e83ee.png

连续分布

说完离散分布,接下来我们就转到连续分布了。看上去连续型分布只是离散型分布的极限版本,结果似乎不应该有太大差别,但事实上它们之间的特性有着本质不同,以至于我们需要为连续分布构建全新的方法论。

目标泛函

首先我们来说说目标函数。我们知道,描述连续型分布的方式是概率密度函数,所以此时目标函数的输入是一个概率密度函数,而此时的目标函数其实也不是普通的函数了,我们通常称之为“泛函”——从一整个函数到一个标量的映射。换言之,我们需要寻找一个概率密度函数,使得某个目标泛函最小化。

尽管很多人觉得“泛函分析心犯寒”,但实际上我们大部份人都接触过泛函,因为满足“输入函数,输出标量”的映射太多了,比如定积分

就是一个函数到标量的映射,所以它也是泛函。事实上,我们在实际应用中会遇到的泛函,基本上都是由定积分构建出来的,比如概率分布的 KL 散度:

93475c3dc31e27a853b0b27261317f7d.png

其中积分默认在全空间(整个 )进行。更一般的泛函的被积函数里边可能还包含导数项,如理论物理中的最小作用量:

1d94e9e249ea1cce97cae4c564a860b5.png

而接下来我们要最小化的目标泛函,则可以一般地写成

方便起见,我们还可以定义泛函导数

b6685443ca2c258b64d4d66cbb05cd98.png

紧支撑集

此外,我们还需要一个连续型概率空间的记号,它的基本定义是

5db87ac6ae937be65e01a03c64ebab13.png

不难证明,如果概率密度函数 的极限 存在,那么必然有 ,这也是后面的证明中要用到的一个性质。

然而,可以举例证明的是,并非所有概率密度函数在无穷远处都存在极限。为了避免理论上的困难,我们通常在理论证明时假设 的支撑集是紧集。这里边又有两个概念:支撑集(Support)紧集(Compact Set),支撑集指的是让 的全体 的集合,即

bedf3112702fa82b921a472d760b50cd.png

紧集的一般定义比较复杂,不过在 中,紧集等价于有界闭集。所以说白了, 的支撑集是紧集的假设,直接作用是让 具有“存在常数 C,使得 都有 ”的性质,简化了 在无穷远处的性态,从根本上避免了 的讨论。

从理论上来看,这个假设是非常强的,它甚至排除了诸如标准正态分布这样的简单分布(正态分布的支撑集是 )。不过,从实践上来说,这个假设并不算离谱,因为我们说了如果极限 存在就必然为零,因此在超出一定范围后它就跟等于零没有太大区别了。极限不存在的例子确实有,但一般都需要比较刻意构造,对于我们实际能遇到的数据,基本上都满足极限存在的条件。

旧路不通

直觉上,连续分布的优化应该是照搬离散分布的思路,即设 ,因为跟离散分布一样,连续分布的概率密度函数集 同样是一个凸集。现在我们将它代入目标泛函

c16862ed35263f62494c5817087b6a28.png

假设一阶近似够用,那么问题转化为

61555bd5519ffc618541491b5e531824.png

这个问题倒也是不难解,答案跟离散分布的 one hot 类似

d9647d780e3400da890747e1876d9fd3.png

这里的 是狄拉克 delta 函数 [3],表示单点分布的概率密度。

看上去很顺利,然而实际上此路并不通。首先,狄拉克 delta 函数并不是常规意义下的函数,它是广义函数(也是泛函的一种);其次,如果我们用普通函数的视角去看的话,狄拉克 delta 函数在某点处具有无穷大的值,而既然是无穷大的值,那么推导过程中的“一阶近似够用”的假设就不可能成立了。

变量代换

我们可以考虑继续对上一节的推导做一些修补,比如加上 的限制,以获得有意义的结果,然而这种缝缝补补的做法终究显得不够优雅。可是如果不利用凸集的性质,又该如何构建下一步的试探分布 呢?

这时候就要充分发挥概率密度函数的特性了——我们可以通过变量代换,来将一个概率密度函数变换为另一个概率密度函数,这是连续型分布的独有性质。具体来说,如果 是一个概率密度函数, 是一个可逆变换,那么 同样是一个概率密度函数,其中 表示矩阵的行列式绝对值。

基于这个特性,我们将下一步要试探的概率分布定义为

fb6434a017d9f9fb75719311c74ea5fa.png

同样的结果我们在《生成扩散模型漫谈:“硬刚”扩散ODE》已经推导过,其中行列式的近似展开,可以参考《行列式的导数》[4] 一文。

积分变换

利用这个新的 ,我们可以得到

a336029391cacba65665bd20b23a2d5e.png

接下来需要像《测试函数法推导连续性方程和Fokker-Planck方程》[5] 一样,推导一个概率密度相关的积分恒等式。首先我们有

824032f051c1dc4016f2067596d59f59.png

根据散度定理 [6],我们有

425e44413de496a981b525634c6c8178.png

其中 是积分区域,在这里是整个 , 是区域边界, 的边界自然是无穷远处, 是边界的外向单位法向量,dS 是面积微元。在紧支撑集的假设下,无穷远处 ,所以上式右端实际上就是零的积分,结果是零。因此我们有

daf88229fe4b81793d9a4b0f29c017c8.png

代入式(37)得到

d23c57e6b5435c5cfb7e7a5895012f1e.png

梯度之流

根据式(41),让 的一个简单选择是

d397ce387b1bd0f93c31fcee59410390.png

相应的迭代格式是

7ee760fc7c0dda204b4876ff6ff7316c.png

我们还可以取 的极限得

089a622f6272e842c52ce400944c14e5.png

或者简写成

88dd34880e8ac7a50e4ee536af361be9.png

这就是《梯度流:探索通向最小值之路》介绍过的 Wasserstein 梯度流,但这里我们没有引入 Wasserstein 距离的概念也得到了相同的结果。

由于 是 通过变换 得到的,所以我们还可以写出 的运动轨迹 ODE:

5ca7ba76b4d280508e12bc63e79a78b1.png

这个 ODE 的意义是,从分布 的采样结果 出发,按照此 ODE 运动到 时, 所服从的分布正是 。

d82e35ad3bf9bde9890c3ccff55f7502.png

文章小结

本文系统整理了概率空间中目标函数的最小化方法,包括取到极小值的必要条件、类似梯度下降的迭代法等内容,相关结果在最优化、生成模型(尤其是扩散模型)等场景中时有用到。

outside_default.png

参考文献

outside_default.png

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

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

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

[4] https://kexue.fm/archives/2383 

[5] https://kexue.fm/archives/9461 

[6] https://en.wikipedia.org/wiki/Divergence_theorem

更多阅读

81055416e2c1a2f9626904ab2ff05c75.png

0c984d539cc6945b25f702523eabf263.png

78ebef28bd2f894b674654d85700fc77.png

f76f54dd305f6acd551e2199be3ea521.gif

#投 稿 通 道#

 让你的文字被更多人看到 

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

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

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

📝 稿件基本要求:

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

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

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

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

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

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

56fea84bf68b5cfd17224565626aa60a.png

△长按添加PaperWeekly小编

🔍

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

进入知乎首页搜索「PaperWeekly」

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

·

·

·

21a87491a9f06ff776ce13846261139a.jpeg

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值