優(yōu)化器方法-LARS(Layer-wise Adaptive Rate Scaling)

最近看到一篇博客,將最新的LookAheadRAdam優(yōu)化器結(jié)合,產(chǎn)生了一個(gè)新的算法——Ranger,獲得了比單獨(dú)使用RAdam要好的效果。后來有人將LARS與Ranger結(jié)合,效果取得了進(jìn)一步提升。最近,Ranger的提出者又將GC(Gradient Centralization)方法與Ranger結(jié)合,也取得了比Ranger好的效果。這里我會(huì)分四篇文章分享在閱讀這四個(gè)方法的論文時(shí)我個(gè)人的總結(jié)和體會(huì)。由于LookAhead優(yōu)化器與SWA比較相似,所以還會(huì)開辟一篇文章介紹SWAFast SWA優(yōu)化器。本篇文章為該系列文章第一篇。

LARS (Layer-wise Adaptive Rate Scaling)

問題

常用的對(duì)網(wǎng)絡(luò)訓(xùn)練進(jìn)行加速的方法之一是使用更大的batch size在多個(gè)GPU上訓(xùn)練。但是當(dāng)訓(xùn)練周期數(shù)不變時(shí),增大batch size將會(huì)導(dǎo)致網(wǎng)絡(luò)權(quán)重更新的迭代次數(shù)減少。為了彌補(bǔ)該問題,很多研究者建議當(dāng)batch size增加k倍時(shí),也相應(yīng)地將學(xué)習(xí)率增加k倍。但是當(dāng)batch size很大的時(shí)候,學(xué)習(xí)率增加太大會(huì)導(dǎo)致學(xué)習(xí)不穩(wěn)定,尤其是在訓(xùn)練早期階段,如果學(xué)習(xí)率太大,則參數(shù)可能在錯(cuò)誤的方向上更新很多,從而導(dǎo)致模型最終的表現(xiàn)很差。另外,學(xué)習(xí)率太大的話也可能導(dǎo)致學(xué)習(xí)發(fā)散。

解決方法

之前主流的用來緩解該問題的方法是學(xué)習(xí)率warm-up,在訓(xùn)練的前幾個(gè)周期,從一個(gè)比較小的學(xué)習(xí)率開始,線性增加到最終使用的學(xué)習(xí)率(也就是k倍增加后的學(xué)習(xí)率)。作者從自己的實(shí)驗(yàn)觀察出發(fā),提出了可以替代warm-up的方法——分層自適應(yīng)學(xué)習(xí)率縮放(Layer-wise Adaptive Rate Scaling),從一個(gè)新穎的方向緩解學(xué)習(xí)率過大的問題。

我們知道,網(wǎng)絡(luò)參數(shù)的更新公式為:w_{t+1} = w_t - \lambda \nabla L(w_t),當(dāng)學(xué)習(xí)率太大的話,|| \lambda \nabla L(w_t) || 的值將會(huì)大于||w_t||,這時(shí)便可能造成發(fā)散。作者通過分析訓(xùn)練時(shí)網(wǎng)絡(luò)每層的權(quán)重L2范數(shù)和對(duì)應(yīng)梯度的L2范數(shù)的比值(||w_t||/|| \nabla L(w_t) ||,后面簡(jiǎn)稱為ratio)發(fā)現(xiàn),每層的ratio差異很大(如下圖table 2所示),而且ratio在訓(xùn)練早期都比較大,經(jīng)過幾個(gè)周期后整體迅速減小。作者指出,如果在學(xué)習(xí)的早期階段學(xué)習(xí)率太大的話,對(duì)某些ratio較小的層,|| \lambda \nabla L(w_t) || 的值將會(huì)大于||w_t||,也就是說很有可能存在\lambda \nabla L(w_t) 的值大于權(quán)重w_t,從而造成訓(xùn)練不穩(wěn)定。warm-up的目的便是以較小的學(xué)習(xí)率開始訓(xùn)練來緩解該問題。

