Learning Rate
了解学习率如何影响模型训练。了解如何优化 Ultralytics YOLO26 的步长,以在目标检测等任务中实现 SOTA 性能。
学习率是一个关键的超参数调优配置,用于确定模型在优化过程中采取的步长。在训练神经网络时,它控制模型每次处理一个数据批次时,内部权重根据估计误差更新的幅度。你可以把它想象成一个人沿着山坡向山谷(误差最低点)走去;学习率决定了这个人的步幅。如果步幅太大,他可能会直接跨过山谷,错过谷底。如果步幅太小,到达目的地可能需要长得不切实际的时间。
优化中的“金发姑娘”困境#
在机器学习工作流中,寻找最优学习率通常被描述为一种平衡。目标是最小化损失函数,该函数衡量模型预测结果与实际真实值之间的差异。这一过程高度依赖优化算法,例如随机梯度下降(SGD)或Adam优化器,以在损失曲面中寻找方向。
- **学习率过高:**如果该值设置得过高,模型的权重更新将会非常剧烈。这可能导致“越过目标”现象:模型无法收敛到某个解,反而剧烈振荡或发散。这种不稳定有时会引发梯度爆炸问题,使训练过程失去意义。
- **学习率过低:**相反,极小的步长可以确保模型谨慎地向最小值移动,但也可能导致欠拟合,因为训练过程会慢得令人难以忍受。模型可能实际上陷入局部最小值,或者需要额外数千个训练周期才能学习简单模式,从计算角度浪费资源。研究人员通常会查阅PyTorch 优化文档,以了解不同算法如何与这些值交互。
实际应用#
在部署计算机视觉任务的各种高风险行业中,调整学习率的影响都十分明显。
-
**自动驾驶系统:**在开发自动驾驶汽车时,工程师会利用海量数据集训练模型执行目标检测,从而识别行人和交通标志。将迁移学习应用于像YOLO26这样的预训练模型时,开发者通常会使用远低于初始训练阶段的学习率。这种“微调”可以确保模型学习特定驾驶环境的细节(例如,积雪道路与沙漠公路的差异),同时不会抹去它已经具备的通用特征提取能力。
-
**医学诊断成像:**在医学图像分析中,例如在 MRI 扫描中检测肿瘤时,精确性至关重要。此时较高的学习率可能导致模型跳过区分恶性组织和良性组织的细微纹理差异。实践人员通常会采用一种称为“学习率预热”的技术,将学习率从零逐步提高到目标值,以稳定训练的早期阶段,确保神经网络权重在激进学习开始之前稳定下来。你可以在Google 机器学习速成课程中进一步了解这些策略。
区分相关术语#
由于学习率与其他训练参数经常在同一配置文件中设置,但用途不同,因此区分它们非常重要:
- **学习率与批量大小:**学习率控制更新的幅度,而批量大小决定在执行一次更新前处理的训练样本数量。两者之间存在密切关系;通常,增大批量大小时,也必须相应提高学习率,以保持训练效率;关于这一概念,可以参考大批量训练相关论文。
- **学习率与衰减:**衰减是指随着时间推移系统性地降低学习率的一种策略。调度器可能每 30 个训练周期将学习率降低 10 倍。这有助于模型在训练初期进行较大的概念跳跃,然后在训练后期通过更小的步长逐步提高精度。这是Ultralytics Python 软件包中的标准功能。
在 Ultralytics YOLO 中设置学习率#
使用现代框架时,你可以轻松调整初始学习率(lr0)和最终学习率比例(lrf)。下面展示了如何使用与Ultralytics Platform兼容的客户端来配置一次自定义训练运行。
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 推广)等技术基本上可以自动发现最佳起始值:它运行一个短暂的试验训练周期,在此期间指数式提高学习率,直到损失发散。掌握这一超参数,通常是解锁 AI 项目中SOTA(最先进水平)性能的关键。









