最优化学习笔记(十九)——拟牛顿法(5)BFGS算法
生活随笔
收集整理的這篇文章主要介紹了
最优化学习笔记(十九)——拟牛顿法(5)BFGS算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、BFGS算法的更新公式
????為了推導BFGS算法,需要用到對偶或者互補的概念,前邊已經討論過hessian矩陣逆矩陣的近似矩陣需要滿足以下條件:
這是根據 Δg(i)=QΔx(i),0≤i≤k推導出來的。基于這一條件可以構造hessian矩陣逆矩陣近似矩陣的更新公式,秩1算法和DFP算法都是據此而來。但是除了構造逆矩陣的近似矩陣以外,還可以直接構造矩陣 Q的近似矩陣。令矩陣 Bk表示在第 k次迭代中關于矩陣Q的估計,則 Bk+1應該滿足
Δg(i)=Bk+1Δx(i),0≤i≤k
可以看出,這組方程與 Hk+1應該滿足的方程十分相似,唯一的區別在于 Δg(i)和 Δx(i)互換。因此,給定關于 Hk的更新公式,交換 Δg(i)和 Δx(i)的位置,并將 Hk替換為 Bk,就可以得到 Bk的更新公式。
????在BFGS算法中,矩陣 Bk對應著DFP算法的 Hk.滿足這兩種結構的兩類公式稱為對偶或互補的。
????已知DFP算法中關于 Hk,即hessian矩陣逆矩陣的近似矩陣的更新公式為:
HDFPk+1=Hk+Δx(k)Δx(k)TΔx(k)TΔg(k)?HkΔg(k)Δg(k)THkΔg(k)HkΔg(k)T
利用互補概念,可以得到 Bk,即hessian矩陣的近似矩陣為:
Bk+1=Bk+Δg(k)Δg(k)TΔg(k)TΔx(k)?BkΔx(k)Δx(k)TBkΔx(k)BkΔx(k)T
為了獲得hessian矩陣逆矩陣的近似矩陣的更新公式,只需對矩陣 Bk+1求逆即可。
二、謝爾曼——莫里森公式
????
引理 如果矩陣A非奇異, u和v是列向量, 滿足1+vTA?1u≠0, 那么A+uvT非奇異,其逆矩陣可以用A?1表示,如下:
對應 Bk+1應用2次引理, 可得:
HBFGSk+1=Hk+(1+Δg(k)THkΔg(k)Δg(k)TΔx(k))Δx(k)Δx(k)TΔx(k)TΔg(k)?HkΔg(k)Δx(k)T+(HkΔg(k)Δx(k)T)TΔg(k)TΔx(k)
這就是BFGS算法中關于 Bk的更新公式。BFGS算法保持了擬牛頓法的一切性質,包括共軛方向的性質,也能夠使得近似矩陣一直保持正定。
????當迭代過程中一維搜索的精度不夠高時,BFGS算法仍然比較穩健。這一性質有助于將計算資源從追求高精度的一維搜索中釋放出來。就效率而言,BFGS算法要遠超DFP算法。
總結
以上是生活随笔為你收集整理的最优化学习笔记(十九)——拟牛顿法(5)BFGS算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言再学习 -- ctype.h字符判
- 下一篇: C语言再学习 -- 分支与跳转语句