應用於最優化的牛頓法

来自testwiki
跳转到导航 跳转到搜索

Template:NoteTA

最速下降法 (綠色) 與牛頓法 (紅色) 在求最小值問題上的比較 (帶有步長). 可見牛頓法根據曲率選擇了一條「捷徑」.

牛頓法微積分學中, 通過疊代以求解可微函數f零點的一種算法 (即求x使得f(x)=0). 而在最佳化中, 牛頓法通常被運用於求解一個二次可微函數f一階導數f的零點 (即求x使得f(x)=0), 同時也是f駐點. 因此從另一個角度而言,應用於最佳化的牛頓法是搜索函數f(x)的最小值或最大值的一種算法。


一維問題的牛頓法主要步驟如下: 取一個點x0初值, 依如下公式疊代:

xn+1=xnf(xn)f(xn),

直至滿足一定條件 (如f(xn)=0xn+1xn<ε, 其中ε為一個給定的足夠小的常數) 後, 算法終止。


方法描述

在一維問題中, 牛頓法將構造一個以x0為首項, 收斂x*的數列{xn}, 其中x*使得f(x*)=0成立.

f(x)x=xn處的二階泰勒展開式fT(x)為:

fT(x)=fT(xn+Δx)f(xn)+f(xn)Δx+12f(xn)Δx2.

我們希望找到Δx使xn+ΔxfT(x)的一個駐點。則將上式對Δx進行求導:

0=ddΔx(f(xn)+f(xn)Δx+12f(xn)Δx2)=f(xn)+f(xn)Δx.

上述方程的解Δx=f(xn)f(xn)滿足

xn+1=xn+Δx=xnf(xn)f(xn)

收斂於fT(x)的駐點x*.

幾何意義

牛頓法的幾何意義為: 在每一次疊代中,均以一個二次函數去逼近f(x). 具體而言: 在一維問題中,已知xn, f(xn), f(xn)f(xn), 設二次函數表逹式為ax2+bx+c, 依下列方程求解未知數a, b, c,

axn2+bxn+c=f(xn),
2axn+b=f(xn),
2a=f(xn).

然後二次函數ax2+bx+c極值點即為下一個疊代點,

xn+1=b2a.

而在高維問題中, 上述的極值點也可以是鞍點. 值得一提的是, 如果f(x)恰為一個二次函數, 則其極值點只需一次疊代中即可找到.


高維問題求解

上述的一維問題的疊代法可以被推廣至多維問題. 只需將導數替換為梯度 (f(x)), 並將二階導數的倒數替換為Hessian矩陣逆矩陣 (𝐇f(x)), 即:

xn+1=xn[𝐇f(xn)]1f(xn),n0.

通常, 使用牛頓法時會加入一個步長變量γ(0,1)作微調以使每一步疊代都滿足Wolfe條件, 即,

xn+1=xnγ[𝐇f(xn)]1f(xn).

這個方法被稱為無約束牛頓法, 通常用於第一步之後的疊代.

只要牛頓法適用, 其收斂於最小值或最大值的速度均頗快於最速下降法. 事實上, 對於每一個極小值, 都存在一個鄰域N使得, 只要Hessian矩陣可逆的且是一個關於xNLipschitz連續函數, 以x0N為初值, 步長γ=1的牛頓法是二次收斂的.


求一個高維問題的Hessian矩陣逆矩陣是一件頗費工夫的事情. 在實際應用中, 通常會用向量Δx=xn+1xn作為線性方程組

[𝐇f(xn)]Δx=f(xn)

的解. 這個求解過程中, 透過使用各種矩陣分解方法同近似求解方法, 求解速度可以大大提升. 然而, 這些矩陣分解方法或近似求解方法的使用需要滿足一定條件; 例如, Cholesky分解共軛梯度法只有在𝐇f(x)正定矩陣時才適用. 這看似是一個限制, 但有時也能充當檢驗答案的工具; 例如, 在一個最小化問題 (min f(x)) 中, 求出一個x使得f(x)=0𝐇f(x)不是正定矩陣, 那麽(x,f(x))只是f(x)的一個鞍點而非極小值點.


另一方面, 一個有約束的問題的求解過程可能會遇到當前解陷入一個鞍點的情況, 這時的Hessian矩陣對稱不定的; 此時則要使用其他方法, 例如Cholesky分解的𝐋𝐃𝐋𝐓變形共軛梯度法等的方法, 來疊代得出xn+1.


此外, 為規避求Hessian矩陣的繁瑣, 也存在多種擬牛頓法, 通過調整梯度以求出Hessian矩陣的近似.


如果Hessian矩陣𝐇f(x)接近一個奇異矩陣, 則其逆矩陣會變得數值不穩定且疊代不會收斂. 此種情形下, 前人探索出了很多成功的方法來解決問題. 目標之一是通過引入修正矩陣Bn使得𝐇f(xn):=𝐇f(xn)+Bn對稱正定的. 其中一種方法是將𝐇f(xn)對角化, 選擇Bn使𝐇f(xn)+Bn有相同的特徵向量, 但每一個𝐇f(xn)的負特徵值都被替換成ϵ>0.


一個應用於萊文貝格-馬夸特方法 (其中用到了近似的Hessian矩陣) 的方法是引入一個帶係數的單位矩陣μ𝐈, 係數在每一步疊代中調整. 對於較大的μ及較小的Hessian矩陣, 疊代將變得與以μ1為步長的最速下降法相似, 這將使得疊代收斂變慢, 但在Hessian矩陣不定半定的情況下, 收斂更穩定.

參閱

參考文獻

外部連結

Template:艾薩克·牛頓