學習率優化方式

優化方法

學習率衰減

  1. 等間隔調整學習率 StepLR
  2. 多間隔調整學習率 MultiStepLR
  3. 指數衰減調整學習率 ExponentialLR
  4. 餘弦退火函數調整學習率:CosineAnnealingLR
  5. 根據指標調整學習率 ReduceLROnPlateau
    當某指標(loss或accuracy)在最近幾個epoch中都沒有變化(下降或升高超過給定閾值)時,調整學習率。

自適應學習率調整(學習率優化)

傳統SGD的缺點,爲什麼提出學習率優化

  1. 學習率大小和策略選擇困難
  2. 學習率不夠智能,對所有參數一視同仁。
  3. 同時面臨局部極值和鞍點的問題。

Momentum 動量法

協同參考之前累積的的梯度方向
在這裏插入圖片描述
在這裏插入圖片描述

Nesterov牛頓動量法(根據累計梯度計算提前點)

先按照動量方向前進到點C,再根據C點的梯度進行梯度下降,相比動量法
在這裏插入圖片描述![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20200222102352360.png

Adagrad(累計梯度反比)

對於不同的參數動態的採取不同的學習率,讓目標函數更快的收斂。
將每一個參數的累計梯度平方和開方,用基礎學習率除以這個數,來做學習率的動態更新。
adagrad算法一開始是激勵收斂,到了後面就慢慢變成懲罰收斂,速度越來越慢。
why?
不同維度變量的梯度變化率不一致,更新的步長不僅要與函數值變化率(一次微分)成正比,還要與導數變化率(二次微分)成反比,因爲曲線曲率越大,那麼導數變得快,到極值點的距離就越小,曲線曲率越小,導數變得慢,到極值點的距離越大。
這裏用累計梯度平方和來近似二次微分。

在這裏插入圖片描述
在這裏插入圖片描述

RMSprop(滑動窗口)

上述Adagrad 分母項爲前序梯度的累加值,會出現學習率越來越小,造成學習停滯問題。很可能出現早期迭代到不好的極值點之後,由於學習率太小而無法衝出這個極值點導致最後收斂到的解不優。RMSprop採用指數加權移動平均的方法解決。(滑動窗口思想)
在這裏插入圖片描述

AdaDelta(自適應學習率)

使用上次的近似變化量來近似學習率

在這裏插入圖片描述在這裏插入圖片描述

Adam算法

= 動量法+RMSProp
在這裏插入圖片描述

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