第三章 無約束優化方法
本文是本人研究生課程《最優化方法》的復習筆記,主要是總結課件和相關博客的主要內容用作復習。
3.1 算法理論基礎
1. 無約束優化問題的最優性條件
先是一元函數取得極值的條件,高中就學過的
然后是拓展到多元函數后的理論
這三條和前面一元函數的三條是一一對應的,半正定對應大於等於,正定對應嚴格大於。
這里的最優性一直在說的都是局部最優性。
2. 無約束凸規划問題的最優性條件
凸規划就有一個很好的特點,就是只要是局部最優解,那他就是全局最優解,也就是不存在鞍點了,再把前面的思路拓展就可以得到很好的結果了。
3. 線搜索下降算法及其收斂性
- 算法
- 收斂性
- 收斂速度
后面的幾種方法總覽
參考:
【1】知乎 : 最優化:線搜索中有最速下降法、牛頓法、擬牛頓法、共軛梯度法,那么他們分別時候用
最速下降法利用目標函數一階梯度進行下降求解,易產生鋸齒現象,在快接近最小值時收斂速度慢。
Newton法利用了二階梯度,收斂速度快,但是目標函數的Hesse
矩陣不一定正定。於是出現了修正的Newton
法,主要是對不同情況進行了分情況討論。Newton法的優缺點都很突出。優點:高收斂速度(二階收斂);缺點:對初始點、目標函數要求高,計算量、存儲量大(需要計算、存儲Hesse矩陣及其逆)。
共軛梯度法是介於最速下降法和牛頓法之間的一個方法,相比最速下降法收斂速度快,並且不需要像牛頓法一樣計算Hesse矩陣,只需計算一階導數(共軛梯度法是共軛方向法的一種,意思是搜索方向都互相共軛)。
擬Newton法是模擬Newton法給出的一個保優去劣的算法。
3.2 最速下降法
最速下降方向:
梯度的定義是:變化最快的方向,其實指向的就是上升最快的方向。
下降最快的方向是梯度的反方向,即\(-g_k\)。
1. 算法框架

2. 優缺點

3. 精確一維線搜索 + 最速下降法:
4. 例題


3.3 牛頓法
這里參考博客:
【1】https://blog.csdn.net/itplus/article/details/21896453
1. 牛頓法與阻尼牛頓法
2. 優缺點
3. 例題

3.4 共軛梯度法
共軛方向法是介於最速下降法和Newton法之間的一種方法。克服了最速下降法的鋸齒現象,從而提高了收斂速度;同時,共軛方向法的迭代公式比較簡單,不必求目標函數的Hesse矩陣,比Newton法減少了計算量和存儲量。是一種比較實用而且有效的方法。
1. 共軛向量及其性質
關於共軛向量的定義:
滿足上述條件后,稱\(d^0,d^1,…,d^{k-1}\)是G的共軛方向。
當\(Q=I\)時可以發現,\(d^0,d^1,…,d^{k-1}\)相互正交。也就是說:正交是共軛的一種特殊情況,共軛是正交的推廣。
2. 共軛方向法的理論基礎
用一句話概括那就是:
在精確一維線搜索的情況下,當前迭代點的梯度g與之前所有的搜索方向d正交。
3. 共軛方向法的基本算法框架
4. 如何構造共軛方向:Gram-Schmidt方法
5. 二次函數極小化的共軛梯度法
前面是對共軛方向法+一維線搜索的整理,接下來對二次函數總結成共軛梯度法的理論。
3.【考】 一般函數極小化的共軛梯度法
這部分可能是考試重點
例題比較簡單
3.5 擬牛頓法
這里參考博客:
【1】https://blog.csdn.net/songbinxu/article/details/79677948,
【2】https://blog.csdn.net/itplus/article/details/21896453
牛頓法中的Hesse矩陣HH在稠密時求逆計算量大,也有可能沒有逆(Hesse矩陣非正定)。擬牛頓法提出,用不含二階導數的矩陣 \(U_t\) 替代牛頓法中的 \(H^{−1}_t\),然后沿搜索方向 \(−U_tg_t\) 做一維搜索。根據不同的 \(U_t\) 構造方法有不同的擬牛頓法。
注意擬牛頓法的 關鍵詞:
- 不用算二階導數
- 不用求逆
1. 擬牛頓條件
2. 【重點】DFP算法與推導
DFP公式不用記
這里PPT里的結論是:
\(H_{k+1} = H_{k} - \frac{H_ky_ky_k^TH_k}{y_k^TH_ky_k} + \frac{s_ks_k^T}{y_k^Ts_k}\)
其實這里最后面那個公式下面的\(y_k^Ts_k和前面的\)\(s_k^Ty_k\)的結果是相同的,因此記哪個都可以。
4. DFP算法例題

