十大學(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ù)進(jìn)行精細(xì)地調(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ù)衰減方式,藍(lán)色的即為分段常數(shù)衰減 。
03
自然指數(shù)衰減
自然指數(shù)衰減和指數(shù)衰減方式相似,不同的在于它的衰減底數(shù)是,所以它的收斂的速度更快,一般用于相對比較容易訓(xùn)練的網(wǎng)絡(luò),便于較快的收斂,其更新公式為:
和分段常數(shù)以及指數(shù)衰減相比,其中綠色的是自然指數(shù)衰減。
04
多項式衰減
多項式衰減的方式進(jìn)行更新學(xué)習(xí)率,需要給定初始學(xué)習(xí)率和最低學(xué)習(xí)率,然后按照給定的衰減方式將學(xué)習(xí)率從初始值衰減到最低值,其更新規(guī)則即為:
此處需要注意有兩個機(jī)制:
降到最低學(xué)習(xí)率后,到訓(xùn)練結(jié)束可以一直使用最低學(xué)習(xí)率進(jìn)行更新;
另一個是再次將學(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
余弦衰減
顧名思義,就是采用余弦方式進(jìn)行學(xué)習(xí)率的衰減。其更新機(jī)制如下:
其中alpha可以看作是baseline,保證學(xué)習(xí)率不會低于某個值。不同alpha的影響如下:
07
循環(huán)學(xué)習(xí)率衰減
學(xué)習(xí)率以循環(huán)周期進(jìn)行衰減。是循環(huán)學(xué)習(xí)率的cycle版本。
余弦函數(shù)式的下降模擬了大lr找潛力區(qū)域然后小lr快速收斂的過程,加之restart帶來的cycle效果,有漲1-2個點的可能。
08
線性余弦衰減
線性余弦衰減方式是基于余弦方式的衰減策略,其數(shù)學(xué)公式為:
線性余弦衰減一般應(yīng)用領(lǐng)域是增強(qiáng)學(xué)習(xí)領(lǐng)域,
09
噪聲線性余弦衰減
在線性余弦衰減的基礎(chǔ)上,加入了噪聲。就得到了噪聲線性余弦衰減。噪聲線性余弦衰減提升了學(xué)習(xí)率尋找最優(yōu)值的隨機(jī)性和可能性。
0110
自定義學(xué)習(xí)率
大家還可以依據(jù)自己的想法自定義學(xué)習(xí)率衰減策略,例如可以依據(jù)驗證集合的表現(xiàn),來更新學(xué)習(xí)率,如果驗證集合上評估指標(biāo)在不斷變好,則保持lr,否則降低學(xué)習(xí)率。
參考文獻(xiàn)
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文章
1140瀏覽量
48122 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4814瀏覽量
103525 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4379瀏覽量
64803
原文標(biāo)題:神經(jīng)網(wǎng)絡(luò)十大學(xué)習(xí)率衰減提效策略!
文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
BP神經(jīng)網(wǎng)絡(luò)的調(diào)參技巧與建議
BP神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)的比較
如何優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率
BP神經(jīng)網(wǎng)絡(luò)的實現(xiàn)步驟詳解
BP神經(jīng)網(wǎng)絡(luò)的優(yōu)缺點分析
什么是BP神經(jīng)網(wǎng)絡(luò)的反向傳播算法
BP神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)的關(guān)系
深度學(xué)習(xí)入門:簡單神經(jīng)網(wǎng)絡(luò)的構(gòu)建與實現(xiàn)
人工神經(jīng)網(wǎng)絡(luò)的原理和多種神經(jīng)網(wǎng)絡(luò)架構(gòu)方法

卷積神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的比較
深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)模型
RNN模型與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的區(qū)別
LSTM神經(jīng)網(wǎng)絡(luò)的基本原理 如何實現(xiàn)LSTM神經(jīng)網(wǎng)絡(luò)
Moku人工神經(jīng)網(wǎng)絡(luò)101

評論