5.1 常用池化方法

池化 pooling,又称为下采样,downstream sampling or sub-sampling。

池化方法分为两种,一种是最大值池化 Max Pooling,一种是平均值池化 Mean/Average Pooling。如图17-32所示。

图17-32 池化

  • 最大值池化,是取当前池化视野中所有元素的最大值,输出到下一层特征图中。
  • 平均值池化,是取当前池化视野中所有元素的平均值,输出到下一层特征图中。

其目的是:

  • 扩大视野:就如同先从近处看一张图片,然后离远一些再看同一张图片,有些细节就会被忽略
  • 降维:在保留图片局部特征的前提下,使得图片更小,更易于计算
  • 平移不变性,轻微扰动不会影响输出:比如上图中最大值池化的4,即使向右偏一个像素,其输出值仍为4
  • 维持同尺寸图片,便于后端处理:假设输入的图片不是一样大小的,就需要用池化来转换成同尺寸图片

一般我们都使用最大值池化。

5.2 池化的其它方式

在上面的例子中,我们使用了size=2x2,stride=2的模式,这是常用的模式,即步长与池化尺寸相同。

我们很少使用步长值与池化尺寸不同的配置,所以只是提一下,如图17-33。

图17-33 步长为1的池化

上图是stride=1, size=2x2的情况,可以看到,右侧的结果中,有一大堆的3和4,基本分不开了,所以其池化效果并不好。

假设输入图片的形状是 W 1 × H 1 × D 1 ,其中W是图片宽度,H是图片高度,D是图片深度(多个图层),F是池化的视野(正方形),S是池化的步长,则输出图片的形状是:

$$
\begin{aligned}
W_2 &= (W_1 - F)/S + 1 \
H_2 &= (H_1 - F)/S + 1 \
D_2 &= D_1
\end{aligned}

池化层不会改变图片的深度,即D值前后相同。

5.3 池化层的训练

我们假设图17-34中, [ [ 1 , 2 ] , [ 3 , 4 ] ] 是上一层网络回传的残差,那么:

  • 对于最大值池化,残差值会回传到当初最大值的位置上,而其它三个位置的残差都是0。
  • 对于平均值池化,残差值会平均到原始的4个位置上。

图17-34 平均池化与最大池化

图17-35 池化层反向传播的示例

Max Pooling

严格的数学推导过程以图17-35为例进行。

正向公式:

\delta_a = {\partial J \over \partial a} = {\partial J \over \partial w} {\partial w \over \partial a} = 0 δ a = a J = w J a w = 0

\delta_b = {\partial J \over \partial b} = {\partial J \over \partial w} {\partial w \over \partial b} = \delta_w \cdot 1 = \delta_w
δ b = b J = w J b w = δ w 1 = δ w

\delta_e = {\partial J \over \partial e} = {\partial J \over \partial w} {\partial w \over \partial e} = 0
δ e = e J = w J e w = 0

\delta_f = {\partial J \over \partial f} = {\partial J \over \partial w} {\partial w \over \partial f} = 0
δ f = f J = w J f w = 0

正向公式:

{\partial w \over \partial a} = \frac{1}{4}, \quad {\partial w \over \partial b} = \frac{1}{4}
a w = 4 1 , b w = 4 1

{\partial w \over \partial e} = \frac{1}{4}, \quad {\partial w \over \partial f} = \frac{1}{4}
e w = 4 1 , f w = 4 1

因为a,b,e,f对w都有贡献,所以偏导数都为1:

\delta_a = {\partial J \over \partial a} = {\partial J \over \partial w} {\partial w \over \partial a} = \frac{1}{4}\delta_w
δ a = a J = w J a w = 4 1 δ w

\delta_b = {\partial J \over \partial b} = {\partial J \over \partial w} {\partial w \over \partial b} = \frac{1}{4}\delta_w
δ b = b J =