拟牛顿法

2,083 阅读4分钟

2. 拟牛顿法

由于Hesse矩阵的计算工作量大,有时目标函数的Hesse阵很难计算。

拟牛顿法利用目标函数和一阶导数,来构造目标函数的曲率近似,而不需要明显形成Hesse阵,同时具有收敛速度快的优点。

2.1 一般拟牛顿法

,得:

,得

或者记为:

对于二次函数,上述关系式精确成立。

要求在拟牛顿法中构造出Hesse逆近似 (如DFP算法),满足

或者构建Hesse近似(如BFGS算法)

这称为拟牛顿法条件

一般拟牛顿法:

  1. 给定初始点;
  2. ,则停止;否则,计算
  3. 沿方向线性搜索求步长因子,令
  4. 校正产生,使得拟牛顿法条件满足。
  5. , 转2.

优点:

(1)只需要一阶导数;

(2)保持正定,具有下降性;

(3)迭代每次需要次乘法;牛顿法是次(因为牛顿法需要求逆)。

2.2 DFP算法

设秩二校正为:

若要拟牛顿法条件成立,对于一个取法为:

可以得到,

那么,

2.2 L-BFGS算法

BFGS算法推导和DFP算法差不多,直接给出公式:

Limited memory Broyden–Fletcher–Goldfarb–Shanno (L-BFGS) 是对BFGS的一种优化,BFGS需要存储的方阵来近似Hessian矩阵的逆矩阵,而L-BFGS只存储最近m(m约为10)个()用于近似. 因此,L-BFGS的空间复杂度是.

L-BFGS算法:

3. 总结

(1)牛顿法是通过求解一阶导数为0,从而引入Hessian矩阵指导参数优化;拟牛顿法是对牛顿法的性能优化,思路是近似求解Hessian矩阵。

(2)牛顿法在什么时候只需要迭代一次就能求解,什么时候牛顿法不能适用?

对于正定二次函数,一步即可得最优解。

初始点远离最优解时,不一定是正定的,则牛顿方向不一定为下降方向,其收敛性不能保证。这说明恒取步长因子为1是不合适的,应该采用一维搜索(仅当步长因子收敛1时,牛顿法才是二阶收敛的),此时迭代公式是:

带步长因子的牛顿法是总体收敛的。

(3)牛顿法和最小二乘法的区别?

牛顿法和最小二乘法相比,牛顿法需要求解Hessian矩阵及确定步长,而最小二乘法不需要。牛顿法是迭代求解,最小二乘法是计算解析解。如果样本量不算很大,且存在解析解,最小二乘法比起牛顿法要有优势,计算速度很快。但是如果样本量很大,用最小二乘法由于需要求一个超级大的逆矩阵,这时就很难或者很慢才能求解解析解了,使用迭代的牛顿法比较有优势。

(4)牛顿法和梯度下降法的区别,以及为什么深度学习不使用牛顿法进行参数优化?

两者都是迭代求解,不过梯度下降法是梯度求解,而牛顿法/拟牛顿法是用二阶的海森矩阵的逆矩阵或伪逆矩阵求解。相对而言,使用牛顿法/拟牛顿法收敛更快。但是每次迭代的时间比梯度下降法长。

深度学习一般不使用牛顿法的原因:

原因一:牛顿法需要用到Hessian矩阵,这难以求解,因为很难写出深度神经网络拟合函数的表达式。

原因二:即使可以得到梯度和Hessian矩阵,当输入向量的维度较大时,Hessian矩阵的大小是,所需要的内存非常大(L-BFGS会有所改善)。

原因三:在高维非凸优化问题中,鞍点相对于局部最小值的数量非常多,而且鞍点处的损失值相对于局部最小值处也比较大。而二阶优化算法是寻找梯度为0的点,所以很容易陷入鞍点。

参考:

  1. Eureka 梯度下降法、牛顿法和拟牛顿法
  2. TangowL 数学优化入门:梯度下降法、牛顿法、共轭梯度法;
  3. AM 221:Advanced Optimization ;
  4. 最优化方法(III)(推荐阅读)
  5. Quadratic Convergence of Newton’s Method Michael Overton, Numerical Computing, Spring 2017;
  6. ysh329 Newton method;
  7. wiki Limited-memory_BFGS.