[最优化方法笔记] 拟牛顿法 SR1, BFGS, DFP

1. 拟牛顿法

1.1 回顾牛顿法

牛顿法(经典牛顿法)的迭代表达式:

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

但是,牛顿法过程中 Hessian 矩阵 2f(xk) 的计算和存储的代价很高,对于条件数较多的问题很难求解。因此,引入 拟牛顿法


1.2 拟牛顿法

拟牛顿法 的核心思路在于,在牛顿法的迭代过程中,用 近似解 计算第 k 次迭代下的 Hessian 矩阵 2f(xk)近似值记为 Bk,即有 Bk2f(xk),称为 拟牛顿矩阵

近似值 Bk 代替牛顿法中的 2f(xk),得:

xk+1=xk(Bk)1f(xk)

在近似 Hessian 矩阵时,也需要通过 某种映射关系不断迭代 得到。但是依然需要求近似矩阵的逆,为了避免计算逆矩阵的开销,我们可以 直接近似 Hessian 矩阵的逆,记 Hk=(Bk)1。故我们有:

xk+1=xkHkf(xk)Hk+1=g(Hk)

其中 g近似 Hessian 矩阵的逆 的映射函数。一般有 Hk+1=Hk+Ck,其中 Ck 被称为 修正矩阵


1.3 拟牛顿法基本过程

拟牛顿法

  • H0=I,任选初始点 x0Rn,令 k=0

  • 计算 梯度 f(xk),如果满足终止条件 ||f(xk)||<ε,取 x=xk,并结束整个算法

  • 计算 搜索方向 dk=Hkf(xk)Hk 为当前 xk 处的 Hessian 矩阵的近似

  • 迭代更新 xxk+1=xk+dk

  • 更新 HHk+1=g(Hk) 根据 xk 点的信息进行简单修正


当然,也可以用线搜索增加一个步长 α,变成 拟阻尼牛顿法

  • H0=I,任选初始点 x0Rn,令 k=0

  • 计算 梯度 f(xk),如果满足终止条件 ||f(xk)||<ε,取 x=xk,并结束整个算法

  • 计算 搜索方向 dk=Hkf(xk)Hk 为当前 xk 处的 Hessian 矩阵的近似

  • 计算 步长 α,通过 线搜索 确定当前第 k 次迭代的步长(精确搜索、直接搜索、Wolfe, Goldstein, Armijo 非精确准则等)

  • 迭代更新 xxk+1=xk+αkdk

  • 更新 HHk+1=g(Hk) 根据 xk 点的信息进行简单修正




2. 拟牛顿法 Hk 的确定

2.1 割线方程

f(x) 是二阶连续可微函数,对 f(x) 在点 xk+1 处进行一阶泰勒近似,得:

f(x)=f(xk+1)+2f(xk+1)(xxk+1)+O(||xxk+1||2)

x=xk,设 sk=xk+1xk点差yk=f(xk+1)f(xk)梯度差,得:

2f(xk+1)sk+O(||sk||2)=yk

忽略高阶项 O(||sk||2),由此可以得到:

2f(xk+1)sk=yk

所以,我们希望 近似 Hessian 矩阵 Bk+1 满足方程:

Bk+1sk=yk

因此 近似 Hessian 矩阵的逆 Hk+1 满足:

Hk+1yk=sk

上述的两个方程被称为 割线方程


2.2 曲率条件

Hk+1 满足上述 割线方程,且 保证 Bk+1 对称正定,即满足了 牛顿法 中的必要条件。有时,该方程也被称为 拟牛顿方程

保证 Bk+1 对称正定,即满足条件:

(sk)TBk+1sk>0(sk)Tyk>0

这个条件被称为 曲率条件,是 拟牛顿法迭代过程中的必要条件之一




3. SR1 方法

3.1 SR1 定义

SR1 方法 (秩一更新 Symmetric Rank-One)的核心思路很简单,即 根据 xk 处的信息得到修正量 ΔHk 来更新 Hk,即:

Hk+1=Hk+ΔHk

我们希望 Hk2f(xk)1Hk+12f(xk+1)1,故有:

ΔHk2f(xk+1)12f(xk)1

需要保证 HkHk+1 都是对称的,故显然 ΔHk 也是对称的。所以令 βR,uRn,使得 ΔHk=βuuT,故 H 的迭代更新表达式为:

Hk+1=Hk+βuuT

显然 βuuT 是一个 n×n对称矩阵β 是待定的标量,u 是待定的向量。


3.2 SR1 更新公式

根据 割线方程 Hk+1yk=sk,代入 SR1 更新的结果,得到:

(Hk+βuuT)yk=sk

整理可得:

βuuTyk=(βuTyk)u=skHkyk

其中可以得出 βuTyk 是一个 标量,因此上式表明 向量 u skHkyk 同向。故有:

u=1βuTyk(skHkyk)

1βuTyk=γ,得:

u=γ(skHkyk)

u 回代到 βuuTyk=skHkyk,得:

skHkyk=βγ2(skHkyk)(skHkyk)Tyk

由于 βγ2(skHkyk)Tyk 都是 标量,上式可以写成:

skHkyk=[βγ2(skHkyk)Tyk](skHkyk)

显然只有在 βγ2(skHkyk)Tyk=1 时,等式成立

