BFGS算法是一種逆秩2擬牛頓法,用於求解無約束最佳化問題,它是布羅依丹(Broyden,C. G.)於1969年,以及弗萊徹(Fletcher , R.)、戈德福布(Goldforb,D.)、香諾(Shanno, D. F.)於1970年分別得到的,故稱為BFGS算法。其通過構建一個Hessian矩陣的逆矩陣來求解最優解,這個逆矩陣的計算是通過不斷疊代更新得到的。BFGS算法的優點在於它不需要計算Hessian矩陣,而是通過更新B矩陣來近似Hessian矩陣的逆,從而減少了計算量。此外,它對一維搜尋的精度要求不高,並且由疊代產生的BFGS矩陣不易變為奇異矩陣,因此BFGS算法比DFP法在計算中具有更好的數值穩定性,收斂速度也比梯度下降算法快,在高維問題中表現也較好。
但BFGS算法在每次疊代時都需要存儲近似Hessian矩陣,這在高維數據中會浪費大量的存儲空間,因此出現了L-BFGS算法,它是對BFGS算法的一種改進,可以降低數據的存儲空間。