1. 程式人生 > >牛頓法(Newton‘s method)和擬牛頓法(quasi Newton method)

牛頓法(Newton‘s method)和擬牛頓法(quasi Newton method)

簡述

在看伊恩·古德費洛的深度學習,4.3節基於梯度的優化方法時提到

僅使用梯度資訊的優化演算法稱為 一階優化演算法 ,如梯度下降。

使用Hessian矩陣的優化演算法稱為 二階最優化演算法 ,如牛頓法。

 

牛頓法和擬牛頓法時求解無約束最優化問題的常用方法,收斂速度快。

牛頓法是迭代演算法,每一步需要求解目標函式的海賽矩陣的逆矩陣,計算比較複雜;

擬牛頓法通過正定矩陣近似海賽矩陣的逆矩陣或海賽矩陣,簡化這一計算過程。

 

 

下面記錄一下對牛頓法的一點理解 

牛頓法(Newton‘s method)

 

儲備知識:泰勒展開式

x_{0}=0時就是麥克勞倫展開式

 

以及常見函式的展開式

應用A:求解方程

將利用泰勒公式在x_{0}處展開到一階f(x)=f(x_{0})+(x-x_{0})f^{'}(x_{0})

f(0)=0,求解得到x=x_{1}=x_{0}-\frac{f(x_{0})}{f^{'}(x_{0})}

f(x{_{1}})f(x{_{0}})更接近於f(x)=0

可以推出x(n+1)=x(n)-\frac{f(x(n))}{f^{'}(x(n+1))}

 

應用B:最優化

將利用泰勒公式展開到二階f(x+\bigtriangleup x)=f(x)+\bigtriangleup xf^{'}(x)+\frac{1}{2}\bigtriangleup x^{^{2}}f^{''}(x)

\bigtriangleup x趨向於0時,f^{'}(x)+\bigtriangleup xf^{''}(x)=0

求解 \bigtriangleup x=-\frac{f^{'}(x)}{f^{''}(x)}

得到迭代公式 x_{n+1}=x_{n}-\frac{f^{'}(x_{n})}{f^{''}(x_{n})},n=0,1,2……

可以看到牛頓法的迭代步長為\frac{1}{f^{''}(x_{n})}

常見的最優化方法有:梯度下降法、牛頓法、擬牛頓法、共軛梯度法等等

如下圖紅色曲線是利用牛頓法迭代求解;綠色曲線是利用梯度下降法迭代求解。

從本質上來講,最優化求解問題的迭代形式都是x_{n+1}=x_{n}-nf^{'}(x_{n})

,其中n是係數,f^{'}(x_{n})是函式的梯度,即函式上升的方向,-f^{'}(x_{n})是梯度下降的方向。

最優化問題的標準形式是:求目標函式最小值,只要每次迭代沿著下降的方向可以逐漸達到最優

 

參考博文:Newton法(牛頓法 Newton Method)

 


待補充

擬牛頓法(quasi Newton method)