2
雷鋒網(wǎng)AI科技評論按:本文為浙江大學吳騫為雷鋒網(wǎng) AI 科技評論撰寫的獨家稿件,未經(jīng)雷鋒網(wǎng)許可不得轉(zhuǎn)載。
論文題目: DON’T DECAY THE LEARNING RATE, INCREASE THE BATCH SIZE
真的是生命不息,打臉不止。前幾天剛剛總結(jié)了常見的 learning rate decay 方法,最近又看到這篇正在投 ICLR2018 的盲審,求我現(xiàn)在的心理陰影的面積。。。
然后上 arxiv 一查,哦,Google 爸爸的,干貨滿滿,簡直不容反駁。。。
先點題:
不用衰減學習率啦,只要增大 Batch Size 就可以啦!
摘要:
實際上作者在衰減學習率的時候同時也降低了SGD中隨機波動的值;衰減學習率類似于模擬退火;
不同于衰減學習率,作者提出了在增加 Batch Size 的同時保持學習率的策略,既可以保證不掉點,還可以減少參數(shù)更新的次數(shù);
作者還可以即增加學習率又增大 Batch Size,如此可以基本保持test中不掉點又進一步減少參數(shù)更新次數(shù);
作者對比了自己的模型和另一篇著名論文(Accurate, large minibatch SGD: Training imagenet in 1 hour)中的模型,Batch Size:65536 - 8192;正確率:77% - 76%;參數(shù)更新次數(shù):2500 - 14000;
傳統(tǒng)的學習率遵循以下兩個約束:
(1)
(2)
直觀來看,公式1約束最小值優(yōu)化的參數(shù)一定存在,公式2保證了衰減學習率有助于快速收斂至最小值處,而不是由于噪聲在震蕩。
然而以上結(jié)論是給予 Batch Size 不變推導出的。作者基于前作(A BAYESIAN PERSPECTIVE ON GENERALIZATION AND STOCHASTIC GRADIENT DESCENT)推導出另一個解釋優(yōu)化過程的模型,并指出可以通過找到某個最優(yōu)化的隨機波動值 (其中
為學習率 ,
為訓練數(shù)據(jù)集大小,
為 Batch Size 大小),使得模型達到最優(yōu)值。
廣泛的研究結(jié)果指出小 Batch Size 訓練的模型在 test 中的泛化能力比大 Batch Size 的要好。前作中還得出了固定學習率下的最大 Batch Size 優(yōu)化值 ,并驗證了
與隨機噪聲值
有關。
研究者認為小 Batch 中的隨機誤差有助于 SGD 的收斂,尤其是在非凸曲線優(yōu)化問題上。噪聲可以幫助 SGD 收斂至所謂平滑最小值(flat minima)而不是尖銳最小值(sharp minima)以保證 test 的泛化特性。
作者發(fā)現(xiàn)大部分研究者在訓練過程中都使用了「early stop 」的方法(當驗證集的點數(shù)不再增高時停止訓練),因此作者實際上有意的阻止了網(wǎng)絡到達最小值。衰減學習率的成功是經(jīng)驗式的。具體過程可以類比于模擬退火法中,較大的初始噪音有助于探索更大范圍內(nèi)的參數(shù)空間而不是很快地陷入局部最優(yōu)值;一旦作者找到了可能的最優(yōu)區(qū)域后開始減少噪聲來 finetune 到最優(yōu)值。
而這也能解釋為什么近來越來越多的研究者開始使用 cosine 式衰減學習率或階梯形的衰減——物理退火法中,緩慢衰減溫度是系統(tǒng)收斂到某些銳利的全局最小值;而離散地降低溫度則有利于收斂到不是最低但足夠魯棒的區(qū)域。
許多研究者開始使用帶 momentum 的 SGD 下降法,其噪聲值與原始 SGD 稍有不同:
(3)
當時該噪聲將退化為原始 SGD 噪聲。對比兩種 SGD 可以得出帶 momentum 的 SGD 方
法的有效學習率應為 。
對比原始 SGD,作者可以推導:成比例的放大可以保持模型性能。然而,作者發(fā)現(xiàn)若成比例的縮放學習率
和 Batch Size 表現(xiàn)良好,但是若按照
倍縮放 Batch Size 和沖量系數(shù)
的話則會導致 test 性能下降。這是因為沖量式的更新在時間上是累積的,因此當
設置較大時需要額外的訓練次數(shù)才能保證模型處于相同水平,原文的補充材料中有較詳細的分析,此處不作解釋。
隨著沖量系數(shù)的增大,還會增加網(wǎng)絡忘記舊的梯度的時間(該時間和
成正比),一旦時間跨度達到幾個 epoch 以上時,損失空間將會變得不利調(diào)整從而阻礙訓練。這種情況在學習率衰減的時候尤其明顯。這也是為什么有些論文推薦在初始的若干 epoch 時提升學習率。然而,在作者的大 Batch Size 實驗中,這種做法卻會帶來系統(tǒng)不穩(wěn)定性。
實驗中使用的網(wǎng)絡是「16-4」寬型殘差網(wǎng)絡結(jié)構(gòu)(wide ResNet architecture),使用了 ghost batch norm 方法來保證平均梯度與 Batch Size 不相關。
實驗中使用的對比策略是階梯形的,學習率階梯形下降,對應的,Batch Size 階梯形上升。
圖中,藍線代表常見的保持 Batch Size,逐步衰減學習率的方法;紅線代表與之相反的,保持學習率,相應的上升 Batch Size 的策略;綠線模擬真實條件下,上升 Batch Size 達到顯存上限的時候,再開始下降學習率的策略。
該實驗可以驗證兩個問題:
學習率下降是否是必須的——若是則三條曲線應不同;
是否是因為隨機噪聲的變化導致結(jié)果不同——若是則三條曲線相同;
實驗結(jié)果如下(a)所示,并驗證了隨機噪聲與訓練曲線的相關性。
實驗結(jié)果(b)進一步顯示增大 Batch Size 的好處,觀察損失值與參數(shù)更新次數(shù)的關系,顯然,增大 Batch Size 的方法中參數(shù)更新的次數(shù)遠少于衰減學習率的策略。
下圖是兩種不同的梯度下降策略的 test 結(jié)果,顯然效果相差不大。
作者準備了四組實驗:
Original training schedule:初始學習率設為 0.1,momentum 為 0.9,Batch Size 為 128,采用衰減學習率策略,每階段減少 5 倍;
Increasing batch size:初始學習率設為 0.1,momentum 為 0.9,Batch Size 為 128,采用增大 Batch Size 策略,每階段增加 5 倍;
Increased initial learning rate:初始學習率設為 0.5,momentum 為 0.9,Batch Size 為 640,采用增大 Batch Size 策略,每階段增加 5 倍;
Increased momentum coefficient:初始學習率設為 0.5,momentum 為 0.98,Batch Size 為 3200,采用增大 Batch Size 策略,每階段增加 5 倍;
當 Batch Size 增加到最大值后即不再增加,以保證
,并相應的開始減少學習率。
結(jié)果如下所示,結(jié)論與上文相同,方法4的結(jié)果稍差也在章節(jié)有效的學習率和累積變量中有所解釋。
論文 Accurate, large minibatch SGD: Training imagenet in 1 hour 中的參數(shù)與試驗參數(shù)設置和結(jié)果對比如下:
上述論文中的 Batch Size 已經(jīng)達到了保持網(wǎng)絡穩(wěn)定的最大值,為了進一步擴大 Batch Size 可以適當增大 momentum 的值。最終,作者的網(wǎng)絡達到了顯存的上限并保證了
。其參數(shù)設置與結(jié)果如下所示,可以看到準確率下降不大但是有效減少了參數(shù)的更新次數(shù)。
增大 Batch Size 就可以不用衰減學習率了,emmm,聽起來很有道理,但是總感覺哪里不對...
最后,祝大家煉丹愉快!
雷峰網(wǎng)特約稿件,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。