- 學習率可以說是模型訓練最為重要的超參數(shù)漂洋。
- 通常情況下蝗敢,一個或者一組優(yōu)秀的學習率既能加速模型的訓練,又能得到一個較優(yōu)甚至最優(yōu)的精度钱反。
- 過大或者過小的學習率會直接影響到模型的收斂。
- 當模型訓練到一定程度的時候匣距,損失將不再減少面哥,這時候模型的一階梯度接近零,對應Hessian 矩陣通常是兩種情況
- 一毅待、正定尚卫,即所有特征值均為正,此時通呈欤可以得到一個局部極小值吱涉,若這個局部極小值接近全局最小則模型已經(jīng)能得到不錯的性能了,但若差距很大外里,則模型性能還有待于提升怎爵,通常情況下后者在訓練初最常見。
- 二盅蝗,特征值有正有負鳖链,此時模型很可能陷入了鞍點,若陷入鞍點风科,模型性能表現(xiàn)就很差撒轮。以上兩種情況在訓練初期以及中期,此時若仍然以固定的學習率贼穆,會使模型陷入左右來回的震蕩或者鞍點题山,無法繼續(xù)優(yōu)化。
- 所以故痊,學習率衰減或者增大能幫助模型有效的減少震蕩或者逃離鞍點顶瞳。
- 通常情況下,大部分學習率調(diào)整策略都是衰減學習率愕秫,但有時若增大學習率也同樣起到奇效慨菱。這里結(jié)合TensorFlow的內(nèi)置方法來舉例。
1戴甩、exponential_decay和natural_exp_decay
exponential_decay(learning_rate, global_step, decay_steps, decay_rate,
staircase=False, name=None)
natural_exp_decay(learning_rate, global_step, decay_steps, decay_rate,
staircase=False, name=None)
-
指數(shù)衰減是最常用的衰減方式符喝,這種方式簡單直接,在訓練初期衰減較大利于收斂甜孤,在后期衰減較小利于精調(diào)协饲。以上兩種均為指數(shù)衰減,區(qū)別在于后者使用以自然指數(shù)下降缴川。
2茉稠、piecewise_constant
piecewise_constant(x, boundaries, values, name=None)
分段設置學習率法,跟指數(shù)型類似把夸,區(qū)別在于每個階段的衰減并不是按指數(shù)調(diào)整而线。可在不同階段設置手動不同的學習率恋日。這種學習率重點在有利于精調(diào)膀篮。
3、polynomial_decay
polynomial_decay(learning_rate, global_step, decay_steps,
end_learning_rate=0.0001, power=1.0,
cycle=False, name=None)
多項式衰減谚鄙,計算如下:
有別于上述兩種各拷,多項式衰減則是在每一步迭代上都會調(diào)整學習率。主要看Power參數(shù)闷营,若Power為1烤黍,則是下圖中的紅色直線;若power小于1傻盟,則是開1/power次方速蕊,為藍色線;綠色線為指數(shù)娘赴,power大于1规哲。
此外,需要注意的是參數(shù)cycle诽表,cycle對應的是一種周期循環(huán)調(diào)整的方式唉锌。這種cycle策略主要目的在后期防止在一個局部極小值震蕩隅肥,若跳出該區(qū)域或許能得到更有的結(jié)果。這里說明cycle的方式不止可以在多項式中應用袄简,可配合類似的周期函數(shù)進行衰減腥放,如下圖。
大數(shù)據(jù)視頻推薦:
網(wǎng)易云課堂
CSDN
人工智能算法競賽實戰(zhàn)
AIops智能運維機器學習算法實戰(zhàn)
ELK7 stack開發(fā)運維實戰(zhàn)
PySpark機器學習從入門到精通
AIOps智能運維實戰(zhàn)
騰訊課堂
大數(shù)據(jù)語音推薦:
ELK7 stack開發(fā)運維
企業(yè)級大數(shù)據(jù)技術(shù)應用
大數(shù)據(jù)機器學習案例之推薦系統(tǒng)
自然語言處理
大數(shù)據(jù)基礎
人工智能:深度學習入門到精通