Optimization Algorithm
发现诸如 SGD 和 AdamW 之类的优化算法如何驱动 ML 训练。学习如何最小化损失并提升 Ultralytics YOLO26 在 AI 应用中的表现。
优化算法是驱动 机器学习 (ML) 和 深度学习 (DL) 模型训练过程的核心计算引擎。它的主要职责是通过迭代调整内部 模型权重 和偏差,以最小化预测结果与实际目标之间的误差。你可以将此过程想象成一位徒步旅行者试图穿过雾蒙蒙的山路,到达山谷中的最低点。优化算法充当向导,决定徒步旅行者到达谷底所需的行走方向和步长,这对应于 损失函数 最小化且模型预测 准确率 最大化的状态。
Link to this section优化算法的工作原理#
神经网络 (NN) 的训练涉及预测、误差计算和参数更新的重复循环。优化算法控制此循环的“更新”阶段。一旦处理了一批 训练数据,系统就会使用一种称为 反向传播 的方法计算梯度——即指向误差增加最快方向的向量。
随后,优化器会沿梯度的相反方向更新模型参数,以减小误差。此更新的幅度由一个关键超参数控制,即 学习率。如果步长过大,模型可能会越过 全局最小值;如果步长过小,训练可能会变得极慢,或者陷入 局部最小值。像 斯坦福 CS231n 优化笔记 这样的高级资源提供了对这些动态过程更深入的技术见解。
Link to this section常见优化算法类型#
不同的问题需要不同的策略。虽然算法种类繁多,但少数几种关键算法在现代 AI 开发中占据主导地位:
- 随机梯度下降 (SGD): 一种经典方法,它使用单个样本或小 批次 (batch) 而不是整个数据集来更新参数。该方法计算效率高,广泛应用于 Scikit-learn 等库中。
- Adam 优化器: 代表自适应矩估计 (Adaptive Moment Estimation),Adam 会分别为每个参数调整学习率。这在 Kingma 和 Ba 的开创性 Adam 研究论文 中有详细描述,并且由于其速度和收敛特性,通常是通用训练的首选。
- AdamW: Adam 的一种变体,它将权重衰减与梯度更新解耦,从而获得更好的泛化能力。对于训练 Transformer 等最先进架构以及高性能 Ultralytics YOLO26 模型,这通常是首选优化器。
Link to this section实际应用#
优化算法在几乎每一个成功的 AI 解决方案 背后默默运行,将数据转化为可执行的智能。
-
自动驾驶汽车: 在自动驾驶技术中,目标检测 系统必须瞬间识别行人、交通灯和其他车辆。在为 AI 汽车行业应用 训练这些系统时,优化算法会处理数百万张道路图像,微调网络以最大限度地减少检测误差。这确保了汽车在看到人时能可靠地停车,从而防止事故发生。
-
医学图像分析: 对于 AI 医疗保健应用(例如在 MRI 扫描中识别肿瘤),精度是不容妥协的。优化器指导 卷积神经网络 (CNN) 的训练,以高灵敏度区分恶性组织与健康组织,从而降低关键诊断中漏诊的风险。
Link to this section区分相关概念#
为了有效地理解工作流程,区分优化算法与学习过程的其他组件非常重要。
- 优化算法与 损失函数 的区别: 损失函数充当“记分牌”,计算一个数值(例如 均方误差),表示模型预测的错误程度。优化算法是“战略家”,利用该分数来调整权重并提高下一轮的性能。
- 优化算法与 超参数调优 的区别: 优化算法在训练循环“期间”学习内部参数(权重)。超参数调优涉及在开始训练“之前”选择最佳外部设置,例如优化器本身的选择、批次大小或初始学习率。像 Ray Tune 这样的自动化工具通常用于寻找这些外部设置的最佳组合。
Link to this section在 Python 中实现优化#
In modern frameworks, selecting an optimization algorithm is often done via a single argument. The following example demonstrates how to train a YOLO26 model using the AdamW optimizer within the ultralytics package. Users can also leverage the Ultralytics Platform for a no-code approach to managing these training sessions.
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 优化器 等框架提供了关于如何为自定义研究架构实现和定制这些算法的详尽文档。






