[最优化方法笔记] 牛顿法与修正牛顿法

1. 牛顿法

1.1 梯度下降法的缺点

对于无约束优化问题:

minxRnf(x)

使用梯度下降法进行迭代:

xk+1=xkαkf(xk)

梯度下降的基本策略式沿着一阶导数的反方向(即最速下降方向)迭代。然而,当 Hessian 矩阵 2f(x) 的条件数较多时,计算量较大,收敛的速度较为缓慢

我们可以利用 f(x)二阶信息 改进下降方向,从而加速算法的迭代。


1.2 牛顿法

对于二次可微函数 f(x),考虑目标函数 f 在点 xk二阶泰勒近似

f(xk+1)=f(xk)+f(xk)T(xk+1xk)+12(xk+1xk)T2f(xk)(xk+1xk)+o(||xk+1xk||2)

||xk+1xk||0,且 xk+1=xk+dk,忽略高阶项,得:

f(xk+dk)=f(xk)+f(xk)Tdk+12(dk)T2f(xk)dk

dk 视为参数,两边同时求梯度:

f(xk+1)=f(xk)+2f(xk)dk

令导数为0,得:

2f(xk)dk=f(xk)

此方程称为 牛顿方程,由此可以得到牛顿法的搜索方向 dk,被称为 牛顿方向

2f(xk) 非奇异,那么可以得到 牛顿法的迭代格式

xk+1=xkαk2f(xk)1f(xk)

牛顿方向: dk=2f(xk)1f(xk)

这就是 牛顿法 的迭代方程。一般情况下, 步长 αk=1 ,迭代格式也称为 经典牛顿法。即:

xk+1=xk2f(xk)1f(xk)


牛顿法和梯度法对比

设基于梯度的迭代方程为 xk+1=xkH(xk)f(xk),其中 xRn,H(xk)Rn×n

对于 梯度下降法,有:H(xk)=αI,其中 I 为单位阵;

对于 牛顿法,有:H(xk)=2f(xk)1

显然,牛顿法的 H(xk) 是随着迭代点 xk 不断变化的,相比于梯度下降法更加 灵活


1.3 牛顿法过程

牛顿法是解决无约束优化问题的迭代算法之一。

牛顿法基本过程

  • 任选初始点 x0Rn,k=0

  • 计算 f(xk),若目标函数满足终止条件 ||f(xk)||<ε (或者其他终止条件),则令 x=xk 为最终解,结束整个算法

  • 计算 Hessian 矩阵 2f(xk)

  • 计算搜索方向 dk=2f(xk)1f(xk)

  • 迭代更新:xk+1=xk+dk=xk2f(xk)1(xk)




2. 牛顿法收敛性

2.1 经典牛顿法的收敛性

假设 f 二阶连续可微,且存在 x 的一个邻域 Nδ(x) 以及常数 L>0 使得:

||2f(x)2f(y)||L||xy||,x,yNδ(x)

即函数 f 满足 Hession 矩阵利普希茨连续

f(x) 满足 f(x)=0,2f(x)0,则有:

  • 若初始点 x0 距离 x 足够近,则迭代点列 {xk} 收敛到 x (局部收敛性)

  • {xk} 二次收敛到 x

  • {||f(xk)||} 二次收敛到 0.


2.2 牛顿法收敛速度

牛顿法收敛速度 非常快,不会随着问题维度的增大而大幅增加所需的迭代次数,且不需要通过线搜确定迭代更新的步长。

但是,在实际使用中会存在一些 限制

  • 初始点 x0 需要距离最优解 x 充分近(局部收敛性)。往往 先用梯度下降法 逼近得到较低精度的解,后用牛顿法 加速。

  • Hessian 矩阵 2f(x)正定,如果是 半正定,可能会退化到 线性收敛。一般无法保证 Hessian 矩阵可逆,也不能保证是正定的。

  • Hessian 矩阵 2f(x) 条件数较多 时,求 Hessian 矩阵以及求其逆,需要很高的计算成本。故也对 初始点 x0 的选取非常严格。

  • 牛顿法的搜索方向下降 需要依赖于 Hessian 矩阵正定




3. 修正牛顿法

3.1 修正角度

牛顿法(经典牛顿法) 优缺点非常明显,我们往往从以下两个缺点对牛顿法进行修正:

  • 初始点 x0 需要距离 x 足够近,否则,会导致迭代不稳定,进而导致算法 无法收敛。(局部收敛性

  • 牛顿法的搜索方向下降 需要依赖于 Hessian 矩阵正定,否则会导致牛顿方向不是下降的。

从以上的两个方面,可以分别考虑用以下方法完成修正:

  • 加上 线搜索确定步长 α,由此增加稳定性(精确解、直接搜索、Wolfe, Goldstein, Armijo 非精确准则等)

  • 2f(xk) 进行修正,使其 一定正定 (即 Hessian 矩阵所有特征值均大于 0)

对于第一点,下面提出了 阻尼牛顿法;对于第二点,下面提出了 L-M算法(Levenberg-Marquardt)


3.2 阻尼牛顿法

由于不能保证 Hessian 矩阵 正定,故 牛顿方向 2f(xk)1f(xk) 不一定下降。所以,引入了 阻尼牛顿法,在 牛顿方向上加上线搜索,确定步长 α,以此来保证搜索方向下降:

xk+1=xkαk2f(xk)1f(xk)

步长 α 取固定值为 1,则退化为一般的 牛顿法(经典牛顿法)


阻尼牛顿法基本过程

  • 任选初始点 x0Rn,k=0

  • 计算 f(xk),若目标函数满足终止条件 ||f(xk)||<ε (或者其他终止条件),则令 x=xk 为最终解,结束整个算法

  • 计算 Hessian 矩阵 2f(xk)

  • 计算搜索方向 dk=2f(xk)1f(xk)

  • 沿着搜索方向 dk 进行 线搜索,确定 步长 αk

  • 迭代更新:xk+1=xk+dk=xkαk2f(xk)1(xk)


3.3 L-M算法

牛顿法中在迭代点 xk 处的 Hessian 矩阵 2f(xk) ​可能是 奇异、非正定 等情况,无法保证 Hessian 矩阵可逆

故可以为 Hessian 矩阵加上一个 λI ​来 强行让 Hessian 矩阵变得正定

[2f(xk)+λI]dk=f(xk)

即使得 [2f(xk)+λI]1 存在,所以有 L-M 算法下的牛顿方向

dk=[2f(xk)+λI]1f(xk)

其中 λR+I 为单位阵。

在机器学习邻域的线性回归问题中,岭回归也是采用这种方法,使得协方差矩阵的逆一定存在。

L-M 算法中,只要 λ 足够大,一定可以使得 Hessian 矩阵 的所有特征值都大于 0,即 保证 Hessian 矩阵一定正定




参考

刘浩洋, 户将, 李勇锋, 文再文 《最优化:建模、算法与理论》

最优化方法复习笔记(三)牛顿法及其收敛性分析

理解牛顿法

posted @   MarisaMagic  阅读(2814)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 5. Nginx 负载均衡配置案例(附有详细截图说明++)
点击右上角即可分享
微信分享提示