如圖:
對於藍色的情況,由於梯度下降時來回擺動,導致收斂很慢
若增大學習率,結果可能偏離函數的範圍,如紫色的情況。爲了避免擺動過大,就必須使用較小的學習率,進一步降低了收斂速度
我們希望的是在縱軸上減緩學習,在橫軸上加快學習,如紅色的情況。有多種方法可以實現
動量梯度下降法(Momentum)
此處用了指數加權平均的更新方法
因爲縱軸有許多擺動,在求平均的時候都可以被抵消,最後幾乎等於0,所以縱軸的學習被減緩了
在橫軸,所有微分都指向一個方向,所以求平均之後幾乎沒有變化
所以動量梯度下降法就可以解決上述問題
RMSprop
on iteration t :
compute dw, db on current Mini-patch (和動量梯度下降法一樣,每次先算出dw、db)
當dw很大時,Sdw就會很大,所以更新時dw就會除以同樣很大的 ,會有抑制作用
當dw很小時,更新時它就會除以同樣很小的 ,會有加速作用
所以RMSprop也可以解決上述問題
Adam優化算法
把上述兩個方法結合起來,就是Adam優化算法。公式爲:
on iteration t :
compute dw, db on current Mini-patch