答案 0 :(得分:18)
如果我更正,您就会问为什么4096x1x1
图层要小得多。
那是因为它是完全连接的图层。来自最后一个最大池层(= 256*13*13=43264
神经元)的每个神经元都连接到完全连接层的每个神经元。
这是ALL到ALL连接神经网络的一个例子: 如您所见,layer2比layer3大。这并不代表他们无法连接。
最后一个最大池层没有转换 - > max-pooling层中的所有神经元都与下一层中的所有4096个神经元相连。
密集的'操作只是意味着计算所有这些连接的权重和偏差(= 4096 * 43264个连接)并添加神经元的偏差来计算下一个输出。
它连接的是MLP。
但为什么4096?没有理由。这只是一个选择。它可能是8000,可能是20,它只取决于什么最适合网络。
答案 1 :(得分:7)
你说得对,最后一个卷积层有256 x 13 x 13 = 43264
个神经元。但是,最大池层包含stride = 3
和pool_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)
答案 4 :(得分:0)
我将按图片显示它,看下面的网络Alexnet
第256 * 13 *13
层将执行max pooling
运算符,则它将为256 * 6 * 6
= 9216。然后将被展平以连接到4096个Fully connect网络,因此参数将为9216 *4096。您可以在下面的excel中查看所有计算出的参数。
引用:
https://www.learnopencv.com/understanding-alexnet/
https://medium.com/@smallfishbigsea/a-walk-through-of-alexnet-6cbd137a5637
答案 5 :(得分:0)
我相信您想知道如何从卷积层过渡到完全连接的层或密集层。您必须认识到,查看卷积层的另一种方法是,它是一个密集层,但连接稀疏。在Goodfellow的书 Deep Learning 第9章中对此进行了解释。
池化操作的输出也有类似的情况,您最终得到的结果类似于卷积层的输出,但已进行了总结。然后,可以将所有卷积内核的所有权重连接到完全连接的层。通常,这需要具有许多神经元的第一层完全连接,因此您可以使用第二层(或第三层)进行实际的分类/回归。
关于在卷积层之后的致密层中神经元数量的选择,它背后没有数学规则,就像具有卷积层的神经元规则一样。由于层是完全连接的,因此您可以选择任何大小,就像在典型的多层感知器中一样。