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

时间:2017-03-11 10:18:31

标签: neural-network deep-learning conv-neural-network

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

Convolutional Neural Network

6 个答案:

答案 0 :(得分:18)

如果我更正,您就会问为什么4096x1x1图层要小得多。

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

这是ALL到ALL连接神经网络的一个例子: enter image description here 如您所见,layer2比layer3大。这并不代表他们无法连接。

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

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

它连接的是MLP。

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

答案 1 :(得分:7)

你说得对,最后一个卷积层有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神经元开始时似乎并不太多。

答案 2 :(得分:5)

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

答案 3 :(得分:1)

池化层的输出大小是 output =(输入大小 - 窗口大小)/(stride + 1) 在上面的情况下,输入大小为13,大多数池的实现添加额外的填充层以便在计算中保持边界像素,因此输入大小将变为14。 最常见的窗口大小和步幅是W = 2和S = 2,所以把它们放在公式中 输出=(14 - 2)/(2 + 1) 输出= 12/3 输出= 4 现在将有256个尺寸为4x4的特征地图,将其展平,你得到了 flatten = 4 x 4 x 256 flatten = 4096 希望这能回答你的问题。

答案 4 :(得分:0)

我将按图片显示它,看下面的网络Alexnet

enter image description here

256 * 13 *13层将执行max pooling运算符,则它将为256 * 6 * 6 = 9216。然后将被展平以连接到4096个Fully connect网络,因此参数将为9216 *4096。您可以在下面的excel中查看所有计算出的参数。

enter image description here

enter image description here

引用:

https://www.learnopencv.com/understanding-alexnet/

https://medium.com/@smallfishbigsea/a-walk-through-of-alexnet-6cbd137a5637

答案 5 :(得分:0)

我相信您想知道如何从卷积层过渡到完全连接的层或密集层。您必须认识到,查看卷积层的另一种方法是,它是一个密集层,但连接稀疏。在Goodfellow的书 Deep Learning 第9章中对此进行了解释。

Sparse connections

池化操作的输出也有类似的情况,您最终得到的结果类似于卷积层的输出,但已进行了总结。然后,可以将所有卷积内核的所有权重连接到完全连接的层。通常,这需要具有许多神经元的第一层完全连接,因此您可以使用第二层(或第三层)进行实际的分类/回归。

关于在卷积层之后的致密层中神经元数量的选择,它背后没有数学规则,就像具有卷积层的神经元规则一样。由于层是完全连接的,因此您可以选择任何大小,就像在典型的多层感知器中一样。