梯度下降 牛頓法

2021-10-08 01:59:07 字數 1177 閱讀 5644

為什麼牛頓法比梯度下降法的迭代次數更少?

a:牛頓法是二階收斂,梯度下降是一階收斂,所以牛頓法就更快。通俗來說梯度下降法每次只從你當前所處位置選乙個坡度最大的方向走一步,牛頓法在選擇方向時,不僅會考慮坡度是否夠大,還會考慮你走了一步之後,坡度是否會變得更大。所以,可以說牛頓法比梯度下降法看得更遠一點,能更快地走到最底部。

如下圖示,紅色的牛頓法的迭代路徑,綠色的是梯度下降法的迭代路徑

為什麼深度學習不採用牛頓法及其衍生演算法作為優化演算法?

○ 【計算】牛頓法需要用到梯度和hessian矩陣的逆,這兩個都難以求解。因為很難寫出深度神經網路擬合函式的表示式,遑論直接得到其梯度表示式,更不要說得到基於梯度的hessian矩陣了。

○ 【記憶體】當輸入向量的維度nn較大時,hessian矩陣的大小是n×nn×n,所需要的記憶體非常大。

○ 【鞍點】在高維非凸優化問題中,鞍點相對於區域性最小值的數量非常多,而且鞍點處的損失值相對於區域性最小值處也比較大。而二階優化演算法是尋找梯度為0的點,所以很容易陷入鞍點;而梯度下降法目標尋找更小f(x),更容易逃離鞍點。

在神經網路(非凸問題)的訓練中,大多數都採用梯度下降法一類方法。而在訓練邏輯回歸(凸問題)等模型時,可採用梯度下降和擬牛頓方法。

梯度下降法與最小二乘法有什麼區別?

梯度下降法和最小二乘法相比,梯度下降法需要選擇步長,而最小二乘法不需要。梯度下降法是迭代求解,最小二乘法是計算解析解。如果樣本量不算很大,且存在解析解,最小二乘法比起梯度下降法要有優勢,計算速度很快。但是如果樣本量很大,用最小二乘法由於需要求乙個超級大的逆矩陣,這時就很難或者很慢才能求解解析解了,使用迭代的梯度下降法比較有優勢。

參考文獻:

百面機器學習

統計學習方法-李航

梯度下降,牛頓法 ,高斯牛頓法

出處 線性最小二乘問題,我們可以通過理論推導可以得到其解析解,但是對於非線性最小二乘問題,則需要依賴迭代優化的方法,梯度下降主要是從一階目標函式的一階導推導而來的,形象點說,就是每次朝著當前梯度最大的方向收斂 二牛頓法是二階收斂,每次考慮收斂方向的時候,還會考慮下一次的收斂的方向是否是最大 也就是梯...

深度學習 梯度下降 牛頓法 擬牛頓法

1 梯度下降法 梯度下降法實現簡單,當目標函式是凸函式時,梯度下降法的解是全域性解。一般情況下,其解不保證是全域性最優解,梯度下降法的速度也未必是最快的。梯度下降法的優化思想 用當前位置負梯度方向作為搜尋方向,因為該方向為當前位置的最快下降方向,所以也被稱為是 最速下降法 最速下降法越接近目標值,步...

梯度下降法與牛頓法

梯度下降法,是迭代演算法。在求最值時,常常用到。bp網路中,最小化 誤差cost function,求解對應網路中的weights,即可用梯度下降法來更新weights.梯度下降法基本思想 給定乙個函式 f 假設求 f 最大值 最小值 初始化函式上的乙個點,對該點求導,該點往導數的方向 反方向 移動...