改善深層神經網絡:超參數調整、正則化以及優化——2.8 Adam算法(Adaptive Moment Estimation)

Adam算法是Momentum和RMSprop結合在一起得到的。使用Adam算法,首先要初始化Vdw=0,Sdw=0,Vdb=0,Sdb=0V_{dw}=0,S_{dw}=0,V_{db}=0,S_{db}=0。在第t次迭代中,要計算微分,用當前的mini-batch計算dW,dbdW,db,一般會用mini-batch梯度下降法,接下來計算momentum指數加權平均數:Vdw=β1Vdw+(1β1)dWV_{dw}=\beta_1*V_{dw}+(1-\beta_1)*d_WVdb=β1Vdb+(1β1)dbV_{db}=\beta_1*V_{db}+(1-\beta_1)*db接着用RMSprop進行更新Sdw=β2Sdw+(1β2)(dw)2S_{dw}=\beta_2*S_{dw}+(1-\beta_2)*(dw)^2Sdb=β2Sdb+(1β2)(db)2S_{db}=\beta_2*S_{db}+(1-\beta_2)*(db)^2一般使用Adam算法的時候,要計算偏差修正:Vdwcorrected=Vdw1β1tV_{dw}^{corrected}=\frac{V_{dw}}{1-\beta_1^t}Vdbcorrected=Vdb1β1tV_{db}^{corrected}=\frac{V_{db}}{1-\beta_1^t}Sdwcorrected=Sdw1β2tS_{dw}^{corrected}=\frac{S_{dw}}{1-\beta_2^t}Sdbcorrected=Sdb1β2tS_{db}^{corrected}=\frac{S_{db}}{1-\beta_2^t}最後更新權重W=WαVdwcorrectedSdwcorrected+εW=W-\alpha\frac{V_{dw}^{corrected}}{\sqrt{S_{dw}^{corrected}}+\varepsilon}b=bαVdbcorrectedSdbcorrected+εb=b-\alpha\frac{V_{db}^{corrected}}{\sqrt{S_{db}^{corrected}}+\varepsilon}所以Adam算法結合了Momentum和RMSprop梯度下降法,並且是一種及其常見的學習算法,被證明能有效適用於不同的神經網絡。該算法有很多很重要的超參數,超參數學習率α\alpha很重要,也經常需要調試,可以嘗試一系列值,然後看哪個有效。β1\beta-1常用的缺省值爲0.9,這是dWdW的移動平均數,也就是dWdW的加權平均數,這是Momentum涉及的項。至於超參數β2\beta_2,Adam算法的發明者推薦使用0.999,這是在計算(dW)2(dW)^2以及(db)2(db)^2的移動加權平均值。關於ε\varepsilon的選擇其實沒有很重要,Adam論文的作者建議ε\varepsilon10810^{-8}

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