5. BFGS算法
無約束優化-本章小結
1. 方法總結
方法 | 搜索方向 | 步長 | 優點 | 缺點 | 性質總結 |
---|---|---|---|---|---|
最速下降法 | \(-\nabla f(x^k) = -g_k\) | 精確一維線搜索 | 1. 程序簡單 2.計算工作量小,存儲量小 3. 對初始點無要求 4. 具有全局收斂性 |
1. 收斂速度慢 2. 收斂速度為線性 |
全局收斂性 |
牛頓法 - 經典牛頓法 | \(-H_k^{-1}g_k\) | 1 | 1. 收斂速度快 2.具有二次終止性 |
1. 要求二階連續可微 2. 工作量大 3.僅局部收斂 4. 收斂於鞍點或極大值點可能性並不小 |
二次終止性 局部收斂性 局部二階收斂性 非下降算法:初始解遠離最優解時,\(G_k\)不一定正定,牛頓方向不一定是下降方向,經典牛頓法不一定收斂 |
牛頓法 - 阻尼牛頓法 | \(-H_k^{-1}g_k\) | 精確一維線搜索 | 1. 具有二次終止性 2. 具有全局收斂性 3. 具有局部二階收斂性 |
1. 要求二階連續可微 2. 工作量大 |
二次終止性 全局收斂性 局部二階收斂性 |
共軛梯度法 - 二次函數極小化的FR共軛梯度法 | $$f(x)= \begin{cases} -g_k& \text{k=0} \\ -g_k+\frac{g_kTg_k}{g_{k-1}Tg_{k-1}}d^{k-1}& \text{其他} \end{cases}$$ | 精確一維線搜索 | 1. 計算量小,適合大規模問題 2. 具有全局收斂性 |
收斂速度為線性 | 全局收斂性 全局線性收斂性 下降算法 |
擬牛頓法 - DFP算法 | $d_k = -D_kg_k \ D_k\text{在PPT里用的是}H_k\ \begin{cases} D_0 = I \ D_{k+1} = D_k + \frac{s_ks_kT}{s_{k}Ty_k}-\frac{D_ky_ky_kTD_k}{y_kTD_ky_k} \end{cases} \ 其中 s_k = x^{k+1} - x^{k}, y_k = g_{k+1}-g_k $ | 精確一維線搜索 | 1. 計算量小,適合大規模問題 2. 具有牛頓法類似的收斂速度,比牛頓法更有效 |
- | 求解正定二次函數極小化問題(采用精確一維線搜索): 1. 具有二次終止性:至多經過次迭代即終止 2. 具有遺傳性質:即保持滿足前面的擬牛頓方程 3. 當\(H_0=I_n\)時,產生的搜索方向是共軛方向 求解一般函數極小化問題: 1. 保持\(H_k\)的正定性,從而保證是下降算法 2. DFP算法具有局部超線性收斂速度 3. 在一定條件下采用精確一維線搜索算法是全局收斂的 |
注:
關於收斂性參看第一章最后一節部分的內容
二次終止性:當一個算法用於求解嚴格凸二次函數極小值問題時,如果從任意初始點出發,算法經過有限步迭代后可達到函數的極小值點,則稱該算法具有二次終止性。