为什么我们将CNN中的全连接层称为“顶层”?

Kex*_*iii 5 terminology machine-learning neural-network deep-learning conv-neural-network

我阅读了一些有关卷积神经网络的论文,发现几乎所有的论文都将普通CNN中的完全连接的层称为“顶层”。

但是,正如大多数论文所显示的那样,典型的CNN具有自顶向下的结构,而完全连接的层(通常后面跟一个softmax分类器)位于网络的底部。那么,为什么我们称它们为“顶层”?这是一种约定还是我不知道的其他注意事项?

Luk*_*ski 6

有一个很好的理由将它们与其他层区分开来,远远超出“惯例”。

CNN 有很多层,每一层都有不同的抽象层次。它从非常简单的形状和边缘开始,然后学习例如识别眼睛和其他复杂特征。在典型的设置中,顶层将是一层或两层深的全连接网络。现在,重要的是:顶层权重最直接受标签影响。这是有效地做出决定(或者更确切地说是产生概率)某物是猫的层。

现在想象一下,您想要构建自己的模型来识别可爱的猫,而不仅仅是猫。如果从头开始,则必须提供大量训练示例,以便模型首先学会识别猫的构成。通常,您没有足够的数据量或足够的处理能力。你可能会做什么:

  1. 以一个现有的、性能良好的模型为例,它已经在 ImageNet 上学习了权重。有一些令人惊叹的、最先进的模型,经过数百万张图像的训练。您几乎无法击败 ILSVRC 比赛的获胜者。
  2. 去除顶层。您对原始模型学习的所有标签都不感兴趣。
  3. 修正你借来的模型的权重。它在识别猫方面已经非常出色,而且您不想通过训练来增加重量。
  4. 添加您自己的顶层并在可爱的猫上训练模型。

背后的想法是原始模型已经学会识别 CNN 层中的通用特征,并且这些特征可以重复使用。顶层已经超越了通用性,进入了训练集中的特定部分 - 这些可以被丢弃。那里没有可爱的猫。


Max*_*xim 5

我认为这只是一个品味问题,但是说“顶层”与神经网络中“头”的概念相关。人们说“分类头”和“回归头”是指神经网络的输出层(该术语用于tf.estimator.Estimator,也可以在此处此处进行一些讨论)。如果以这种方式查看,则位于头部前面的图层是最上层,而输入图层是最下面的层。无论如何,当它们被称为“顶层”时,您应该仔细检查特定的含义。