反向传播解析

反向传播是训练人工神经网络,特别是深度神经网络的常用方法。需要反向传播来计算梯度,我们需要调整权重矩阵的权重。通过计算损失函数的梯度来调整神经网络的神经元(即节点)的权重。为此目的,使用梯度下降优化算法。它也被称为误差的反向传播。

一个比喻可能会有帮助:想象你自己被放在一座山中,不一定是在山顶,在晚上被大雾包围。让我们进一步想象这座山在一个岛上,你想达到海平面。

  • 你必须往下走,但你几乎看不到任何东西,可能只有几米。你的任务是找到你的路,但是你看不到路。你可以用梯度下降法。这意味着你正在检查你当前位置的陡度。你将沿着最陡的下降方向前进。
  • 你只走了几步,然后又停下来重新定位自己。这意味着您正在再次应用前面描述的过程,即您正在寻找最陡的下降。

反向传播解析

这样下去,你将到达一个没有进一步下降的位置,每个方向都向上。你可能已达到最低处(全局最低),但你也可能陷入一个盆地。

总之,如果在这个理论岛上随机放置很多次,你会发现向下到海平面的方法。这就是我们训练神经网络时要做的。

实际的反向传播程序

假设我们从一个简单的(线性)神经网络开始:

反向传播解析

使用与权重关联的以下示例值:

反向传播解析

我们有标签,即每个输出值o的目标值或期望值t。误差是目标和实际输出之间的差异:

反向传播解析

我们稍后将使用平方误差函数,因为它具有更好的算法特性。

反向传播解析

我们将看一下输出值o1o1,它取决于值w11w11,w21w21,w31w31和w41w41。假设计算值(o1o1)为0.92,期望值(t1t1)为1.在这种情况下,误差是

反向传播解析

根据此误差,我们必须相应地更改传入值的权重。我们有四个权重,所以我们可以均匀地分散误差。然而,根据权重值,按比例进行比较更有意义。这意味着我们可以计算w11w11中误差e1e1的分数:

反向传播解析

这意味着在我们的示例中:

反向传播解析

隐藏和输出层之间的权重矩阵中的总误差如下所示:

反向传播解析

左矩阵中的分母始终相同。这是一个缩放因子。我们可以删除它,以便计算变得更简单:

反向传播解析

该示例已经证明了线性神经网络的基本场景的反向传播。

现在让我们回顾一下在线神经网络的反向传播(即具有激活函数)。

误差函数的推导描述了斜率。当我们希望下降时,推导描述了当权重w改变时误差E如何变化:

反向传播解析

好吧,假设在所有输出节点ojoj(j = 1,... nj = 1,... n)上的误差函数E,其中n是输出节点的数量是:

反向传播解析

我们可以在推导中加入这个

反向传播解析

我们可以彼此独立地计算每个输出节点的误差,并且我们除去了总和。这是节点j的误差,例如:

反向传播解析

应用链式法则,我们在微积分中学过的微分,在上一项中,来简化

反向传播解析

假设一个Sigmoid激活函数,其微分很简单:

反向传播解析

反向传播解析

基本神经网络训练数学:

反向传播解析

****

综上所述:

反向传播解析

相关推荐