作者從以上觀察出發(fā)得出結(jié)論,既然并不是所有層的ratio比較小,那么各個(gè)層的更新參數(shù)使用的學(xué)習(xí)率應(yīng)該根據(jù)自己的情況有所調(diào)整,而不是所有層使用相同的學(xué)習(xí)率。由此,作者引入了局部學(xué)習(xí)率(local LR)的概念,從而在全局學(xué)習(xí)率的基礎(chǔ)上根據(jù)每層的情況進(jìn)行適當(dāng)?shù)卣{(diào)整。局部學(xué)習(xí)率的計(jì)算方式如下:
\lambda^l = \eta * \frac{||w^l||}{|| \nabla L(w^l) ||}
其中,l表示層數(shù),\eta是超參(<1),表示一次更新時(shí)每層會(huì)改變參數(shù)的置信度(trust),作者的實(shí)驗(yàn)中該值為0.001。局部學(xué)習(xí)率可以很方便的替換每層的全局學(xué)習(xí)率,從而參數(shù)的更新大小為:
\triangle w^l_t = \gamma * \lambda^l * \nabla L(w^l_t)
其中,\gamma為全局學(xué)習(xí)率。而且,局部學(xué)習(xí)率也可以輕易擴(kuò)展到帶參數(shù)衰減\beta的參數(shù)更新中:
\lambda^l = \eta * \frac{||w^l||}{|| \nabla L(w^l) || + \beta * ||w^l||}
由于局部學(xué)習(xí)率引入了對(duì)梯度的l2歸一化(\nabla L(w^l_t) / ||\nabla L(w^l_t)||),所以參數(shù)更新的幅度不再依賴梯度的大小,梯度只起到了權(quán)重更新方向的作用,從而起到了緩解梯度爆炸和消失的作用。

引入局部學(xué)習(xí)率后,由于\eta < 1且很?。ɡ?,作者實(shí)驗(yàn)中使用的0.001),對(duì)于ratio比較小的層,\lambda^l也是個(gè)很小的值,這樣便能將全局學(xué)習(xí)率減小很多,參數(shù)更新時(shí)便比較穩(wěn)定;對(duì)于ratio比較大的層,權(quán)重本身比梯度大很多,可以使用較大的梯度進(jìn)行更新也不會(huì)造成發(fā)散,此時(shí)局部學(xué)習(xí)率\lambda^l會(huì)自適應(yīng)地調(diào)整到接近1,從而使用接近全局學(xué)習(xí)率的學(xué)習(xí)率進(jìn)行參數(shù)更新。

下圖是將LARS與SGD結(jié)合的算法流程:

實(shí)驗(yàn)效果

作者將warm-up作為新方法的baseline,在使用LARS后將batch size擴(kuò)展到8k,獲得了與baseline(batch size為512)相當(dāng)?shù)男Ч?/p>

結(jié)合warm-up和LARS后,使用32K batch size訓(xùn)練的ResNet在ImageNet數(shù)據(jù)集上的測(cè)試集表現(xiàn)和不使用warm-up且batch size為256的baseline效果相當(dāng),如下圖所示:

評(píng)價(jià)

作者提出的LARS可以有效緩解較大batch size訓(xùn)練前期由于學(xué)習(xí)率太大導(dǎo)致的不穩(wěn)定問題。另外,個(gè)人認(rèn)為對(duì)于遷移學(xué)習(xí)來說,網(wǎng)絡(luò)不同層應(yīng)該使用不同的學(xué)習(xí)率,因?yàn)檩^淺層參數(shù)通常用來提取細(xì)粒度的特征,而這些特征往往比較通用,所以較淺層的學(xué)習(xí)率應(yīng)該較小,只對(duì)參數(shù)做微調(diào),這也相當(dāng)于在對(duì)相似數(shù)據(jù)集進(jìn)行微調(diào)時(shí)固定(freeze)較淺層參數(shù)的作用;相反,深層參數(shù)表達(dá)的是全局特征,需要更好地?cái)M合新任務(wù)數(shù)據(jù),所以需要進(jìn)行較大調(diào)整。因此,也許LARS最適宜的應(yīng)用場(chǎng)景是在遷移學(xué)習(xí)中。當(dāng)然,這也不排除在finetuen時(shí),較淺層參數(shù)的梯度本身就比較小,從而減小對(duì)較淺層參數(shù)更新的可能。

另外,文中也存在以下缺陷:

  1. 該方法是否對(duì)超參數(shù)\eta敏感,作者沒有給出進(jìn)一步的實(shí)驗(yàn)數(shù)據(jù);
  2. 實(shí)驗(yàn)對(duì)比不全面,LARS的提出是為了替代warm-up策略,但是在ImageNet數(shù)據(jù)集上,作者只給出了warm-up+LARS的實(shí)驗(yàn)效果,不得不讓人懷疑該方法的廣泛有效性。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容