本文转发自知乎的提问,综合了以下两位答主的回答,以及他们在评论区的回复。
作者:谢志宁
链接:https://www.zhihu.com/question/36686900/answer/130890492
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:温颖
链接:https://www.zhihu.com/question/36686900/answer/91714601
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
以下4个作用:
1. invariance(不变性),这种不变性包括translation(平移),rotation(旋转),scale(尺度)。
2. 减小下一层输入大小,减小计算量和参数个数。保留主要的特征同时减少参数(降维,效果类似PCA)和计算量,防止过拟合。
3. 获得定长输出。(文本分类的时候输入是不定长的,可以通过池化获得定长输出;或者处理大小不一的输入图片)
4. 防止过拟合,提高模型泛化能力。或有可能会带来欠拟合。
不变性的解释:
(1) translation invariance:
这里举一个直观的例子(数字识别),假设有一个16x16的图片,里面有个数字1,我们需要识别出来,这个数字1可能写的偏左一点(图1),这个数字1可能偏右一点(图2),图1到图2相当于向右平移了一个单位,但是图1和图2经过max pooling之后它们都变成了相同的8x8特征矩阵,主要的特征我们捕获到了,同时又将问题的规模从16x16降到了8x8,而且具有平移不变性的特点。图中的a(或b)表示,在原始图片中的这些a(或b)位置,最终都会映射到相同的位置。
(2) rotation invariance:
下图表示汉字“一”的识别,第一张相对于x轴有倾斜角,第二张是平行于x轴,两张图片相当于做了旋转,经过多次max pooling后具有相同的特征
(3) scale invariance:
下图表示数字“0”的识别,第一张的“0”比较大,第二张的“0”进行了较小,相当于作了缩放,同样地,经过多次max pooling后具有相同的特征
防止过拟合的解释:
对于一个样本(一张图片)x,特征维数dim(x)从原来的256(16x16),到现在的64(8x8),我们的特征维数减少了,同时我们的参数w规模也减少了,整个模型就变得相对简单。就好比一些常见的防止过拟合的方法,例如L1正则,目的是为了得到稀疏解,即稀疏的w。相反,如果我们的特征变多了,模型会拟合这些特征,使得模型变得复杂,但同时模型的泛化能力降低,即过拟合。也就是说pooling后会让之前的特征维数减少,训练参数减少,泛化能力加强,进而防止过拟合。