高阶优化
在本章中,我们介绍一些利用高阶信息的优化方法。
牛顿法 Newton’s Method
在一阶优化的语境下,迭代式
实质上是最小化 Lipschitz 光滑性的上界,即
其中二次项是一个在函数上处处相等的估计,这导致学习率是一个定值。但事实上目标函数光滑程度往往不是处处相等的,如果能用泰勒展开代替光滑性上界,就能得到一个更好的估计,这样我们就得到了牛顿法:
当
且有收敛性质如下:若
共轭梯度法 Conjugate Gradient Method
在牛顿法中,为了计算
线搜法
要说明白共轭梯度法,我们首先要从其最基本的形式线搜法出发。线搜法是一类迭代方法,其迭代式为
其中向量
共轭方向法
考虑一个极端的例子
在第五章随机优化中,我们已经使用过了这个例子,在初始化不好的情况下,梯度下降法收敛将非常困难,可以使用 AdaGrad 算法可以对特征进行约束。
但对于这样不同特征间解耦非常好的目标,使用坐标下降法显然更为高效,在
对于上述的例子,其二次项系数为对角矩阵,因此有着天然的解耦性质,可以使用坐标下降法。但是对于更一般的情形,当二次项系数并非对角阵时,原先的正交基就不再适用,如下图所示(图源锦恢):
考虑这样一个二次优化问题
对于正定矩阵
则称
二次型
考虑二次型目标函数
对于正定矩阵
由于
将
因此
一般情形
若目标函数为二次型,则其 Hessian 处处相等,因此可以直接得到这一组共轭基。但是对于更复杂的目标,使用函数某处的 Hessian 来近似整个函数的共轭基未免过于理想。因此,一般使用迭代的方法来获取下一个与当前搜索方向共轭的方向,而不是一次性获取完整的共轭基。
共轭梯度法是共轭方向法的一种良好实现,其主要特征在于使用梯度信息来获取共轭方向。其搜索方向的构造要求如下:
- 所有的搜索方向共轭
- 搜索方向
仅为梯度 和 的线性组合,即
两边同乘
即
整理得
由于二阶导是梯度的变化率,因此
经整理可得
因此可得共轭梯度法迭代式
拟牛顿法 Quasi-Newton Methods
Motivation
可以看到,在共轭梯度法中,虽然避免了计算 Hessian 矩阵的逆,但是仍然需要计算 Hessian 矩阵本身,这一操作依然非常耗时。拟牛顿法就是一种通过估计来近似计算 Hessian 矩阵(的逆)的方法,从而更高效的进行牛顿法。
一个直观的想法是,正如可以通过对函数值差分来获得梯度的近似,在方向
我们也可以通过对梯度差分来获得 Hessian 的近似,即
拟牛顿条件
由牛顿法迭代式,有
记
对于近似 Hessian 矩阵
DFP 算法
DFP 算法是一种求解这个近似矩阵的方法,其迭代式为
可以证明,若初始矩阵
BFGS 算法
BFGS 迭代式为
可以证明,若初始矩阵
Limited Memory BFGS
L-BFGS 算法是 BFGS 算法的一种改进,其主要思想是仅仅保存最近的