池化层的改进
从新的角度看池化层
池化可以看成是对滑动窗口内的**值(activation)线性加权,作用是降采样( downsampling)。具体的数学形式如下:
设F为池化函数,I为输入的特征图(FeatureMap), O为池化后的输出,考虑单通道情况下,分别表示输入和输出在坐标(x,y)处的**值,为池化窗口的索引集合,例如池化范围是,则。所有的池化方式可看作:
常用的池化层及缺点
average pooling —— .表示窗口内的所有**值权值相等。虽然综合考虑了所有值,但会模糊重要的特征。研究表明average pooling 效果通常不如 max pooling.
max pooling —— . maxpooling的前提假设是越重要的特征**值越大。很多时候这种情况并不能被满足。
stride convolution —— 跨步卷积通常步长大于等于2,可以等效成两步:第一步使用步长为1的卷积,第二步采样,将坐标是步长整数倍的保留,非整数倍的抛弃,即可以写成这种形式:。显然,这种抛弃固定位置的方法可能会丢失重要的特征.
Detaile-preserving pooling —— 前提假设是输入的细节处往往蕴含着重要的特征。于是精心设计一个F(I),使得输入的细节得以保留。缺点是有太强的先验知识,不具备普适性。
自适应池化
Local Importance-based Pooling —— 核心思想是将F(I)加入网络训练中。看图:
图片一目了然。exp函数是为了防止负数。乘法代表线性加权,除法是为了权值之和为1.
文章来源
LIP: Local Importance-based Pooling