加快學習算法的一個辦法就是隨着時間慢慢減少學習率,我們將之稱爲學習率衰減。
假設要使用mini-batch梯度下降法,mini-batch數量不大,大概64或者128個樣本。在迭代過程中會有噪聲,迭代會不斷向最小值下降,但是不會精確地收斂,所以算法最後在最小值點附近擺動,並不會真正地收斂。這是因爲用的是固定值,不同的mini-batch中有噪音,但要慢慢減少學習率的話,在初期的時候學習率還較大,學習還是相對較快,但是隨着變小,步伐也會變慢變小。所以最後曲線會在最小值附近的一小塊區域擺動,而不是在訓練過程中大幅度地在最小值附近擺動。所以慢慢減少的本質在於,在學習初期能承受較大的步伐,但當開始收斂的時候,小一些的學習率能讓你步伐小一些。
我們可以將學習率設爲注意公式中的衰減率是另一個需要調整的超參數。舉一個具體的例子,設,衰減率,那麼在第一個epoch中代入公式中可以得到。
根據學習率更新公式,學習率呈遞減趨勢。如果想學習率衰減,要做的是嘗試不同的值,包括超參數以及超參數衰減率,找到合適的值。除了這個學習率衰減的公式,還可以用其它的公式。