深度学习池化层理解
一、池化层的作用:
1、抑制噪声,降低信息冗余度
2、提升模型的尺度不变性和旋转不变性
3、降低模型计算量
4、防止过拟合
二、池化算法的操作方式
1、平均池化:保留背景信息,突出背景信息
2、最大池化:保留主要特征,突出前景信息
3、全局平均池化
4、全局自适应池化
5、ROI池化
6、金字塔池化
7、重叠池化
8、随机池化
9、双线性池化
三、池化回传梯度
原则: 保证传递的LOSS(或者梯度)的综合不变
平均池化的操作如下:
最大池化的操作如下:
四、最大池化和平均池化的应用场景
五、空间金字塔池化
首先尝试一下用几句话介绍一下空间金字塔池化的背景,空间金字塔池化出自目标检测的SPPNet中,在目标检测中需要生成很多区域候选框,但这些候选框的大小都不一样,这些候选框最后都需要进入分类网络对候选框中的目标进行分类,因此需要将候选框所在区域变成一个固定大小的向量,空间金字塔池化就是解决这么一个问题。
对于一个通道数为C的feature map,一取全局最大值,得到一个1xC的张量,二将feature map分割成4块,在每一块上进行最大池化,得到一个4xC的张量,三将feature map分成16块,在每块上进行最大池化,得到一个16xC的张量,将这三个张量拼接起来,得到一个大小为21xC的张量。对于任意大小的feature map经过这些操作都可以得到固定大小的张量。
六、ROI池化
RoI即Region of Interest,RoI池化是空间金字塔池化的一种特殊形式。
在目标检测以前的方法中,使用selective search生成候选框,这些候选框是在特征提取网络前就生成了,但经过特征提取后该框的边界不再是一个整数,例如,对于一个输入为800x800的图片,其中有一个665x665的框内框中一条狗,经过有五次池化的特征提取网络后该框的区域变为了(665/32)(665/32)=20.8720.87的区域,因此RoI经过了第一次量化,对这个边界进行取整为20,而分类网络的输入固定大小为7x7。因此将20x20的区域分成7x7块,由于20/7=2.86也不是整数,因此第二次量化,取2。然后在分块上进行最大池化生成一个7x7的大小。具体如上图所示。
这种方法经过两次量化得到的RoI于原始的RoI有了一定的偏差,当候选框比较大时,这个偏差影响不会很大,但候选框本身比较小时,这个偏差相对来说比较大,严重影响结果。
七、其它类型的池化
重叠池化(Overlapping Pooling):一般而言,池化的窗口大小等于步长,因此池化作用区域不存在重合部分。所谓重叠池化,即池化窗口大小大于步长,池化作用区域存在重合部分,这种池化也许有一定的效果。
随机池化(Stochastic Pooling):在一个池化窗口内对feature map的数值进行归一化得到每个位置的概率值,然后按照此概率值进行随机采样选择,即元素值大的被选中的概率也大。该池化的优点是确保了特征图中非最大响应值的神经元也有可能进入下一层被提取,随机池化具有最大池化的优点,同时由于随机性它能够避免过拟合。
全局自适应池化:其作用也是对于任意大小的feature map,都可以输出指定的大小。这背后的原理不知是否与RoI池化类似,即对于输入大小为HxW的feature map,指定输出大小为7x7,我猜测其可能就是将HxW分成7x7块再进行最大池化或平均池化。