转载自:https://www.zhihu.com/question/36686900,谢志宁 本文只做个人记录学习使用,版权归原作者所有。
个人觉得主要是两个作用:
1.invariance(不变性),这种不变性包括translation(平移),rotation(旋转),scale(尺度)
2.保留主要特征同时减少参数(降维,效果类似PCA)和计算量,防止过拟合,提高模型的泛化能力
(1)translation invariance:
这里举一个简单的例子(数字识别),假设有一个16x16的图片,里面有一个数字1,我们需要识别出来,这个数字1可能写得偏左一点(图1 ),也有可能偏右一点(图2),图1到图2相当于往右平移了1个单位,但是图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后具有相同的特征