池化的真正目的

数据挖掘 美国有线电视新闻网 图像分类 汇集
2021-09-17 12:49:51

最近我怀疑在神经网络中汇集层的真正目的是什么?最常见的答案是

  • 选择最重要的特征
  • 增加网络的感受野

我觉得这些并不是使用池化层的真正原因,因为

  • 没有必要选择重要的特征,因为最后的全连接层可以用来识别最重要的特征

  • 可以通过增加连续层中的内核大小来增加感受野。

因此,使用池化的唯一真正原因是减少特征表示的大小,从而随着网络的深入而导致更小的内存和计算足迹。

你同意这个比喻吗?你觉得还有其他原因吗?

4个回答

因此,使用池化的唯一真正原因是减少特征表示的大小,从而随着网络的深入而导致更小的内存和计算足迹。是的,成本效益,而且:

泛化:当我们将几个值组合成一个有代表性的值时,我们会去掉不重要的小细节。因此,您真正得到的是减少过度拟合的机会

您的原始直觉和其他答案都包含重要且有效的观点:

  • 减少特征图大小,从而减少整体计算需求。
  • 通过从不重要的特征中过滤掉重要的特征来提供灵活性,增加感受野并降低过度拟合的风险。

但是,正如您所指出的,可以通过其他方式实现相同的效果。

其他答案遗漏的差异点是关键方面:池化具有这些好处,同时具有零可训练参数和快速计算

常见的答案和您的类比都是错误的。在卷积和 ReLu 层之后添加池化层。这些层获取图像的特征图,其中重要特征在哪里。这些特征的问题是在特征图中获取特征的这个特定位置。图像的微小变化将反映特征图的总体变化。为了解决这个问题,您可以对池化层完成的特征图进行下采样。尝试阅读池化及其类型,例如最大池化和平均池化。它通过下采样来降低特征图中的特征重要性。

我认为这些常见的答案是非常正确但抽象的。在我看来,池化“选择最重要的特征”或通过丢弃附近的信息来“增加感受野”,例如 Maxpooling。这可能是有道理的,因为在某些情况下,比如图像分类,我们只需要一些重要的特征来分类,因此我们可以删除冗余的局部特征。或者通过AveragePooling,我们可以使特征图对局部变化更加稳定。

最后一个 FC 层确实选择了最重要的特征来使用,但是,如果每一层的输出对最终任务更有用,你可以获得更准确的结果,我们希望前一个网络学习可靠的特征,FC 层只是映射它们.

至于您的第二个想法,可以通过增加内核大小来增加感受野。但是如果你使用更大的内核大小,你会失去局部特征。这就是为什么提出拨号卷积的原因,它可以增加感受野而不会像池化一样丢失信息。

顺便说一句,正如 Hinton 所说,许多研究人员不使用池化,或者只是在近年来网络结束时使用它们:

卷积神经网络中使用的池化操作是一个很大的错误,它运行良好的事实是一场灾难。