为什么重叠池有助于减少卷积网络中的过度拟合?

机器算法验证 深度学习 卷积神经网络 过拟合
2022-03-13 08:29:24

在Krizhevsky 等人于 2012 年发表的关于 ImageNet 分类与深度卷积网络的开创性论文中,作者在第 3.4 节讨论了卷积神经网络中的重叠池化。

CNN 中的池化层汇总了同一核图中相邻神经元组的输出。传统上,由相邻池单元汇总的邻域不重叠(例如,[17,11,4])。更准确地说,池化层可以被认为是由间隔 s 个像素的池化单元网格组成,每个池化单元汇总一个大小为 z × z 的邻域,以池化单元的位置为中心。如果我们设置 s = z,我们将获得 CNN 中常用的传统局部池化。如果我们设置 s < z,我们会得到重叠池化。这是我们在整个网络中使用的,s = 2 和 z = 3。与非重叠方案 s = 相比,该方案将 top-1 和 top-5 错误率分别降低了 0.4% 和 0.3% 2,z = 2,产生等效尺寸的输出。我们通常在训练期间观察到,具有重叠池的模型发现过拟合稍微困难一些。

重叠池有助于减少卷积网络中的过度拟合的直觉是什么?

4个回答

我认为只是较大的池化窗口容量较低。例如,如果我们考虑一维情况,你可能会想象你有一些这样的特征:

[0 0 5 0 0 6 0 0 3 0 0 4 0 0]

可能是由原始图像空间中的一些规则的网格状图案生成的。的情况下,合并后的结果是z=2s=2

[0, 5, 6, 0, 3, 4, 0]

仍然很明显,高值和低值之间存在一些交替。但是当我们将窗口大小增加到 3 时,我们得到

[5、5、6、3、3、4、0]

并且网格状图案完全平滑并丢失。

这只是一个人为的例子,但一般来说,考虑它的一个好方法是,在最大池化之后,特征图中的任何大值都将支配并掩盖窗口内的所有其他信息,所以较大的是,丢失的信息越多。zzz

我将通过上面给出的合并示例进行一些修改来回答这个问题。假设我们具有1D以下三个特征。

[0 0 5 0 0 6 0 0 3 0 0 4 0 0]

[0 0 0 5 0 6 0 0 0 3 0 4 0 0]

[0 0 5 0 0 6 0 0 3 0 4 0 0 0]

z=2当使用和进行池化时s=2,所有 3 个特征都会导致与上面获得的结果相同,即

[0, 5, 6, 0, 3, 4, 0]

但是,当我们使用z=3and时s=2,我们分别得到以下结果

[5、5、6、3、3、4、0]

[0, 5, 6, 0, 3, 4, 0]

[5、5、6、3、4、4、0]

因此,使用重叠池,我们得到三种不同的结果,而不是不使用重叠时的一种结果。这是由于信息丢失z=s,在这种情况下会导致可用于训练网络的数据量减少,即从 3 个示例减少到 1 个示例。数据量的缩小使训练模型过拟合。

我认为这可以从数字信号处理的角度更好地解释。

直观地说,max-pooling是一种非线性的子采样操作。另一方面,平均池化可以被认为是低通(平均)滤波器,然后是子采样。正如世茂用一个很好的例子概述的那样,窗口大小越大,丢失的信息就越多。

考虑到第一个平均池化(这是线性的,因此可能更容易理解),如果重叠最大,它实际上只是一个带有移动平均内核的卷积,然后是子采样。换句话说,它类似于抗混叠(低通)滤波器,然后是抽取操作。如果重叠不是我们正在抽取更多(仅应用 dsp 高贵身份),那么我们会受到空间混叠,因为更多信息丢失并且抗混叠过滤器肯定是不够的。

回到最大池化,推理应该是相似的。

如果池化区域不重叠,则池化区域是不相交的,如果是这种情况,每个池化层会丢失更多信息。如果允许一些重叠,则池化区域在一定程度上重叠,并且在每一层中丢失的空间信息更少

即使被认为会给 CNN 带来一定程度的空间不变性,通过池化来丢失空间信息如果被滥用也可能是有害的,因为它可能导致过度拟合,因为网络只会“关注”某些主要特征;但是由于池化区域是不相交的,它会很快丢失任何关于特征在图像中的位置的信息(在较高层中)这显然会发生在高容量、深度模型上。让池化区域重叠可以减轻这种影响。

我在Quora上找到了一个很好的答案:

过度拟合不是在特定大小的数据集上定义的。如果我们有像 imagenet 这样的大型数据集,那么过度拟合很可能适用于其中的大部分或一小部分。这只是一种现象,CNN 可能无法学习提取丰富的特征(更通用的模型),而是倾向于提取仅对训练集中特定数量的示例进行分类的特征。请原谅我只提到 CNN,但这个论点可以扩展到一般的机器学习。

因此,当我们有 不重叠的池化区域时,我们可以看到空间信息很快丢失并且网络“看到”仅占主导地位的像素值(例如最大池化的获胜单元)。这仍然会提供分层表示,但它们几乎总是由图像的“更强区域”主导,然后通过网络传播。实际上,这会在学习中产生“偏见”,进而导致更容易过度拟合。

让我以不同的方式来说明这一点。假设我拍摄照片并覆盖除亮点之外的大部分并展示给您,这些亮点看起来都相似并且您学会识别它。但它们可能来自不同的来源,例如灯柱、汽车前灯、太阳等。除非还捕获来自周围的信息,否则无法实现更精细的区分。过度拟合的发生是因为你几乎总是看到一个亮点并学会说它是“汽车”,结果证明你是对的,因为大多数汽车都有前灯,而且你有很多打开前灯的汽车的照片,但那不是唯一用于识别汽车的功能,因此在验证和测试期间会做坏事。 通过重叠区域,周围空间信息的损失更少。这就是为什么分数池化似乎更有效的原因。 请注意,非重叠池在实践中并不总是会导致问题,重叠池区域或部分池只会略微改善结果。我不得不更戏剧化地解释它以提出我的观点。