卷积神经网络之warm up

warm up的提出

warm up最初是在ResNet网络的论文中提到,针对非常深的神经网络为了防止开始学习率过大导致不能拟合的问题。
卷积神经网络之warm up_第1张图片
简要翻译:
我们进一步尝试了n=18的情况,会得到一个110层的ResNet。在这种情况下,使用初始化学习率0.1对于当前网络偏大了,导致不能够收敛。因此我们使用0.01的学习率开始对训练进行预热,直到训练的错误率低于80%(差不多400个迭代),然后改回0.1的学习率,继续训练。剩下的训练和之前做法一致。这个110层的网络收敛的不错。

warm up改进

上面介绍的warmup有一个缺点就是学习率从一个比较小的值一下子变成比较大的值,可能会导致训练误差忽然变大。18年Facebook提出了gradual warmup,从一个小的学习率开始,每个迭代增大一点,直到最初设置的学习率。
根据增大到最大值后学习率的变化又可以分为这几类:
** 静态warmup**
学习率增大到最大后就不再变化。
线性warmup
学习率从非常小的值增大到预设值后然后线性减小
** cos减小**
学习率从非常小的值增大到预设值后然后再按照cos函数减小

你可能感兴趣的:(机器学习,卷积神经网络)