神經網絡優化——梯度下降常用算法:min-batch、隨機梯度下降(SGD)、批量梯度下降、Momentum、move average、RMSprop、Adma
簡介
- 梯度下降算法是應用於神經網絡反向傳播過程的計算梯度,然後更新參數,最終找到最優的位置。本博客主要介紹隨機梯度下降、批處理梯度下降、Momentum、move average、RMSprop、Adma。也是對Andrew NG 的deeplearning.ai 課程的部分內容進行總結。
算法原理
-
1、 隨機梯度下降和批量梯度下降都是基於min-batch的,他們區別是 batch size大小不一樣。
- min-batch就是把數據分爲組, 代表樣本總數目,每組裏有個樣本,隨機梯度下降就是 min-batch size = 1。批處理是m-batch size >1,正常是(64 128 256 512 1024 …),假設loss是Cross Entrophy, Cross Entrophy 公式裏的就是等於min-batch size。按批次的計算梯度和loss,而不是所有樣本處理完再計算,這樣會加快訓練速度.
上圖左邊圖像就是沒采用mini-batch策略的loss圖,右側是採用mini-batch策略,可以看出來右邊曲線上下抖動,那是因爲參數可能對有些batcn裏面數據效果比較好或差,不過只要有下降趨勢,效果還是比左側圖好並訓練速度更快。
- min-batch就是把數據分爲組, 代表樣本總數目,每組裏有個樣本,隨機梯度下降就是 min-batch size = 1。批處理是m-batch size >1,正常是(64 128 256 512 1024 …),假設loss是Cross Entrophy, Cross Entrophy 公式裏的就是等於min-batch size。按批次的計算梯度和loss,而不是所有樣本處理完再計算,這樣會加快訓練速度.
-
2、 move average
move average也稱爲指數加權平均算法。用前面一個優化後的值和當前值進行加權計算,優化當前值,讓曲線更加平滑。
:代表時刻優化後的,上圖就是時刻優化後溫度
:代表時刻優化後的溫度。
:代表權重,正常取0.8-0.999,正常取0.9.
:代表時刻的值,上圖就是時刻的溫度
利用優化,優化後的曲線。
- move average 偏差糾正,由於,所以會造成剛開始時候較小,很偏離,所以要進行偏差糾正。用公式(1)計算完後,再對糾正偏差。
- move average 偏差糾正,由於,所以會造成剛開始時候較小,很偏離,所以要進行偏差糾正。用公式(1)計算完後,再對糾正偏差。
-
3、Momentum 梯度下降算法是結合move average的。在神經網絡中,主要計算梯度,代表學習速率。這裏就舉例這兩個。moment就是對進行優化。
-
4、RMSprop梯度下降優化算法
RMSprop和momentum區別就是對取平方,是整個矩陣平方。
-
5、Adam*梯度優化算法
Adam是把momentum和RMSprop結合起來,有個特點就是他的超參比較多。,主要是調節參數
總結
- 利用指數加權平均可以讓梯度在縱軸方向上下抖動減小,加快訓練和收斂。