了解随机梯度下降如何优化机器学习模型,从而为大型数据集和深度学习任务实现高效训练。
随机梯度下降算法SGD)是一种基石性的 优化算法。 机器学习(ML)和 深度学习 (DL) 中大量使用的基石优化算法。它是 模型训练的驱动力,通过迭代调整内部 模型权重和偏置,以最小化由损失函数计算出的误差。 损失函数计算出的误差最小化。与传统的 梯度下降法是通过处理整个数据集来计算一次更新,而SGD 与传统的梯度下降法不同,SGD 每次只使用一个随机选取的训练实例来修改模型参数。这种 "随机 "或随机方法 这种 "随机 "或随机方法使该算法具有计算效率和高度可扩展性,从而为大数据训练创造了一条可行的途径。 在这种情况下,一次性处理整个数据集会占用大量内存。 会占用大量内存。
训练神经网络的主要目标是 在复杂的误差景观中找到代表最高精度的最低点。SGD 通过重复循环来实现。首先,它通过反向传播计算特定样本的梯度--误差增加最陡峭的方向。 反向传播。然后 反向更新权重,以减少误差。
这一步骤的大小由 学习率控制。 超参数调整时配置的临界值。由于SGD 使用 由于 SGD 使用的是单个样本,因此通向最小值的路径是有噪声的、曲折的,而不是一条直线。这种噪声通常 因为它能帮助模型摆脱局部最小值--非随机算法可能会卡住的次优解--从而找到更好的方法。 卡住的次优解,从而找到更好的全局解。这个过程会重复许多 或完整地通过数据集,直到模型收敛。 模型收敛。读者可以在斯坦福 CS231n 优化中探索数学直觉。 斯坦福 CS231n 优化笔记。
了解SGD 与相关概念的区别,对于为训练数据选择正确的策略至关重要。 训练数据的正确策略至关重要。
SGD 及其变体是各行各业训练现代人工智能系统的标准。
"(《世界人权宣言》) ultralytics 库允许用户在不同优化器之间轻松切换。AdamW 可能是某些任务的
是某些任务的默认优化器,而SGD 通常用于微调或特定的研究要求。下面的代码段
演示了如何显式选择SGD 来训练模型。
from ultralytics import YOLO
# Load the latest YOLO11 model (nano version)
model = YOLO("yolo11n.pt")
# Train the model on the COCO8 dataset using the SGD optimizer
# The 'lr0' argument sets the initial learning rate
results = model.train(data="coco8.yaml", epochs=50, optimizer="SGD", lr0=0.01)
这段代码初始化了一个 YOLO11 模式,并开始培训
与 optimizer="SGD".如需进一步自定义,请参阅
模型训练配置 文件。框架,如
TensorFlow 和
Scikit-learn 还为各种机器学习任务提供了SGD
还为各种机器学习任务提供了强大的 SGD

