跳至內容

使用者:Gaussrz/BFGS算法

維基百科,自由的百科全書

這是本頁的一個歷史版本,由Gaussrz留言 | 貢獻2021年5月12日 (三) 08:13 (通过翻译页面“Broyden–Fletcher–Goldfarb–Shanno algorithm”创建)編輯。這可能和當前版本存在着巨大的差異。

(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)

數值優化中BFGS算法是一種求解無約束非線性優化問題的迭代算法[1]和相關的Davidon–Fletcher–Powell算法類似,BFGS通過利用曲率信息對梯度進行預處理來確定下降方向。曲率信息通過維護一個使用廣義的割線法逐步近似的關於損失函數Hessian矩陣來獲得。


算法

從起始點和初始的Hessian矩陣,重複以下步驟,會收斂到優化問題的解:

  1. 通過求解方程,獲得下降方向
  2. 方向上進行一維的優化(線搜索),找到合適的步長。如果這個搜索是完全的,則在實際應用中,不完全的搜索一般就足夠了,此時只要求滿足Wolfe條件

表示要最小化的目標函數。可以通過檢查梯度範數 來判斷收斂性。如果初始化為,第一步將等效於梯度下降,但接下來的步驟會受到近似於Hessian矩陣的調節。

  [[Category:优化算法与方法]]

  1. ^ Fletcher, Roger, Practical Methods of Optimization 2nd, New York: John Wiley & Sons, 1987, ISBN 978-0-471-91547-8