因此,我们可以得到:

βγ2=1(skHkyk)Tyk

将上式 βγ2 回代到 迭代更新表达式 Hk+1=Hk+βuuT:

Hk+1=Hk+βuuT=Hk+βγ2(skHkyk)(skHkyk)T=Hk+(skHkyk)(skHkyk)T(skHkyk)Tyk

v=skHkyk,那么上述更新表达式可以化简为:

Hk+1=Hk+vvTvTyk

由此得到了最终 SR1 方法更新公式


3.3 SR1 的缺点

  • 在迭代过程中 无法保证 Bk 正定,也就是说 搜索方向不一定下降。而且即使 Bk 正定,也 不一定保证 Bk+1

  • 无法保证 vTyk 恒大于 0,因此也可能会导致后续的 Bk+1 非正定

由于上述缺点,SR1 方法一般很少被使用




4. BFGS 方法

4.1 BFGS 定义

BFGS 方法考虑的是 Bk 进行秩二更新。对于拟牛顿矩阵 BkRn×n,设 u0,v0,u,vRn 以及 a,bR,其中设定的向量和标量都是待定的,则有 秩二更新表达式

Bk+1=Bk+auuT+bvvT

显然 auuTbvvT 都是对称的


4.2 BFGS 更新公式

根据 割线方程 Bk+1sk=yk,代入 待定参量,得:

Bk+1sk=(Bk+auuT+bvvT)sk=yk

整理可得:

auuTsk+bvvTsk=(auTsk)u+(bvTsk)v=ykBksk

可以得出 auTskbvTsk标量,不妨取 (auTsk)u=yk,(bvTsk)v=Bksk,所以可以得到如下取值:

auTsk=1,u=yk,bvTsk=1,v=Bksk

化简可得所有 待定参量的取值

a=1uTsk=1(yk)Tskb=1vTsk=1(Bksk)Tsk=1(sk)TBksk

PS: Bk对称的大小为 n×n 的方阵,所以有 Bk=(Bk)T

将上述取值回代到 更新表达式 Bk+1=Bk+auuT+bvvT,得:

Bk+1=Bk+yk(yk)T(yk)TskBksk(sk)TBk(sk)TBksk

借助 SMW 公式 sherman-morrison-woodbury 公式,可以得到 Hk+1BFGS更新表达式

Hk+1=Hk+[1+(yk)THkyk(sk)Tyk]sk(sk)T(sk)Tyk[sk(yk)THk+Hkyk(sk)T(sk)Tyk]

由此得到了最终 BFGS 方法更新公式

使用 SMW 公式证明可以看这篇文章 Broyden类算法:BFGS算法的迭代公式推导(应用两次Sherman-Morrison公式)


4.3 BFGS 有效性

BFGS 使得拟牛顿矩阵正定的充分条件可以是:

  • BkHk 正定

  • 满足 曲率条件 (sk)Tyk>0,kN+

基于 BFGS 方法更新公式,可以得出 Bk+1 及其逆 Hk+1 均正定。

对于 拟阻尼牛顿法,采用 Wolfe 准则进行线搜索,即可满足 曲率条件

综上,BFGS 方法是可以使 Bk 保持正定的,是一个有效的算法。




5. DFP 方法

5.1 DFP 定义

DFP 方法考虑的是 Hk 进行秩二更新。思路和前面都大致一致,(此处省略一些待定参量的声明),有:

Hk+1=Hk+βuuT+γvvT

5.2 DFP 更新公式

根据 割线方程 Hk+1yk=sk,代入待定参量,得:

(Hk+βuuT+γvvT)yk=sk

整理得:

βuuTyk+γvvTyk=skHkyk

可以得出 βuTykγvTyk 都是 标量,所以可以将上式写成:

(βuTyk)u+(γvTyk)v=skHkyk

不妨取 (βuTyk)u=sk,(γvTyk)v=Hkyk,所以可以得到如下取值:

βuTyk=1,u=sk,γvTyk=1,v=Hkyk

化简可得所有 待定参量的取值

β=1uTyk=1(sk)Tykγ=1vTyk=1(Hkyk)Tyk=1(yk)THkyk

PS: Hk对称的大小为 n×n 的方阵,所以有 Hk=(Hk)T

将上述取值回代到 更新表达式 Hk+1=Hk+βuuT+γvvT,得:

Hk+1=Hk+sk(sk)T(sk)TykHkyk(yk)THk(yk)THkyk

借助 SMW 公式 sherman-morrison-woodbury 公式,同样也可以得到 Bk+1DFP更新表达式

Bk+1=Bk+[1+(sk)TBksk(yk)Tsk]yk(yk)T(yk)Tsk[yk(sk)TBk+Bksk(yk)T(yk)Tsk]

由此得到了最终 DFP 方法更新公式


5.3 DFP 方法的劣势

尽管 DFP 格式与 BFGS 对偶, 但从实际效果而言, DFP 格式的 求解效率 整体 不如 BFGS 格式。




参考

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

最优化方法复习笔记(四)拟牛顿法与SR1,DFP,BFGS三种拟牛顿算法的推导与代码实现

sherman-morrison-woodbury 公式

posted @   MarisaMagic  阅读(1283)  评论(3编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示