池化与池化时间

时间:2018-01-31 19:06:58

标签: machine-learning neural-network nlp convolution max-pooling

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

2 个答案:

答案 0 :(得分:9)

最大时间池通常应用于NLP(与普通最大池不同,这在计算机视觉任务的CNN中很常见),因此设置略有不同。

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

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

请注意,在计算机视觉中,图像通常是相同大小的 1 ,如28x2832x32,这就是为什么不必将要素地图缩减为{ {1}}立刻。

汇总时间是一样的。

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

答案 1 :(得分:5)

最大池化通常适用于2d要素平面中的区域,而最大池化随时间发生在1d要素向量上。

以下是斯坦福大学CS231n的最大合并证明:

max pooling

随着时间的推移,最大池化需要1d特征向量并计算最大值。 “随着时间的推移”只是意味着这是在时间维度上发生的某些顺序输入,如句子,或句子中所有短语的连接,就像你链接的文章一样。

例如:

[2, 7, 4, 1, 5] -> [7]

来源:CS224d Lecture 13 slides