卷积层中的反向传播

机器算法验证 卷积神经网络 反向传播
2022-03-27 23:55:01

我在互联网上找到的大多数示例都很好地解释了卷积层中的反向传播,但仅使用单个内核和单个输入通道。

我不明白如何为多个内核和多个输入通道进行反向传播。

假设我有一个卷积层,它接受大小为3x20x20的输入X,应用5 个3x3x3内核过滤器K并产生大小为5x18x18的输出OX KO

在图表上看起来像这样(我为我可怕的手绘道歉): 向前传球

在反向传递期间,该层接收到一个错误EO并将其传播回前一层。

据我了解,为了计算OX我需要对\frac{\partial E}{\partial O}应用“全”卷积,内核旋转 180°。所以,它看起来像这样:EO

向后传球

\frac{\partial O}{\partial X}的尺寸OX应该与X (3x20x20) 的尺寸相匹配,但卷积运算产生的输出深度等于内核数(在我的情况下为5)。

我的问题是EO 5x18x18与 5 个旋转过滤器 3x3x3 之间的“完全”卷积如何产生尺寸为 3x20x20的输出\frac{\partial O}{\partial X}不是卷积运算输出的深度等于滤波器的个数吗?OX

1个回答

我尝试解释获得的尺寸(5x18x18 -> 3x20x20):

  • 5 -> 3翻转的卷积重复 3 次,但 5 个过滤器中的每一个的效果都会被汇总,就像您在前向阶段所做的那样。在任何情况下,在卷积层中,都可以在输入中给出任意深度,在输出中也可以给出任意数量的滤波器。 在此处输入图像描述

  • 18 -> 20由全卷积给出,其中对输入图像应用填充,然后获得更大的图像作为结果。

无论如何,这里对卷积层的反向传播进行了很好的解释。