如何反向传播?

数据挖掘 神经网络
2022-02-15 04:33:41

我正在关注这篇论文。您不必阅读全部内容,因为我将尽我所能解释。考虑他们开发的网络:在此处输入图像描述

该网络将 10 个值的向量作为输入。输入被馈送到卷积层。Conv 层共有三种不同类型的 384 个过滤器。这里的类型是指过滤器尺寸。每种尺寸 128 个过滤器。大小为 3,4 和 5。请注意,这些都是向量,而不是矩阵。结果总共产生了 384 个特征向量。这些特征向量被输入 Relu,然后是 maxpool。Maxpool 只从特征向量中取一个最大值。在 maxpool 层之后,我有 384 个向量,然后将其输入 FC 层。FC 层有 384 个神经元。然后是输出层,它有 3 个神经元(三个类)和一个 softmax 应用到它。

反向传播:

为了更新输出层的权重,我使用了以下等式

W new ij = W old ij - (learning_rate * (ActualValueOfThatNeuron - ExpectedValueOfThatNeuron)*输入i

其中 i 是 FC 层的输入神经元到输出层的 j 个神经元。

为了计算要传播回来的梯度/误差/损失(从 FC 层神经元),我使用了以下等式:

错误输入i = ((ActualValueOfThatNeuron - ExpectedValueOfThatNeuron)*W ij )

(这里的输入是指 FC 层中的一个神经元 然后计算从输入到 FC 层的权重,我使用与上述相同的等式,除了我使用 Error Input ij如下所示:

W new ij = W old ij - (learning_rate * (Error Input ij )*Input i

然后我计算了损失/梯度/错误,以同样的方式传播回来。现在我被困在 Maxpool(尽管我什至不确定上述方法)。对于 maxpool,最大梯度为 1,其余为 0。在这种情况下,仅考虑一个神经元,我的向量可能看起来像这样 [0 loss 0 0 0 0]。我应该将它与输入特征向量相乘吗?如何进一步向下反向传播错误?

完全的新手,请尽量减少数学方程式。

0个回答
没有发现任何回复~