牛顿法、拟牛顿法、共轭梯度法
牛頓法
一: 最速下降法
下降法的迭代格式為xk+1=xk–αkdk
, 其中dk為下降方向, 設gk=∇f(xk)≠0, 則下降方向要滿足dTkgk<0. 當步長確定時, dTkgk的值越小, 即−dTkgk的值越大, 函數下降得越快. 由Cauchy-Schwartz不等式∣∣dTkgk∣∣≤∥dk∥∥gk∥, 當且僅當dk=−gk時, dTkgk的值最小. 從而−gk是最速下降方向. 則最速下降法的迭代格式為xk+1=xk−αkgk
.
這里要注意的是, 最速下降方向只是算法的局部性質. 對于許多問題, 最速下降法并非”最速下降”, 而是下降非常緩慢. 數值試驗表明,
當目標函數的等值線接近于一個圓(球)時, 最速下降法下降較快, 而當目標函數的等值線是一個扁長的橢圓時, 最速下降法開始幾步下降較快,
后來就出現鋸齒現象, 下降就十分緩慢. 其原因是這樣的, 由于一維搜索滿足gTk+1dk=0
, 即gTk+1gk=dTk+1dk=0
. 表明在相鄰兩個迭代點上函數的兩個梯度方向是互相直交的, 這就產生了鋸齒形狀, 當接近極小點時, 步長越小, 前進越慢.
當目標函數是二次函數時, 最速下降法的收斂速度由對應于某個等值線的橢球的最長軸與最短軸之比決定. 這個比值越大, 最速下降法下降越慢.
二: 牛頓法
牛頓法的基本思想是利用目標函數的二次Taylor展開, 并將其極小化. 也可以想成是一個一點二次插值法進行局部擬合.
帶步長因子的牛頓法, 算法如下:
Step1: 選取初始數據, 取初始化點x0
, 終止誤差ε<0;
Step2: 計算gk, 若∥gk∥<ε, 停止迭代, 輸出xk. 否則進入Step3;
Step3: 解方程組構造牛頓方向, 即解Gkd=−gk, 求出dk.
Step4: 進行一維搜索, 求αk使得f(xk+αkdk)=minα≥0f(xk+αkdk). 令xk+1=xk+αkdk, k:=k+1, 轉Step2.
牛頓法面臨的主要困難是Hess矩陣Gk不正定. 這時候二次模型不一定有極小點, 甚至沒有平穩點. 當Gk
不定時, 二次模型函數是無界的. 為了克服這些困難, 人們提出了很多修正措施.
[參考] 1. <最優化理論與方法>袁亞湘院士著.
擬牛頓法
牛頓法成功的關鍵是利用了Hesse矩陣提供的曲率信息, 而計算Hesse矩陣工作量大, 并且有的目標函數的Hesse矩陣很難計算, 甚至不好求出來, 這就導致僅用目標函數的一階導數的方法, 擬牛頓法就是利用目標函數值和一階導數信息, 構造出目標函數的曲率近似, 而不需要明顯形成Hesse矩陣, 同時具有收斂速度快的優點.
一: 擬牛頓法條件
目標函數f
在xk+1附近的二次近似為:
f(x)≈f(xk+1)+gTk+1(x−xk+1)+12(x−xk+1)TGk+1(x−xk+1)
對上面的式子兩邊求導, 有g(x)≈gk+1+Gk+1(x–xk+1). 令x=xk,sk=xk+1–xk,yk=gk+1–gk,得G–1k+1yk≈sk.對于二次函數, 此式精確成立. 現在我們想在牛頓法中構造出的Hesse逆近似Hk+1滿足這種關系. 即:
Hk+1yk=sk
上式是關于Hesse逆近似的擬牛頓條件.類似地, 也可以考慮用Bk來直接逼近Hesse矩陣, 這時, 相應的擬牛頓條件為, Bk+1sk=yk.
擬牛頓法(Hesse逆近似)的主要步驟為:
1). 令dk=–Hkgk;
2). 沿方向dk作線性搜索, 得到xk+1=xk+αkdk;
3). 校正Hk產生Hk+1.
與牛頓法相比, 擬牛頓法有下列優點:
1). 僅需要一階導數; (牛頓法需要二階導數)
2). Hk保持正定, 使得方法具有下降性質; (在牛頓法中, Gk可能不定)
3). 每次迭代需O(n2)次乘法. (牛頓法需O(n3)
次乘法)
二: DFP校正(Davidon-Fletcher-Powell)
利用Hesse逆近似方法構造Hk+1
進行校正的思路是這樣的, 假設每一步迭代中矩陣Hk+1是由Hk加上兩個附加項構成的, 即Hk+1=Hk+Pk+Qk, 其中Pk,Qk是待定矩陣, 這時Hk+1yk=Hkyk+Pkyk+Qkyk. 為使Hk+1滿足擬牛頓條件, 得到DFP校正迭代公式為:
Hk+1=Hk+sksTksTkyk−HkykyTkHkyTkHkyk
DFP方法是一個實際上廣為采用的方法, 它在理論分析和實際應用中都起了很大作用. 但是, 進一步的研究發現, DFP方法具有數值不穩定性, 有時產生數值上奇異的Hesse近似. 而BFGS校正克服了DFP校正的缺陷.
三: BFGS校正(Broyden-Fletcher-Goldfarb-Shanno)
利用Hesse近似方法構造Bk+1
進行校正. 思路和上面類似. 可以得到BFGS校正迭代公式:
Bk+1=Bk+ykyTkyTksk−BksksTkBksTkBksk
BFGS校正是迄今最好的擬牛頓公式. 它具有DFP校正所具有的各種性質. 此外, 當采用不精確線性搜索時, BFGS公式還具有總體收斂性質,
這個性質對于DFP公式還沒有證明. 在數值執行中, BFGS公式也優于DFP公式, 尤其是它常常能與低精度線性搜索方法一起連用.
[參考] 1. <最優化理論與方法>.袁亞湘院士著.
2.<統計學習方法>.李航著
共軛梯度法
一: 共軛方向法
共軛方向法是介于最速下降法與牛頓法之間的一個方法, 它僅需利用一階導數信息, 但克服了最速下降法收斂慢的缺點,
又避免了存儲和計算牛頓法所需要的二階導數信息. 共軛方向法是從研究二次函數的極小化產生的, 但是它可以推廣到處理非二次函數的極小化問題.
最典型的共軛方向法是共軛梯度法. 而擬牛頓法也是共軛方向法的一種.
共軛方向的概念是這么定義的: 設G
是n×n對稱矩陣, d1,d2是n維非零向量, 如果dT1Gd2=0, 則稱向量d1,d2是G–共軛的. 類似地, 設d1,d2,…,dm是Rn中的任意一組非零向量. 若有dTiGdj=0,(i≠j), 則稱d1,d2,…,dm是G–共軛的.
顯然地, 當G是n階單位矩陣時, dTidj=0,(i≠j)
, 即是正交向量組. 因而共軛概念是正交概念的推廣. 但要注意, 正交的向量不一定共軛, 共軛的向量不一定正交, 有時, 可能既共軛又正交.
為什么要引入共軛向量組呢, 因為它有如下重要的性質:
1). 若d1,d2,…,dm
是一組G–共軛方向, 則它們一定是線性無關的;
2). 對于正定二次函數, 共軛方向之多經過n
步精確線性搜索可達到整體最優解.
通常, 我們把從任意點出發, 依次沿某組共軛方向進行一維搜索求解的方法, 叫做共軛方向法. 由于共軛方向組的取法有很大的隨意性,
用不同方式產生一組共軛方向就得到不同的共軛方向法. 如果利用迭代點處的負梯度向量為基礎產生一組共軛方向, 這樣的方法叫做共軛梯度法.
二: 共軛梯度法
為了滿足共軛方向組的定義, 我們可以推出這樣一組迭代公式:
?????????d0=−g0dk+1=−gk+1+βkdk,βk=gTk+1GdkdTkGdkk=0,1,...,n−2
利用二次凸函數的結構和精確一維搜索的性質可以得到更簡化的迭代形式:
?????????d0=−g0dk+1=−gk+1+βkdk,βk=gTk+1gk+1gTkgkk=0,1,...,n−2
上式是由Fletcher和Reeves于1964年提出來的, 通常稱為Fletcher-Reeves共軛梯度法, 簡稱F-R法.
用F-R法求解二次凸優化問題時, 它具有二次終止性質, 但用F-R法來求解非二次函數, n步以后共軛梯度法產生的搜索方向dk不再共軛, 因此n步以后我們需要周期性地采用最速下降方向作為搜索方向, 即令dcn=–gcn,c=1,2,….
這種方法叫做再開始共軛梯度法. 對于大型問題, 會經常地進行再開始. 再開始共軛梯度法允許采用近似線性搜索過程,
只是在采用近似線性搜索的同時, 要采用一定的檢查措施, 以保證得到的搜索方向是下降方向. 而同樣面臨的問題是,
如果頻繁地利用最速下降方法作為搜索方向, 將大大削弱共軛梯度法的效率, 從而使算法的性態變得更像最速下降法. 需要進一步采取措施克服這個困難.
因而一般來說F-R方法強烈地依賴于一維搜索的精確性, 當一維搜索不能保證有精確性時,
我們可用Polak-Ribiere-Polyak共軛梯度法, 簡稱P-R-P法. P-R-P法與F-R法不同的僅僅是步長的計算公式不同, βk=gTk+1(gk+1–gk)gTkgk. P-R-P有自動再開始的顯著優點. 當算法前進很少時, 會出現gk+1≈gk, 這時P-R-P公式產生βk≈0. 因此dk+1≈–gk+1
, 即算法有自動再開始的趨勢, 這樣有利于克服進展緩慢的缺點. 一些實驗結果表明, 對一些大型問題, P-R-P公式效果較好. 然而1984年Powell M J D提出了反例來說明在存在某些問題, P-R-P法不收斂, 而F-R法具有全局收斂性.
在實踐中證明十分有效的無約束最優化方法, 除了共軛梯度法以外, 還有變尺度算法. 它們的結構原理都是基于二次函數模型產生下降方向,
然后由線性搜索選擇在該方向上的步長. 變尺度算法也是一類方法的總稱, 使用比較普遍的有DFP方法和BFGS方法,
這些方法是相當于迭代的每一輪的度量是變化的最速下降法, 因而得此名. 數值實驗指出, BFGS算法是最好的變尺度算法,
當變量個數不超過100時, 通常BFGS法比共軛梯度法效果好. 但對于變量個數超過100的大規模無約束游湖問題,
共軛梯度法因其不要太大的存儲量而更具優勢.
信賴域法是目前正在發展中的一種無約束最優化方法. 它是針對共軛梯度法和變尺度法的缺點設計的.
[參考] 1. <最優化理論與方法>.袁亞湘院士著.
2.<運籌學>.習在筠等著
from: http://jacoxu.com/?p=240
http://jacoxu.com/?p=245
http://jacoxu.com/?p=242
總結
以上是生活随笔為你收集整理的牛顿法、拟牛顿法、共轭梯度法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 换了一个新平板值得吗旧平板换新的划不划算
- 下一篇: 二叉树遍历(前序、中序、后序、层次、深度