牛頓法為什麼是二階的

2021-10-01 01:35:55 字數 2507 閱讀 3621

查了很多地方說牛頓法是二階演算法,一直沒找到二階項在哪。花了大半天的時間才弄明白。記錄一下。

牛頓法一般應用場景:

求方程的根;

求解最優化方法;

比如要求f(x

)=0f(x)=0

f(x)=0

的根。首先,選擇乙個接近函式 f(x

)f(x)

f(x)

零點的 x

0x_0

x0​,計算相應的 f(x

0)f(x_0)

f(x0​)

和切線斜率f′(

x0)f ' (x_0)

f′(x0​

)(這裡f

′f '

f′表示函式f

ff的導數)。然後我們計算穿過點(x0

,f(x

0))(x_0, f (x_0))

(x0​,f

(x0​

))並且斜率為f′(

x0)f '(x0)

f′(x0)

的直線和 x

xx 軸的交點的x

xx座標,也就是求如下方程的解:

f (x

1)−f

(x0)

=f′(

x0)⋅

(x1−

x0)f(x_1)-f(x_0) = f^\left(x_\right) \cdot (x_1-x_0)

f(x1​)

−f(x

0​)=

f′(x

0​)⋅

(x1​

−x0​

)通常x1會比x0更接近方程f (x) = 0的解。因此我們現在可以利用x1開始下一輪迭代。迭代公式可化簡為如下所示:

x n+

1=xn

−f(x

n)f′

(xn)

x_=x_-\frac\right)}\left(x_\right)}

xn+1​=

xn​−

f′(x

n​)f

(xn​

)​已經證明,如果f 』 是連續的,並且待求的零點x是孤立的,那麼在零點x周圍存在乙個區域,只要初始值x0位於這個鄰近區域內,那麼牛頓法必定收斂。 並且,如果f 』 (x)不為0, 那麼牛頓法將具有平方收斂的效能. 粗略的說,這意味著每迭代一次,牛頓法結果的有效數字將增加一倍。下圖為乙個牛頓法執行過程的例子。

牛頓法搜尋動態示例圖:

從本質上去看,牛頓法是二階收斂,梯度下降是一階收斂,所以牛頓法就更快。如果更通俗地說的話,比如你想找一條最短的路徑走到乙個盆地的最底部,梯度下降法每次只從你當前所處位置選乙個坡度最大的方向走一步,牛頓法在選擇方向時,不僅會考慮坡度是否夠大,還會考慮你走了一步之後,坡度是否會變得更大。所以,可以說牛頓法比梯度下降法看得更遠一點,能更快地走到最底部。(牛頓法目光更加長遠,所以少走彎路;相對而言,梯度下降法只考慮了區域性的最優,沒有全域性思想。)

根據wiki上的解釋,從幾何上說,牛頓法就是用乙個二次曲面去擬合你當前所處位置的區域性曲面,而梯度下降法是用乙個平面去擬合當前的區域性曲面,通常情況下,二次曲面的擬合會比平面更好,所以牛頓法選擇的下降路徑會更符合真實的最優下降路徑。

注:紅色的牛頓法的迭代路徑,綠色的是梯度下降法的迭代路徑。

牛頓法的優缺點總結:

優點:二階收斂,收斂速度快;

缺點:牛頓法是一種迭代演算法,每一步都需要求解目標函式的hessian矩陣的逆矩陣,計算比較複雜。

當我們將牛頓法用作優化演算法的時候,它就是二階的。

假設我們有乙個凸優化問題

min ⁡x

f(x)

\min _ f(x)

xmin​f

(x)也就是說我們要找乙個x來最小化f(x)。對於凸優化問題,f(x)的最小值點就是f(x)的極值點,也就是導數為0的點。那麼我們上面的優化問題就轉換為了如下的求根問題:

f ′(

x)=0

f^(x)=0

f′(x)=

0利用牛頓法求解上面的式子,我們先選取初始點x0,然後進行如下迭代

x n+

1=xn

−f′(

xn)f

′′(x

n)x_=x_-\frac\left(x_\right)}\left(x_\right)}

xn+1​=

xn​−

f′′(

xn​)

f′(x

n​)​

直到∣ xn

+1−x

n∣<

ϵ| x_-x_ |

∣xn+1​

−xn​

∣<

ϵ綜上,牛頓法求根是一階演算法,我們將優化問題轉為求根問題需要一階導數,所以用牛頓法進行最優化是二階演算法。

參考資料

深度學習為什麼不用二階優化

a.牛頓法使用的是目標函式的二階導數,在高維情況下這個矩陣非常大,計算和儲存都是問題。b.在小批量的情況下,牛頓法對於二階導數的估計雜訊太大。c.目標函式非凸的時候,牛頓法容易受到鞍點或者最大值點的吸引。最大的問題就是計算複雜度。二階一次迭代更新的複雜度是n n,這在高維的時候是不可行的 穩定性。越...

c 類建構函式 二階構造法

為什麼要用二階構造?當類的成員比較簡單,如只有賦值等簡單操作時,普通的建構函式就可以。然而實際中,以物件導向的思維開發程式時,類往往十分複雜,設計到動態記憶體申請 檔案開啟等操作。然而在呼叫建構函式後,無法得知這些複雜的操作是否順利完成。假若動態記憶體未成功申請,然而物件例項在主程式中依然成功建立,...

藍橋杯 二階魔方旋轉 暴力法

魔方可以對它的6個面自由旋轉。我們來操作乙個2階魔方 如圖1所示 為了描述方便,我們為它建立了座標系。各個面的初始狀態如下 x軸正向 綠 x軸反向 藍 y軸正向 紅 y軸反向 橙 z軸正向 白 z軸反向 黃 假設我們規定,只能對該魔方進行3種操作。分別標記為 x 表示在x軸正向做順時針旋轉 y 表示...