Optimization Algorithm
发现诸如 SGD 和 AdamW 之类的优化算法如何驱动 ML 训练。学习如何最小化损失并提升 Ultralytics YOLO26 在 AI 应用中的表现。
优化算法作为核心计算引擎,驱动着机器学习 (ML)和深度学习 (DL)模型的训练过程。其主要职责是迭代调整内部模型权重和偏置,以最大程度地减少预测结果与实际目标之间的误差。你可以将这个过程想象成一个远足者试图穿过雾气弥漫的山脉,以到达山谷中的最低点。优化算法充当向导,决定远足者为到达底部而应采取的方向和步长,这对应于损失函数最小化且模型预测准确率最大化的状态。
优化算法的工作原理#
神经网络的训练涉及预测、误差计算和参数更新的重复循环。优化算法控制此循环的“更新”阶段。处理完一批训练数据后,系统使用称为反向传播的方法计算梯度——该向量指向误差增加最陡峭的方向。
然后,优化器沿梯度相反的方向更新模型参数以减少误差。此更新的大小由称为学习率的关键超参数控制。如果步长太大,模型可能会越过全局最小值;如果步长太小,训练可能会变得非常缓慢或陷入局部最小值。诸如斯坦福 CS231n 优化笔记等高级资源为这些动态提供了更深入的技术见解。
常见优化算法类型#
不同的问题需要不同的策略。虽然算法种类繁多,但少数几种关键算法在现代 AI 开发中占据主导地位:
- 随机梯度下降 (SGD): 一种经典方法,使用单个样本或小批次而不是整个数据集来更新参数。此方法在计算上效率很高,并广泛用于像Scikit-learn这样的库中。
- Adam 优化器: 代表自适应矩估计(Adaptive Moment Estimation),Adam 会单独调整每个参数的学习率。Kingma 和 Ba 的开创性Adam 研究论文详细介绍了这一点,由于其速度和收敛特性,它通常是通用训练的默认选择。
- AdamW: Adam 的一个变体,它将权重衰减与梯度更新解耦,从而带来更好的泛化能力。这通常是训练诸如Transformer和高性能Ultralytics YOLO26模型等先进架构的首选优化器。
实际应用#
优化算法在几乎所有成功的AI 解决方案幕后默默运行,将数据转化为可操作的情报。
-
自动驾驶汽车: 在自动驾驶技术中,目标检测系统必须瞬间识别行人、交通信号灯和其他汽车。在为汽车领域的 AI 训练这些系统期间,优化算法处理数百万张道路图像,微调网络以最大程度地减少检测误差。这确保了汽车在看到人时能够可靠地停车,从而防止事故发生。
-
医学图像分析: 对于医疗领域的 AI 中的应用(例如识别 MRI 扫描中的肿瘤),精度是不容妥协的。优化器指导卷积神经网络 (CNN) 的训练,以高灵敏度区分恶性组织与健康组织,从而降低关键诊断中漏诊的风险。
区分相关概念#
为了有效地理解工作流程,区分优化算法与学习过程的其他组件非常重要。
- 优化算法与损失函数: 损失函数充当“记分牌”,计算一个数值(例如均方误差),表示模型的预测错误程度。优化算法则是“战略家”,它利用这个分数来调整权重并在下一轮中提高性能。
- 优化算法与超参数调优: 优化算法在训练循环期间学习内部参数(权重)。超参数调优涉及在训练开始之前选择最佳的外部设置——例如优化器本身的选择、批次大小或初始学习率。诸如Ray Tune等自动化工具通常用于寻找这些外部设置的最佳组合。
在 Python 中实现优化#
在现代框架中,选择优化算法通常通过单个参数完成。以下示例演示了如何在 ultralytics 包中使用 AdamW 优化器训练 YOLO26 模型。用户还可以利用Ultralytics 平台通过无代码方法来管理这些训练会话。
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 优化器这样的框架提供了关于如何为自定义研究架构实现和定制这些算法的广泛文档。






