【学习笔记】池化

写在之前

池化是卷积里面最重要的操作之一= =没啥好写的- -

池化的作用

pooling的结果是使得特征减少,参数减少,减少计算压力。
pooling目的是为了保持某种不变性(旋转、平移、伸缩等)。

池化的分类

池化的种类主要可分为mean-pooling(平均池化),max-pooling(最大池化)和Stochastic-pooling(随机池化)三种。

平均池化
最大池化
随机池化)

特征提取的误差

根据相关理论,特征提取的误差主要来自两个方面:

(1)邻域大小受限造成的估计值方差增大;
(2)卷积层参数误差造成估计均值的偏移。

一般来说,
mean-pooling能减小第一种误差(邻域大小受限造成的估计值方差增大),更多的保留图像的背景信息,
max-pooling能减小第二种误差(卷积层参数误差造成估计均值的偏移),更多的保留纹理信息。
Stochastic-pooling则介于两者之间,通过对像素点按照数值大小赋予概率,再按照概率进行亚采样,在平均意义上,与mean-pooling近似,在局部意义上,则服从max-pooling的准则。

LeCun的“Learning Mid-Level Features For Recognition”对前两种pooling方法有比较详细的分析对比,如果有需要可以看下这篇论文。

pooling的反向传播

原则:把1个像素的梯度传递给4个像素,但是需要保证传递的loss(或者梯度)总和不变

对于mean pooling,真的是好简单:假设pooling的窗大小是2x2, 在forward的时候啊,就是在前面卷积完的输出上依次不重合的取2x2的窗平均,得到一个值就是当前mean pooling之后的值。backward的时候,把一个值分成四等分放到前面2x2的格子里面就好了。如下

平均池化的反向传播

max pooling就稍微复杂一点,forward的时候你只需要把2x2窗子里面那个最大的拿走就好了,backward的时候你要把当前的值放到之前那个最大的位置,其他的三个位置都弄成0。如下
最大池化的反向传播

0%