碼迷,www.tparu.icu
吉利平特名人堂 > 編程語言 > 詳細

帅哥平特肖:Adam優化算法

時間:2018-07-30 13:24:22      閱讀:3732      評論:0      收藏:0      [點我收藏+]

吉利平特名人堂 www.tparu.icu 標簽:理論   區別   更新   速度   通過   參數配置   計算資源   eps   alt   

深度學習常常需要大量的時間和計算機資源進行訓練,這也是困擾深度學習算法開發的重大原因。雖然我們可以采用分布式并行訓練加速模型的學習,但需要的計算資源并沒有絲毫減少。而唯有需要資源更少、令模型收斂更快的最優化算法,才能從根本上加速機器的學習速度和效果,Adam算法正為此而生!

Adam優化算法是隨機梯度下降算法的擴展式,進來其廣泛的應用與深度學習的應用中,尤其是計算機視覺和自然語言處理等任務。本文分為兩部分,前一部分簡要介紹了Adam優化算法的特性和其在深度學習中的應用,后一部分從Adam優化算法的原論文出發,詳細解釋和推導了他的算法過程和更新規則,我們希望讀者在蘇皖這兩部分后能了解掌握以下幾點:

1)  Adam算法是什么,他為優化深度學習模型帶來了哪些優勢

2)  Adam算法的原理機制是怎樣的,它與相關的AdaGrad和RMSProp方法有什么區別

3)  Adam算法應該如何調參,它常用的配置參數是怎么樣的

4)  Adam的實現優化的過程和權重更新規則

5)  Adam的初始化偏差修正的推導

6)  Adam的擴展形式:AdaMax

1、  什么是Adam優化算法?

Adam是一種可以替代傳統隨機梯度下降過程的一階優化算法,它能基于訓練數據迭代的更新神經網絡權重。

首先該算法名【Adam】,其并不是首字母縮寫,也不是人名。他的名稱來源于自適應矩估計(adaptive moment estimation)。在介紹這個算法時,原論文列舉了將Adam優化算法應用在非凸優化問題中所獲得的優勢:

1) 直截了當的實現

2) 高效的計算

3) 所需內存少

4) 梯度對角縮放的不變性

5) 適合解決含大規模數據和參數的優化問題

6) 使用于非穩態目標

7) 適用于解決包含很高噪聲或稀疏梯度的問題

8) 超參數可以很直觀地解釋,并且基本上只需要極少量的調參

2、  Adam優化算法的基本機制

Adam算法和傳統的隨機梯度下降不同。隨機梯度下降保持單一的學習率(即alpha)更新所有的權重,學習率在訓練過程中并不會改變。Adam通過隨機梯度的一階矩估計和二階矩估計而為不同的參數設計獨立的自適應性學習率。

Adam算法的提出者描述其為兩種隨機梯度下降擴展式的優點集合,即:

1)  適應梯度算法(AdaGrad)為每一個參數保留一個學習率以提升在稀疏梯度(即自然語言和計算機視覺問題)上的性能

2)  均方根傳播基于權重梯度最近量級的均值為每一個參數適應性的保留學習率。這意味著算法在非穩態和在線問題上有很優秀的性能

3)  Adam算法同時獲得了AdaGrad和RMSProp算法的優點。Adam不僅如RMSProp算法那樣基于一階矩陣計算適應性參數學習率,它同時還充分利用了梯度的二階矩均值(即有偏方差)。具體來說,算法計算了梯度的指數移動均值,超參數beta1和beta2控制了這些移動均值的衰減率。

4)  移動均值的初始值和beta1、beta2值接近于1(推薦值),因此矩估計的偏差接近于0,該偏差通過首先計算帶偏差的估計而后計算偏差修正后的估計而得到提升。如果對具體的實現細節和推導過程感興趣,可以繼續閱讀第二部分和原論文

3、  Adam算法的高效性

Adam在深度學習領域十分流行,因為他能很快地實現優良的結果,經驗性結果證明Adam算法在實踐中性能優異,相對于其他種類的隨機優化算法具有很大的優勢。

在原論文中,作者經驗性的證明了Adam算法的收斂性符合理論性的分析。Adam算法可以在MINIST手寫字符識別和IMDB情感分析數據集上由于logistic回歸算法,也可以在MINIST數據集上應用于多層感知機算法和CIFAR-10圖像識別數據集上應用于卷積神經網絡。他們總結道:在使用大型模型和數據集的情況下,我們證明了Adam優化算法在解決局部深度學習問題上的高效性

Adam優化算法和其他優化算法在多層感知機模型中的對比

