在數值優化領域,Broyden–Fletcher–Goldfarb–Shanno (BFGS) 演算法是一種解決無約束非線性優化問題的迭代方法。這種算法與相關的Davidon–Fletcher–Powell 方法類似,能夠通過卷曲信息來預處理梯度以確定下降方向。它逐步改善損失函數的Hessian矩陣的近似,該近似僅通過梯度評估(或近似梯度評估)來獲得,使用了一種廣義割線法。由於BFGS對Hessian矩陣的更新不需要矩陣逆運算,使其計算複雜度僅為O(n²),相比之下,牛頓法的計算複雜度則為O(n³)。
BFGS算法因其更低的計算複雜度而在許多實際問題中受到青睞,特別是在變數數量非常龐大的情況下。
BFGS演算法的最大特點在於它能夠應用於無約束的優化問題。這意味著在求解隨機變數的最佳化時,不需要對變數施加任何限制,其柔性使其成為一個非常受歡迎的選擇。在初始化階段,BFGS從一個初始估計開始,隨後透過迭代過程不斷逼近最佳解。每個階段的搜索方向由以下步驟推導得出:
pk = -Bk⁻¹∇f(xk),其中Bk是當前Hessian矩陣的近似值。
接下來在這個方向上進行一維優化以尋找合適的步長,最終達到下個解的預估值。而這種方法的優勢在於它不需要構建完整的Hessian矩陣,這對於大規模數據或參數情形尤其重要。
另一個相關的是L-BFGS,這是一種有限儲存版本的BFGS,特別適合於具有大量變數(如大於1000個變數)的問題。這使得L-BFGS成為現代機器學習和數據科學領域中非常重要的工具之一,因為它的計算成本可控且仍然有效。L-BFGS能夠在不損失性能的情況下使用更少的數據存儲進行優化。
BFGS的計算複雜度優於牛頓法,使其在商業及科學研究中廣受歡迎,特別是面對大數據時。
進一步分析BFGS算法的運作,我們了解到其旨在透過建立Hessian矩陣的良好近似,它的運作方式是在每次迭代中更新這個矩陣,而不是求取全新的Hessian。這種方法不僅有效,而且可以顯著降低計算時間,提高算法效率。基於這一點,儘管牛頓法能提供更優的收斂性,但其每次迭代的計算量卻使其難以應用於大型問題中。
此外,BFGS算法具備良好的數值穩定性,通過每次迭代逐步修正,能夠在多數情況下避免出現數值精度問題。這對於在真實世界中應用時,尤其是非光滑或不連續的優化問題,顯得格外重要。
總結來看,BFGS的成功不僅在於其計算複雜度的優勢,還在於它強大的靈活性與穩定性。而隨著計算需求的持續增長,這類算法的持續發展無疑會成為未來數據科學及優化問題的一個重要方向。這使我們不禁要思考,未來還會有哪一些新演算法能在計算效率與效果上繼續突破?