梯度下降是机器学习(ML)和人工智能(AI)中广泛使用的一种基本优化算法。它是训练许多模型的主要方法,包括复杂的深度学习架构,如 Ultralytics YOLO.梯度下降法的目标是迭代调整模型的内部参数weights and biases),使损失函数最小化,损失函数用于衡量模型预测值与实际目标值之间的差异。试想一下,蒙着眼睛试图找到山谷的最低点;梯度下降法会引导你沿着当前位置最陡峭的下降方向迈出一小步。这种迭代过程可以让模型从数据中学习,提高预测准确性。
机器学习的相关性
梯度下降对于训练复杂的模型尤为重要,例如构成许多现代人工智能应用基础的神经网络。这些模型,包括用于物体检测、图像分类和自然语言处理(NLP)的模型,往往有数百万个参数需要优化。梯度下降及其变体提供了一种计算上可行的方法,可用于浏览复杂的损失景观,并找到能产生良好性能的参数值。如果不通过梯度下降进行有效的优化,将这些大型模型训练到高准确度水平是不切实际的。像 PyTorch和 TensorFlow等框架严重依赖梯度下降算法。
主要概念和变体
梯度下降法的核心思想是计算损失函数相对于模型参数的梯度(最陡峭上升的方向),然后向相反的方向迈出一步。这一步的大小由学习率(一个关键的超参数)控制。为了提高效率和稳定性,有几种不同的方法:
- 批量梯度下降每次更新参数时,使用整个训练数据集计算梯度。它很精确,但对于大型数据集来说计算成本很高。
- 随机梯度下降法(SGD):每次仅使用一个训练实例计算出的梯度更新参数。这种方法速度更快,但会在更新中引入更多噪音。
- 小批量梯度下降:一种折衷方法,即使用一小批训练实例来计算梯度。这是实际应用中最常见的变体,兼顾了计算效率和更新稳定性。在维基百科上了解有关梯度下降算法变体的更多信息。
- 亚当优化器:一种自适应学习率优化算法,可为不同参数计算单独的自适应学习率,通常能加快收敛速度。它结合了 Momentum 和 RMSprop 等其他优化器的思想。许多先进的模型都采用了 Adam 或类似的自适应方法,通常可在Ultralytics HUB 等平台上进行配置。
与相关概念的区别
梯度下降算法是一种特殊的优化算法,主要是通过反向传播计算出的梯度来调整模型参数,从而反复最小化损失函数。它不同于相关概念:
实际应用
梯度下降技术是无数实际人工智能应用训练模型背后的引擎:
- 医学图像分析:在医疗保健领域的人工智能中,梯度下降技术可为医疗图像分析等任务训练模型。例如,可以使用梯度下降法训练卷积神经网络(CNN),以检测核磁共振成像或 CT 扫描中的肿瘤(见示例博文)。该算法可使模型预测的肿瘤区域与放射科医生提供的地面实况注释之间的差异最小化。
- 推荐系统: Netflix和亚马逊等公司使用梯度下降法训练的模型来预测用户偏好并推荐电影或产品。该算法通过调整模型参数,最大限度地减小预测评分/互动与实际用户行为之间的误差,从而实现更加个性化的推荐。
- 自动驾驶: 自动驾驶汽车中的感知模型在训练过程中依赖于梯度下降算法。对于使用摄像头或激光雷达数据检测行人、车辆和交通标志等任务(与汽车中的人工智能相关),该算法最大限度地减小了模型预测的边界框或分割掩码与训练数据中物体实际位置之间的差异。