FASTAI筆記-2-對fit_one_cycle理解

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

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

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

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

注:圖爲課程中的圖,我借鑑來解釋。

該圖x軸爲迭代次數,y軸爲學習率

該圖x軸爲迭代次數,y軸爲loss

結合兩個圖可以看出:

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

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

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

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

參數1:爲epoch

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

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