事實上,Insofar、RMSProp、Adadelata和Adam算法都是比較類似的優化算法,他們在類似的情境下都可以執行的非常好。但是Adam算法的偏差修正令其在梯度變得稀疏時要比RMSProp算法更優秀更快速。Insofar和Adam優化算法基本是最好的全局選擇。同樣在CS21n課程中,Adam算法也推薦作為默認的優化蘇納法

雖然Adam算法在實踐中要比RMSProp更加優秀,但同時我們也可以嘗試SGD+Nesterov動量作為Adam的替代。即我們通常推薦在深度學習模型中使用Adam算法或SGD+Nesterov動量法。

4、  Adam的參數配置

alpha同樣也稱為學習率或步長因子,它控制了權重的更新比率(如0.001).較大的值(如0.3)在學習率更新前會更快的初始學習,而較小的值(如1E-5)會令訓練收斂到更好的性能

beta1一階矩估計的指數衰減率(如0.9)

beta2二階矩估計的指數衰減率(如0.99).該超參數在系數梯度(如在NLP或計算機視覺任務中)中應該設置接近1的數

epsilon該參數是非常小的數,其為了防止在實現中除以零(如1E-8)

另外,學習率衰減同樣可以應用到Adam中,原論文使用衰減率alpha=alpha/sqrt(t)在logistic回歸中每個epoch(t)中都得到更新

5、  Adam論文建議參數設定

測試機器學習問題比較好的默認參數設定為:alpha=0.001,beta1=0.9,beta2=0.999和epsilon=10E-8.

我們也可以看到流行深度學習庫采用了改論文推薦的參數設置:
TensorFlow:learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08.

Keras:lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0.

Blocks:learning_rate=0.002, beta1=0.9, beta2=0.999, epsilon=1e-08, decay_factor=1.

Lasagne:learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08

Caffe:learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08

MxNet:learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-8

Torch:learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-8

總結:在第一部分中,我們討論了Adam優化算法在深度學習中的基本特性和原理:

Adam是一種在深度學習模型中用來替代隨機梯度下降的優化算法。

Adam結合了AdaGrad和RMSProp算法最優的性能,它還是能提供解決稀疏梯度和噪聲問題的優化方法

Adam的調參相對簡單,默認參數就可以處理絕大部分的問題

 

我們提出了Adam算法,即一種對隨機目標函數執行yi接梯度優化的算法,該算法基于適應性低階矩估計,Adam算法很容易實現,并且有很高的計算效率和較低的內存需求

Adam算法梯度的對角縮放具有不變性,因此很適合求解帶有大規模數據或參數的問題。該算法同樣適用于解決大噪聲和稀疏梯度的非穩態問題。超參數可以很直觀的解釋,并只需要少量調整。本論文還討論了Adam算法和其他區相類似的算法。我們分析了Adam算法的理論收斂性,并提供了收斂的區間,我們證明收斂的速度在線凸優化框架下達到了最優。經驗結果也展示了Adam算法在實踐上比得上其他隨機優化方法。最后,我們討論了AdaMax,即一種基于無窮范數的Adam變體。

Adam 算法

require:步長alpha:(建議默認為:0.001)

require:矩估計的指數衰減率,beta1、beta2在區間[0,1]內。(建議默認為:分別為0.9和0.999)

require:用于數值穩定的小常數epsilon(建議默認為:1E-8)

require:初始參數為

         初始化一階和二階變量s=0,r=0

         初始化時間步t=0

while 沒有達到停止標準 do

         從訓練集中采包含m個樣本的小批量,對應目標為。

         計算梯度:

        

         更新有偏一階矩估計:技術分享圖片

 

         更新有偏二階矩估計:技術分享圖片

 

         修正一階矩的偏差:技術分享圖片

 

         修正二階矩的偏差:技術分享圖片

 

         計算更新:技術分享圖片

 

         應用更新:技術分享圖片

 

end while

 

實例:

在學習tensorflow例子的時候代碼里面給出的優化方案默認很多情況下都是直接用的AdamOptimizer優化算法,如下:

技術分享圖片

 

Adam優化算法

標簽:理論   區別   更新   速度   通過   參數配置   計算資源   eps   alt   

原文地址:https://www.cnblogs.com/zhibei/p/9389925.html

(0)
(0)
   
舉報
評論 一句話評論(0
登錄后才能評論!
? 2014 吉利平特名人堂 版權所有 京ICP備13008772號-2
迷上了代碼!
时时彩后一100稳赚 彩仙阁官网 全网最早更新资料36码 中国体育彩票官网投注限制 21点扑克玩法教学视频 重庆时时计划永久免费 秒速时时官方金祥 海南七星彩人工计划 精准一肖-码 欢乐生肖平台哪个好 黑龙江时时的玩法 飞艇公式稳中 捕鱼游戏财神发发发技巧 pk10技巧 三中三稳赚方法技巧 双色球100期开门彩走势图表