前言
大多数人在训练模型时遇到训练卡住,无法继续往下进行时,会把它归结为梯度下降过小,已经进入critical point。其实不然,如果在这个时间去计算其梯度会发现,梯度远没有到达足够小的情况。那么是什么样的原因导致了训练无法继续下去呢?本文将揭示可能影响到训练的另一个因素——学习率(learning rate)
1. 不同的参数需要不一样的学习率
正如此段的标题,学习率在训练的过程中应该处于一个动态变化的过程,即从,
变化为如下:
其中,分母的值与之前经过的点的梯度值有关,换句话说,目前所处的梯度趋势,将会间接影响到学习率。当曲线斜率略显陡峭时,分母大,学习率小,从而使步长减少;当曲线趋于平缓,分母小,学习率增大,使步长增大。
2. 学习率与时序的关系
2.1 “井喷”现象
通过使learning rate产生变化,如上图所示,我们可以发现,已经可以走到目标点,模型训练基本完成。但明显可以观察到,模型在训练过程中发生了几次特别大的起伏,这是什么原因呢?
在训练时,学习率呈现一个由小增大的趋势。sigma在图中第一个转折点后变小,随着小sigma的不断累积,使得某一点的学习率突然增大,因此出现井喷现象。由于井喷现象发生后,g值增大,又使得步长减小,能够在一定的迭代次数后,又回到正轨。为了解决这一问题,我们使分子随着时间进行变化
2.2 时间序列
时间与n呈反比例关系,使模型训练进行到后期时,学习率永远呈现一个比较小的值,从而步长趋于平缓,得到了一个很好的结果
2.3 热身训练
https://arxiv.org/abs/1706.03762
在这篇文章中,提出了一个热身的概念,即先让学习率在开始后的短时间内,保持一个较大的值,可以极大的促进训练的效果。
动态学习率与模型训练优化
本文探讨了训练模型时学习率的重要性。不同的参数需要不同的学习率,学习率应随训练过程动态调整。文中提到了井喷现象,即学习率在训练初期的小幅增加可能导致模型训练的大幅波动。通过时间序列分析和热身训练策略,可以有效控制学习率,避免这种现象,从而得到更好的训练效果。热身训练允许在训练初期使用较高的学习率,促进模型快速收敛。

1371

被折叠的 条评论
为什么被折叠?



