梯度降低法與牛頓降低法速度的比較

「牛頓降低法和梯度降低法在機器學習和自適應濾波中都很重要,本質上是爲了尋找極值點的位置。可是收斂的速度不一樣。適當的學習速度,有利於機器學習模型的快速收斂。而過大或者太小的學習速度,都不合適。 下圖比較了較小與過大學習速度示意圖比較。git

較小的學習速度示意圖。
這裏寫圖片描述github

    • 過大的學習速度示意圖。
      這裏寫圖片描述算法

 

梯度降低算法中,最合適即每次跟着參數θ變化的時候,J(θ)的值都應該降低 到目前爲止,咱們尚未介紹如何選擇學歷速率α,梯度降低算法每次迭代,都會受到學習速率α的影響數據結構

  1. 若是α較小,則達到收斂所須要迭代的次數就會很是高;
  2. 若是α較大,則每次迭代可能不會減少代價函數的結果,甚至會超過局部最小值致使沒法收斂。以下圖所示狀況

觀察下圖,能夠發現這2種狀況下代價函數 J(θ)的迭代都不是正確的機器學習

  1. 第一個圖,曲線在上升,明顯J(θ)的值變得愈來愈大,說明應該選擇較小的α
  2. 第二個圖,J(θ)的曲線,先降低,而後上升,接着又降低,而後又上升,如此往復。一般解決這個問題,仍是選取較小的α

根據經驗,能夠從如下幾個數值開始試驗α的值,0.001 ,0.003, 0.01, 0.03, 0.1, 0.3, 1, …函數

α初始值位0.001, 不符合預期乘以3倍用0.003代替,不符合預期再用0.01替代,如此循環直至找到最合適的α學習

而後對於這些不一樣的 α 值,繪製 J(θ)隨迭代步數變化的曲線,而後選擇看上去使得 J(θ)快速降低的一個 α 值。atom

因此,在爲梯度降低算法選擇合適的學習速率 α 時,能夠大體按3的倍數再按10的倍數來選取一系列α值,直到咱們找到一個值它不能再小了,同時找到另外一個值,它不能再大了。其中最大的那個 α 值,或者一個比最大值略小一些的α 值 就是咱們指望的最終α 值。spa

 

 

本文中就牛頓降低法和梯度降低法,哪一種收斂方法速度快進行探究「.net


牛頓降低法的遞推公式:

xn+1=xnf(xn)/f′′(xn)

 

梯度降低算法的遞推公式:

xn+1=xnμf(xn)

 

 

 

解釋一

下圖是兩種方法的圖示表示,紅色爲牛頓降低法,綠色爲梯度降低法,從圖中直觀的感受是,紅色線短,降低速度快。由於牛頓降低法是用二次曲面去擬合當前的局部曲面,而梯度降低法是用平面去擬合當前的局部曲面,通常用二次曲面擬合的更好,因此通常牛頓算法收斂快。

紅顏色的

關於以上的說法中,梯度降低法是用平面去擬合當前的局部曲面。梯度 f’(x)的方向是函數變大的方向。這裏須要解釋一下,對於一維狀況而言,梯度方向只有正方向和負方向。至於爲何梯度降低算法就是用平面去擬合了,大多數狀況下,沒有講的詳細。接下來就聊一下爲何。

首先考慮一下這個公式,這是一階泰勒展式,其實就是用平面去擬合函數的局部曲面。

f(x+Δx)=f(x)+f(x)Δx


咱們的目的是使得左邊的值變小,那是否是應該使得下面的式子變爲負值。

f(x)Δx


這樣不就會使得左邊的式子變小嗎。
可是如何使得上式必定爲負值,簡單的方法就是:

Δx=f(x)


這樣上式就變爲

f(x+Δx)=f(x)f(x)f(x)


如今知足使得下式變小了

f(x+Δx)

 


可是不要忘了以上全部的一切只有在局部成立,也就是說在小範圍才成立,那麼下式就有很能太大

Δx=f(x)


因此加個小的修正的因子,上式就變爲:

Δx=μf(x)

 

最終獲得公式:

xn+1=xnμf(xn)

 

這就是爲何說梯度降低算法是用平面擬合函數的局部曲面。



至於說牛頓降低法是用二次曲面去擬合當前的局部曲面,首先考慮一下下式:

f(x+Δx)=f(x)+f(x)Δx+1/2f′′(x)Δx2

 

一樣咱們但願左式最小,那麼將左式當作是△x的函數,當取合適的△x值時,左邊的式子達到極小值,此時導數爲0。所以對上式進行求導數,獲得一下公式:

0=f(x)+f′′(x)Δx


此時可獲得公式:

xn+1=xnf(xn)/f′′(xn)

 

因此說牛頓降低法是用二次曲面來擬合函數的局部曲面。


綜上而言,牛頓降低法利用了函數的更多的信息,可以更好的擬合局部曲面,因此收斂的速度也會加快。

解釋二

關於梯度降低算法,其中最重要的就是要肯定步長μ,它的值嚴重的影響了梯度降低算法的表現。

接下來考慮以下公式:

f(x+Δx)=f(x)+f′′(x)Δx



Δx=μf(x)

 

結合兩個式子,獲得:

f(x+Δx)=f(x)μf′′(x)f(x)


令左邊的式子爲0,獲得:

μ=1/f′′(x)

 

因而可知牛頓降低法是梯度降低法的最優狀況,所以牛頓降低法的收斂的速度必然更快。

本文轉自如下博客內容,在此表示感謝

http://blog.csdn.net/njucp/article/details/50488869

相關文章
相關標籤/搜索