术语表

反向传播

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

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

了解更多

反向传播(Backpropagation)是 "错误反向传播 "的简称,是训练人工神经网络(NN)的基本算法,尤其是在深度学习(DL)领域。它是模型在训练过程中从错误中学习的核心机制。该算法能有效计算网络中每个参数(如模型权重和偏差)对模型预测中观察到的总体误差的贡献。然后,优化算法利用这一梯度信息反复调整参数,逐步提高模型的性能和准确性

反向传播的工作原理

反向传播过程通常遵循初始前向传递,输入数据通过网络产生预测结果。在使用损失函数将预测值与实际目标值进行比较后,反向传播算法主要分两个阶段执行:

  1. 前向传递:输入数据被送入神经网络,经过各层神经元,每层神经元应用其权重、偏置和激活函数(如ReLUSigmoid),直到生成输出预测。
  2. 后向传递:算法使用选定的损失函数计算误差(预测值与真实值之间的差值)。然后将误差信号逐层向后传播到网络中。利用微积分中的链式法则,计算网络中每个权重和偏置的损失函数梯度。该梯度代表了每个参数的微小变化对整体误差的影响程度。要获得直观的理解,"计算图上的微积分 "等资源提供了有用的解释。

计算出梯度后,梯度下降 算法随机梯度下降 算法 (SGD)亚当优化器优化算法会使用这些梯度来更新网络的weights and biases。其目标是使损失函数最小化,从而有效地指导网络在连续的历时中做出更好的预测。

深度学习的重要性

反向传播对于现代深度学习来说不可或缺。它在计算梯度方面的高效性使得深度复杂架构的训练在计算上变得可行。这包括在计算机视觉(CV)任务中表现出色的卷积神经网络(CNN)和常用于自然语言处理(NLP)等序列数据的递归神经网络(RNN)等模型。如果没有反向传播,调整GPT-4等大型模型或在ImageNet等海量数据集上训练的模型中的数百万个参数将是不切实际的。它使模型能够从数据中自动学习复杂的特征和分层表示,自深度学习普及以来,支撑了许多人工智能的进步,详见有关深度学习历史的资源。框架,如 PyTorchTensorFlow等框架在很大程度上依赖于实现反向传播的自动微分引擎。

反向传播算法与优化算法的比较

必须将反向传播与优化算法区分开来。反向传播是用来计算梯度(每个参数的误差贡献)的方法。而优化算法则是利用这些计算出的梯度来更新模型参数weights and biases),从而将损失降到最低的策略。反向传播提供改进的方向,而优化器则决定步长(学习率)和更新的方式

实际应用

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

  1. 使用Ultralytics YOLO进行物体检测当训练一个 Ultralytics YOLO模型(如 YOLOv8或YOLO11)在COCO 等数据集上进行物体检测时,每次训练迭代都会使用反向传播。模型预测边界框和类之后,会计算损失(例如,将预测的边界框与地面实况进行比较)。反向传播法会计算整个模型主干检测头中所有权重的梯度。然后,优化器利用这些梯度来调整权重,从而提高模型准确定位和分类物体的能力。用户可以利用Ultralytics HUB等平台来管理这一训练过程,从高效的反向传播实施中获益。这对于从自动驾驶汽车安全系统的各种应用都至关重要。
  2. 自然语言处理模型大型语言模型(LLMs),如BERTGPT 模型,都是通过反向传播来训练的。例如,在情感分析任务中,模型会预测给定文本的情感(正面、负面、中性)。预测情感和实际标签之间的差异会产生一个误差值。反向传播计算庞大网络中每个参数对这一误差的影响程度。然后通过优化算法更新这些参数,使模型在训练过程中更好地理解语言的细微差别、上下文和情感。斯坦福大学 NLP 小组等学术研究小组不断探索和完善这些技术。
阅读全部