背景介绍
在神经网络训练过程中,学习率是一个很重要的超参数,学习率的选择对于网络的训练结果有较大的影响。
理论上,如果学习率设置过小,则会出现收敛速度过慢的情况;如果学习率设置过大,则容易错过局部最优;
实际上,如果学习率设置不合理,很容易出现模型不收敛的情况,
warmup就是一种学习率调整策略。
warmup提出 - constant warmup
warmup 策略由 ResNet 提出。
由于刚开始训练时模型的权重是随机初始化的,此时选择一个较大的学习率,可能会带来模型的不稳定。warmup就是在刚开始训练的时候先使用一个较小的学习率,训练一些epoches,等模型稳定时再修改为预先设置的学习率进行训练。
ResNet中使用一个110层的ResNet在cifar10上训练时,先用0.01的学习率训练直到训练误差低于80%(大概训练了400个iterations),然后使用0.1的学习率进行训练。如果一开始就用大的学习率,虽然最终会收敛,但之后测试准确率还是不会提高。
warmup 改进 - gradual warmup
18年Facebook又针对的warmup进行了改进,因为从一个很小的学习率一下变为比较大的学习率可能会导致训练误差突然增大。文章提出