您发布的第二个卷积神经网络 (CNN) 架构来自这篇论文。在论文中,作者描述了 S2 层和 C3 层之间发生的情况。他们的解释虽然不是很清楚。我想说这种 CNN 架构不是“标准的”,作为 CNN 的第一个例子,它可能会让人很困惑。
首先,需要澄清特征图是如何产生的,以及它们与过滤器的关系是什么。特征图是滤波器与特征图卷积的结果。让我们以层 INPUT 和 C1 为例。在最常见的情况下,要在 C1 层的过滤器(的图像与的过滤器,假设,大小为28×285×5M×MN×NM≥N(M−N+1)×(M−N+1). 但是,您可以通过组合由多于或少于 6 个过滤器生成的特征图(例如,将它们相加)来生成 6 个特征图。在论文中,尽管 C1 层没有暗示任何类型的内容。
S2 层和 C3 层之间发生的情况如下。C3 层有 16 个特征图,由 S2 层中的 6 个特征图生成。C3层的过滤器数量确实不明显。事实上,仅从架构图中,我们无法判断产生这 16 个特征图的过滤器的确切数量是多少。该论文的作者提供了下表(第 8 页):
他们通过表格提供以下解释(第 7 页底部):
C3 层是具有 16 个特征图的卷积层。每个特征图中的每个单元都连接到S2 特征图子集中相同位置的5×5
在表格中,作者展示了 C3 层中的每个特征图都是通过组合 3 个或更多特征图(第 8 页)产生的:
前六个 C3 特征图从 S2 中三个特征图的每个连续子集获取输入。接下来的六个从四个连续子集中获取输入。接下来的三个从四个不连续的子集中获取输入。最后,最后一个从所有 S2 特征映射中获取输入。
现在,C3 层有多少个过滤器?不幸的是,他们没有解释这一点。两种最简单的可能性是:
- 每个 C3 特征图的每个 S2 特征图有一个过滤器,即与同一 C3 特征图相关联的 S2 特征图之间没有过滤器共享。
- 每个 C3 特征图有一个过滤器,它在 S2 层的(3 个或更多)组合的特征图中共享。
在这两种情况下,“组合”意味着每个 S2 特征图组的卷积结果需要组合以生成 C3 特征图。作者没有具体说明这是如何完成的,但添加是一种常见的选择(例如,请参见本页中间附近的动画 gif 。
不过,作者提供了一些额外的信息,这可以帮助我们破译架构。他们说“C3 层有 1,516 个可训练参数”(第 8 页)。我们可以使用此信息在上述情况(1)和(2)之间做出决定。
在情况 (1) 中,我们有过滤器。过滤器大小为。在这种情况下,可训练参数的数量为可训练参数。如果我们假设每个 C3 特征图有一个偏差单元,我们会得到参数,这就是作者所说的。为了完整起见,在情况 (2) 中,我们将有参数,但情况并非如此。(6×3)+(9×4)+(1×6)=60(14−10+1)×(14−10+1)=5×55×5×60=1,5001,500+16=1,516(5×5×16)+16=416
因此,如果我们再次查看上面的表 I,每个 S2 特征图有 10 个不同的C3 过滤器(因此总共有 60 个不同的过滤器)。
作者解释了这种选择:
[在 C3 层中] 不同的特征图被迫提取不同的(希望是互补的)特征,因为它们得到不同的输入集。
我希望这可以澄清情况。