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

时间:2017-10-14 08:28:26

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

我读过一些关于卷积神经网络的论文,发现几乎所有论文都称正常CNN中的完全连接层为“顶层”。

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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

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

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

  1. 采用已经学过的权重的现有的,表现良好的模型,例如: ImageNet。有一些惊人的,最先进的模型,在数百万张图像上训练。你几乎无法击败ILSVRC比赛的获胜者。
  2. 删除顶层。您对原始模型学习的所有标签不感兴趣。
  3. 修复您借来的模型的权重。它已经非常出色地识别猫,你不想通过训练来减肥。
  4. 添加您自己的顶层并在可爱的猫咪上训练模型。
  5. 背后的想法是原始模型已经学会识别CNN层中的通用特征,这些特征可以重复使用。顶层已经超出了通用,进入训练集中的特定部分 - 这些可以被丢弃。那里没有可爱的猫咪。