天天看点

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:为最大学习率,也就是学习率一开始会慢慢增加到指定的最大学习率,然后开始减小。

继续阅读