存根 什么是反向传播? - 联合人工智能
关注我们.

AI 101

什么是反向传播?

mm
更新 on

什么是反向传播?

深度学习系统能够学习极其复杂的模式,它们通过调整权重来实现这一点。 深度神经网络的权重是如何精确调整的? 它们通过调整 一个过程 被称为 反向传播。如果没有反向传播,深度神经网络将无法执行识别图像和解释自然语言等任务。了解反向传播的工作原理对于理解一般深度神经网络至关重要,因此让我们讨论反向传播并了解如何使用该过程来调整网络的权重。

反向传播可能很难理解,并且用于执行反向传播的计算可能相当复杂。本文将尽力让您对反向传播有一个直观的理解,几乎不使用复杂的数学知识。然而,有必要对反向传播背后的数学进行一些讨论。

反向传播的目标

让我们首先定义反向传播的目标。 深度神经网络的权重是神经网络单元之间的连接强度。 当建立神经网络时,会对一层中的单元如何连接到与其连接的层进行假设。 当数据通过神经网络时,会计算权重并做出假设。 当数据到达网络的最后一层时,就会对特征与数据集中的类的关系进行预测。 预测值与实际值之间的差异就是损失/误差,以及反向传播的目标 是为了减少损失。 这是通过调整网络的权重来实现的,使假设更像输入特征之间的真实关系。

训练深度神经网络

在进行反向传播之前 神经网络,必须执行神经网络的常规/前向训练。 创建神经网络时,会初始化一组权重。 权重的值将随着网络的训练而改变。 神经网络的前向训练过程可以被视为三个离散的步骤:神经元激活、神经元转移和前向传播。

在训练深度神经网络时,我们需要使用多种数学函数。 深度神经网络中的神经元由输入数据和激活函数组成,激活函数确定激活节点所需的值。 神经元的激活值由多个分量计算得出,即输入的加权和。 权重和输入值取决于用于计算激活的节点的索引。 计算激活值时必须考虑另一个数字,即偏差值。 偏差值不会波动,因此它们不会与权重和输入相乘,只是相加。 所有这些意味着可以使用以下方程来计算激活值:

激活 = sum(权重 * 输入) + 偏差

神经元被激活后,使用激活函数来确定神经元实际输出的输出是什么。 不同的激活函数对于不同的学习任务是最优的,但常用的激活函数包括 sigmoid 函数、Tanh 函数和 ReLU 函数。

一旦通过所需的激活函数运行激活值来计算出神经元的输出,前向传播就完成了。 前向传播只是将一层的输出作为下一层的输入。 然后,新的输入用于计算新的激活函数,并将该操作的输出传递到下一层。 这个过程一直持续到神经网络的末端。

网络中的反向传播

反向传播过程接受模型训练过程的最终决策,然后确定这些决策中的错误。 通过对比网络的输出/决策和网络的预期/期望输出来计算误差。

一旦计算出网络决策中的错误,该信息就会通过网络反向传播,并且网络参数会随之改变。 用于更新网络权重的方法基于微积分,具体来说,它基于链式法则。 然而,理解微积分并不是理解反向传播背后的思想所必需的。 只需知道,当神经元提供输出值时,会使用传递函数计算输出值的斜率,从而产生派生输出。 进行反向传播时,特定神经元的误差根据以下公式计算 公式:

误差 = (预期输出 – 实际输出) * 神经元输出值的斜率

对输出层的神经元进行操作时,将类别值作为期望值。 计算出误差后,该误差将用作隐藏层中神经元的输入,这意味着该隐藏层的误差是输出层中找到的神经元的加权误差。 误差计算沿着权重网络向后传播。

计算出网络的误差后,必须更新网络中的权重。如前所述,计算误差涉及确定输出值的斜率。计算出斜率后,可以使用称为梯度下降的过程来调整网络中的权重。梯度是一个斜率,其角度/陡度可以测量。斜率是通过在“运行”上绘制“y”或“上升”来计算的。在神经网络和错误率的情况下,“y”是计算的误差,而“x”是网络的参数。网络的参数与计算的误差值有关,并且随着网络权重的调整,误差会增加或减少。

“梯度下降”是更新权重以降低错误率的过程。 反向传播用于预测神经网络参数与错误率之间的关系,从而建立梯度下降网络。 使用梯度下降训练网络涉及通过前向传播计算权重、反向传播误差,然后更新网络的权重。

博主和程序员,擅长 机器学习 深度学习 主题。 丹尼尔希望帮助其他人利用人工智能的力量造福社会。