了解最大池层后面的完全连接层的尺寸

xla*_*lax 18 neural-network deep-learning conv-neural-network

在下面的图表(架构)中,4096单元的(完全连接)密集层是如何从维度的最后一个最大池层(右侧)派生出来的256x13x13?而不是4096,不应该是256*13*13 = 43264?

卷积神经网络

Tho*_*s W 20

如果我是对的,你会问为什么这个4096x1x1层要小得多.

那是因为它是一个完全连接的层.来自最后一个最大池层(= 256*13*13=43264神经元)的每个神经元都连接到完全连接层的每个神经元.

这是ALL到ALL连接神经网络的一个例子: 在此输入图像描述 如您所见,layer2比layer3大.这并不意味着他们无法连接.

最后一个最大池层没有转换 - > max-pooling层中的所有神经元都与下一层中的所有4096个神经元相连.

"密集"操作仅意味着计算所有这些连接的权重和偏差(= 4096*43264个连接)并添加神经元的偏差以计算下一个输出.

它的连接方式与MLP相同.

但为什么4096?没有理由.这只是一个选择.它可能是8000,可能是20,它只取决于什么最适合网络.


Par*_*kar 8

你是对的,最后一个卷积层有256 x 13 x 13 = 43264神经元.但是,有一个最大池层stride = 3pool_size = 2.这将产生大小的输出256 x 6 x 6.您将其连接到完全连接的图层.为了做到这一点,你首先必须压平输出,这将采取形状 - 256 x 6 x 6 = 9216 x 1.为了将9216神经4096元映射到神经元,我们引入了一个9216 x 4096权重矩阵作为密集/完全连接层的权重.因此,w^T * x = [9216 x 4096]^T * [9216 x 1] = [4096 x 1].简而言之,每个9216神经元都将连接到所有4096神经元.这就是该层被称为密集层或完全连接层的原因.

正如其他人已经说过的那样,对于为什么这应该是4096没有硬性规则.密集层必须具有足够数量的神经元以便捕获整个数据集的可变性.正在考虑的数据集 - ImageNet 1K - 非常困难,有1000个类别.所以4096开始的神经元似乎并不太多.


Mat*_*gro 6

不,4096是该层输出的维数,而输入的维数是13x13x256.如图所示,两者不必相等.

  • @xlax 4096不是来自任何东西,它是这样设计的,它似乎运作良好. (2认同)