输入的深度与卷积层的输出深度有什么关系?

人工智能 卷积神经网络 卷积 卷积层 卷积算术 二维卷积
2021-11-13 11:27:36

假设我有一张有 16 个通道的图像进入一个卷积层,它有 3 个可训练7×7过滤器,因此该层的输出深度为 3。

卷积层是如何从 16 个通道变成 3 个通道的?应用了什么数学运算?

2个回答

您从 16 个通道变为 3 个通道的原因是,在 2d 卷积中,过滤器跨越输入的整个深度因此,您的过滤器实际上是7×7×16为了覆盖输入的所有通道。

详细程序

卷积的输出自动具有等于过滤器数量的深度(所以在你的情况下,这是3) 因为你有一个×ķ过滤矩阵,其中是过滤器的数量和ķ展开过滤器中的元素数(在您的情况下,=3ķ=7×7×16=784,所以滤波器矩阵是3×784)。

输入通常根据 im2col 过程展开,其中与单个过滤器位置对应的每个图块被拉伸成等于展开过滤器大小的列。对于每个过滤器位置都重复此操作,因此您最终会得到一个非常大的矩阵ķ×n, 在哪里ķ是相同的ķ上面的过滤器矩阵,和n取决于您的填充和步幅。

乘以×ķ过滤矩阵与ķ×n输入矩阵给你一个×n输出矩阵,其中是过滤器的数量。

进一步阅读

你可以在这里这里找到一些关于卷积过程的非常好的视觉解释

您的输入有 16 个通道,每个维度×n. 有3个过滤器,即F1,F2F3空间维度ķ×H.

我们说一个过滤器在叠加到图像上时应用到一个通道,从最左边开始,执行将过滤器的权重与图像中对应的值相乘然后求和为单个值并移动的操作根据过滤器的步幅,将过滤器向右(当到达最右边时向下)穿过图像。

当一个过滤器,例如F1, 应用于通道说C,只有一个值。现在,将它们应用于所有通道,我们得到 16 个值,所有这些值加起来为一个值。F1根据步幅移动并重复相同的操作以获得具有单个通道的输出(行数和列数由填充,步幅,扩张和文件管理器的内核大小决定)。

上述过程由产生 3 个通道的所有 3 个过滤器完成。通过这种方式,卷积层使输入从 16 个通道变为 3 个通道。

更详细的解释可以在这里找到。