0

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

但是,正如大多数论文所显示的那样,典型的CNN具有自顶向下的结构,并且完全连接的层(通常跟着一个softmax分类器)被放置在网络的底部。那么,为什么我们称他们为“顶层”呢?这是一种惯例,还是我不知道的其他考虑因素?

回答

1

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

0

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

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

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

  1. 取一个现有的,表现良好的模型与已经学过的权重,例如, ImageNet。在那里有一些了不起的,最先进的模型,训练了数以百万计的图像。你几乎无法击败ILSVRC比赛的优胜者。
  2. 删除顶层。您对原始模型学到的所有标签都不感兴趣。
  3. 修复您借用的模型的权重。它已经非常擅长识别猫,你不想通过训练来减重。
  4. 添加您自己的顶层并在可爱的猫咪上训练模型。

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

相关问题