联系我们

AI 101

什么是反向传播?

mm

更新

 on

什么是反向传播?

深度学习 系统能够学习极其复杂的模式,并且可以通过调整权重来实现。如何精确调整深度神经网络的权重?他们通过调整 一个过程反向传播。没有反向传播,深度神经网络将无法执行识别图像和解释自然语言的任务。一般而言,了解反向传播的工作方式对于理解深度神经网络至关重要,因此让我们深入研究反向传播,并了解如何使用该过程来调整网络的权重。

反向传播可能很难理解,用于进行反向传播的计算可能会非常复杂。本文将努力以较少的复杂数学方式使您对反向传播有一个直观的了解。但是,有必要对反向传播背后的数学进行一些讨论。

反向传播的目标

首先定义反向传播的目标。深度神经网络的权重是神经网络各单元之间的连接强度。当建立神经网络时,就假设一层中的单元如何连接到与其相连的层。当数据通过神经网络移动时,将计算权重并进行假设。当数据到达网络的最后一层时,将对要素如何与数据集中的类进行关联进行预测。预测值与实际值之间的差异是损失/误差以及反向传播的目标 是减少损失。这可以通过调整网络的权重来完成,使假设更像输入要素之间的真实关系。

训练深度神经网络

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

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

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

在神经元被激活之后,激活函数用于确定神经元的实际输出将是什么。对于不同的学习任务,不同的激活函数是最佳的,但是常用的激活函数包括S型函数,Tanh函数和ReLU函数。

通过通过期望的激活函数运行激活值计算出神经元的输出后,就完成了正向传播。正向传播只是获取一层的输出,并使其成为下一层的输入。然后,将新的输入用于计算新的激活函数,并将此操作的输出传递到下一层。这个过程一直持续到神经网络的末端。

网络中的反向传播

反向传播的过程将获取模型训练合格的最终决定,然后确定这些决定中的错误。通过将网络的输出/决策与网络的预期/期望输出进行对比来计算误差。

一旦计算出网络决策中的错误,该信息就会通过网络反向传播,并且网络参数也会随之改变。用于更新网络权重的方法基于演算,特别是基于链式规则。但是,不需要了解微积分就可以了解反向传播的概念。只是知道,当从神经元提供输出值时,将通过传递函数计算输出值的斜率,从而生成派生输出。进行反向传播时,根据以下内容计算特定神经元的误差 :

错误=(expected_output–Actual_output)*神经元输出值的斜率

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

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

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

专门从事以下工作的Blogger和程序员 机器学习 深度学习 话题。 Daniel希望帮助他人将AI的力量用于社会公益。