漫步最优化四十五——矩阵S的生成








——

f(x)C2 En 中的函数并假设 f(x) 在点 xk,xk+1 处的梯度分别为 gk,gk+1 ,如果
xk+1=xk+δk

那么根据泰勒级数可以得出 gk+1 的元素为

g(k+1)m=gkm+i=1ngkmxkiδki+12i=1nj=1n2gkmxkixkjδkiδkj+

其中 m=1,2,,n 。接下来如果 f(x) 是二次的,那么 f(x) 的二阶导为常数, gkm 的二阶导为令,所以

g(k+1)m=gkm+i=1ngkmxkiδki

又因为

gkm=fkxkm

因此我们有

g(k+1)m=gkm+i=1n2fkxkixkmδki

其中 m=1,2,,n ,也就是

gk+1=gk+Hδk

其中 H f(x) 的海森矩阵。或者我们可以写成

γk=Hδk

其中

δk=xk+1xkγk=gk+1gk

上面的分析表明,如果 f(x) 在点 xk,xk+1 处的梯度已知,那么可以得到上面的关系,这给出了矩阵 H 的部分信息。因为 H 中有 n2 个未知量(或者如果 H 是实对称矩阵,那么存在 n(n+1)/2 个未知量),而等式2只提供了 n 个等式,不能唯一的确定H,然而,如果对连续 n+1 个点的梯度进行估计,也就是点 x0,x1,,xn ,使得 x 的变化量组成一个线性无关向量的集合,那么我们就有充分的信息来唯一的确定 H ,其中 x 的变化量就是

δ0=x1x0δ1=x2x1δn1=xnxn1

为了证明这个事实,我们将等式2给出的 n 个等式重新写成

[γ0 γ1  γn1]=H[δ0 δ1  δn1]

因此

H=[γ0 γ1  γn1][δ0 δ1  δn1]1

如果 δ0,δ1,,δn1 构成一个线性无关向量集,那么解就存在。

利用上面的原则可以构造下面的算法:

11x00εk=0线δ0,δ1,,δn12g003i=0n1xk(i+1)=xki+δigk(i+1)γki=gk(i+1)gki4Hk=[γk0 γk1  γk(n1)][δ0 δ1  δn1]1Sk=H1k5dk=Skgk0α,f(xk0+αdk)αx(k+1)0=xk0+αkdk6αkdk<ε,xk=x(k+1)0f(x)=f(x(k+1)0)7k=k+13

上面的算法基本上是牛顿法的实现,唯一的不同是利用数据来得到 H1 。对于凸二次问题,上面的算法一次迭代就得的问题的解,因此非常有效,然而对于非二次问题,同基于牛顿法的其他一样,它也存在相同的缺点。首先需要矩阵的逆,其次必须检查 Hk 的正定性。

下面介绍一种消除矩阵逆的策略。假设已知正定实对称矩阵 Sk H1 的近似值,然后计算拟牛顿方向为

dk=Skgk

然后求 α ,也就是最小化 f(xk+αdk) α 值。对于凸二次问题,

αk=gTkSkgk(Skgk)TH(Skgk)

其中 Sk,H 是正定的。显然,当 xk 不是问题的解 x 时, αk 大于零,然后确定 x 的变化量为

δk=αkdk

根据等式1得到新点 xk+1 。通过计算 xk,xk+1 处的梯度,利用等式4得到梯度的变化量 γk ,接下里对 Sk 进行修正得到

Sk+1=Sk+Ck

其中 Ck n×n 修正矩阵,从数据计算得出的。从初始点 x0 ,初始正定矩阵 S0,S0=In 开始,迭代使用上面的过程,得到序列 δ0,δ1,,δk,γ0,γ1,,γk,S1,S2,,Sk+1 。如果

Sk+1γi=δifor 0ik

然后对于 k=n1 ,我们可以写作

Sn[γ0 γ1  γn1]=[δ0 δ1  δn1]

或者

Sn=[δ0 δ1  δn1][γ0 γ1  γn1]1

根据等式5与11可得

Sn=H1

接下来如果 k=n ,等式6到8得到

dn=H1gnαn=1δn=H1gn

所以根据等式1可得

xn+1=xnH1gn=x

上面的过程产生了一族拟牛顿算法,他们有一个基本属性:对于凸二次问题, n+1 次迭代内中止,根据修正矩阵 Cn 的差异从而得出各种各样的算法。

对于任何 Cn , Sk+1 必须满足等式10,并且下面的属性也是我们想要的:

  • 向量 δ0,δ1,,δn1 构成一个共轭方向集
  • 正定矩阵 Sk 产生正定矩阵 Sk+1

第一个属性确保共轭方向的性质能够应用到拟牛顿法上,第二个属性确保每次迭代中 dk 是下降方向。为了证明这个事实,考虑点 xk+δk 并令

δk=αdk

其中

dk=Skgk

对于 α>0 ,泰勒级数给出

f(xk+δk)=f(xk)+gTkδk+12δTkH(xk+cδk)δk

其中 c 是常数,0c1。消除 δk ,我们得到

f(xk+δk)=f(xk)αgTkSkgk+o(αdk)=f(xk)[αgTkSkgko(αdk)]

其中 o(αdk) 是余项,比 αdk 更快接近零。接下来如果 Sk 是正定的,那么对于充分小的 α>0 ,我们有

αgkSkgko(αdk)>0

因为 α>0,gTkSkgk>0,o(αdk)0 ,因此

f(xk+δk)<f(xk)

也就是说如果 Sk 是正定的,那么 dk 是下降方向。

从这点来说,属性2的重要性就很明显了。正定矩阵 S0 将产生正定矩阵 S1 ,然后产生正定矩阵 S2 ,如此不断进行,最后方向 d0,d1,d2, 将都是下降方向,这就确保算法能够收敛。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值