1. 程式人生 > 其它 >關於深度學習優化器【轉載以學習、回憶】

關於深度學習優化器【轉載以學習、回憶】

來源連結: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增大無影響,初期修正了過小的缺點

【動量梯度下降法】