Adam优化器再次改进 北大孙栩课题组提出
Adam作為一種快速收斂的優化器被廣泛采用,但是它較差的收斂性限制了使用范圍,為了保證更優的結果,很多情況下我們還在使用SGD。
但SGD較慢的收斂速度也令人頭疼,所以人們一直在研究進一步優化Adam的方法。AdaBound、RAdam都是在這方面的嘗試。
最近北京大學孫栩課題組提出了一種新的優化器AdaMod。這是一種基于Adam的改進優化器,具有自動預熱試探法和長期學習速率緩沖。
AdaMod的名稱來自Adaptive(自適應)和Momental Bound(矩限制)。
在訓練過程中,AdaMod可以輕松擊敗Adam,同時對學習率超參數、訓練曲線都不那么敏感,并且不需要預熱。
優點
AdaMod的原理是,在訓練的同時計算自適應學習率的指數長期平均值,并使用該平均值來修剪訓練過程中過高的學習率。
這一做法提高了優化器的收斂性,無需進行預熱,并且降低了對學習率的敏感性。
在上圖中,我們可以看出,SGDM和Adam的訓練結果都依賴于初始學習率的選擇。而AdaMod即使學習率相差兩個數量級,也能收斂到同一結果。
相比Adam優化器,AdaMod只增加了一個超參數β3,用來描述訓練中記憶長短的程度。
這種長期記憶解決了自適應學習率的異常過大數值,免于讓優化器陷入了不良的狀態。
與之前的RAdam優化器類似,AdaMod能夠從訓練開始就控制自適應學習率的變化,從而確保訓練開始時的穩定性,無需預熱。
在3個基于Transformer的神經機器翻譯模型上,沒有預熱的AdaMod顯示出了比預熱的Adam有著更快的收斂速率和更好的收斂結果。
而Adam優化器如果不預熱,效果可能會非常差,達到完全不可用的程度。
算法實現
其實,AdaMod的思路也很簡單,只是在Adam的基礎上做了一個小幅的修改。
如AdaBound所描述的,不穩定和異常的學習率通常出現在訓練快結束時,這會危及自適應方法的泛化性能。
相關報道:
中國學霸本科生提出AI新算法:速度比肩Adam,性能媲美SGD,ICLR領域主席贊不絕口
所以AdaBound的思路是,先定義學習率的下限ηl和ηu,一開始下限為0,上限為∞,隨著訓練過程的進行,上下限分別收斂到SGD的學習率α。
Adam會根據一階矩和二階矩的梯度估計值計算自適應學習率。受指數滑動平均(EMA)的啟發,AdaMod計算梯度的低階矩,并通過參數β3將記憶帶到下一個步驟中。
可以看出,Adam和AdaMod的前8步完全相同,后者只是比前者多了9、10兩步。
具體來說,在Adam中進行以下操作:
指數滑動平均的范圍是1/β3。β3就是記憶長短的量度,它越接近1,記憶長度也就越長。
例如當β3=0.9時,記憶平均范圍是10個周期;當β3=0.999時,平均范圍是1000個周期。
根據β3可以算出當前步驟的平滑值和之前平滑值的關系。
通過這個方程,我們定義了當前平滑值和過去“長期記憶”(long-term-memory)的關系。顯然,當β3=0時,AdaMod則完全等價于Adam。
計算出當前平滑值后,在它和當前Adam算出的學習率ηt中選出一個最小值,從而避免了出現過高學習率的情況。
這項操作可以看作是逐個元素地削減學習率,從而使輸出受到當前平滑值的限制。
總結
以上是生活随笔為你收集整理的Adam优化器再次改进 北大孙栩课题组提出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GitHub推出Beta版Android
- 下一篇: 柔性屏超级独角兽柔宇科技据称寻求赴美上市