【问题标题】:Why do we call the fully connected layers in CNN "the Top Layers"?为什么我们将 CNN 中的全连接层称为“顶层”?
【发布时间】:2018-03-26 07:58:32
【问题描述】:

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

然而,正如大多数论文中所展示的那样,典型的 CNN 具有自上而下的结构,并且通常后面跟着 softmax 分类器的全连接层被放在网络的底部。那么,为什么我们称它们为“顶层”呢?这是一种约定还是有其他一些我不知道的考虑?

【问题讨论】:

  • 我发现这个问题在对论文的 CNN 的复制进行编程然后对其进行改进时很有帮助。

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


【解决方案1】:

我认为这只是口味问题,但说“顶层”与神经网络中的“头部”概念相关。人们说“分类头”和“回归头”是指神经网络的输出层(这个术语用在tf.estimator.Estimator,另见一些讨论herehere)。如果你这样看,头部之前的层是 top 的,而输入层是 bottom。无论如何,您应该仔细检查特定层被称为“顶部”时的含义。

【讨论】:

    【解决方案2】:

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

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

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

    1. 采用现有的、性能良好的模型,其中包含已学习的权重,例如图像网。那里有一些惊人的、最先进的模型,经过数百万张图像的训练。您几乎无法击败 ILSVRC 比赛的获胜者。
    2. 删除顶层。您对原始模型学习的所有标签都不感兴趣。
    3. 修复您借用的模型的权重。它在识别猫方面已经很出色了,你不想通过训练来增加重量。
    4. 添加您自己的顶层并在可爱的猫上训练模型。

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

    【讨论】:

      猜你喜欢
      • 2017-07-08
      • 2016-06-17
      • 1970-01-01
      • 2016-09-10
      • 2017-12-14
      • 1970-01-01
      • 2018-03-08
      • 1970-01-01
      • 2019-10-25
      相关资源
      最近更新 更多