我们介绍一下从变分法的角度看Nesterov加速算法。我们首先简要介绍一下变分法的基础,然后介绍一下Nesterov加速算法生成的路径如何表示为某个变分问题的最优解。
0.简介这里,我们分享一下Nesterov加速算法生成的路径如何表示为某个变分问题的最优解。首先,我们简要介绍一下变分法的基础,推导欧拉—拉格朗日等式。然后,我简述一下Wibisono,Wilson与Jordan的论文,AVariationalPerspectiveonAcceleratedMethodsinOptimization,介绍Nesterov算法如何表示为某个变分问题的欧拉—拉格朗日等式。
1.变分法简介常规的优化问题通常要求解一个函数
的最大或者最小值点,其中函数
的取值范围为
维的欧几里得空间。变分法更进一步的推广了优化的概念。在变分理论中,我们不再寻找一个点,而是寻找一个依赖于时间
的函数
,使得“函数”
(这里我们把
叫做泛函。它以函数为参数,返回值为实数。“泛”即泛化,即为对函数的推广)在
处取得最小值,即我们需要求解下列问题
我们为什么要处理上述问题呢?即,我们为什么要处理泛函的优化?这里我们举两个例子。假设现在我们要发射登月的航天器,在设计的时候,需要确定航天器运行的轨道,使得航天器消耗的能量最小。因此,我们可以用函数
来表示航天器运行的轨道,泛函
衡量轨道
所消耗的能量。所以问题
表示我们要找到一条最优的运行轨道,使得航天器所消耗的能量最小。另外一个例子是我们在做智能机器人时候,需要机器人去取指定位置的货物,我们需要让机器人算出一个最优的行走路线,使得机器人的耗电量最小。那么函数
就可以用来表示机器人的可能行走路线,泛函
衡量路线为
的情况下机器人的耗电量。所以,问题
表示寻找一个最优的路径使得机器人能取到货物的同时耗能最低。当然,真实的情况下,我们要考虑的问题会比
更为复杂,这里只是给出一个模型框架。
一般地,在变分问题中,我们考虑下列的
形式:
在公式
中,我们考虑的是时间
在范围
内的问题。如果我们将
看做某个对象的运行轨迹,那么
对时间的导数
可以理解为该对象的速率。此时,被积项
衡量的是
时刻该对象位置为
、速率为
的状态下的消耗函数。因此,从
到
对
积分,得到的是整个运行过程中,该对象的总的损耗。此框架下,问题
即为寻找一条该对象的运行轨迹
使得等式
中的泛函
的值最小。
接下来,我们如何求解
呢?我们知道如何求解一个普通函数的优化问题,即,求函数
的最小值点,我们只需要考虑
的导数为
的点即可。类似地,我们也需要对问题
中的泛函
求导。是否可以将对
的求导转换为对普通函数的求导呢?我们看看如何操作。
假设
是问题
的最小值点,那么,对于任意的函数
和正实数
,我们有
。
不等式
是成立的,因为
是最小值点。那么我们就可以定义一个函数
为
。
于是,根据不等式
,函数
在
时取得最小值。函数
为以实数为参数的函数。因此,
时,我们有
。
这里,我们考虑
定义下的
形式。从公式
与
,我们得到
因此,我们从上式与条件
得到
对
使用分部积分,我们得到
因为
是任意选择的函数,我们可以选择
在
与
时为
。即,
以及
。
因此,
的最后两项消失掉了。我们得到
因为
对满足
的任意
都成立,所以我们有
备注:从
得到
需要严格的证明。这里我们略去证明。通过下列类比,读者可以感受一下它的正确性。假设对于任意实数
,我们有
=0。那么,我们可以知道
。这里,可以将
看做是
,而将
看做是
。
等式
叫做欧拉——拉格朗日等式。求解
,我们就能得到问题
的最优解。
2.从变分的观点看Nesterov加速算法在之前的一篇