天天看點

FASTAI筆記-2-對fit_one_cycle了解

學習fastai中一直對fit_one_cycle有一些不懂,今天在學習中明白了其中道理。

fit_one_cycle在訓練中,先使用較大的學習率,在逐漸減國小習率。

首先,在學習的過程中逐漸增大學習率目的是為了不至于陷入局部最小值,邊學習邊計算loss。

其次,當loss曲線向上揚即變大的時候,開始減國小習率,慢慢的趨近梯度最小值,loss也會慢慢減小。就如下圖:

注:圖為課程中的圖,我借鑒來解釋。

FASTAI筆記-2-對fit_one_cycle了解

該圖x軸為疊代次數,y軸為學習率

FASTAI筆記-2-對fit_one_cycle了解

該圖x軸為疊代次數,y軸為loss

結合兩個圖可以看出:

  1. 學習率首先逐漸變大,loss逐漸變小
  2. 當學習率達到訓練時給的參數時,開始下降。
  3. 随着學習率不斷降低,loss也開始降低。

這個算法被稱為:learning rate annealing(學習率退火算法)。

在實際應用中,舉個例子:

learn.fit_one_cycle(4, max_lr=slice(1e-2))
           

參數1:為epoch

參數2:為最大學習率,也就是學習率一開始會慢慢增加到指定的最大學習率,然後開始減小。

繼續閱讀