术语表

随机梯度下降 (SGD)

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

随机梯度下降算法(SGD)是机器学习(ML)中一种基本且广泛使用的优化算法。它是一种迭代方法,通过调整权重和偏置等内部参数来训练模型,从而使损失函数最小化。与每次更新都要处理整个数据集的传统梯度下降法不同,SGD 只使用一个随机选择的训练样本来更新参数。这种 "随机 "方法大大提高了训练过程的速度和可扩展性,这在处理大数据时尤为重要。噪声更新还能帮助模型摆脱误差图中的局部极小值,并有可能找到更好的整体解决方案。

随机梯度下降法的工作原理

SGD 的核心理念是利用单个样本的损失梯度来近似计算整个数据集的损失函数的真实梯度。虽然单个样本的梯度是一个有噪声的估计值,但它的计算成本很低,而且平均指向正确的方向。这个过程包括对每个训练样本重复一个简单的两步循环:

  1. 计算梯度针对单个训练实例,计算损失函数相对于模型参数的梯度。
  2. 更新参数:学习率的缩放比例,沿梯度的相反方向调整参数。这将使模型在特定样本中处于误差较小的状态。

这种循环在整个数据集上重复多次,称为历时(epochs),从而逐步提高模型的性能。SGD 的高效性使其成为现代深度学习(DL)的基石,PyTorchTensorFlow 等所有主流框架都支持 SGD。

Sgd 与其他优化器的比较

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

  • 批量梯度下降这种方法使用整个训练数据集计算梯度。它提供了一条稳定而直接的通向最小值的路径,但对于大型数据集来说,速度极慢,而且需要大量内存,因此对于大多数现代应用来说并不实用。
  • 小批量梯度下降这是批量 GD 和 SGD 的折中方案。它使用一小部分随机数据子集("迷你批次")更新参数。它兼顾了批量 GD 的稳定性和 SGD 的效率,是实践中最常用的方法。
  • 亚当优化器Adam 是一种自适应优化算法,它为每个参数保持一个单独的学习率,并随着学习的进展而调整。它的收敛速度通常比 SGD 快,但 SGD 有时能找到更好的最小值,并提供更好的泛化,有助于防止过度拟合

实际应用

SGD 及其变体对于训练不同领域的各种人工智能模型至关重要。

加入 Ultralytics 社区

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

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