關於深度學習優化器【轉載以學習、回憶】
來源連結:https://mp.weixin.qq.com/s/kUE7NcTiQyYP-oWi0T_mbA
來源公眾號:阿柴的演算法學習日記
轉載以學習回憶
___________________________開始
原文此處有動圖。。。。
梯度下降是指,給定待優化的模型引數和目標函式後,演算法沿梯度
的相反方向更新來最小化。學習率a決定了每一時刻的更新步長。對於每一個時刻t,我們可以用下述步驟來描述梯度下降的流程。
1.計算目標函式的梯度
2.更新模型引數
梯度下降法目前主要分為三種方法,區別在於每次引數更新時計算的樣本資料量不同:批量梯度下降法(BGD, Batch Gradient Descent),隨機梯度下降法(SGD, Stochastic Gradient Descent)及小批量梯度下降法(Mini-batch Gradient Descent)。
一:
- 批量梯度下降法 BGD
- 隨機梯度下降法 SGD
- 小批量梯度下降法 Mini-batch GD
注意紅箭頭 目前的SGD預設是小批量梯度下降演算法
對於隨機梯度下降演算法,明視訊記憶體在以下缺點
-
選擇合適的learning rate比較困難 ,學習率太低會收斂緩慢,學習率過高會使收斂時的波動過大;
-
所有引數都是用同樣的learning rate;
-
SGD容易收斂到區域性最優,並且在某些情況下可能被困在鞍點。
二 動量優化法
動量優化方法引入物理學中的動量思想,加速梯度下降,有Momentum和Nesterov兩種演算法。當我們將一個小球從山上滾下來,沒有阻力時,它的動量會越來越大,但是如果遇到了阻力,速度就會變小,動量優化法就是借鑑此思想,使得梯度方向在不變的維度上,引數更新變快,梯度有所改變時,更新引數變慢,這樣就能夠加快收斂並且減少動盪。
- Momentum
【吳恩達裡邊的講解】
- NAG(Nesterov accelerated gradient)
三 自使用學習率優化演算法
- AdaGrad
- AdaDelta
- RmsProp
又稱均方根傳遞。和動量一樣減小震盪,能利用大學習率,從而加速。
- Adam
關於Adam的就看不懂了
Adam 本質實際上是Momentum和RMSprop結合在了一起
吳恩達講解視訊https://www.bilibili.com/video/BV1i741147Q5?p=20
要理解這些演算法 要用【指數加權平均】
【理解指數加權平均】
【偏差修正】
當t增大無影響,初期修正了過小的缺點
【動量梯度下降法】