深圳Yolo 视觉
深圳
立即加入
词汇表

学习率

了解学习率如何影响模型训练。发现如何优化Ultralytics YOLO26的步长,以在目标检测等领域实现SOTA性能。

学习率是一个关键的 超参数调优 配置,它决定了模型在优化过程中所采取的步长。在训练神经网络的背景下,它控制着模型每次处理数据批次时,其内部权重根据估计误差更新的幅度。可以将其想象成一个人沿着山坡走向谷底(误差的最低点);学习率决定了他们步行的步长。如果步长过大,他们可能会完全越过谷底而错过最低点。如果步长过小,到达目的地可能需要不切实际的漫长时间。

优化中的“金发姑娘”困境

寻找最佳学习率通常被描述为机器学习工作流中的一种平衡行为。目标是最小化损失函数,它衡量模型预测与实际真实值之间的差异。这一过程严重依赖于优化算法,例如随机梯度下降 (SGD)Adam optimizer,以在损失landscape中进行导航。

  • 学习率过高:如果值设置得过高,模型的权重更新将是剧烈的。这可能导致“过冲”现象,即模型无法收敛到解决方案,反而剧烈震荡或发散。这种不稳定性有时会触发梯度爆炸问题,使训练过程变得无用。
  • 学习率过低:相反,极小的步长确保模型谨慎地向最小值移动,但可能导致欠拟合,因为训练过程会变得极其缓慢。模型可能会有效地陷入局部最小值,或者需要数千个额外的epochs才能学习简单的模式,从而浪费计算资源。研究人员通常会查阅PyTorch关于优化的文档,以了解不同算法如何与这些值相互作用。

实际应用

学习率调整的影响在各种高风险行业中显而易见,这些行业部署了 计算机视觉任务

  1. 自动驾驶系统:autonomous vehicles 的开发中,工程师利用海量数据集训练 object detection 模型以识别行人与交通标志。当对像 YOLO26 这样的预训练模型应用 transfer learning 时,开发者通常会使用比初始训练时小得多的学习率。这种“微调”确保模型学习特定驾驶环境(例如雪地道路与沙漠高速公路)的细微差别,而不会抹去其已具备的通用特征提取能力。
  2. 医学诊断成像:医学图像分析中,例如在MRI扫描中detect肿瘤,精度至关重要。在此,过高的学习率可能会导致模型跳过区分恶性组织和良性组织的细微纹理差异。实践者常采用“学习率预热”技术,将学习率从零逐渐增加到目标值,以稳定训练的早期阶段,确保 神经网络权重在激进学习开始前达到稳定配置。您可以在 Google Machine Learning Crash Course中阅读更多关于这些策略的信息。

区分相关术语

区分学习率与其他训练参数至关重要,因为它们通常在相同的配置文件中配置,但服务于不同的目的:

  • 学习率与批量大小:虽然学习率控制着更新的幅度,但批量大小决定了在更新发生之前处理的训练样本数量。两者之间存在密切关系;通常,在增加批量大小时,也必须相应提高学习率以保持训练效率,这是一个在关于大批量训练的论文中探讨的概念。
  • 学习率与衰减:衰减是指一种策略,其中学习率会随着时间系统地降低。调度器可能会每30个epochs将学习率降低10倍。这有助于模型在早期进行大的概念性跳跃,然后在训练结束时通过更小的步长来提高其准确性。这是Ultralytics python包中的一个标准功能。

在 Ultralytics YOLO 中设置学习率

当使用现代框架时,您可以轻松调整初始学习率(lr0)以及最终学习率分数(lrf)。下面是使用该方法进行配置的示例: Ultralytics 平台 兼容客户端进行自定义训练运行。

from ultralytics import YOLO

# Load the YOLO26 model (latest state-of-the-art architecture)
model = YOLO("yolo26n.pt")

# Train the model with a custom initial learning rate
# lr0=0.01 sets the initial rate
# lrf=0.01 sets the final learning rate to (lr0 * lrf)
results = model.train(data="coco8.yaml", epochs=10, lr0=0.01, lrf=0.01)

对于高级用户,像LR Finder(由fast.ai推广)这样的技术,可以通过运行一个短期的试探性epoch来自动化发现最佳起始值,在该epoch中,学习率呈指数级增长,直到损失发散。掌握这个超参数通常是解锁AI项目中SOTA(State-of-the-Art)性能的关键。

让我们一起共建AI的未来!

开启您的机器学习未来之旅