改善深層神經網絡:超參數調整、正則化以及優化——2.9學習率衰減

加快學習算法的一個辦法就是隨着時間慢慢減少學習率,我們將之稱爲學習率衰減。

假設要使用mini-batch梯度下降法,mini-batch數量不大,大概64或者128個樣本。在迭代過程中會有噪聲,迭代會不斷向最小值下降,但是不會精確地收斂,所以算法最後在最小值點附近擺動,並不會真正地收斂。這是因爲用的α\alpha是固定值,不同的mini-batch中有噪音,但要慢慢減少學習率α\alpha的話,在初期的時候α\alpha學習率還較大,學習還是相對較快,但是隨着α\alpha變小,步伐也會變慢變小。所以最後曲線會在最小值附近的一小塊區域擺動,而不是在訓練過程中大幅度地在最小值附近擺動。所以慢慢減少α\alpha的本質在於,在學習初期能承受較大的步伐,但當開始收斂的時候,小一些的學習率能讓你步伐小一些。

我們可以將α\alpha學習率設爲α=11+decayrateepochnumα0\alpha=\frac{1}{1+decay_{rate}*epoch_{num}}*\alpha_0注意公式中的衰減率decayratedecay_{rate}是另一個需要調整的超參數。舉一個具體的例子,設α0=0.2\alpha_0=0.2,衰減率decatrate=1decat_{rate}=1,那麼在第一個epoch中代入公式中可以得到α1=11+110.2=0.1\alpha_1=\frac{1}{1+1*1}*0.2=0.1

根據學習率更新公式,學習率呈遞減趨勢。如果想學習率衰減,要做的是嘗試不同的值,包括超參數α0\alpha_0以及超參數衰減率,找到合適的值。除了這個學習率衰減的公式,還可以用其它的公式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章