漫步最优化三十三——牛顿法












——

最速下降法是一阶法,这是因为它基于泰勒级数的线性近似。而众所周知的牛顿法则是利用了泰勒级数的二阶近似,如果 x 的变化量是 δ f(x+δ)
f(x+δ)f(x)+i=1nfxiδi+12i=1nj=1n2fxixjδiδj

假设这是函数在点 x+δ 处的精确表示,那么函数 f(x+δ) δk ( k=1,2,,n )求导并令其等于零可以得出最小化 f(x+δ) δk 值,由此可得

fxk+i=1n2fxixkδi=0for k=1,2,,n

或者用矩阵形式来表示为

g=Hδ

因此 x 的最优变化量为

δ=H1g

这个解要想存在,当且仅当下面的两个条件成立:

  • 海森矩阵是非奇异的
  • 泰勒级数的近似是有效的

假设 x 处最小值的二阶条件成立,那么 H 在点 x 处以及邻域内( xx<ε )都是正定的,这就意味着对于 xx<ε,H 是非奇异的并存在逆。因为任何函数 f(x)C2 都可以用泰勒级数的二次近似来表示 x 的邻域,所以上面的解释存在的,更进一步,对满足 xx<ε 的任意点 x ,一次迭代就能得到 xx

任何二次函数都有海森矩阵,且对任意的 xEn 都为常数。如果函数有最小值,那么二阶条件满足,故对任意点 xEn,H 是正定的,也是非奇异的。因为二次函数可以用泰勒级数的二次近似准确的表示,所以上面的解是存在的,更进一步,对于任意点 xEn ,一次迭代就能得到解。

如果我们要最小化一般的非二次函数,对于任意点 x ,两个条件不一定都满足。如果第一个条件不满足,那么会有无数多个解或者没有解。另一方面,如果第二个条件不满足,那么一次迭代后 δ 不一定能得到解,如果 H 不是正定的,甚至 δ 不会令目标函数变小。

对于第一个问题,我们可以加入一些操作强行使 H 是正定的。而对于第二个问题,我们可以加入一个迭代过程解决。这个迭代过程抵消掉了一次迭代无法得到解的事实,并使用线搜索达到最大化减小 f(x) 。这个方法通过选择下一个迭代点 xk+1

xk+1=xk+δ=xk+αkdk

就能实现,其中

dk=H1kgk

αk 是最小化 f(xk+αdk) α ,向量 dk 称为点 xk 处的牛顿方向。当两个条件都满足的情况下,第一次迭代我们令 αk=1

最小化开始的时候,对某些类型的函数该过程会很慢,但不管怎样, f(x) 一直在减小,然而随着越来越靠近问题的解,两个条件都会满足,因此最终达到收敛,收敛的阶数是二。从效果上看,牛顿法的收敛属性与最速下降法形成互补的关系,即远离解的时候收敛慢,靠近解的时候收敛快。

修正海森矩阵

如果海森矩阵不是正定的,那么我们需要将其强行变成正定的,修正 Hk 的方法有许多,这里不再详细给出,如果需要可以私信或留言。

海森矩阵的计算量

牛顿法的缺点是需要知道函数的二阶导,也就是需要计算海森矩阵。如果无法获得准确的形式或者比较难算出来,那么我们可以用下面的数值公式进行计算:

fx1=limδ0f(x+δ1)f(x)δ=f(x)with δ1=[δ 0 0  0]T2fx1x2=limδ0f(x+δ2)f(x)δwith δ2=[0 δ 0  0]T

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值