10.4 池化层
在一个完整的卷积神经网络里,除了之前我们介绍的卷积层外,还有一种重要的网络结构就是池化层。
10.4.1 最大池化操作
对于一个4x4的特征图,池化窗口大小(或者称为池化核大小)为2x2,步长为2,它会在每个池化窗口内取当前特征图的最大值,作为输出,生成输出特征图。具体过程如下图:
可以看到最大池化操作非常简单,就是取池化窗口内最大值作为输出特征。
10.4.2 池化操作的作用
池化层一般跟在一个或者多个卷积层的后边,构成一个特征提取模块。一个卷积神经网络里可以有多个这样的模块。池化层的作用有以下几个: 1. 减少特征图的大小。 2. 过滤一些干扰信息,因为最大池化层只提取一个区域内的最强激活值,忽略其他值。所以它有排除干扰信息的作用。 3. 提供小范围的平移不变性,因为不论最大特征出现在池化窗口内的任意位置,都以最大特征作为输出。
10.4.3 池化层的配置
当然你可以改变池化窗口的大小,但一般我们设置为2x2。你也可以改变池化操作的步长,但一般情况下,我们设置为和池化窗口一样的大小,这样每次池化操作就没有重叠,可以起到更好的减少特征图尺寸。另外池化层一般也不设置Padding,因为使用池化层的目的就是为了减少特征图尺寸并保留最强特征。
所以一般在卷积神经网络里最常见的最大池化层,size为2x2,步长为2,没有Padding,它输出的特征图的长和宽都是输入特征图的一半。
10.4.4 多通道池化层
多通道池化层是分通道进行的。在每个通道上独立进行池化操作。所以池化操作并不改变输入的通道数。这点和卷积操作不同,一个卷积核,它的通道数必须和输入通道数一样,计算时对多通道数据进行融合计算,最终不论输入是几通道,输出只有一个通道。为了输出多通道,就要设置多个卷积核。 为什么它们两者会有这种区别呢?因为卷积操作有可学习的参数,假如输入通道有两个,一个通道提取的是颜色特征,一个通道提取的形状特征,这个卷积核会融合颜色和形状特征,产生出一个新的特征,比如说是苹果这个类别的特征。但是池化层,以最大池化层为例,它并没有可学习的参数,它也没有对多通道特征进行融合的能力,它只是保留区域内最大特征,消除其他特征。并且不同通道的特征没有可比性,在不同通道的特征里取一个最大值没有意义。
10.4.5 和卷积层相比
卷积层如果设置步长不为1,不加Padding,也可以减少输出特征图的尺寸。那么和池化层相比两者有什么不同呢?答案是卷积层有可学习的参数,而池化层没有需要学习的参数,运算效率更高。 卷积层的作用是利用多通道的信息,生成新的特征。而最大池化层只是按照规则保留区域内最大特征,消除其他特征。
10.4.6 平均池化操作
除了最大池化外,平均池化是另一种常见的池化操作方式。与最大池化不同,平均池化会对池化窗口内的所有特征值取平均值,并将该平均值作为输出特征图的对应位置值。
最大池化操作聚焦关键特征,适合做图像分类这样的任务。 平均池化对局部特征进行平滑处理,适合对特征图进行整体浓缩,但不强调单点极值,常用于去噪、建模全局信息。最常用的是全局平均池化层,后边文章我们会做介绍。
10.4.7 上采样和下采样
下采样(Downsampling)顾名思义,下采样就是将原始数据“采样”成更小的尺寸,减少数据的分辨率或数量。池化层就是一种常见的对特征图进行下采样的方法。 上采样(Upsampling)上采样就是将原始数据“采样”成更大的尺寸。增加数据的分辨率或者数量,后边我们会介绍对特征图进行上采样的方法。