优化算法
了解优化算法如何提升 AI 和 ML 性能,从训练神经网络到医疗保健和农业中的实际应用。
优化算法是驱动机器学习 (ML)和深度学习中学习过程的引擎。它的主要作用是迭代地调整模型的内部参数,例如权重和偏差,以最小化损失函数。可以将其视为一种系统方法,用于找到使模型预测最准确的最佳参数集。此过程是训练模型的基础,因为它将通用模型转换为能够解决特定任务(如对象检测或图像分割)的专用工具。
优化算法如何工作
从本质上讲,优化算法会导航“损失地形”——一个高维空间,其中每个点代表一组模型参数,而点的高度对应于模型的误差。目标是找到这个地形中的最低点,或“最小值”。该算法从一组初始随机参数开始,并在每个步骤(或epoch)中计算损失函数的梯度。此梯度指向最陡上升的方向,因此该算法会朝着相反的方向迈出一步,以降低地形。
此步长的大小由一个关键的超参数控制,该参数称为学习率。选择合适的学习率可确保模型有效地学习,而不会超出最小值或陷入停滞。这种计算梯度和更新参数的迭代过程称为反向传播,并持续到模型在验证数据集上的性能停止提升,表明已收敛。
常见优化算法类型
已经开发了几种优化算法,每种算法都有不同的特点。深度学习中最广泛使用的算法包括:
- 随机梯度下降 (SGD): 一种经典且广泛使用的优化器,它使用来自训练数据的一小部分(批次)的梯度来更新参数。虽然有效,但其性能可能对学习率的选择很敏感。具有动量的SGD等变体有助于加速收敛。
- Adam 优化器: 自适应矩估计 (Adam) 优化器非常受欢迎,因为它结合了 SGD 的两个其他扩展 AdaGrad 和 RMSProp 的优点。它为每个参数计算自适应学习率,使其具有鲁棒性,并且通常是许多问题的良好默认选择。AdamW 扩展通常用于现代Transformer 模型。诸如 PyTorch 和 TensorFlow 等框架提供了这些流行优化器的实现。
优化器的选择会显著影响训练速度和模型的最终性能。在 Ultralytics 生态系统中,用户可以在训练设置期间轻松配置优化器。
实际应用
在无数的人工智能应用中,优化算法在幕后发挥作用。
- 医学影像分析: 当训练卷积神经网络 (CNN)以检测脑部扫描中的肿瘤时,诸如 Adam 等优化算法会系统地调整网络的滤波器。它致力于最大限度地减少模型预测的肿瘤位置与放射科医生提供的 Ground Truth 标注之间的差异,从而提高模型的诊断准确性。这是构建有效的 医疗保健 AI 解决方案的核心组成部分。
- 自动驾驶汽车: 自动驾驶汽车中的物体检测模型,例如 Ultralytics YOLO 模型,必须可靠地识别行人、其他汽车和交通标志。在训练期间,优化器会在数百万张图像中微调模型的参数,以减少检测错误(例如,遗漏对象或不正确的分类),这对于确保汽车人工智能系统中的安全至关重要。
优化算法与相关概念
区分优化算法与相关的机器学习概念非常重要:
- 优化算法 vs. 超参数调优: 优化算法调整 内部参数 (权重和偏差), 在训练过程中 训练。相比之下,超参数调整侧重于找到最佳 训练开始之前 (例如学习率、批量大小,甚至优化器本身的选择) 在训练开始之前 训练开始。该 Ultralytics
Tuner
类 使用如下方法自动执行此过程: 进化算法. - 优化算法与 损失函数: 损失函数量化模型的误差。优化算法是用于最小化此误差的机制。损失函数提供目标,优化器提供实现目标的策略。
- 优化算法与 模型架构: 模型架构定义了神经网络的结构(例如,其层和连接)。优化算法在此预定义结构内工作,以训练其可学习的参数。神经架构搜索 (NAS)是一个相关领域,它可以自动执行架构本身的设计。