术语表

反向传播

了解反向传播如何训练神经网络、降低错误率,并为图像识别和 NLP 等人工智能应用提供高效支持。

使用Ultralytics HUB 对YOLO 模型进行简单培训

了解更多

反向传播(Backpropagation)是 "误差反向传播 "的简称,是用于训练人工神经网络,尤其是深度学习的基石算法。它通过有效计算网络中的每个参数(权重和偏置)对预测的整体误差有多大的影响,让模型从错误中学习。在模型训练过程中,优化算法会利用这些信息来调整参数,逐步提高模型的性能。

反向传播的工作原理

在初步预测之后,这一过程主要分为两个阶段:

  1. 前向传递:输入数据通过网络逐层输入,激活神经元并应用模型权重,直至产生输出(预测)。
  2. 误差计算:使用损失函数计算网络预测值与实际目标值(地面实况)之间的差值。这个损失可以量化预测的错误程度。了解这一点的常用资源是《深度学习》一书关于 MLP 的章节
  3. 后向传递:这是反向传播真正发生的地方。该算法从输出层开始,计算损失函数与各层weights and biases 有关的梯度。它利用微积分中的链式法则,将误差信号有效地逐层向后传播到网络中。这就决定了每个参数需要改变多少才能减少整体误差。类似"计算图上的微积分 "中的可视化方法可以帮助说明这一流程。
  4. 权重更新:计算出的梯度会被优化算法(如梯度下降 算法Adam 等更先进的变种算法)用于更新网络的weights and biases,促使模型在下一次迭代中做出更好的预测。

深度学习的重要性

反向传播是现代深度学习取得成功的基础。它可以训练非常深入和复杂的架构,例如广泛用于计算机视觉的卷积神经网络(CNN),以及用于文本等序列数据的递归神经网络(RNN)。如果没有像反向传播那样有效的梯度计算方法,训练这些大型模型在计算上是不可行的。它允许模型从海量数据中自动学习复杂的特征和关系,自 20 世纪 80 年代普及以来,已成为许多人工智能进步的基础。

实际应用

每当训练深度学习模型时,都会隐含使用反向传播。下面是两个例子:

  1. 物体检测:类似模型 Ultralytics YOLO等模型都是通过反向传播来训练的。当模型从COCO 等数据集中错误地识别出物体或在图像中不准确地放置边界框时,反向传播会计算出调整模型权重所需的梯度,从而提高模型准确执行物体检测的能力。
  2. 自然语言处理 (NLP):为机器翻译或情感分析等任务训练BERTGPT等大型语言模型,在很大程度上依赖于反向传播。它调整模型参数,使生成的文本与所需输出之间的差异最小化,从而使这些模型能够理解并生成类似人类的语言。斯坦福大学的NLP 小组提供了许多有关这些主题的资源。

相关概念

虽然两者密切相关,但反向传播与梯度下降算法截然不同。反向传播是专门用于计算损失函数相对于网络参数的梯度的算法。梯度下降算法(及其变种)是一种优化算法,它使用这些计算出的梯度来迭代更新参数并最小化损失。反向传播有时会出现梯度消失等问题,尤其是在深度网络中,不过使用ReLU 激活函数和残差连接等技术有助于缓解这一问题。

阅读全部