1 池化层
在上篇博客中,有跟大家分析过,在卷积层中没有 padding 的情况下,可以通过调节步长参数 $\boldsymbol{s}$ 实现特征图的高宽成倍缩小,从而降低了网络的参数量。但是在实际上我们通常使用 Same卷积,即输入和输出特征图的维度一样,这样一来将面临巨大的计算量挑战,而且容易产生过拟合的现象,因此我们需要一种专门的网络层可以实现尺寸缩减功能,它就是这里要介绍的 池化层(pooling layer),通常,池化操作也被称作 下采样。
池化层同样基于局部相关性的思想,通过从局部相关的一组元素中进行采样或信息聚合,从而得到新的元素值。下面介绍两种池化方式:
- 最大池化(Max Pooling):选择 pooling 窗口中的最大值作为采样值;
- 均值池化(Mean Pooling):将 pooling 窗口中的所有值相加取平均, 以平均值作为采样值。
不管采用什么样的池化函数,当输入作出少量平移时,池化能够帮助输入的表示近似 不变(invariant),对于平移的不变性是指当我们对输入进行少量平移时,经过池化函数后的大多数输出并不会发生改变。池化操作就是图像的 resize,平时一张狗的图像被缩小了一倍我们还能认出这是一张狗的照片,这说明这张图像中仍保留着狗最重要的特征,我们一看就能判断图像中画的是一只狗,图像压缩时去掉的信息只是一些无关紧要的信息,而留下的信息则是具有尺度不变性的特征,是最能表达图像的特征。说明池化能够提升模型的尺度不变性、旋转不变性。
以 $\boldsymbol{5 × 5}$ 输入 $\boldsymbol{X}$ 的最大池化层为例,考虑池化窗口大小 $\boldsymbol{ k =2}$ ,步长 $\boldsymbol{s = 2}$ 的情况。