『壹』 BFGS演算法剖析與實現
在優化演算法領域,BFGS演算法是一種廣受歡迎的方法,其核心思想是逼近Hessian矩陣的逆,以提升梯度下降的效率。相較於DFP演算法,BFGS演算法在推導過程中有著不同的初始目標,因此其迭代公式與DFP演算法存在差異。
BFGS演算法通過Sherman-Morrison公式對輸出進行變換,從而實現更新Hessian逆矩陣的目標。這個公式在矩陣運算中非常關鍵,能夠有效減少計算復雜度,提升演算法效率。在實現過程中,BFGS演算法需要遵循特定的更新公式,以確保迭代過程的收斂性與穩定性。
實現BFGS演算法的代碼通常可以找到,例如在特定的GitHub倉庫中。代碼的使用方法也應詳細說明,以便開發者能夠快速上手並應用到實際問題中。
在實踐應用中,BFGS演算法表現出色,尤其是在變數數量不超過100時。對比其他方法,如共軛梯度法,BFGS演算法往往能夠提供更好的性能,尤其是在需要變尺度調整的場景中。這些性能優勢使得BFGS演算法成為優化問題中的有力工具。
值得注意的是,修正版的BFGS演算法在處理特定問題時,對公式中的權重要求正定性,而權重計算通常使用一階原始梯度即可,無需額外的負號。先前的演算法剖析中提到的正定放鬆約束實際上沒有必要,直接應用正定權重公式即可。
綜合來看,BFGS演算法在優化問題中展現出獨特的優勢,尤其是在特定規模的問題上。通過深入理解其原理與實現細節,開發者能夠更有效地應用BFGS演算法解決實際問題。
『貳』 【技術分享】L-BFGS演算法
本文原作者:尹迪,經授權後發布。
原文鏈接: cloud.tencent.com/devel...
在優化領域,牛頓法和擬牛頓法是常用的求解極小化問題的方法,但它們各有優劣。牛頓法雖然收斂速度快,但計算復雜,需要求解Hesse矩陣及其逆矩陣;而擬牛頓法通過近似Hesse矩陣的逆矩陣,避免了求解Hesse矩陣的復雜性。本文將詳細介紹牛頓法、擬牛頓法,包括DFP演算法、BFGS演算法以及限制內存BFGS(L-BFGS)演算法,並探討L1正則化與OWL-QN演算法。
牛頓法通過Taylor級數展開逼近目標函數,並在當前點進行二階優化,以求得極小點的估計。然而,當初始點遠離極小點時,牛頓法可能不收斂,因此引入阻尼牛頓法,通過增加搜索方向來提高穩定性。
擬牛頓法通過構建不包含二階導數的矩陣來近似Hesse矩陣的逆矩陣,克服了牛頓法的計算復雜性。其中,DFP演算法通過秩1校正策略構造近似矩陣,而BFGS演算法進一步優化了DFP演算法,使得計算效率更高。
L-BFGS演算法針對大規模優化問題,通過限制存儲和計算,僅保存最近m次迭代信息,極大地減少了數據存儲空間,提高了計算效率。通過重新整理迭代公式,L-BFGS演算法在保持收斂性的同時,顯著降低了計算復雜性。
在機器學習中,L1正則化被廣泛應用,它通過添加L1正則項到損失函數中,限制模型參數,達到特徵選擇和減少過擬合的效果。為了解決L1正則化項不可微的難題,OWL-QN演算法基於L-BFGS演算法,採用象限映射和偽梯度函數,實現了解L1正則化優化問題的有效演算法。
本文詳細探討了牛頓法、擬牛頓法、L-BFGS演算法、L1正則化以及OWL-QN演算法的原理、構造和應用,為優化問題的求解提供了豐富的理論基礎和實際應用指導。
『叄』 混沌優化演算法可以求解全局最優解嗎
非線性最優化問題的一種混合解法
摘 要:把BFGS方法與混沌優化方法相結合,基於混沌變數提出一種求解具有變數邊界約束非線性最優化問題的混合優化方法。混合演算法兼顧了混沌優化全局搜索能力強和BFGS方法收斂速度快的優點,成為一種求解非凸優化問題全局最優的有效方法。算例表明,當混沌搜索的次數達到一定數量時,混合優化方法可以保證演算法收斂到全局最優解,且計算效率比混沌優化方法有很大提高。
關鍵詞:混合法;BFGS方法;混沌優化方法;全局最優
1 引言
在系統工程、控制工程、統計學、反問題優化求解等領域中,很多問題是具有非凸性的。對此普通的優化技術只能求出局部最優解,因為這些確定性演算法總是解得最近的一個極值點[1],只有能夠給出很好的初始點才有可能得出所需要的全局最優解。為此,實際應用中通過在多個初始點上使用傳統數值優化方法來求取全局解的方法仍然被人們所採用,但是這種處理方法求得全局解的概率不高,可靠性低,建立盡可能大概率的求解全局解演算法仍然是一個重要問題。近年來基於梯度法的全局最優化方法已經有所研究[2],基於隨機搜索技術的遺傳演算法和模擬退火演算法等在全局優化問題中的應用也得到越來越大的重視[3-4]。本文則基於混沌優化和BFGS方法,提出一種求解具有簡單界約束最優化問題(1)的混合演算法。
混沌是存在於非線性系統中的一種較為普遍的現象。混沌運動宏觀上無序無律,具有內隨機性、非周期性和局部不穩定性,微觀上有序有律,並不是完全的隨機運動,具有無窮嵌套的自相似幾何結構、存在普適性規律,並不是雜亂無章的。利用混沌變數的隨機性、遍歷性和規律性特點可以進行優化搜索[5],且混沌優化方法容易跳出局部最優點。但是某些狀態需要很長時間才能達到,如果最優值在這些狀態時,計算時間勢必很長[5]。可以說混沌優化具有全局搜索能力,其局部搜索能力稍顯不足,文[5]採用二次載波技術,文[6]考慮逐漸縮小尋優變數的搜索空間都是為了彌補這一弱點。而本文則採用混沌搜索與BFGS方法進行優化求解,一方面採用混沌搜索幫助BFGS方法跳出局部最優,另一方面利用BFGS增強解附近的超線性收斂速度和搜索能力,以提高搜索最優的效率。
2 混沌-BFGS混合優化方法
2.1 BFGS方法
作為求解無約束最優化問題的擬牛頓方法類最有代表性的演算法之一,BFGS方法處理凸非線性規劃問題,以其完善的數學理論基礎、採用不精確線性搜索時的超線性收斂性和處理實際問題有效性,受到人們的重視[7-9]。擬牛頓方法使用了二階導數信息,但是並不直接計算函數的Hesse矩陣,而是採用一階梯度信息來構造一系列的正定矩陣來逼近Hesse矩陣。BFGS方法求解無約束優化問題min()的主要步驟如下:
(1) 給變數賦初值x0,變數維數n和BFGS方法收斂精度ε,令B0=I(單位陣),k=0,計算在點x0的梯度g0。
(2) 取sk=-Bk-1gk,沿sk作一維搜索,確定最優步長αk,,得新點xk+1=xk+αksk,計算xk+1點的梯度gk+1。
(3) 若||gk+1||≤ε,則令,,BFGS搜索結束,轉步驟3;否則執行(4)。
(4) 計算Bk+1:
(2)
(3)
(5) k=k+1,轉(2)。
2.2 混沌優化方法
利用混沌搜索求解問題(1)時,先建立待求變數與混沌變數的一一對應關系,本文採用。然後,由Logistic映射式(4)產生個軌跡不同的混沌變數()進行優化搜索,式(4)中=4。已經證明,=4是「單片」混沌,在[0,1]之間歷遍。
(4)
(1)給定最大混沌變數運動次數M;給賦初值,計算和;置,。
(2) 。
(3) 。
(4) 若k<M,
若,令,;
若,和保持不變;
然後令k=k+1,,轉(2)。
若k>M,則,,混沌搜索結束。
2.3 混合優化方法
混沌方法和BFGS方法混合求解連續對象的全局極小值優化問題(1)的步驟如下:
step1 設置混沌搜索的最大次數M,迭代步數iter=0,變數賦初值x0,。
step2 以為始點BFGS搜索,得當前BFGS方法最優解及=。
step3 若,取=;若,取;若,取,是相對於,較小的數。
step 4 以為始點進行混沌搜索M次,得混沌搜索後的最優解及=。
step5 若<,iter=iter+1,,轉step2;否則執行step6。
step6 改變混沌搜索軌跡,再次進行混沌搜索,即給加微小擾動,執行step 4,得搜索結果和。若<,iter=iter+1,,轉step2;否則計算結束,輸出、。
對全局極大值問題,max ,可以轉化為求解全局極小問題min 。
混合演算法中混沌搜索的作用是大范圍宏觀搜索,使得演算法具有全局尋優性能。而BFGS搜索的作用是局部地、細致地進行優化搜索,處理的是小范圍搜索問題和搜索加速問題。
3 算例
圖 1 函數-特性示意圖 圖 2 函數特性示意圖
採用如下兩個非常復雜的、常用於測試遺傳演算法性能的函數測試本文演算法:
函數稱為Camel 函數,該函數有6個局部極小點(1.607105, 0.568651)、(-1.607105, -0.568651)、(1.703607, -0.796084)、(-1.703607, 0.796084)、(-0.0898,0.7126)和(0.0898,-0.7126),其中(-0.0898,0.7126)和(0.0898,-0.7126)為兩個全局最小點,最小值為-1.031628。函數稱為 Schaffer's函數,該函數有無數個極大值,其中只有(0,0)為全局最大點,最大值為1。此函數的最大峰值周圍有一圈脊,它們的取值均為0.990283,因此很容易停留在此局部極大點。文獻[10]採用該函數對該文提出的基於移動和人工選擇的改進遺傳演算法(GAMAS)其性能進行了考察,運行50次,40%的情況下該函數的唯一全局最優點能夠找到。而採用本文混合演算法,由計算機內部隨機函數自動隨機生產100個不同的初始點,由這些初始點出發,一般混合演算法迭代2-4次即能夠收斂。M取不同數值時對函數、的計算結果分別如表1和表2所示,表中計算時間是指在奔騰133微機上計算時間。
由表2可見,當M=1500時,本文方法搜索到最優解的概率即達到40%,而此時計算量比文獻[10]小。同樣由混合演算法的100個起始點,採用文獻[5]的演算法對函數優化計算100次,以作為收斂標准,混沌搜索50000次,計算結果為67次搜索到最優解,概率為67%,平均計算時間為1.2369s。而即使保證混合演算法100次全收斂到最優解所花費的平均計算時間也只為0.2142s(表1),可見混合演算法優於文獻[5]的方法。
表1 M取不同數值時函數的計算結果
_____________________________________________________________________
M 搜索到全局最優點的次數 搜索到最優的概率 平均計算時間
(-0.0898,0.7126) (0.0898,-0.7126)
_____________________________________________________________________________________________
1000 44 39 83% 0.1214s
3000 53 45 98% 0.1955s
5000 53 47 100% 0.2142s
________________________________________________________________________________________________
表2 M取不同數值時函數的計算結果
___________________________________________________________
M 搜索到全局最優點的次數 搜索到最優的概率 平均計算時間
____________________________________________________________________________________
1500 40 40% 0.1406s
5000 73 73% 0.2505s
10000 88 88% 0.4197s
50000 100 100% 1.6856s
____________________________________________________________________________________
4 計算結果分析
由表1和表2可見,混合演算法全局尋優能力隨M的增加而增大,當M達到某一足夠大的數值Mu後,搜索到全局最優的概率可以達到100%。
從理論上說,Mu趨向無窮大時,才能使混沌變數遍歷所有狀態,才能真正以概率1搜索到最優點。但是,本文混沌運動M次的作用是幫助BFGS方法跳出局部最優點,達到比當前局部最優函數值更小的另一局部最優附近的某一點處,並不是要混沌變數遍歷所有狀態。由混沌運動遍歷特性可知,對於某一具體問題,Mu達到某一具體有限數值時,混沌變數的遍歷性可以得到較好模擬,這一點是可以滿足的,實際算例也證實了這一點。
由於函數性態、復雜性不同,對於不同函數,如這里的測試函數、,數值Mu的大小是有差別的。對於同一函數,搜索區間增大,在相同混沌運動次數下,即使始點相同,總體而言會降低其搜索到全局最優的概率,要保證演算法仍然以概率1收斂到全局最優,必然引起Mu 增大。跟蹤計算中間結果證實,當M足夠大時,混合演算法的確具有跳出局部最優點,繼續向全局最優進行搜索的能力;並且混合演算法的計算時間主要花費在為使混合演算法具有全局搜索能力而進行混沌搜索上。
5 結語
利用混沌變數的運動特點進行優化,具有非常強的跳出局部最優解的能力,該方法與BFGS方法結合使用,在可以接受的計算量下能夠計算得到問題的最優解。實際上,混沌優化可以和一般的下降類演算法結合使用,並非局限於本文採用的BFGS方法。採用的Logistic映射產生混沌變數序列,只是產生混沌變數的有效方式之一。
混沌運動與隨機運動是不同的。混沌是確定性系統中由於內稟隨機性而產生的一種復雜的、貌似無規的運動。混沌並不是無序和紊亂,更像是沒有周期的秩序。與隨機運動相比較,混沌運動可以在各態歷經的假設下,應用統計的數字特徵來描述。並且,混沌運動不重復地經過同一狀態,採用混沌變數進行優化比採用隨機變數進行優化具有優勢。
混沌優化與下降類方法結合使用是有潛力的一種全局優化途徑,是求解具有變數界約束優化問題的可靠方法。如何進一步提高搜索效率,以及如何把混沌優化有效應用於復雜約束優化問題是值得進一步研究的課題。
本文演算法全局收斂性的嚴格數學證明正在進行之中。
參考文獻
[1]胡山鷹,陳丙珍,何小榮,沈靜珠.非線性規劃問題全局優化的模擬退火法[J].清華大學學報,37(6),1997,5-9.
[2]C A Floudas, A Aggarwal, A R Ciric. Global optimum search for nonconvex NLP and MINLP problems[J]. Comput Chem Engng. 1989, 13(10), 1117~1132.
[3]康立山,謝雲,尤矢勇等.非數值並行演算法(第一冊)――模擬退火演算法[M].北京:科學出版社,1998.
[4]劉勇,康立山,陳琉屏.非數值並行演算法(第二冊)――遺傳演算法[M].北京:科學出版社,1998.
[5]李兵,蔣慰孫.混沌優化方法及其應用[J].控制理論與應用,14(4),1997,613-615.
[6]張彤,王宏偉,王子才.變尺度混沌優化方法及其應用[J].控制與決策,14(3),1999,285-287.
[7]席少霖.非線性最優化方法[M].北京:高等教育出版社,1992.
[8]席少霖,趙鳳志.最優化計算方法[M].上海:上海科學技術出版社,1983.
[9]Press W H, Tenkolsky S A, Vetterling W T, Flannery B P.Numerical Recipes in C, The Art of Scientific Computing[M]. Second edition, Cambridge University Press, 1992.
[10]J C Ports.The development and evaluation of an improved genetic algorithm based on migration and artificial selection[J].IEEE Trans. Syst. Man and Cybern..1994, 24(1),73-85.
A Hybrid Approach for Nonlinear Optimization
Abstract:Combined BFGS method with chaos optimization method, a hybrid approach was proposed to solve nonlinear optimization problems with boundary restraints of variables. The hybrid method is an effective approach to solve nonconvex optimization problems, as it given both attentions to the inherent virtue to locate global optimum of chaos optimization method and the advantage of high convergence speed of BFGS method. Numerical examples illustrate that the present method possesses both good capability to search global optima and far higher convergence speed than that of chaos optimization method.