优化方法之 牛顿法和拟牛顿法

本文详细介绍了牛顿法和拟牛顿法在无约束优化问题中的应用,包括这两种方法的基本原理、迭代过程及算法实现。同时对比了它们与梯度下降法的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

与梯度下降法一样,牛顿法和拟牛顿法也是求解无约束优化问题的常用的迭代方法。

1、牛顿法

考虑无约束最优化问题:

minxRnf(x)

其中x为目标函数的极小点。

牛顿法的一个直观解释:每一次迭代过程中,目标函数在局部可以近似表示成二次函数,然后以该二次函数的极值点来代替目标函数的极值点,不断重复直到收敛。

既然要将目标函数局部近似为二次函数,自然地我们就要引入泰勒公式了。假设f(x)具有二阶连续偏导,若第k次迭代值为x(x),则可将f(x)x(k)附近进行二阶泰勒展开:

f(x)=f(x(k))+f(x(k))T(xx(k))+12(xx(k))TH(x(k))(xx(k))

其中,H(x(k))f(x)x(k)处的Hesse阵:
H(x)=[2fxixj]n×n

f(x)有极值的必要条件是它的一阶导在极值点处取值为0,特别地,若是极小值点则Hesse还是正定矩阵。f(x)的一阶导为:

f(x)=f(x(k))+H(x(k))(xx(k))

因此,若从x(k)开始迭代,求f(x)的极小点x(k+1),作为第k+1次的迭代值。即:

f(x(k+1))=f(x(k))+H(x(k))(x(k+1)x(k))=0

则有:
x(k+1)=x(k)H(x(k))1f(x(k))

上式即为牛顿法的迭代公式。

算法(牛顿法)
输入:目标函数f(x),梯度g(x)=f(x),hesse阵H(x),精度ϵ.
输出:f(x)的极小点。
(1)初始点x(0),迭代次数k=0
(2)计算gk=g(x(k)),若||gk<ϵ||,停止,x=x(k)
(3)计算Hk=H(x(k)),并求pk

Hkpk=gk

(4)置x(k+1)=x(k)+pk
(5)置k=k+1,转步骤(2).

总结:牛顿法与梯度下降法相比,其收敛速度快(二次收敛),但由于每一次迭代都要求解hesse阵的逆,因此计算复杂。

2、拟牛顿法

拟牛顿法的原理本质上是与牛顿法一样的,只不过是在牛顿法的迭代过程中将hesse阵的逆的计算用一个n阶矩阵Gk来代替了。

那么满足什么条件的Gk可以代替Hesse阵的逆呢?先看Hk满足的条件,由于

f(x)=f(x(k))+H(x(k))(xx(k))

x=x(k+1),则有
f(x(k+1))f(x(k))=H(x(k))(x(k+1)x(k))

yk=f(x(k+1))f(x(k)),δk=x(k+1)x(k),则
yk=Hkδk

H1kyk=δk

上面两式称为拟牛顿条件
此外,如果Hk是正定的,那么可以保证牛顿法搜索方向pk是下降方向。所以,Gk要扮演H1k在牛顿法的角色,应当满足同样条件,即:(1)迭代矩阵Gk正定;(2)Gk满足拟牛顿条件:Gk+1yk=δk.

按照拟牛顿条件,每次迭代中可以选择更新矩阵Gk+1

Gk+1=Gk+ΔGk

显然,Gk的选择不是唯一的。常用的拟牛顿法有DFP算法、BFGS算法、Broyden类算法。

3、DFP、BFGS算法

DFP中,记Gk满足拟牛顿条件:Gk+1yk=δk,则迭代公式:

Gk+1=Gk+δkδTkδTkykGkykyTkGkyTkGkyk

BFGS中,记Bk满足拟牛顿条件:Bk+1δk=yk,则迭代公式:
Bk+1=Bk+ykyTkyTkδkBkδkδTkBkδTkBkδk
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值