我从概念上理解在作为 CNN 层操作的最大/总和池中发生了什么,但我看到这个术语“随着时间的推移最大池”或“随着时间的推移总和池”被抛出(例如,Yoon Kim 的 "Convolutional Neural Networks for Sentence Classification" 论文)。有什么区别?

最佳答案

max-over-time pooling 通常应用于 NLP(与普通的 max-pool 不同,它在 CNN 中常见于计算机视觉任务),因此设置略有不同。

最大时间池化的输入是一个特征图 c = [c(1), ..., c(n-h+1)] ,它是在长度为 n 的句子上计算的,过滤器的大小为 h 。卷积操作与图像非常相似,但在这种情况下,它应用于一维词向量。这是 paper 中的公式(3)。

最大时间池化操作非常简单: max_c = max(c) ,即它是一个在整个特征图上获得最大值的数字。这样做的原因,而不是像在 CNN 中那样“下采样”句子,是因为在 NLP 中,句子在语料库中自然具有不同的长度。这使得不同句子的特征映射不同,但我们希望将张量减小到固定大小,以最终应用 softmax 或回归头。正如论文中所述,它允许捕获最重要的
特征,每个特征图的最高值。

请注意,在计算机视觉中,图像通常具有相同的大小,例如 28x2832x32 ,这就是为什么没有必要立即将特征图下采样到 1x1 的原因。

Sum-pooling-over-time 是一样的。

1 现代 CNN 可以用不同大小的图像进行训练,但这要求网络是全卷积的,因此它没有任何池化层。有关更多详细信息,请参阅 this question

关于machine-learning - 池化 vs 随时间池化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48549670/

10-13 00:02