前言
模型准确率的提高除了模型本身的设计学习的过程也十分重要,好的学习过程可以让模型更快更好地趋近于最优。而学习过程中除了学习算法,学习率的控制也尤为重要,固定值的学习率很容易最终不断振荡,无法实现收敛。本文主要整理介绍一些学习率衰减算法,同时也简单介绍一些例如warm up和batch size有关的学习率控制经验。
学习率衰减算法
注意:代码方面的用法仅供参考,还没来得及具体考证,准确起见还是看相应的注释吧。
1、分段常数衰减:固定步长/多步长
分段常数衰减比较好理解,基本思想是事先定义好训练区间,在不同的区间定义不同的区间设置不同的学习率的常数值。而根据区间长度是否固定还有固定步长衰减和多步长衰减。前者是每隔固定步数衰减一次,后者是根据设定的不同区间来更新。


PyTorch可以分别通过下面的代码实现,参数根据实际需要修改即可:
torch.optim.lr_scheduler.StepLR(optimizer_StepLR, step_size=step_size, gamma=0.65)
torch.optim.lr_scheduler.MultiStepLR(optimizer_MultiStepLR,
milestones=[200, 300, 320, 340, 200], gamma=0.8)
2、指数衰减/自然指数衰减
指数衰减即根据指数曲线进行衰减,一般来说开始衰减的快后来慢,根据设置的参数决定底数。
torch.optim.lr_scheduler.Expone

本文探讨了学习率衰减算法,如分段常数、指数、多项式和余弦衰减,及其在深度学习中的应用。同时介绍了warmup和线性缩放学习率等控制策略,旨在帮助模型更快更稳定地收敛。
最低0.47元/天 解锁文章
1955





