深度学习中学习率调整策略

学习率衰减策略是深度学习优化过程中的一个关键因素,它决定了训练过程中学习率的调整方式,从而影响模型收敛的速度和效果。不同的衰减策略在不同的任务和模型上可能有不同的表现,下面从我用到过的几个衰减策略进行记录,后续慢慢跟进。

为什么需要学习率衰减?

在训练深度学习模型时,学习率的选择至关重要。通常,我们希望模型能够在训练的早期阶段较快地收敛(即较大的学习率),而在训练的后期阶段逐渐减小学习率,以便模型能够更精细地调整参数,避免错过局部最优点。

阶梯衰减Step Decay

这是最简单常用的学习率调整方法,每过step_size轮,将此前的学习率乘以gamma。

dart 复制代码
torch.optim.lr_scheduler.StepLR(optimizer, step_size=30, gamma=0.1)

余弦退火调整学习率 CosineAnnealingLR

在每个周期内,学习率从初始学习率(lr0)开始,经过余弦函数的逐渐衰减,最后衰减到最小学习率(eta_min)。

dart 复制代码
torch.optim.lr_scheduler.CosineAnnealingLR(
optimizer, 
T_max,     
eta_min=0,
last_epoch=-1)

T_max:指定一个完整的周期(例如,多少个训练步长或 epoch)。在 T_max 的周期内,学习率会从初始学习率衰减到 eta_min

eta_min=0:最终学习率

last_epoch=-1:指定上次训练的最后一个epoch,-1就是从头开始训练

余弦退火重启学习率 CosineAnnealingWarmRestarts

CosineAnnealingWarmRestarts 通过将学习率沿着一个余弦曲线逐渐衰减到最小值(eta_min),然后在周期结束时重启并回升到初始学习率(lr0),这种周期性的重启和余弦退火帮助模型在每个阶段进行不同范围的探索,避免陷入局部最优。

dart 复制代码
scheduler = torch.optim.lr_scheduler.CosineAnnealingWarmRestarts(
optimizer, 
T_0, 
T_mult=1, 
eta_min=0,
last_epoch=- 1, 
verbose=False)

T_0:第一个周期的长度,后续的长度基于T0和T_mult调整

T_mult:控制后续周期的长度,例如设置为2,那则第二个周期长度会是第一个周期的2倍,第三个周期的长度会是第二个周期的2倍,设置为1则每个周期一样长。

eta_min:这是学习率的最小值。在每个周期中,学习率会从 eta_max(初始学习率)衰减到 eta_min,然后在每个周期结束时重新回升到初始学习率。

verbose:如果设置为 True,则每次学习率重启时,调度器会输出日志信息,显示学习率调整的情况。例如,输出每次重启时的学习率和当前的训练状态。

线性衰减 Linear Decay

在线性衰减中,学习率随着训练的进展而线性地减小。学习率的减少是均匀的,每个时间步减少固定的量,直到达到预定的最小值

dart 复制代码
torch.optim.lr_scheduler.LinearLR(
optimizer,
start_factor=1,
end_factor=0.1,
total_iters=80)

LinearLR是线性学习率,给定起始factor和最终的factor,LinearLR会在中间阶段做线性插值,比如学习率为0.1,起始factor为1,最终的factor为0.1,那么第0次迭代,学习率将为0.1,最终轮学习率为0.01。下面设置的总轮数total_iters为80,所以超过80时,学习率恒为0.01。

指数衰减 Exponential Decay

学习率初期迅速下降,适合早期跳出局部最优,但可能导致后期过早收敛,适合大规模训练任务或对收敛速度有要求的情况。

dart 复制代码
torch.optim.lr_scheduler.ExponentialLR(
optimizer,
gamma=0.9)

ExponentialLR是指数型下降的学习率调节器,每一轮会将学习率乘以gamma,所以这里千万注意gamma不要设置的太小,不然几轮之后学习率就会降到0。

可视化

相关推荐
لا معنى له1 小时前
残差网络论文学习笔记:Deep Residual Learning for Image Recognition全文翻译
网络·人工智能·笔记·深度学习·学习·机器学习
菜只因C1 小时前
深度学习:从技术本质到未来图景的全面解析
人工智能·深度学习
Allen_LVyingbo2 小时前
面向医学影像检测的深度学习模型参数分析与优化策略研究
人工智能·深度学习
Coding茶水间4 小时前
基于深度学习的PCB缺陷检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
图像处理·人工智能·深度学习·yolo·目标检测·计算机视觉
大千AI助手4 小时前
Softmax函数:深度学习中的多类分类基石与进化之路
人工智能·深度学习·机器学习·分类·softmax·激活函数·大千ai助手
韩曙亮4 小时前
【人工智能】AI 人工智能 技术 学习路径分析 ② ( 深度学习 -> 机器视觉 )
人工智能·深度学习·学习·ai·机器视觉
黑客思维者4 小时前
Salesforce Einstein GPT 人机协同运营的核心应用场景与工作流分析
人工智能·gpt·深度学习·salesforce·rag·人机协同·einstein gpt
薛定e的猫咪5 小时前
【论文精读】ICLR 2023 --- 作为离线强化学习强表达能力策略类的扩散策略
人工智能·深度学习·机器学习·stable diffusion
子午7 小时前
【食物识别系统】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积网络+resnet50算法
人工智能·python·深度学习
Dev7z7 小时前
基于深度学习和图像处理的药丸计数与分类系统研究
图像处理·人工智能·深度学习