了解Adam 优化器如何通过自适应学习率、动力和人工智能中的实际应用为高效的神经网络训练提供动力。
Adam (自适应矩估计)是一种复杂的、广泛使用的 优化算法,用于在训练过程中更新 在训练过程中更新神经网络的参数。它结合了其他两种流行的 扩展 自适应梯度算法 (SGD) 和均方根传播 (RMSProp)Adam 学习率。这种 这一功能使其能够高效处理有噪声问题上的稀疏梯度,从而成为训练 复杂的深度学习(DL)架构的默认选择、 包括最新的YOLO11 模型。
Adam 背后的核心机制包括计算梯度的第一矩和第二矩,以调整 神经网络中每个权重的学习率 神经网络的学习率。你可以把 "第一矩 可以把 "第一矩 "看作是动力,它能使优化朝着正确的方向前进,就像一个沉重的球 滚下山坡。第二矩 "跟踪的是非中心方差,它能有效地调整步长。 基于梯度的历史大小。
在反向传播过程中,算法会计算 损失函数相对于权重的梯度。 权重的梯度。然后,Adam 会更新梯度(动量)和梯度平方(方差)的指数移动平均值。 这些移动平均值用于缩放当前梯度,确保模型在梯度一致的方向上迈出较大的步子,而在梯度不一致的方向上迈出较小的步子。 在梯度一致的方向上步幅较大,而在方差较大的方向上步幅较小。这一过程详见 Kingma 和 Ba 的Adam 研究论文中详细介绍了这一过程。
要了解何时使用Adam ,需要将其与机器学习(ML)框架中的其他常见算法进行比较。 机器学习 (ML)框架中的其他常见算法进行比较。
由于其稳健性和对超参数调整的最低要求 超参数调整的要求极低,因此Adam 用于各种高影响领域。
使用Ultralytics Python API 时,您可以轻松选择 Adam 优化器来训练对象检测、分割或姿势估计 模型。虽然SGD 是许多 YOLO 配置的默认 对于较小YOLO 数据集或需要快速收敛的情况,Adam 是一个很好的替代方案。 的最佳选择。
下面的示例演示了如何训练 YOLO11模型:
from ultralytics import YOLO
# Load a generic YOLO11 model
model = YOLO("yolo11n.pt")
# Train the model on the COCO8 dataset using the 'Adam' optimizer
# The 'optimizer' argument creates the specific PyTorch optimizer instance internally
results = model.train(data="coco8.yaml", epochs=5, optimizer="Adam")

