一、池化的概念
如果卷积是为了能自动提取图像的高维度且有效的特征,那么池化就是自动删除一些不必要的特征,减少特征个数(即降维),增加特征的鲁棒性,缓解卷积层对位置的过度敏感性。
在CNN中,池化操作通常紧跟在卷积操作之后,用于降低特征图的空间大小。
二、池化的操作
池化的操作就是一个采样的过程,所谓的采样,就是有选择性的保留某些数值。其实操作和卷积很类似,可以理解为池化也有一个卷积核,但是这个核只是一个框,框里没有任何数字需要进行训练,仅仅是按一定的规则对数据进行筛选。
池化常用的方法有两种:平均池化和最大池化。
-
平均池化
平均池化就是计算每个子区域内的平均值作为输出,具体操作如下:
可以看到,上述中蓝色的框为池化的核(大小:2x2),平均池化则是计算这个核内的所有数字的平均值,然后输出到下一层。那么一个4x4的特征图在经过一个大小为2x2的池化后,就会输出一个2x2的池化图。
-
最大池化
顾名思义,最大池化就是对池化框里的所有数据中,只取最大值,具体操作如下:
总结:
池化层的作用在于:
- 增加特征平移不变性,以提高网络对微小位移的容忍能力。
- 减小特征图大小,对空间局部区域进行下采样,以减少下一层需要的参数量和计算量,大大提高训练速度,并降低过拟合的风险。
- 最大池化可以使得结果为非线性,所以目前最常用的池化为最大池化。
注意:
在处理多通道输入数据时,池化层对每个输入通道分别池化,所以池化层的输出通道数量和输入通道数量是相等的。不像卷积层那样将各通道的输入按通道进行相加。
比如:输入通道数为3,那么池化层的通道数也等于3。
参考来源:
【概念理解】卷积(Convolution)与池化(Pooling)-优快云博客