了解反向传播如何训练神经网络、降低错误率,并为图像识别和 NLP 等人工智能应用提供高效支持。
反向传播(Backpropagation)是 "错误反向传播 "的简称,是训练人工神经网络(NN)的基本算法,尤其是在深度学习(DL)领域。它是模型在训练过程中从错误中学习的核心机制。该算法能有效计算网络中每个参数(如模型权重和偏差)对模型预测中观察到的总体误差的贡献。然后,优化算法利用这一梯度信息反复调整参数,逐步提高模型的性能和准确性。
反向传播过程通常遵循初始前向传递,输入数据通过网络产生预测结果。在使用损失函数将预测值与实际目标值进行比较后,反向传播算法主要分两个阶段执行:
计算出梯度后,梯度下降 算法或随机梯度下降 算法 (SGD)或亚当优化器等优化算法会使用这些梯度来更新网络的weights and biases。其目标是使损失函数最小化,从而有效地指导网络在连续的历时中做出更好的预测。
反向传播对于现代深度学习来说不可或缺。它在计算梯度方面的高效性使得深度复杂架构的训练在计算上变得可行。这包括在计算机视觉(CV)任务中表现出色的卷积神经网络(CNN)和常用于自然语言处理(NLP)等序列数据的递归神经网络(RNN)等模型。如果没有反向传播,调整GPT-4等大型模型或在ImageNet等海量数据集上训练的模型中的数百万个参数将是不切实际的。它使模型能够从数据中自动学习复杂的特征和分层表示,自深度学习普及以来,支撑了许多人工智能的进步,详见有关深度学习历史的资源。框架,如 PyTorch和 TensorFlow等框架在很大程度上依赖于实现反向传播的自动微分引擎。
必须将反向传播与优化算法区分开来。反向传播是用来计算梯度(每个参数的误差贡献)的方法。而优化算法则是利用这些计算出的梯度来更新模型参数weights and biases),从而将损失降到最低的策略。反向传播提供改进的方向,而优化器则决定步长(学习率)和更新的方式。
每当深度学习模型进行训练时,都会隐含使用反向传播。下面是两个具体例子: