牛顿法和BFGS比较

牛顿法及BFGS近似

牛顿法是基于二阶泰勒级数展开在某点 附近近似 的优化方法,忽略了高阶级数。

其中H是j相对于 的Hessian矩阵在 处的估计。如果再求解这个函数的临界点,将得到牛顿参数更新规则:

牛顿法只适用于Hessian矩阵是正定的情况(如果不是正定阵,若存在负的特征值,则无法保证梯度沿该方向下降。若存在为0的特征值,则Hessian矩阵不可逆,此时该矩阵称为奇异矩阵)。深度学习中,目标函数表面通常非凸(有很多特征),如鞍点,因此牛顿法是有问题的,如果Hessian矩阵的特征值并不都是正的,例如,靠近鞍点处,牛顿法实际上会导致更新朝着错误的方向移动,这种情况可以通过正则化Hessian矩阵来避免常用正则化策略包括在Hessian矩阵对角线上增加常数 。正则化更新变为

注意:这里的特征值就是曲线在θ0 的导数。

这种正则化策略用于牛顿法的近似,例如Levenberg-Marquardt算法(就是这种正则化策略),只要Hessian矩阵的负特征值仍然相对接近零,效果就会很好。然而,如果 持续增加,Hessian矩阵会变得由对角矩阵αI 主导,通过牛顿法所选择的方向会收敛到普通梯度除以 ,当很强的负曲率存在时, 可能需要特别大,以至于牛顿法比选择合适学习率的梯度下降的步长更小。

牛顿法用于训练大型神经网络还受限于其显著的计算负担。Hessian矩阵中元素数目是参数数量的平方,。因此如果参数数目为k,牛顿法需要计算k*k矩阵的逆,计算复杂度为O(k3)另外,由于参数训练迭代都需要计算Hessian矩阵的逆。其结果是只有参数很少的网络才能在实际中使用牛顿法训练。

对于Levenberg-Marquardt算法, 时,就是Gauss-Newton方向,即解决非线性最小二乘法。 充分大时, 取决于 ,即解决最速下降算法。

BFGS使用不含二阶倒数的矩阵M近似Hessian逆矩阵,来代替Hessian矩阵逆矩阵。但是BFGS必须存储Hessian矩阵,需要 的空间,使BFGS不适用于现代深度学习模型。

 

注意这里的BFGS就是拟牛顿法的一种。

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值