敬请关注 YOLO Vision 2025!
2025年9月25日
英国夏令时 10:00 - 18:00
混合活动
Yolo Vision 2024
词汇表

随机梯度下降 (SGD)

了解随机梯度下降如何优化机器学习模型,从而为大型数据集和深度学习任务实现高效训练。

随机梯度下降 (SGD) 是 机器学习 (ML) 中一种基础且广泛使用的优化算法。它是一种迭代方法,通过调整模型的内部参数(例如权重和偏差)来训练模型,以最小化损失函数。与传统的梯度下降(为每次更新处理整个数据集)不同,SGD 仅使用单个随机选择的训练样本来更新参数。这种“随机”方法使训练过程显着加快并更具可扩展性,这在使用大数据时尤其重要。噪声更新还可以帮助模型摆脱误差范围中较差的局部最小值,并可能找到更好的整体解决方案。

随机梯度下降如何工作

SGD背后的核心思想是使用单个样本的损失梯度来近似损失函数的真实梯度,该梯度是在整个数据集上计算的。虽然这个单样本梯度是一个嘈杂的估计,但它在计算上很便宜,并且平均而言,指向正确的方向。该过程包括为每个训练样本重复一个简单的两步循环:

  1. 计算梯度: 计算单个训练样本的损失函数相对于模型参数的梯度。
  2. 更新参数: 沿梯度的相反方向调整参数,并按学习率进行缩放。这会使模型朝着针对该特定样本具有较低误差的状态移动。

这个循环在整个数据集上重复多次,称为epochs(轮次),逐渐提高模型的性能。SGD 的效率使其成为现代深度学习 (DL)的基石,并且受到所有主要框架(如PyTorchTensorFlow)的支持。

Sgd 与其他优化器对比

SGD 是几种基于梯度的优化方法之一,每种方法都有其自身的权衡。

  • 批量梯度下降: 此方法使用整个训练数据集计算梯度。它提供了一条稳定且直接的通往最小值的路径,但对于大型数据集来说,速度非常慢且占用大量内存,因此对于大多数现代应用来说是不切实际的。
  • 小批量梯度下降: 这是批量梯度下降 (Batch GD) 和随机梯度下降 (SGD) 之间的一种折衷方案。它使用一小部分随机子集(即“小批量”)数据来更新参数。它平衡了批量梯度下降的稳定性与随机梯度下降的效率,是实践中最常用的方法。
  • Adam 优化器 Adam 是一种自适应优化算法,它为每个参数维护一个单独的学习率,并随着学习的进行对其进行调整。它通常比 SGD 收敛得更快,但 SGD 有时可以找到更好的最小值并提供更好的泛化,从而有助于防止过拟合

实际应用

SGD 及其变体对于训练不同领域中的各种 AI 模型至关重要。

  • 实时对象检测训练: 对于像 Ultralytics YOLO 这样专为 实时推理 设计的模型,训练需要高效。SGD 允许开发人员在大型图像数据集(如 COCO)或通过 Ultralytics HUB 等平台管理的自定义数据集上训练这些模型。与批量 GD 相比,快速更新能够实现更快的收敛,这对于在模型开发和 超参数调整 期间快速迭代至关重要。这种效率支持 自动驾驶汽车机器人技术 等领域的应用。
  • 训练大型语言模型 (LLM): 用于自然语言处理 (NLP)的训练模型通常涉及大量的文本数据集。SGD 及其变体对于有效地迭代此数据至关重要,从而使诸如 GPT-4 或在 Hugging Face 上找到的模型能够学习语法、上下文和语义。随机性质有助于摆脱复杂损失地形中较差的局部最小值,这是训练大型神经网络中常见的挑战。此过程是诸如机器翻译情感分析之类的任务的基础。

加入 Ultralytics 社区

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

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