Pooling与Pooling-over-time的区别

15

我在理论上理解了CNN层操作中最大/求和池化的概念,但我看到这个术语“随时间最大池化”或“随时间求和池化”被抛出(例如,Yoon Kim的“用于句子分类的卷积神经网络”论文)。它们之间有什么区别?


你在哪里看到这个术语? - Maxim
请参考https://arxiv.org/pdf/1408.5882.pdf - 搜索“max-over-time”。在图表中,它指的是这种池化方法。 - Matt
2个回答

18
max-over-time池化通常应用于NLP(与普通的最大池不同,后者在计算机视觉任务的CNN中很常见),因此设置略有不同。
max-over-time池化的输入是特征映射,其在长度为n的句子上使用大小为h的过滤器计算。卷积操作与图像中的操作非常相似,但在这种情况下,它应用于单词的一维向量。这是paper中的公式(3)。
max-over-time池化操作非常简单:max_c=max(c),即它是整个特征映射的最大值。之所以这样做,而不是像在CNN中那样“下采样”句子,是因为在NLP中,语料库中的句子自然具有不同的长度。这使得不同句子的特征映射不同,但我们希望将张量缩小到固定大小,以便在最后应用softmax或回归头。正如论文中所述,它允许捕获最重要的特征,即每个特征映射中具有最高值的特征。
请注意,在计算机视觉中,图像通常1具有相同的大小,例如28x2832x32,因此无需立即将特征映射下采样到1x1
时间上的sum-pooling是相同的。

1现代卷积神经网络可以使用不同尺寸的图像进行训练,但这需要网络是全卷积的,因此它没有任何池化层。有关更多详细信息,请参见此问题


关于您的脚注:我相信全局平均池化支持不同尺寸的输入图像。 - Imran
正确。好的注释。但它更接近于1x1卷积,而不是平均池化层,因此网络仍然没有普通的池化层。 - Maxim
真的吗?他们强制使用固定大小的层的方法是通过取最大值并得到单个数字作为层?这对我来说似乎很疯狂。那么他们如何在最后应用softmax层呢? - Charlie Parker

5

最大池化通常应用于2D特征平面中的区域,而沿着1D特征向量进行时间上的最大池化。

以下是斯坦福CS231n关于最大池化的演示:

max pooling

最大时间池化是对一维特征向量进行计算,取其中的最大值。 "over time" 表示这是在某些序列输入(如句子或来自句子所有短语的串联)沿时间维度发生的。例如:
[2, 7, 4, 1, 5] -> [7]

来源:CS224d第13讲幻灯片


1
虽然这是绝对正确的,但它与上面的NLP相关问题无关,而更多地涉及计算机视觉。 - cmcapellan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接