Optimization Algorithm
了解 SGD 和 AdamW 等优化算法如何驱动 ML 训练。学习如何最小化损失,并提升 Ultralytics YOLO26 在 AI 应用中的性能。
优化算法是驱动机器学习 (ML)和深度学习 (DL)模型训练过程的核心计算引擎。它的主要职责是迭代调整内部的模型权重和偏置,以最小化预测结果与实际目标之间的误差。你可以把这个过程想象成一名徒步者试图在雾气笼罩的山上行进,抵达山谷中的最低点。优化算法就像向导,决定徒步者应朝哪个方向迈步以及步长多大,最终抵达谷底,也就是损失函数最小化且模型预测准确率最大化的状态。
优化算法的工作原理#
神经网络的训练包括预测、误差计算和参数更新这一重复循环。优化算法控制着该循环中的“更新”阶段。当一批训练数据处理完成后,系统会使用一种称为反向传播的方法计算梯度——一个指向误差增长最快方向的向量。
随后,优化器沿梯度的反方向更新模型参数,以降低误差。此次更新的幅度由一个称为学习率的关键超参数控制。如果步长过大,模型可能越过全局最小值;如果步长过小,训练可能会慢到难以接受,或陷入局部最小值。斯坦福大学 CS231n 优化笔记等高级资料可以帮助你深入了解这些动态过程。
常见的优化算法类型#
不同的问题需要不同的策略。虽然优化算法有许多变体,但有几种关键算法主导着现代 AI 开发:
- **随机梯度下降 (SGD):**一种经典方法,使用单个样本或小型批次而非整个数据集来更新参数。这种方法计算效率高,并广泛应用于Scikit-learn等库。
- **Adam 优化器:**Adam 代表自适应矩估计,它会为每个参数单独调整学习率。相关方法详见 Kingma 和 Ba 撰写的开创性Adam 研究论文。由于速度和收敛特性出色,Adam 通常是通用训练的默认选择。
- **AdamW:**Adam 的一种变体,将权重衰减与梯度更新解耦,从而带来更好的泛化能力。对于训练Transformer和高性能的Ultralytics YOLO26模型等先进架构,AdamW 通常是首选优化器。
实际应用#
优化算法在几乎每个成功的AI 解决方案背后默默运行,将数据转化为可付诸行动的智能。
-
**自动驾驶车辆:**在自动驾驶技术中,目标检测系统必须即时识别行人、交通信号灯和其他车辆。在为汽车领域的 AI训练这些系统时,优化算法会处理数百万张道路图像,微调网络以最小化检测错误。这可以确保车辆看到行人时可靠停车,避免事故。
-
**医学图像分析:**对于医疗保健领域的 AI应用(例如在 MRI 扫描中识别肿瘤),精准度至关重要。优化器引导卷积神经网络 (CNNs)的训练,使其以高灵敏度区分恶性组织和健康组织,从而降低关键诊断中的假阴性风险。
区分相关概念#
要有效理解工作流程,必须将优化算法与学习过程中的其他组件区分开来。
- **优化算法与损失函数的区别:**损失函数就像“记分牌”,它会计算一个数值(例如均方误差),表示模型的预测有多不准确。优化算法则像“策略制定者”,利用这个分数调整权重,以便在下一轮中提升性能。
- **优化算法与超参数调优的区别:**优化算法在训练循环期间学习内部参数(权重)。超参数调优则是在训练开始之前选择最佳外部设置,例如优化器本身的选择、批次大小或初始学习率。Ray Tune等自动化工具通常用于寻找这些外部设置的最优组合。
在 Python 中实现优化#
在现代框架中,选择优化算法通常只需通过一个参数完成。下面的示例演示如何在 ultralytics 包中使用 AdamW 优化器训练YOLO26模型。你也可以使用Ultralytics Platform,以无代码方式管理这些训练会话。
from ultralytics import YOLO
# Load the latest YOLO26 model (recommended for new projects)
model = YOLO("yolo26n.pt")
# Train the model using the 'AdamW' optimization algorithm
# The optimizer iteratively updates weights to minimize loss on the dataset
results = model.train(data="coco8.yaml", epochs=5, optimizer="AdamW")如果你对底层机制感兴趣,PyTorch 优化器和TensorFlow Keras 优化器等框架提供了详尽文档,介绍如何为自定义研究架构实现和定制这些算法。









