scipy.optimize.minimize 的优化算法(3): DFP和BFGS的证明

来源:互联网 发布:电话布线使用网络 编辑:程序博客网 时间:2024/04/30 02:55

DFP和BFGS的证明

Practical Methods of Optimization, 2nd Edition, Chapter 2
http://home.agh.edu.pl/~pba/pdfdoc/Numerical_Optimization.pdf
https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html

DFP和BFGS的迭代公式的证明大多文献都用待定系数来得到,最优化的证明很难找到。在这里给出详细证明。

Theorem 1 (DFP)

minB||BBk||

subject to: B=B,Bsk=yk

此处: ||A||W||W1/2AW1/2||F; W=G. G是average Hessian

Proof:

γ=yk;δ=sk;ξ=γBδ

Lagrangian function:

L=14trace(WEWE)+trace(Λ(EE)λW(Eδξ)

LE=12WEW+ΛΛWλδ=0

将上式转置再加上原式得到:

WEW=WλδδλW

E=λγγλ

λδ=12ξδγδ

最后得到:

Bk+1Bk=(1+δBkδγδ)γγγδ(γδBk+Bkδγγδ)

也就是Numerical Optimization书中的(6.13):
Bk+1=(Iρkyksk)Bk(Iρkskyk)+ρkykyk

其中:ρk=1/(yksk).

Theorem 2 (BFGS)

minH||HHk||

subject to: H=H,Hyk=sk

此处: ||A||W||W1/2AW1/2||F; W=G. G是average Hessian

Proof:

按照Theorem 1的证明,可以得到:

Hk+1Hk=(1+γHkγδγ)δδδγ(δγHk+Hkγδδγ)

也就是Numerical Optimization书中的(6.17):
Hk+1=(Iρkskyk)Hk(Iρkyksk)+ρksksk

0 0