梯度降低法和牛頓法的聯繫

梯度降低法html

梯度降低法的優化思想是用當前位置負梯度方向做爲搜索方向,由於該方向爲當前位置的最快降低方向,因此也被稱爲是」最速降低法「。最速降低法越接近目標值,步長越小,前進越慢。梯度降低法的搜索迭代示意圖以下圖所示:算法

梯度降低法的缺點:函數

  (1)靠近極小值時收斂速度減慢,以下圖所示;性能

  (2)直線搜索時可能會產生一些問題;優化

  (3)可能會「之字形」地降低。spa

 

 

二者的關係能夠這樣理解:隨機梯度降低方法以損失很小的一部分精確度和增長必定數量的迭代次數爲代價,換取了整體的優化效率的提高。增長的迭代次數遠遠小於樣本的數量。htm

對批量梯度降低法和隨機梯度降低法的總結:blog

批量梯度降低---最小化全部訓練樣本的損失函數,使得最終求解的是全局的最優解,即求解的參數是使得風險函數最小,可是對於大規模樣本問題效率低下。get

隨機梯度降低---最小化每條樣本的損失函數,雖然不是每次迭代獲得的損失函數都向着全局最優方向, 可是大的總體的方向是向全局最優解的,最終的結果每每是在全局最優解附近,適用於大規模訓練樣本狀況。效率

擬牛頓法

1)牛頓法(Newton's method)

  牛頓法是一種在實數域和複數域上近似求解方程的方法。方法使用函數(x)的泰勒級數的前面幾項來尋找方程(x) = 0的根。牛頓法最大的特色就在於它的收斂速度很快。

 

  具體步驟:

 

  首先,選擇一個接近函數 (x)零點的 x0,計算相應的 (x0) 和切線斜率f  ' (x0)(這裏f ' 表示函數 f  的導數)。而後咱們計算穿過點(x0,  f  (x0)) 而且斜率爲'(x0)的直線和 軸的交點的x座標,也就是求以下方程的解:

 

 

  咱們將新求得的點的 座標命名爲x1,一般x1會比x0更接近方程f  (x) = 0的解。所以咱們如今能夠利用x1開始下一輪迭代。迭代公式可化簡爲以下所示:

 

 

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

 

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

 

  牛頓法搜索動態示例圖:

 

 

 

關於牛頓法和梯度降低法的效率對比:

 

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

 

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

 

 

 

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

 

牛頓法的優缺點總結:

 

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

 

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

 

擬牛頓法的本質思想是改善牛頓法每次須要求解複雜的Hessian矩陣的逆矩陣的缺陷,它使用正定矩陣來近似Hessian矩陣的逆,從而簡化了運算的複雜度。

 

資料

相關文章
相關標籤/搜索