池化 Pooling

池化一般用于降采样过程,在很多前沿的网络结构中已经不再使用该处理过程,转而直接使用纯卷积网络

池化的基本流程如下,将图像分为多个ksize*ksize大小的区域,每个区域映射到一个输出

由映射方式不同,分为均值池化和最大值池化

均值池化

每个输出是区域中ksize*ksize个数值的均值 $$ y_{11}=\frac{x_{11}+x_{12}+x_{21}+x_{22}}{4} $$ $$ y_{12}=\frac{x_{13}+x_{14}+x_{23}+x_{24}}{4} $$ $$ y_{21}=\frac{x_{31}+x_{32}+x_{41}+x_{42}}{4} $$ $$ y_{22}=\frac{x_{33}+x_{34}+x_{43}+x_{44}}{4} $$

最大值池化

每个输出是区域中ksize*ksize个数值的最大值 $$ y_{11}=max(x_{11},x_{12},x_{21},x_{22}) $$ $$ y_{12}=max(x_{13},x_{14},x_{23},x_{24}) $$ $$ y_{21}=max(x_{31},x_{32},x_{41},x_{42}) $$ $$ y_{22}=max(x_{33},x_{34},x_{43},x_{44}) $$

反向传播

均值池化

均值池化的计算可以表示如下

$$ a_{k}=wa_{k-1} $$

$$ \begin{aligned} \frac{\partial a_{k+1}}{\partial a_{k}}&=\frac{\partial wa_{k}}{\partial a_{k}}=w^{T} \end{aligned} $$

则均值池化的反向传播计算可表示如下

最大值池化

在区域数值中选择最大值作为输出,其本身是一种线性的对应关系,所以反向传播也只需满足对应即可

如下图所示,最大值池化前向计算如下

则反向传播如下

全局池化

全局池化算法在输入数据的每一个通道中提取最大值,从而得到一个与通道数相同的一维向量。全局池化的优点在于能够突出特征图中最显著的信息,在一定程度上减轻过拟合现象,由于计算在每一个通道数据上独立进行,所以该算法具有一定的空间不变性,对输入数据的分布变化具有鲁棒性。

全局池化常用于卷积层的最后一层与直连层相连接。