我正在关注这篇论文。您不必阅读全部内容,因为我将尽我所能解释。考虑他们开发的网络:
该网络将 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]。我应该将它与输入特征向量相乘吗?如何进一步向下反向传播错误?
完全的新手,请尽量减少数学方程式。