我从概念上理解在max / sum池中作为CNN层操作发生了什么,但是我看到这个术语“随时间推移的最大池数”或“随时间推移的总和池”(例如,"Convolutional Neural Networks for Sentence Classification" Yoon Kim的论文)。有什么区别?
答案 0 :(得分:9)
最大时间池通常应用于NLP(与普通最大池不同,这在计算机视觉任务的CNN中很常见),因此设置略有不同。
最大时间池的输入是一个要素图c = [c(1), ..., c(n-h+1)]
,它是使用长度为n
的句子和大小为h
的过滤器计算出来的。卷积操作与具有图像的卷积操作非常相似,但在这种情况下,它应用于单词的一维向量。这是paper中的公式(3)。
最大时间池化操作非常简单:max_c = max(c)
,即它是一个在整个要素图上获得最大值的单个数字。这样做的原因,而不是像在CNN中那样“下采样”句子,在NLP中,句子在语料库中自然具有不同的长度。这使得不同句子的特征映射不同,但我们希望将张量减小到固定大小以最终应用softmax或回归头。如文中所述,它允许捕获最重要的
功能,每个功能图的值最高的功能。
请注意,在计算机视觉中,图像通常是相同大小的 1 ,如28x28
或32x32
,这就是为什么不必将要素地图缩减为{ {1}}立刻。
汇总时间是一样的。
1 现代CNN可以使用不同大小的图像进行训练,但这需要网络全部卷积,因此它没有任何池化层。有关详细信息,请参阅this question。
答案 1 :(得分:5)
最大池化通常适用于2d要素平面中的区域,而最大池化随时间发生在1d要素向量上。
以下是斯坦福大学CS231n的最大合并证明:
随着时间的推移,最大池化需要1d特征向量并计算最大值。 “随着时间的推移”只是意味着这是在时间维度上发生的某些顺序输入,如句子,或句子中所有短语的连接,就像你链接的文章一样。
例如:
[2, 7, 4, 1, 5] -> [7]