一文讀懂深度學習算法中的優化算法發展史

優化算法的目的

重要概念

梯度:損失函數對於權重函數的導數
梯度下降根據梯度來更新權重,使損失變小的方法

所有優化算法的目的

據梯度更新權重,找到使得損失變得最小的方法。

各種優化算法

所有梯度算法都是基於梯度下降法進行演進的。
主要分爲三大階段,第一階段是梯度下降法,這個階段的優化算法可以找到局部最優解,但是無法找到全局最優解,很容易陷入鞍點。
第二階段爲動量梯度法,這個階段的優化算法考慮了權重的優化方向,借鑑了動量的原理,可以在某種程度上跳出局部最優解,但是很容易在優化的過程中,超過最優解。
第三階段爲Adam優化算法,這個階段的算法綜合了動量梯度算法的優點,同時考慮了隨着迭代的輪次增加,學習率也會針對不同的權重進行相應的調整,保證所有的權重更新步調相一致,同時還要保證迭代次數增加時,繼續保證權重可以大幅更新。

梯度下降法

GD

**意義:**所有優化算法的基礎。
**方法:**使用全部數據計算梯度
公式:w=wη1mi=1mΔwiw = w - \eta \frac{1}{m}\sum_{i=1}^{m}\Delta w_{i}

其中,η\eta爲學習率,mm爲樣本總數。
缺點:容易陷入鞍點,找到全局最小值。

SGD

方法:使用一條數據或者一個batch數據。
目的:增加隨機性,避免陷入局部最優解。

動量梯度法

動量梯度法

方法:借用了動量的概念,用來描述梯度優化的方向,而且這樣的動量能夠避免陷入局部最優解。
公式:
mt=mt1+ηΔwm_{t} = m_{t-1} + \eta\Delta w
w=wmtw = w - m_{t}
如圖所示:小球演示了動量法的意義。
在這裏插入圖片描述

Nesterov Momentum

方法:計算權值的變量時,提前計算了動量的增量。
公式

Δw=wμmt1\Delta w = w - \mu m_{t-1}
mt=μmt1+ηΔwm_{t} = \mu m_{t-1} + \eta\Delta w
w=wmtw = w - m_{t}
如圖所示:演示了增量w的幾何意義。
在這裏插入圖片描述

Adam優化算法

特點:(1)所有權重參數更新的步調相一致。
(2)考慮梯度歷史更新的累積。
缺點:權重更新越來越慢。
公式:
在這裏插入圖片描述

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