天天看點

Adam優化器再次改進,用記憶限制過高學習率,北大孫栩課題組提出

曉查 發自 凹非寺 量子位 報道 | 公衆号 qbitai

adam作為一種快速收斂的優化器被廣泛采用,但是它較差的收斂性限制了使用範圍,為了保證更優的結果,很多情況下我們還在使用sgd。

但sgd較慢的收斂速度也令人頭疼,是以人們一直在研究進一步優化adam的方法。adabound、radam都是在這方面的嘗試。

最近北京大學孫栩課題組提出了一種新的優化器adamod。這是一種基于adam的改進優化器,具有自動預熱試探法和長期學習速率緩沖。

Adam優化器再次改進,用記憶限制過高學習率,北大孫栩課題組提出

adamod的名稱來自adaptive(自适應)和momental bound(矩限制)。

在訓練過程中,adamod可以輕松擊敗adam,同時對學習率超參數、訓練曲線都不那麼敏感,并且不需要預熱。

adamod的原理是,在訓練的同時計算自适應學習率的指數長期平均值,并使用該平均值來修剪訓練過程中過高的學習率。

這一做法提高了優化器的收斂性,無需進行預熱,并且降低了對學習率的敏感性。

Adam優化器再次改進,用記憶限制過高學習率,北大孫栩課題組提出

在上圖中,我們可以看出,sgdm和adam的訓練結果都依賴于初始學習率的選擇。而adamod即使學習率相差兩個數量級,也能收斂到同一結果。

相比adam優化器,adamod隻增加了一個超參數β3,用來描述訓練中記憶長短的程度。

這種長期記憶解決了自适應學習率的異常過大數值,免于讓優化器陷入了不良的狀态。

與之前的radam優化器類似,adamod能夠從訓練開始就控制自适應學習率的變化,進而確定訓練開始時的穩定性,無需預熱。

相關報道:

radam優化器又進化:與lookahead強強結合,性能更優速度更快

在3個基于transformer的神經機器翻譯模型上,沒有預熱的adamod顯示出了比預熱的adam有着更快的收斂速率和更好的收斂結果。

Adam優化器再次改進,用記憶限制過高學習率,北大孫栩課題組提出

而adam優化器如果不預熱,效果可能會非常差,達到完全不可用的程度。

Adam優化器再次改進,用記憶限制過高學習率,北大孫栩課題組提出

其實,adamod的思路也很簡單,隻是在adam的基礎上做了一個小幅的修改。

如adabound所描述的,不穩定和異常的學習率通常出現在訓練快結束時,這會危及自适應方法的泛化性能。

中國學霸大學生提出ai新算法:速度比肩adam,性能媲美sgd,iclr領域主席贊不絕口

是以adabound的思路是,先定義學習率的下限ηl和ηu,一開始下限為0,上限為∞,随着訓練過程的進行,上下限分别收斂到sgd的學習率α。

adam會根據一階矩和二階矩的梯度估計值計算自适應學習率。受指數滑動平均(ema)的啟發,adamod計算梯度的低階矩,并通過參數β3将記憶帶到下一個步驟中。

Adam優化器再次改進,用記憶限制過高學習率,北大孫栩課題組提出
Adam優化器再次改進,用記憶限制過高學習率,北大孫栩課題組提出

可以看出,adam和adamod的前8步完全相同,後者隻是比前者多了9、10兩步。

具體來說,在adam中進行以下操作:

Adam優化器再次改進,用記憶限制過高學習率,北大孫栩課題組提出

指數滑動平均的範圍是1/β3。β3就是記憶長短的量度,它越接近1,記憶長度也就越長。

例如當β3=0.9時,記憶平均範圍是10個周期;當β3=0.999時,平均範圍是1000個周期。

根據β3可以算出目前步驟的平滑值和之前平滑值的關系。

Adam優化器再次改進,用記憶限制過高學習率,北大孫栩課題組提出

通過這個方程,我們定義了目前平滑值和過去“長期記憶”(long-term-memory)的關系。顯然,當β3=0時,adamod則完全等價于adam。

計算出目前平滑值後,在它和目前adam算出的學習率ηt中選出一個最小值,進而避免了出現過高學習率的情況。

Adam優化器再次改進,用記憶限制過高學習率,北大孫栩課題組提出

這項操作可以看作是逐個元素地削減學習率,進而使輸出受到目前平滑值的限制。

現在你已經可以直接通過pip安裝。

盡管adamod勝過adam,但是在更長的訓練條件下,sgdm仍然可以勝過adamod。

是以,有人提出了結合diffgrad和adamod的diffmod算法,使用另一個參數“len_memory”代替β3,可以将batch的總數傳遞它,更易于記憶和追蹤。

這篇文章的第一作者是ding jianbang,通訊作者是孫栩副教授,他大學畢業華中科技大學,2010年從東京大學博士畢業,曾在微軟公司美國雷蒙德研究院實習。

Adam優化器再次改進,用記憶限制過高學習率,北大孫栩課題組提出

他的研究方向為自然語言處理、機器學習、深度學習,曾擔任emnlp、ijcnlp等國際學術會議的領域主席。

之前的adabound優化器就是孫栩組的駱梁宸同學提出的。本文的第一作者也感謝了與駱梁宸等人參與的讨論。

部落格讨論:

https://medium.com/@lessw/meet-adamod-a-new-deep-learning-optimizer-with-memory-f01e831b80bd

論文位址:

https://arxiv.org/abs/1910.12249v1

adamod源代碼:

https://github.com/lancopku/adamod

diffmod源代碼:

https://github.com/lessw2020/best-deep-learning-optimizers/blob/master/adamod/diffmod.py

— 完 —

量子位 qbitai · 頭條号簽約

關注我們,第一時間獲知前沿科技動态