A 03 牛頓法和擬牛頓法

2022-02-22 16:41:49 字數 1853 閱讀 9436

目錄

二、牛頓法流程

三、擬牛頓法簡介

人工智慧從入門到放棄完整教程目錄:

牛頓法(newton method)和擬牛頓法(quasi-newton method)和梯度下降法一樣也是求解最優化問題的常用方法,但是他們的收斂速度比梯度下降法快。牛頓法是迭代演算法,每一步都需要求目標函式的海森矩陣的逆矩陣,計算複雜;擬牛頓法通過正定矩陣近似海森矩陣的逆矩陣,簡化這個計算過程。

對於乙個約束問題

\[\underbrace_}f(x)

\]其中\(x^*\)為目標函式的極小點。

假設\(f(x)\)具有二階連續偏導數,如果第\(k\)次迭代值為\(x^\),則可以把\(f(x)\)在\(x^\)附近使用二階泰勒展開

\[f(x)=f(x^)+g_k^t(x-x^)+\frac(x-x^)^th(x^)(x-x^)

\]其中\(g_k=g(x^)=\nabla)}\)是\(f(x)\)的梯度向量在點\(x^\)的值,\(h(x^)\)是\(f(x)\)的海森矩陣

\[h(x)=[\frac\partial}]_

\]在點\(x^\)的值。函式\(f(x)\)有極值的必要條件是在極值點處一階導數為0,即梯度向量為0。特別是當\(h(x^)\)是正定矩陣的時候,函式\(f(x)\)的極值為極小值。

牛頓法利用極小點的必要條件

\[\nabla=0

\]每次迭代中從點\(x^\)開始,求目標函式的極小點,作為第\(k+1\)次迭代值\(x^\),即假設\(x^\)滿足

\[\nabla}=0

\]通過泰勒二階展開式即可得

\[\nabla=g_k+h_k(x-x^)

\]其中\(h_k=h(x^)\),由此\(\nabla}=0\)變成

\[g_k+h_k(x^-x^) = 0

\]因此

\[x^=x^-h_k^g_k\]或

\[x^=x^+p_k

\]其中

\[\begin

& x^=x^-h_k^g_k=x^+p_k \\

& -h_k^g_k=p_k \\

& h_kp_k=-g_k

\end

\]使用\(x^=x^-h_k^g_k\)作為迭代公式的演算法就是牛頓法。

從本質上去看,牛頓法是二階收斂,梯度下降是一階收斂,所以牛頓法更快。如果更通俗地說的話,比如你想找一條最短的路徑走到乙個盆地的最底部,梯度下降法每次只從你當前所處位置選乙個坡度最大的方向走一步,牛頓法在選擇方向時,不僅會考慮坡度是否夠大,還會考慮你走了一步之後,坡度是否會變得更大。所以,可以說牛頓法比梯度下降法看得更遠一點,能更快地走到最底部。

雖然牛頓法看起來比梯度下降法好很多,但是別忘記了牛頓法迭代過程中需要計算海森矩陣的逆矩陣,如果資料量較大的話,牛頓法的計算開銷將遠遠大於梯度下降法。

目標函式\(f(x)\),梯度\(g(x)=\nabla\),海森矩陣\(h(x)\),精度要求\(\epsilon\)

\(f(x)\)的極小點\(x^*\)

取初始點\(x^\),並且讓\(k=0\)

計算\(g_k=g(x^)\)

如果\(||g_k||\leq\epsilon\),停止計算,得到近似解\(x^*=x^\)

計算\(h_k=h(x^)\),並求出\(p_k\)

\[h_kp_k=-g_k

\]讓\(x^=x^+p_k\)

讓\(k=k+1\),轉到第2步

在第4步求\(p_k\)的時候,\(p_k=-h_k^g_k\),要求求海森矩陣的逆矩陣\(h_k^\),計算會比較複雜。

在牛頓法的迭代中,需要計算海森矩陣的逆矩陣\(h^\),這個過程是比較複雜的,而擬牛頓法則使用了乙個\(n\)階矩陣\(g_k=g(x^)\)近似替代\(h_k^=h^(x^)\),此處不多贅述。

牛頓法和擬牛頓法

正在學習牛頓法,找到一篇非常詳細的部落格,特將目錄整理下來,方便今後回想和查詢。一 牛頓法 主要內容 1 泰勒展開式。比較基礎。2 牛頓法。從其應用的兩個方面來介紹 2.1 求方程的根 一階泰勒展開。2.2 解決最優化問題 二階泰勒展開。此部分又分為兩種情況 二維情況和高維情況。其中,二維情況比較常...

牛頓法和擬牛頓法

牛頓法和擬牛頓法是求解無約束最優化問題的常用方法,收斂速度快。牛頓法是迭代演算法,每一步需要求解目標函式的海塞矩陣 hesse matrix 的逆矩陣,計算複雜。擬牛頓法通過正定矩陣近似海塞矩陣的逆矩陣或海塞矩陣,計算速度快。牛頓法 考慮無約束優化問題 min f x 其中x 為目標函式的極小值點 ...

牛頓法與擬牛頓法

看了幾篇關於牛頓法的相關介紹,感覺非常好,尤其是擬牛頓條件的推導以及dfp等演算法的推導過程十分詳細明了。這裡記錄一下,方便之後查閱 牛頓法 擬牛頓條件 dfp演算法 bfgs演算法 f bfgs演算法 1 牛頓法 newton s method 牛頓法是一種在實數域和複數域上近似求解方程的方法。方...