Cnn学习之-Pooling学习

其实就是在一大堆数据里选一个符合条件的了。
比如max pooling,就是在n-by-n的格子里选一个最大的。
而average也差不多,就是平均一下。
一般来说就是对你前一步得到的卷积map做降采样。降采样的目的1.降噪,除去你所指定的小局部中不必要的噪声2.降维,pooling后因为特征的相对位置没有变化,可以不损害其准确性。不然后边再卷卷不成了



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

forward: [1 3; 2 2] -> [2]

backward: [2] -> [0.5 0.5; 0.5 0.5]

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

forward: [1 3; 2 2] -> 3

backward: [3] -> [0 3; 0 0]

2.卷积层是对图像的一个邻域进行卷积得到图像的邻域特征,亚采样层就是使用pooling技术将小邻域内的特征点整合得到新的特征。

pooling的结果是使得特征减少,参数减少,但pooling的目的并不仅在于此。pooling目的是为了保持某种不变性(旋转、平移、伸缩等),常用的有mean-pooling,max-pooling和Stochastic-pooling三种。

mean-pooling,即对邻域内特征点只求平均,max-pooling,即对邻域内特征点取最大。根据相关理论,特征提取的误差主要来自两个方面:(1)邻域大小受限造成的估计值方差增大;(2)卷积层参数误差造成估计均值的偏移。一般来说,mean-pooling能减小第一种误差,更多的保留图像的背景信息,max-pooling能减小第二种误差,更多的保留纹理信息。Stochastic-pooling则介于两者之间,通过对像素点按照数值大小赋予概率,再按照概率进行亚采样,在平均意义上,与mean-pooling近似,在局部意义上,则服从max-pooling的准则。

点赞