動量梯度下降法、RMSprop、Adam 優化演算法
1.1動量梯度下降法(Gradient descent with Momentum)
優化成本函式J,還有一種演算法叫做 Momentum,或者叫做動量梯度下降法,執行速度幾乎總是快於標準的梯度下降演算法,簡而言之,基本的想法就是計算梯度的指數加權平均數,並利用該梯度更新你的權重。
使用動量梯度下降法,你需要做的是,在每次迭代中,確切來說在第t次迭代的過程中,需要計算微分dw,db,用現有的 mini-batch 計算dw,db,vdw=βvdw+(1-β)dw,接著同樣地計算vdb ,vdb=βvdb+(1-β)db,然後重新賦值權重,w: = w − avdw,同樣b: =a−avdb,這樣就可以減緩梯度下降的幅度。所以有兩個超引數,學習率
1.2RMSprop
動量(Momentum)可以加快梯度下降,還有一個叫做 RMSprop 的演算法,全稱是 root mean square prop 演算法,它也可以加速梯度下降,減緩b方向的學習,即縱軸方向,同時加快橫軸方向的學習,RMSprop 演算法可以實現這一點。
在第t次迭代中,該演算法會照常計算當下 mini-batch 的微分dw,db,所以我會保留這個指數加權平均數,我們用到新符號Sdw,因此Sdw=βSdw+(1-β)dw2,同樣Sdb=βSdb+(1-β)db2,接著 RMSprop 會這樣更新引數值:,在橫軸方向或者在例子中的w方向,我們希望學習速度快,而在垂直方向,也就是例子中的b方向,我們希望減緩縱軸上的擺動,所以有了Sdw和Sdb,RMSprop 的影響就是你的更新最後會變成縱軸方向上擺動較小,而橫軸方向繼續推進。
1.3Adam 優化演算法(Adam optimization algorithm)
Adam 優化演算法基本上就是將
Adam 演算法結合了 Momentum 和 RMSprop 梯度下降法,並且是一種極其常用的學習演算法,被證明能有效適用於不同神經網路,適用於廣泛的結構。β1常用的預設值為 0.9,這是 dW 的移動平均數,也就是dW 的加權平均數,這是 Momentum 涉及的項;超引數β2推薦使用 0.999,這是在計算(dw)2以及(db)2的移動加權平均值,的取值建議為10-8,但你並不需要設定它,因為它並不會影響演算法表現。
本文來自部落格園,作者:zhang-X,轉載請註明原文連結:https://www.cnblogs.com/YY-zhang/p/15058850.html