日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

神经网络优化篇:详解Adam 优化算法(Adam optimization algorithm)

發布時間:2024/1/21 windows 26 coder
生活随笔 收集整理的這篇文章主要介紹了 神经网络优化篇:详解Adam 优化算法(Adam optimization algorithm) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Adam 優化算法

在深度學習的歷史上,包括許多知名研究者在內,提出了優化算法,并很好地解決了一些問題,但隨后這些優化算法被指出并不能一般化,并不適用于多種神經網絡,時間久了,深度學習圈子里的人開始多少有些質疑全新的優化算法,很多人都覺得動量(Momentum)梯度下降法很好用,很難再想出更好的優化算法。所以RMSprop以及Adam優化算法,就是少有的經受住人們考驗的兩種算法,已被證明適用于不同的深度學習結構,這個算法會毫不猶豫地推薦給,因為很多人都試過,并且用它很好地解決了許多問題。

Adam優化算法基本上就是將MomentumRMSprop結合在一起,那么來看看如何使用Adam算法。

使用Adam算法,首先要初始化,\(v_{dW} = 0\)\(S_{dW} =0\)\(v_{db} = 0\)\(S_{db} =0\),在第\(t\)次迭代中,要計算微分,用當前的mini-batch計算\(dW\)\(db\),一般會用mini-batch梯度下降法。接下來計算Momentum指數加權平均數,所以\(v_{dW}= \beta_{1}v_{dW} + ( 1 - \beta_{1})dW\)(使用\(\beta_{1}\),這樣就不會跟超參數\(\beta_{2}\)混淆,因為后面RMSprop要用到\(\beta_{2}\)),使用Momentum時肯定會用這個公式,但現在不叫它\(\beta\),而叫它\(\beta_{1}\)。同樣\(v_{db}= \beta_{1}v_{db} + ( 1 -\beta_{1} ){db}\)

接著用RMSprop進行更新,即用不同的超參數\(\beta_{2}\)\(S_{dW}=\beta_{2}S_{dW} + ( 1 - \beta_{2}){(dW)}^{2}\),再說一次,這里是對整個微分\(dW\)進行平方處理,\(S_{db} =\beta_{2}S_{db} + \left( 1 - \beta_{2} \right){(db)}^{2}\)

相當于Momentum更新了超參數\(\beta_{1}\)RMSprop更新了超參數\(\beta_{2}\)。一般使用Adam算法的時候,要計算偏差修正,\(v_{dW}^{\text{corrected}}\),修正也就是在偏差修正之后,

\(v_{dW}^{\text{corrected}}= \frac{v_{dW}}{1 - \beta_{1}^{t}}\)

同樣\(v_{db}^{\text{corrected}} =\frac{v_{db}}{1 -\beta_{1}^{t}}\)

\(S\)也使用偏差修正,也就是\(S_{dW}^{\text{corrected}} =\frac{S_{dW}}{1 - \beta_{2}^{t}}\)\(S_{db}^{\text{corrected}} =\frac{S_{db}}{1 - \beta_{2}^{t}}\)

最后更新權重,所以\(W\)更新后是\(W:= W - \frac{a v_{dW}^{\text{corrected}}}{\sqrt{S_{dW}^{\text{corrected}}} +\varepsilon}\)(如果只是用Momentum,使用\(v_{dW}\)或者修正后的\(v_{dW}\),但現在加入了RMSprop的部分,所以要除以修正后\(S_{dW}\)的平方根加上\(\varepsilon\))。

根據類似的公式更新\(b\)值,\(b:=b - \frac{\alpha v_{\text{db}}^{\text{corrected}}}{\sqrt{S_{\text{db}}^{\text{corrected}}} +\varepsilon}\)

所以Adam算法結合了MomentumRMSprop梯度下降法,并且是一種極其常用的學習算法,被證明能有效適用于不同神經網絡,適用于廣泛的結構。

本算法中有很多超參數,超參數學習率\(a\)很重要,也經常需要調試,可以嘗試一系列值,然后看哪個有效。\(\beta_{1}\)常用的缺省值為0.9,這是dW的移動平均數,也就是\(dW\)的加權平均數,這是Momentum涉及的項。至于超參數\(\beta_{2}\)Adam論文作者,也就是Adam算法的發明者,推薦使用0.999,這是在計算\({(dW)}^{2}\)以及\({(db)}^{2}\)的移動加權平均值,關于\(\varepsilon\)的選擇其實沒那么重要,Adam論文的作者建議\(\varepsilon\)\(10^{-8}\),但并不需要設置它,因為它并不會影響算法表現。但是在使用Adam的時候,人們往往使用缺省值即可,\(\beta_{1}\)\(\beta_{2}\)\(\varepsilon\)都是如此,覺得沒人會去調整\(\varepsilon\),然后嘗試不同的\(a\)值,看看哪個效果最好。也可以調整\(\beta_{1}\)\(\beta_{2}\),但認識的業內人士很少這么干。

為什么這個算法叫做AdamAdam代表的是Adaptive Moment Estimation\(\beta_{1}\)用于計算這個微分(\(dW\)),叫做第一矩,\(\beta_{2}\)用來計算平方數的指數加權平均數(\({(dW)}^{2}\)),叫做第二矩,所以Adam的名字由此而來,但是大家都簡稱Adam權威算法。

這就是關于Adam優化算法的全部內容,有了它,可以更加快速地訓練神經網絡。

總結

以上是生活随笔為你收集整理的神经网络优化篇:详解Adam 优化算法(Adam optimization algorithm)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。