卷积神经网络中的维度

Dimensions in convolutional neural network

我想了解卷积神经网络中维度的行为方式。在下图中,输入是具有 1 个通道的 28×28 矩阵。然后有 32 个 5×5 过滤器(高度和宽度的步幅为 2)。所以我知道结果是 14×14×32。但是在下一个卷积层中,我们有 64 个 5×5 过滤器(同样步幅为 2)。那么为什么结果是 7×7×64 而不是 7×7×32*64?我们不是将 64 个过滤器中的每一个应用于 32 个通道中的每一个吗?

一个filter是上一层所有维度的总和。这意味着 5x5 过滤器对所有 32 个维度求和,本质上是 32*5*5 值的加权和。但是,权重值是跨维度共享的。然后有 64 个这样的过滤器。可以在此处找到更好的图像解释:http://cs231n.github.io/convolutional-networks/

here清楚地解释了输入的大小如何随着层之间的进行而变化。

在输入中,您提供的尺寸为 28 宽和 28 高,深度为 1。对于第 1 层中的过滤器,过滤器的深度尺寸必须等于输入的深度。所以过滤器的维度将为 5x5x1,应用一个过滤器,维度会减少(由于步幅)以产生 14x14x1 维度的激活图,因此应用 32 个这样的过滤器将为您提供 32 个激活图。结合所有这些 14x14x32 是第 1 层的输出并输入到第二层。再次在第二层中,您需要在该层上应用尺寸为 5(width)x5(height)x32(depth) 的过滤器以生成一个 14x14x1 的激活图,堆叠所有 64 个激活图可为您提供第二层的输出尺寸14x14x64 等等。

是的,您实际上在 32 个通道中的每个通道上应用了 64 个过滤器。

深度通常是隐式给出的。 例如,许多图像被认为具有深度 3(对于每个像素中的三个颜色维度)。那么我们所说的 5x5 过滤器是指 5x5x3 过滤器。 在您的情况下,5x5-Filter 实际上是一个 5x5x32 过滤器。

通常明确说明深度一(如“5x5x1 过滤器”)。