牛頓法(Newton's Method) 解決優化問題——機器學習

一、簡介

牛頓方法同梯度下降法一樣,是一種優化算法,其應用如可解決logistic迴歸於分類問題中的似然函數最大化。

其是一種用於求函數零點的數值方法。

二、具體形式

首先選擇一個與零點相近的起始點,之後遵循以下更新規則不斷更新:

實際上,對於f(x)上的一個點(x0,f(x0)),求過此點切線(即斜率爲f'(x0))與x軸的交點,即解以下方程

若原先的點x0記作xn,新得到的點x記爲xn+1,那麼解得

這便是update rule的來源。

三、其它理解

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

由於牛頓法是基於當前位置的切線來確定下一次的位置,所以牛頓法又被很形象地稱爲是"切線法"。牛頓法的搜索路徑(二維情況)如下圖所示:

 

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

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

 

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

牛頓法的優缺點總結:

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

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

來源:https://www.cnblogs.com/shixiangwan/p/7532830.html

四、優化的應用

如何找到我們最開始說的似然函數l(θ)的最大值呢?很顯然,找到其最大值等同於找到l'(θ)=0的零點,即遵循以下方法得到參數最大值:

五、牛頓法的矩陣表示

如下

其中▽θ表示對矩陣每個元素求偏導數,H爲Hessian矩陣,其矩陣元素爲

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章