深圳Yolo 视觉
深圳
立即加入
词汇表

梯度下降

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

梯度下降是一种基础的迭代优化算法,用于训练机器学习模型和神经网络。其主要功能是通过系统性调整模型的内部参数(特别是模型权重和偏置)来最小化损失函数。 可将此过程类比为:登山者在浓雾中试图下山;因看不见山脚,登山者通过触摸地面坡度,朝着最陡峭的下行方向迈步。 在机器学习(ML)语境中,"山峰"象征误差景观,"山脚"则代表模型预测最精确的状态。这项优化技术正是驱动现代人工智能(AI)突破的核心引擎,从简单的线性Ultralytics 复杂深度学习架构,皆由其赋能。

梯度下降法的工作原理是什么?

梯度下降法的有效性依赖于计算梯度——一个指向损失函数最陡峭增大方向的向量。该计算通常通过反向传播算法实现。一旦确定方向,算法便沿相反方向更新权重以减少误差。每次调整的步长由称为学习率的超参数决定。 寻找最优学习率至关重要:步长过大可能导致模型超出最小值,而步长过小则会使训练过程异常缓慢,需要过多 epoch才能收敛。若需深入理解其数学原理,可参考可汗学院关于该主题的多变量微积分课程

该过程会反复迭代,直至模型达到误差最小化的状态,通常称为收敛。标准算法需对整个训练数据集计算梯度,而诸如随机梯度下降(SGD)等变体则采用较小的子集或单个样本进行计算,从而加速运算并避免陷入局部最优解。这种适应性使其特别适合在Ultralytics平台上训练大规模模型——该平台对效率和速度有着至高要求。 则利用较小的子集或单个样本加速计算并逃离局部最优解。这种适应性使其特别适合Ultralytics 训练大规模模型, 该Ultralytics 对效率和速度有着至关重要的要求。

实际应用

梯度下降算法在几乎所有成功的AI解决方案背后默默运作,将原始数据转化为可执行的智能,服务于各行各业。

区分相关概念

深度学习(DL)术语表中,区分梯度下降与相关术语至关重要,以避免模型开发过程中的混淆。

  • 反向传播:虽然常被并提,但它们在训练循环中承担不同角色 反向传播是用于计算梯度(确定斜率方向)的方法,而梯度下降则是利用这些梯度更新权重(执行步进)的优化算法。反向传播是地图;梯度下降是登山者。
  • Adam 对比: Adam 是梯度下降算法的高级演进版本,采用针对每个参数的自适应学习率。这通常能比SGD更快收敛。它被广泛应用于现代框架,并成为训练模型(如YOLO11)的默认选择。 YOLO11 和YOLO26等模型训练的默认选择。
  • 损失函数: 损失函数(如均方误差或交叉熵)衡量模型表现的糟糕程度 梯度下降则是提升该表现的过程。 损失函数提供评分,而梯度下降则提供 提升该评分的策略。

Python 代码示例

虽然高级库,如 ultralytics 在训练过程中抽象化此过程后,您可直接通过PyTorch观察其机制。以下示例演示了一个简单的优化步骤:我们手动更新tensor 最小化某个值。

import torch

# Create a tensor representing a weight, tracking gradients
w = torch.tensor([5.0], requires_grad=True)

# Define a simple loss function: (w - 2)^2. Minimum is at w=2.
loss = (w - 2) ** 2

# Backward pass: Calculate the gradient (slope) of the loss with respect to w
loss.backward()

# Perform a single Gradient Descent step
learning_rate = 0.1
with torch.no_grad():
    w -= learning_rate * w.grad  # Update weight: w_new = w_old - (lr * gradient)

print(f"Gradient: {w.grad.item()}")
print(f"Updated Weight: {w.item()}")  # Weight moves closer to 2.0

理解这些基础原理有助于开发者排查收敛问题、高效调整超参数,并Ultralytics 强大工具可视化数据集与模型训练动态的交互过程。对于希望高效部署优化模型的用户,探索量化感知训练(QAT)技术可进一步提升边缘设备的性能表现。

加入Ultralytics 社区

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

立即加入