术语表

梯度下降

了解梯度下降如何优化 Ultralytics YOLO 等人工智能模型,从而实现从医疗保健到自动驾驶汽车等任务的准确预测。

梯度下降是一种基本的优化算法,是大多数机器学习(ML)深度学习模型的核心。它的主要目标是通过迭代调整内部参数来最小化模型的误差。想象一下,你站在雾蒙蒙的山上,试图找到最低点。你会环顾脚下,看看哪个方向的坡度最大,然后朝那个方向迈出一步。通过重复这个过程,你最终会到达一个山谷。在机器学习中,"山 "就是损失函数,"方向 "就是损失函数的负梯度,而 "步幅 "就是学习率

梯度下降的工作原理

神经网络的训练过程包括寻找最优的模型权重集,以尽可能减小误差或损失。梯度下降法可以自动完成这种搜索。这一过程首先要计算梯度,即损失随每个权重变化的程度。这种计算通常采用反向传播算法。然后,在梯度的相反方向上迈出一小步来更新权重,这实际上是在损失面上 "下坡"。这个迭代过程会持续许多次,直到模型的性能收敛,损失最小。每一步的大小是由学习率决定的一个关键因素,学习率是超参数调整中的一个关键设置。斯坦福 CS231n 课程笔记等资源中提供了这一过程的详细概述。

梯度下降的类型

梯度下降法主要有三种变体,每种变体在计算每次权重更新的梯度时使用的数据量有所不同:

  • 批量梯度下降(BGD):使用整个训练数据集计算梯度。这种方法能提供稳定而准确的梯度,但计算成本非常高,而且需要大量内存,因此对于ImageNet 这样的大型数据集来说并不实用。
  • 随机梯度下降法(SGD)仅在处理一个随机选择的数据样本后更新权重。与 BGD 相比,SGD 速度更快,内存消耗更少,但更新时会产生噪声,导致收敛路径更加不稳定。这种随机性有时会帮助模型摆脱局部极小值。
  • 小批量梯度下降法:在数据的一个小随机子集("迷你批次")上计算梯度,通常在 32 到 256 个样本之间,从而达到平衡。这是现代深度学习中最常用的方法,因为它结合了 SGD 的效率和 BGD 的稳定性。PyTorchTensorFlow等框架的优化器默认使用这种方法。如需深入比较,请参阅梯度下降算法概述

梯度下降与相关概念的比较

必须将梯度下降与几个相关术语区分开来:

  • 优化算法:梯度下降是一系列优化算法的基础概念。更先进的优化器,如Adam 优化器或 RMSprop,是一种自适应变体,能单独调整每个参数的学习率,通常能加快收敛速度。您可以在 arXiv 上找到Adam 的原始论文
  • 反向传播反向传播(Backpropagation)和梯度下降(Gradient Descent)是两个不同但相互关联的过程。反向传播是一种算法,它能有效计算网络权重损失函数的梯度。梯度下降算法则利用这些梯度来更新权重。
  • 损失函数损失函数定义了梯度下降算法要最小化的目标。损失函数的选择(如用于图像分类的交叉熵)会产生优化器所要处理的特定误差情况。

实际应用

梯度下降是训练无数人工智能模型的引擎。

  1. 训练物体检测模型:Ultralytics YOLO模型在COCO 等大规模数据集上进行物体检测训练时,每次迭代都会使用迷你批量梯度下降技术。模型预测边界框,根据误差计算损失,然后梯度下降法调整整个模型主干和头部的数百万个权重,以提高准确性。整个工作流程可以通过Ultralytics HUB 等平台进行管理和扩展。
  2. 训练语言模型:自然语言处理(NLP)中,像BERT这样的模型是为情感分析等任务而训练的。梯度下降最小化损失函数,该函数用于测量模型预测的情感与真实标签之间的差异,从而使模型能够从庞大的文本库中学习人类语言的细微差别。斯坦福大学 NLP 小组在这一领域开展了广泛的研究。

挑战和考虑因素

梯度下降算法虽然功能强大,但也并非没有挑战。该算法可能会陷入局部最小值--损失面上并非绝对最低点的峡谷。在深度网络中,梯度下降算法还可能出现梯度消失梯度爆炸问题,即梯度变得太小或太大,无法有效更新权重。谨慎选择学习率、选择稳健的优化器以及批量归一化等技术是成功训练的关键,详见我们的模型训练技巧指南

加入 Ultralytics 社区

加入人工智能的未来。与全球创新者联系、合作和成长

立即加入
链接复制到剪贴板