标准 CNN 中的全连接层数

数据挖掘 深度学习 神经网络 美国有线电视新闻网 卷积神经网络 亚历克斯网
2021-10-03 19:40:19

我有一个针对 CNN 的一些基础知识的问题。我遇到了各种 CNN 网络,例如 AlexNet、GoogLeNet 和 LeNet。

我在很多地方读到 AlexNet 有 3 个完全连接的层,每个层有 4096、4096、1000 层。包含 1000 个节点的层是分类层,每个神经元代表每个类。

现在我遇到了 GoogLeNet。我在这里读到了它的架构它说 GoogLeNet 有 0 个 FC 层。但是,您最终确实需要 1000 个节点层和 Softmax 激活来进行分类任务。所以最后一层不被视为FC?

那么,LeNet-5 中的 FC 层数是多少?

有点困惑。任何帮助或线索将不胜感激。

3个回答

我认为与 Inception 模块的混淆是结构有些复杂。相关CS231n 幻灯片 (#37)上的观点说没有 FC 层是部分正确的。(请记住,这只是模型的摘要,以了解要点!)。在该幻灯片上解释的模型的实际部分中,它们仅指的是 Inception 模块:

初始模块

没有 FC 层!

然而,定义将在决定模型中是否存在 FC 层方面发挥重要作用。


在更大的方案中(除了单个 Inception 模块),我们必须首先区分训练和测试时间架构。

在训练时有辅助分支,它们确实有一些完全连接的层。这些用于迫使中间层(或初始模块)在寻求最终答案时更加积极,或者用作者的话来说,更加具有辨别力

来自论文(第 6 页[Szegedy 等人,2014]):

一个有趣的见解是,相对较浅的网络在这项任务上的强大性能表明,网络中间的层产生的特征应该是非常有辨别力的。通过添加连接到这些中间层的辅助分类器,我们希望鼓励在分类器的较低阶段进行区分,增加反向传播的梯度信号,并提供额外的正则化。

下面显示的模型切片显示了 inception 模块右侧的辅助分类器(分支)之一:

带有辅助分类器的 Inception 块

这个分支显然有几个 FC 层,其中第一个可能是非线性的,例如 aReLUtanh第二个简单地将 1000 个输入权重压缩到要预测的任意数量的类中(巧合与否,对于 ImageNet,这里是 1000)。

但是,在测试时,这些分支是不活跃的。它们仅用于训练模块的权重,但对整个模型架构结束时产生的最终分类概率没有贡献。


这一切都给我们留下了模型末尾的可疑块:

最后一个 Inception 模块之后的最后一层,在产生类概率之前。

那里明显有一个很大的蓝色FC层!

这就是定义发挥作用的地方。这有点主观。是一个全连接层,其中每个m 重量连接到每个 n节点?它是学习表示的层吗?如果是,该层是否需要非线性?我们知道神经网络需要非线性,例如 ReLU 和 tanh 函数才能应用于层的输出(考虑前向流)。没有这些,神经网络将只是线性函数的组合,因此更深入理论上不会增加​​任何功能,因为我们本质上只会执行巨大的线性回归。

本着这种精神,我们可以看看最后一块拼图,并指出最后的 FC 层只是线性的!也就是说,它采用前Average Pooling一层产生的所有权重,并将它们组合成只有 1000 个值的线性组合——为 softmax 做好准备。这都可以从网络架构的表格概述中理解:

表格模型概述的开始和结束部分

那么,您是否同意斯坦福大学的观点?我做!

LeNet-5 中有 2 个全连接层。如《 Gradient-Based Learning Applied to Document Recognition 》的图2所示

在此处输入图像描述

我刚刚在这里查看了原始的 inception 网络论文(GoogLeNet),它在 softmax 之前确实有一个全连接层。 部分网络来自原论文。