Shu*_*pta 5 machine-learning backpropagation neural-network conv-neural-network
考虑具有以下架构的卷积神经网络:
这里
指的是
卷积层和
指的是
平均池化层。每一层都会对应一个输出。让
参考层输出中的错误
(同样对于
)。
可以使用正常的反向传播方程轻松计算,因为它完全连接到 softmax 层。
可以简单地通过上采样计算
适当地(并乘以输出的梯度
) 因为我们使用的是平均池化。
我们如何从输出中传播错误
到输出
? 换句话说,我们如何找到
从
?
斯坦福的深度学习教程使用以下等式来做到这一点:
但是我在使用这个方程时面临以下问题:
我在这里做错了什么?有人能解释一下如何通过卷积层传播错误吗?
简单的 MATLAB 示例将不胜感激。
我认为你的层数和重量与你想象的有很大不同。如果“P_1 的输出有 64 个通道,而 C_2 的输出有 96 个通道”并且您的卷积是 2x2,那么 W 不是 2x2,而是 96x64x2x2(等级 4 张量;维度/索引顺序的约定可能会有所不同,但你明白了)。“内矩阵乘法”实际上是张量卷积。接下来,您将把 96x64x2x2 的 W 与(我假设)64x7x7 的输入进行卷积,以产生 96x6x6 的输出(这假设“有效”卷积并且没有填充,这就是为什么在 7x7 上滑动 2x2 会产生 6x6)。向后看,您可以将W 的转置与输出进行卷积,以生成与输入具有相同维度的内容。
平均池化只会让事情变得更加复杂。首先尝试在没有池化的情况下理解这一点,或者将池化模型理解为具有固定(相等)权重的卷积。