十大學(xué)習(xí)率衰減策略!
簡 介
目前越來越多非結(jié)構(gòu)化問題的出現(xiàn),神經(jīng)網(wǎng)絡(luò)也扮演著愈加重要的作用。一個好的神經(jīng)網(wǎng)絡(luò)對于最終任務(wù)的預(yù)測至關(guān)重要,但要得到一個好的神經(jīng)網(wǎng)絡(luò)則需要考慮眾多的因素,本文我們重點介紹神經(jīng)網(wǎng)絡(luò)中調(diào)參重學(xué)習(xí)率衰減的調(diào)節(jié)策略。本文介紹目前tensorflow中的9大學(xué)習(xí)率衰減策略。
exponential_decay = learning_rate_decay.exponential_decay
piecewise_constant = learning_rate_decay.piecewise_constant
polynomial_decay = learning_rate_decay.polynomial_decay
natural_exp_decay = learning_rate_decay.natural_exp_decay
inverse_time_decay = learning_rate_decay.inverse_time_decay
cosine_decay = learning_rate_decay.cosine_decay
cosine_decay_restarts = learning_rate_decay.cosine_decay_restarts
linear_cosine_decay = learning_rate_decay.linear_cosine_decay
noisy_linear_cosine_decay = learning_rate_decay.noisy_linear_cosine_decay
學(xué)習(xí)率衰減
01
分段常數(shù)衰減
在對應(yīng)區(qū)間置中不同的學(xué)習(xí)率的常數(shù)值,一般初始學(xué)習(xí)率會大一些,后面越來越小,要根據(jù)樣本量的大小設(shè)置區(qū)間的間隔大小,樣本量越大,區(qū)間間隔要小一點。在真正的網(wǎng)絡(luò)訓(xùn)練中,需要操作人員根據(jù)具體任務(wù)對學(xué)習(xí)率具體設(shè)置
該方法有助于針對不同任務(wù)進行精細地調(diào)參,在任意步長后下降任意數(shù)值的learning rate。
02
指數(shù)衰減
指數(shù)衰減的方式,學(xué)習(xí)率的大小和訓(xùn)練次數(shù)指數(shù)相關(guān),指數(shù)衰減簡單直接,收斂速度快,是最常用的學(xué)習(xí)率衰減方式,其數(shù)學(xué)公式為:
如下圖所示,紅色的為學(xué)習(xí)率隨訓(xùn)練次數(shù)的指數(shù)衰減方式,藍色的即為分段常數(shù)衰減 。

03
自然指數(shù)衰減
自然指數(shù)衰減和指數(shù)衰減方式相似,不同的在于它的衰減底數(shù)是,所以它的收斂的速度更快,一般用于相對比較容易訓(xùn)練的網(wǎng)絡(luò),便于較快的收斂,其更新公式為:
和分段常數(shù)以及指數(shù)衰減相比,其中綠色的是自然指數(shù)衰減。
04
多項式衰減
多項式衰減的方式進行更新學(xué)習(xí)率,需要給定初始學(xué)習(xí)率和最低學(xué)習(xí)率,然后按照給定的衰減方式將學(xué)習(xí)率從初始值衰減到最低值,其更新規(guī)則即為:
此處需要注意有兩個機制:
降到最低學(xué)習(xí)率后,到訓(xùn)練結(jié)束可以一直使用最低學(xué)習(xí)率進行更新;
另一個是再次將學(xué)習(xí)率調(diào)高,使用decay_steps的倍數(shù),取第一個大于global_steps的結(jié)果,即:
可以用它來防止神經(jīng)網(wǎng)絡(luò)在訓(xùn)練的后期由于學(xué)習(xí)率過小而導(dǎo)致的網(wǎng)絡(luò)一直在某個局部最小值附近震蕩,在后期增大學(xué)習(xí)率跳出局部極小值。
05
倒數(shù)衰減
倒數(shù)衰減的數(shù)學(xué)公式為:

06
余弦衰減
顧名思義,就是采用余弦方式進行學(xué)習(xí)率的衰減。其更新機制如下:
其中alpha可以看作是baseline,保證學(xué)習(xí)率不會低于某個值。不同alpha的影響如下:

07
循環(huán)學(xué)習(xí)率衰減
學(xué)習(xí)率以循環(huán)周期進行衰減。是循環(huán)學(xué)習(xí)率的cycle版本。
余弦函數(shù)式的下降模擬了大lr找潛力區(qū)域然后小lr快速收斂的過程,加之restart帶來的cycle效果,有漲1-2個點的可能。
08
線性余弦衰減
線性余弦衰減方式是基于余弦方式的衰減策略,其數(shù)學(xué)公式為:
線性余弦衰減一般應(yīng)用領(lǐng)域是增強學(xué)習(xí)領(lǐng)域,
09
噪聲線性余弦衰減
在線性余弦衰減的基礎(chǔ)上,加入了噪聲。就得到了噪聲線性余弦衰減。噪聲線性余弦衰減提升了學(xué)習(xí)率尋找最優(yōu)值的隨機性和可能性。
0110
自定義學(xué)習(xí)率
大家還可以依據(jù)自己的想法自定義學(xué)習(xí)率衰減策略,例如可以依據(jù)驗證集合的表現(xiàn),來更新學(xué)習(xí)率,如果驗證集合上評估指標(biāo)在不斷變好,則保持lr,否則降低學(xué)習(xí)率。
參考文獻
tensorflow learning schedule之分段常數(shù)衰減用法
An Overview of Deep Learning Optimization Methods and Learning Rate Attenuation Methods
Tensorflow中l(wèi)earning rate decay的奇技淫巧
TensorFlow使用記錄 (三):Learning Rate Scheduling
深度學(xué)習(xí)中的固定學(xué)習(xí)率衰減策略總結(jié)
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/training/learning_rate_decay.py
編輯:jq
-
噪聲
+關(guān)注
關(guān)注
13文章
1156瀏覽量
49237 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4838瀏覽量
107787 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4417瀏覽量
67517
原文標(biāo)題:神經(jīng)網(wǎng)絡(luò)十大學(xué)習(xí)率衰減提效策略!
文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
神經(jīng)網(wǎng)絡(luò)的初步認識
自動駕駛中常提的卷積神經(jīng)網(wǎng)絡(luò)是個啥?
NMSIS神經(jīng)網(wǎng)絡(luò)庫使用介紹
構(gòu)建CNN網(wǎng)絡(luò)模型并優(yōu)化的一般化建議
在Ubuntu20.04系統(tǒng)中訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的一些經(jīng)驗
CICC2033神經(jīng)網(wǎng)絡(luò)部署相關(guān)操作
液態(tài)神經(jīng)網(wǎng)絡(luò)(LNN):時間連續(xù)性與動態(tài)適應(yīng)性的神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)的并行計算與加速技術(shù)
如何在機器視覺中部署深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)
基于神經(jīng)網(wǎng)絡(luò)的數(shù)字預(yù)失真模型解決方案
無刷電機小波神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)子位置檢測方法的研究
神經(jīng)網(wǎng)絡(luò)專家系統(tǒng)在電機故障診斷中的應(yīng)用
神經(jīng)網(wǎng)絡(luò)RAS在異步電機轉(zhuǎn)速估計中的仿真研究
基于FPGA搭建神經(jīng)網(wǎng)絡(luò)的步驟解析
關(guān)于神經(jīng)網(wǎng)絡(luò)的十大學(xué)習(xí)率衰減提效策略
評論