學習率
學習率的作用
在機器學習中,監督式學習通過定義一個模型,並根據訓練集上的數據估計最優參數。梯度下降法是一個廣泛被用來最小化模型誤差的參數優化算法。梯度下降法通過多次迭代,並在每一步中最小化成本函數(cost 來估計模型的參數。學習率 (learning rate),在迭代過程中會控制模型的學習進度。
在梯度下降法中,都是給定的統一的學習率,整個優化過程中都以確定的步長進行更新, 在迭代優化的前期中,學習率較大,則前進的步長就會較長,這時便能以較快的速度進行梯度下降,而在迭代優化的後期,逐步減小學習率的值,減小步長,這樣將有助於算法的收斂,更容易接近最優解。故而如何對學習率的更新成爲了研究者的關注點。
在模型優化中,常用到的幾種學習率衰減方法有:分段常數衰減、多項式衰減、指數衰減、自然指數衰減、餘弦衰減、線性餘弦衰減、噪聲線性餘弦衰減
學習率衰減常用參數有哪些
參數名稱 | 參數說明 |
---|---|
learning_rate | 初始學習率 |
global_step | 用於衰減計算的全局步數,非負,用於逐步計算衰減指數 |
decay_steps | 衰減步數,必須是正值,決定衰減週期 |
decay_rate | 衰減率 |
end_learning_rate | 最低的最終學習率 |
cycle | 學習率下降後是否重新上升 |
alpha | 最小學習率 |
num_periods | 衰減餘弦部分的週期數 |
initial_variance | 噪聲的初始方差 |
variance_decay | 衰減噪聲的方差 |
分段常數衰減
分段常數衰減需要事先定義好的訓練次數區間,在對應區間置不同的學習率的常數值,一般情況剛開始的學習率要大一些,之後要越來越小,要根據樣本量的大小設置區間的間隔大小,樣本量越大,區間間隔要小一點。下圖即爲分段常數衰減的學習率變化圖,橫座標代表訓練次數,縱座標代表學習率。
指數衰減
以指數衰減方式進行學習率的更新,學習率的大小和訓練次數指數相關,其更新規則爲:
這種衰減方式簡單直接,收斂速度快,是最常用的學習率衰減方式,如下圖所示,綠色的爲學習率隨
訓練次數的指數衰減方式,紅色的即爲分段常數衰減,它在一定的訓練區間內保持學習率不變。
自然指數衰減
它與指數衰減方式相似,不同的在於它的衰減底數是,故而其收斂的速度更快,一般用於相對比較
容易訓練的網絡,便於較快的收斂,其更新規則如下
下圖爲爲分段常數衰減、指數衰減、自然指數衰減三種方式的對比圖,紅色的即爲分段常數衰減圖,階梯型曲線。藍色線爲指數衰減圖,綠色即爲自然指數衰減圖,很明可以看到自然指數衰減方式下的學習率衰減程度要大於一般指數衰減方式,有助於更快的收斂。
多項式衰減
應用多項式衰減的方式進行更新學習率,這裏會給定初始學習率和最低學習率取值,然後將會按照
給定的衰減方式將學習率從初始值衰減到最低值,其更新規則如下式所示。
需要注意的是,有兩個機制,降到最低學習率後,到訓練結束可以一直使用最低學習率進行更新,另一個是再次將學習率調高,使用 decay_steps 的倍數,取第一個大於 global_steps 的結果,如下式所示.它是用來防止神經網絡在訓練的後期由於學習率過小而導致的網絡一直在某個局部最小值附近震盪,這樣可以通過在後期增大學習率跳出局部極小值。
如下圖所示,紅色線代表學習率降低至最低後,一直保持學習率不變進行更新,綠色線代表學習率衰減到最低後,又會再次循環往復的升高降低。
餘弦衰減
餘弦衰減就是採用餘弦的相關方式進行學習率的衰減,衰減圖和餘弦函數相似。其更新機制如下式所示:
如下圖所示,紅色即爲標準的餘弦衰減曲線,學習率從初始值下降到最低學習率後保持不變。藍色的線是線性餘弦衰減方式曲線,它是學習率從初始學習率以線性的方式下降到最低學習率值。綠色噪聲線性餘弦衰減方式。