最近看到一篇博客刁憋,將LookAhead和RAdam結合產生了一個新的算法——Ranger苦蒿,獲得了比單獨使用RAdam要好的效果儿捧。后來有人將LARS與Ranger結合,效果取得了進一步提升墨闲。最近Ranger的提出者又將GC(Gradient Centralization)方法與Ranger結合今妄,也取得了比Ranger好的效果。這里我會分四篇文章分享我個人在閱讀這四個方法相關論文時的總結和體會鸳碧。由于LookAhead優(yōu)化器與SWA比較相似盾鳞,所以還會開辟一篇文章介紹SWA和Fast SWA優(yōu)化器。本篇文章為系列文章的第三篇瞻离。
問題
之前對SGD優(yōu)化器進行改進的工作主要分為兩種:自適應學習率方式腾仅,如AdaGrad和Adam優(yōu)化器;另一種是加速訓練方式套利,如Nesterov momentum優(yōu)化器推励,這些優(yōu)化器都利用了累積的歷史梯度信息來加速擬合鹤耍,但是為了使用這些優(yōu)化器獲得性能提升,一般需要大量的調參验辞。隨著最近研究對神經網(wǎng)絡損失函數(shù)空間平面的進一步了解(尤其是SWA優(yōu)化器)稿黄,作者提出了一種與前面兩種方法完全不同的優(yōu)化器——LookAhead。直觀上跌造,該算法通過預先查看(look ahead)由另一個優(yōu)化器生成的“快速權重”(fast weights)序列來選擇搜索方向杆怕。作者指出,LookAhead具有兩個特點:1.與常規(guī)優(yōu)化器(如ASGD或Adam)進行結合壳贪,從而提高這些優(yōu)化器的擬合速度和泛化能力陵珍;2.對自身超參和學習率更加魯棒。
方法
LookAhead優(yōu)化器首先將模型參數(shù)拷貝兩份违施,一份稱為slow weights 互纯,一份稱為fast weights
,然后使用稱為內部優(yōu)化器(inner optimizer)的常規(guī)優(yōu)化器
(如SGD或Adam)對fast weights進行正常的訓練優(yōu)化磕蒲,但是每隔
個訓練迭代留潦,算法會在權重空間的
方向上使用線性插值方式來更新slow weights,即
亿卤,
稱為slow weights的學習率,然后再將更新后的slow weights賦值給fast weigts繼續(xù)進行下個
步訓練鹿霸,如此循環(huán)排吴,訓練結束后將slow weights作為最終的模型訓練輸出權重。算法的偽代碼如下圖右側所示:
直觀上懦鼠,不考慮內部優(yōu)化器的權重更新的話钻哩,將slow weights的更新公式展開可以看到,其實slow weights就是對每次步更新后的fast weights的指數(shù)移動加權平均(EMA)肛冶,slow weights的更新不僅利用當前的fast weights街氢,還保留了之前的fast weights信息,這樣便可以降低權重前后更新的高方差帶來的負面影響睦袖。
這些高方差可能來自較大的學習率或其他不是很合適的超參數(shù)珊肃,而LookAhead通過對權重進行平滑處理,從而具有對超參魯棒的特點馅笙。尤其是當內部優(yōu)化器使用較大的學習率時伦乔,權重更新可以盡快通過曲率較小的方向(梯度中值較小的分方向),而使用平滑方法可以緩解權重在高曲率方向(梯度中值較大的分方向)的振蕩甚至發(fā)散董习,從而使得算法獲得使用較大學習率帶來的加速收斂的收益烈和。
從Figure 1左側中的權重更新軌跡可以形象看出,當步更新的fast weights還在最優(yōu)點周圍探索時皿淋,通過插值的方式計算的slow weights已經先一步接近最優(yōu)點了(SWA思想)招刹。
由于LookAhead只是將網(wǎng)絡權重復制了一份恬试,所以相比訓練中的feature map對GPU內存的消耗,LookAhead帶來的額外內存負擔是可以忽略的疯暑。另外训柴,每次對slow weights的更新也只是簡單的數(shù)值計算,而且是每步訓練后更新一次缰儿,所以帶來的計算負擔也是可以忽略的畦粮。總體上乖阵,LookAhead帶來的計算和內存負擔是很小的宣赔。
另外,LookAhead算法也引入了兩個超參瞪浸,更新間隔和slow weights的學習率
儒将,作者也提出了選擇最優(yōu)
的方法,但是作者通過試驗說明使用固定的經驗值具有相同的擬合表現(xiàn)对蒲,從而在多個實驗中都是使用固定的
值钩蚊。具體選擇最優(yōu)
的方法見原論文。
實驗效果
視覺數(shù)據(jù)集CIFAR上與其他優(yōu)化器的性能比較實驗
視覺數(shù)據(jù)集ImageNet上的實驗
語音模型訓練和翻譯任務上的實驗
從實驗可以看出蹈矮,相比SGD或Adam砰逻,LookAhead(SGD)或LookAhead(Adam)具有更快的收斂速度或更好的表現(xiàn)。
對SGD內部優(yōu)化器超參的魯棒性實驗(學習率和momentum)
對自身超參
和
的魯棒性實驗
評價
- 作者也指出本文是受SWA的啟發(fā)泛鸟,所以與SWA具有很大的相似性蝠咆,本質上的差異便是SWA只使用訓練過程中累積的權重信息計算最終輸出的模型權重,而作者將其應用到訓練過程中北滥,使歷史權重也參與權重更新刚操,從而加速模型收斂。
- 作者文中指出可能需要為LookAhead尋找更好的學習率調整策略再芋,Ranger方法中使用的是flat cosin annealing策略菊霜,該方法可能是對LookAhead來說較好的學習率調整策略,但需要進一步的試驗對比進行驗證济赎。