最近看到一篇博客特姐,將LookAhead和RAdam結(jié)合產(chǎn)生了一個(gè)新的算法——Ranger侈净,獲得了比單獨(dú)使用RAdam要好的效果疯坤。后來(lái)有人將LARS與Ranger結(jié)合肢簿,效果取得了進(jìn)一步提升靶剑。最近Ranger的提出者又將GC(Gradient Centralization)方法與Ranger結(jié)合,也取得了比Ranger好的效果池充。這里我會(huì)分四篇文章分享我個(gè)人在閱讀這四個(gè)方法對(duì)應(yīng)的論文時(shí)的總結(jié)和體會(huì)抬虽。由于LookAhead優(yōu)化器與SWA比較相似,所以還會(huì)開(kāi)辟一篇文章介紹SWA和Fast SWA優(yōu)化器纵菌。本篇文章為系列文章第二篇阐污。
問(wèn)題
目前很多自適應(yīng)學(xué)習(xí)率優(yōu)化器,如RMSprop咱圆、 Adam笛辟、Adadelta和Nadam等,被廣泛應(yīng)用在各種DNN模型的訓(xùn)練中序苏,他們帶來(lái)的最大益處是快速的收斂速度手幢。下圖(Algorithm 1)算法過(guò)程概括了大部分自適應(yīng)學(xué)習(xí)率優(yōu)化器的流程框架。不同的地方只是和
的計(jì)算方式不同忱详。例如围来,在Adam優(yōu)化器中:
為了數(shù)值穩(wěn)定,一般也會(huì)以下面的公式計(jì)算匈睁,
是一個(gè)極小的值监透,例如
:
從流程圖中可以看出,自適應(yīng)學(xué)習(xí)率優(yōu)化器的學(xué)習(xí)率有兩個(gè)航唆,分別為和
胀蛮,其中
稱為學(xué)習(xí)率或者全局學(xué)習(xí)率,而
稱為自適應(yīng)學(xué)習(xí)率糯钙。
實(shí)際使用中發(fā)現(xiàn)粪狼,這些優(yōu)化算法可能會(huì)收斂到一個(gè)表現(xiàn)較差的局部最優(yōu)點(diǎn),之前的解決方法是使用warmup啟發(fā)式方法任岸,即在訓(xùn)練早期階段先使用較小的學(xué)習(xí)率開(kāi)始訓(xùn)練再榄,然后逐漸增大學(xué)習(xí)率到正式訓(xùn)練使用的學(xué)習(xí)率,剩下的訓(xùn)練過(guò)程使用正式訓(xùn)練中的學(xué)習(xí)率調(diào)整策略享潜。但是之前沒(méi)有理論依據(jù)可以解釋warmup方法為何能夠帶來(lái)性能提升困鸥,因此也無(wú)法指引我們更好地在各種不同的任務(wù)中使用warmup,一般研究者都是通過(guò)試錯(cuò)的方式找到合適的warmup超參設(shè)置米碰。
作者在對(duì)warmup的有效性進(jìn)行研究時(shí)發(fā)現(xiàn)窝革,造成自適應(yīng)學(xué)習(xí)率優(yōu)化器陷入較差局部最優(yōu)點(diǎn)的主要原因是在訓(xùn)練早期,由于使用的訓(xùn)練樣本數(shù)量有限吕座,自適應(yīng)學(xué)習(xí)率會(huì)有較大的方差虐译。為了降低該因素帶來(lái)的負(fù)面影響,我們可以在訓(xùn)練的早期階段使用較小的(全局)學(xué)習(xí)率吴趴,這便是warmup方法漆诽。為了說(shuō)明warmup的有效性,作者指出在機(jī)器翻譯數(shù)據(jù)集De-En IWSLT'14的實(shí)驗(yàn)中锣枝,移除warmup階段將使訓(xùn)練損失從3增加到10左右厢拭。作者也通過(guò)可視化方法發(fā)現(xiàn),在不使用warmup的情況下撇叁,傳統(tǒng)Adam算法的梯度分布會(huì)被扭曲供鸠,在10次更新中梯度會(huì)有一個(gè)相對(duì)較小的“質(zhì)心”,而這意味著在進(jìn)行一些更新后陨闹,傳統(tǒng)Adam算法會(huì)陷入到較差的極小值點(diǎn)(個(gè)人無(wú)法理解此處的因果關(guān)系)楞捂,如下圖所示,該圖中也指出在使用warmup后趋厉,梯度分布被扭曲的問(wèn)題得到了矯正寨闹。
作者也通過(guò)證明說(shuō)明在訓(xùn)練的早期階段,Adam優(yōu)化器的自適應(yīng)學(xué)習(xí)率確實(shí)存在較大的方差君账。下面是論文中的簡(jiǎn)單推導(dǎo)總結(jié)繁堡,詳細(xì)推導(dǎo)請(qǐng)參考原文:
1.首先,作者將每次迭代的梯度看作是獨(dú)立同分布的乡数,且服從的正態(tài)分布椭蹄,因?yàn)橛?xùn)練開(kāi)始階段,權(quán)重的初始化是采樣自標(biāo)準(zhǔn)正態(tài)分布的净赴。
2.Adam優(yōu)化器中使用指數(shù)移動(dòng)平均來(lái)計(jì)算自適應(yīng)學(xué)習(xí)率塑娇,作者指出,通過(guò)指數(shù)移動(dòng)平均計(jì)算的梯度平方的方差大于使用簡(jiǎn)單平均計(jì)算的梯度平方(推導(dǎo)可參考本文補(bǔ)充1)劫侧,而且在訓(xùn)練的早期階段(較小時(shí))埋酬,通過(guò)指數(shù)移動(dòng)平均來(lái)計(jì)算的梯度平方值與通過(guò)簡(jiǎn)單平均計(jì)算的梯度平方值相差不大(最大為
),所以為了分析簡(jiǎn)單烧栋,作者認(rèn)為在訓(xùn)練的早期階段使用簡(jiǎn)單平均計(jì)算的梯度平方概率分布近似于指數(shù)移動(dòng)平均計(jì)算的梯度平方的概率分布写妥,即:
由于步驟1指出服從正態(tài)分布
,則
服從縮放逆卡方分布(scaled inverse chi-square distribution审姓,維基百科介紹)
珍特。所以
也服從自由度為
的縮放逆卡方分布
(此處不清楚為什么自由度不是
,個(gè)人猜測(cè)魔吐,兩者雖然都服從縮放逆卡方分布扎筒,但是由于實(shí)際形式不同莱找,所以在自由度上存在差異)。
3.基于以上假設(shè)和分析嗜桌,就可以計(jì)算出的方差
奥溺,從而可以計(jì)算出
的方差
:
該公式表明是自由度
的單調(diào)遞減函數(shù),由于自由度
與采樣的樣本數(shù)量有關(guān)骨宠,即與
成正比浮定,此處說(shuō)明在訓(xùn)練初期,由于缺乏采樣的樣本數(shù)量层亿,自適應(yīng)學(xué)習(xí)率的方差
比訓(xùn)練后期要大桦卒,作者指出大致會(huì)有500倍的差異。
方法
1.對(duì)自由度
進(jìn)行估計(jì)
從以上推導(dǎo)已經(jīng)知道是自由度
的單調(diào)遞減函數(shù)匿又,為了對(duì)
進(jìn)行進(jìn)一步的量化分析并修正方差較大的問(wèn)題方灾,需要基于
對(duì)自由度
進(jìn)行估計(jì),作者給出的估計(jì)為:
另外碌更,指定
2.修正自適應(yīng)學(xué)習(xí)率
所謂修正自適應(yīng)學(xué)習(xí)率迎吵,就是使得從始至終都是常量值。從
與自由度
的關(guān)系我們知道
的最小值
针贬,則可通過(guò)以下公式進(jìn)行修正:
其中击费,便是修正因子,通過(guò)公式推導(dǎo)桦他,作者得到
時(shí)刻的修正因子
為:
通過(guò)引入該修正因子蔫巩,作者提出了Adam算法的新變種RAdam(Rectified Adam),算法整體描述如下:
另外快压,正如算法中指出的圆仔,當(dāng)或
(開(kāi)方不可解)自適應(yīng)學(xué)習(xí)率失效,該算法退化為動(dòng)量SGD蔫劣。
實(shí)驗(yàn)效果
1.作者試驗(yàn)表明RAdam在CV和NLP任務(wù)中都有比Adam好的表現(xiàn)坪郭,而且RAdam也具有比Adam和SGD更好的對(duì)不同學(xué)習(xí)率的魯邦性:
2.與warmup比較,RAdam取得了與之相當(dāng)?shù)谋憩F(xiàn)脉幢,說(shuō)明RAdam可以作為warmup的替代策略:
補(bǔ)充
1.通過(guò)指數(shù)移動(dòng)平均計(jì)算的梯度平方的方差大于使用簡(jiǎn)單平均計(jì)算的梯度平方的方差歪沃,推導(dǎo)過(guò)程如下:
通過(guò)指數(shù)移動(dòng)平均計(jì)算的梯度平方的方差計(jì)算公式推導(dǎo):
通過(guò)簡(jiǎn)單平均計(jì)算的梯度平方的方差計(jì)算公式推導(dǎo):
兩者的差為:
上式最后一項(xiàng)大于等于0,理由是:由于嫌松,且對(duì)于Adam優(yōu)化器
一般取值
沪曙, 則
,下圖是t選擇不同值時(shí)
的值萎羔,可以看出都是大于0的液走,又
,所以上式大于0,從而說(shuō)明通過(guò)指數(shù)移動(dòng)平均計(jì)算的梯度平方的方差大于使用簡(jiǎn)單平均計(jì)算的梯度平方的方差缘眶,而且當(dāng)
較小時(shí)兩者的差異較小嘱根。