最优化学习笔记(十七)——拟牛顿法(3)

秩1修正公式

    在秩1修正公式中,修正项为 αkz(k)z(k)T,αkR,z(k)Rn ,是一个对称矩阵,近似矩阵的更新方程为:

Hk+1=Hk+αkz(k)z(k)T

注意:
rankz(k)z(k)T=rank(z(k)1z(k)2z(k)n[z(k)1,z(k)2,,z(k)n])=1

所以称为秩1修正算法。如果 Hk 是对称的,则 Hk+1 也是对称的。
    接下来的问题是在给定的 HkΔg(k),Δx(k) 的前提下,确定合适的 αk,z(k) , 保证:
Hk+1Δg(k)=(Hk+αkz(k)z(k)T)Δg(k)=Δx(k)

注意, z(k)TΔg(k) 是一个标量,因此:
Δx(k)HkΔg(k)=(αkz(k)TΔg(k))z(k)(1)

有:
z(k)=Δx(k)HkΔg(k)αk(z(k)TΔg(k))

可得:
αkz(k)z(k)T=(Δx(k)HkΔg(k))(Δx(k)HkΔg(k))Tαk(z(k)TΔg(k))2

那么近似矩阵的中间更新方程为:
Hk+1=Hk+(Δx(k)HkΔg(k))(Δx(k)HkΔg(k))Tαk(z(k)TΔg(k))2(2)

在(1)式两端同乘以 Δg(k)T :
Δg(k)TΔx(k)Δg(k)THkΔg(k)=Δg(k)T(αkz(k)TΔg(k))z(k)

因为 αk,z(k)TΔg(k)=Δg(k)Tz(k) 是标量,所以:
Δg(k)TΔx(k)Δg(k)THkΔg(k)=αk(z(k)TΔg(k))2

将上式代入2式可得:
Hk+1=Hk+(Δx(k)HkΔg(k))(Δx(k)HkΔg(k))TΔg(k)T(Δx(k)HkΔg(k))

    根据以上讨论,可得秩1算法的步骤:
1. 令 k=0 ,选择初始点 x(0) ,任选一个对称正定实矩阵 H0
2. 如果 g(k)=0 ,停止迭代,否则,令 d(k)=Hkg(k)
3. 计算
αk=argminα0f(x(k)+αd(k))x(k+1)=x(k)+αd(k))

4.计算
Δx(k)=αd(k)Δg(k)=g(k+1)g(k)Hk+1=Hk+(Δx(k)HkΔg(k))(Δx(k)HkΔg(k))TΔg(k)T(Δx(k)HkΔg(k))

5. 令 k=k+1 , 回到第二步。

    需要秩1并不完全令人满意。首先,该算法产生的矩阵 Hk+1 并不一定是正定的,这将导致 d(k+1) 可能不是下降方向,其次,如果 Δg(k)T(Δx(k)HkΔg(k)) 接近0, Hk+1 可能面临计算困难。

猜你喜欢

转载自blog.csdn.net/chunyun0716/article/details/54233816