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

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值