1、牛頓法應用范圍
牛頓法主要有兩個應用方向:1、目標函數最優化求解。例:已知 f(x)的表達形式,
,求
,及g(x)取最小值時的 x ?,即
由於||f(x)||通常為誤差的二范數,此時這個模型也稱為最小二乘模型,即
。
2、方程的求解(根)。例:求方程的解:g(x) = 0,求 x ?
這兩個應用方面都主要是針對g(x)為非線性函數的情況。2中,如果g(x)為線性情況下的求解通常使用最小二乘法求解。
牛頓法的核心思想是對函數進行泰勒展開。
2、牛頓法用於方程求解
對f(x)進行一階泰勒公式展開:
![]()
此時,將非線性方程 g(x) = 0 近似為線性方程:
![]()
若 f’(x) != 0,則下一次迭代解為:
![]()
牛頓迭代示意圖(因此Newton迭代法也稱為切線法):
3、牛頓法用於函數最優化求解
對f(x)進行二階泰勒公式展開:
![]()
此時,將非線性優化問題 min f(x) 近似為為二次函數的最優化求解問題:
![]()
對於(5)式的求解,即二次函數(拋物線函數)求最小值,對(5)式中的函數求導:
![]()
![]()
從本質上來講,最優化求解問題的迭代形式都是:
,
其中k為系數,
為函數的梯度(即函數值上升的方向),那么
為下降的方向,
最優化問題的標准形式是:求目標函數最小值,只要每次迭代沿着下降的方向迭代那么將逐漸達到最優,
而牛頓將每次迭代的步長定為:
。
4、補充
a、嚴格來講,在“3、牛頓法用於函數最優化求解”中對函數二階泰勒公式展開求最優值的方法稱為:Newton法,
而在“2、牛頓法用於方程求解”中對函數一階泰勒展開求零點的方法稱為:Guass-Newton(高斯牛頓)法。
b、在上面的陳述中,如果x是一個向量,那么公式中:
應該寫成:
,
為Jacobi(雅克比)矩陣。
應該寫成:
,
為Hessian(海森)矩陣。
c、牛頓法的優點是收斂速度快,缺點是在用牛頓法進行最優化求解的時候需要求解Hessian矩陣。
因此,如果在目標函數的梯度和Hessian矩陣比較好求的時候應使用Newton法。
牛頓法在進行編程實現的時候有可能會失敗,具體原因及解決方法見《最優化方法》-張薇 東北大學出版社 第155頁。
5、Newton法與Guass-Newton法之間的聯系
對於優化問題
,即
,當理論最優值為0時候,這個優化問題就變為了函數求解問題:
結論:當最優化問題的理論最小值為0時,Newton法求解就可變為Guass-Newton法求解。
另外:對f(x)進行二階泰勒展開:
f(x)乘以f(x)的轉置並忽略二次以上的項:
因此,當
在最優解附近時,即滿足
,此時可認為:
6、擴展閱讀
a、修正牛頓(Newton)法
b、共軛方向法與共軛梯度法
c、擬牛頓法(避免求解Hessian矩陣):DFP算法、BFGS算法