最优化基础:牛顿法与拟牛顿法
对于无约束最优化问题
以下假设
通用的算法流程如下:
-
初始化,选取起点
,记 -
在当前位置
,获取搜索方向 ,通常是基于当前位置的一阶导和二阶导信息 -
在给定方向上进行一维搜索,
,获取步长因子 -
更新
, ,回到第二步
我们现在关注搜索方向的确定。
最速下降法
每一次的搜索相当于对
这里记
当梯度非零时,取负梯度方向是下降方向,配合足够小的正步长可以保证函数值下降
牛顿法
每一次的搜索相当于对
这里的二阶导是 Hesse 矩阵
针对二次函数取极小点
经典的牛顿法不会进行一维搜索,总是取步长为 1,在经典的牛顿法基础上,可以使用一维搜索确定步长,这样就得到了阻尼牛顿法。
牛顿法存在的最大问题是:我们希望需要计算的 Hesse 矩阵是对称正定的,但是实际问题中 Hesse 矩阵可能不定,此时二次近似没有极小值点;甚至可能矩阵不可逆,计算无法继续。
拟牛顿法
为了克服牛顿法的困难,更好的做法是采用一族对称正定矩阵
牛顿方向
引入如下记号
近似有下式成立
我们希望构造
这里的构造并不唯一,对应是不同的拟牛顿法。
拟牛顿法的一般流程为:
-
初始化,选取起点
,令 ,记 -
在当前位置
,计算 ,获取搜索方向 -
在给定方向上进行一维搜索,
,获取步长因子 -
更新
, ,回到第二步
其中 Hesse 矩阵的对称正定近似逆
对称秩一校正(SR1)
近似逆采用如下形式计算
利用拟牛顿条件可得
该公式要求分母非零。若
时进行更新,否则跳过本次校正,避免零分母或过小分母导致的不稳定。
对称秩一校正可以保证对称性,但不能保证正定,不能完全满足需求。
对称秩二校正(SR2)
近似逆采用如下形式计算
拟牛顿条件
对称秩二校正的自由度过多,拟牛顿条件和对称正定性质不足以保证唯一解。
-
一种取法是
得到 DFP 校正公式
-
另一种取法是 BFGS 校正公式(相当于对
直接进行DFP对称秩二校正,然后取逆)
DFP 和 BFGS 在