Caffe入门:global pooling (全局池化)

“global pooling”就是pooling的 滑窗size 和整张feature map的size一样大。这样,每个 W×H×C 的feature map输入就会被转化为 1×1×C输出。因此,其实也等同于每个位置权重都为 1/(W×H)的FC层操作。也等同于输入一个tensor,输出一个vector。

“global pooling”在滑窗内的具体pooling方法可以是任意的,所以就会被细分为“global avg pooling”、“global max pooling”等。

        由于传统的pooling太过粗暴,操作复杂,目前业界已经逐渐放弃了对pooling的使用。替代方案 如下:

1> 采用 Global Pooling 以简化计算;

2> 增大conv的 stride 以免去附加的pooling操作。

 

1、全局平均池化

      全局平均池化(Global average Pooling)由 M. Lin, Q. Chen, and S. Yan. Network in network. Interna-tional Conference on Learning Representations, 2014.提出来。     

       所谓的全局就是针对常用的平均池化而言,平均池化会有它的filter size,比如 2 * 2,全局平均池化就没有size,它针对的是整张feature map

     

备注:右图中全连接层的乘法次数为4*4=16。

因此,一个feature map 全局平均池化后得到一个值,再进行全连接(softmax)就会少很多参数。

解释一下上图:

       最后的一层的数据是4个4*4的特征图,global average pooling是将每一张特征图计算所有像素点的均值,输出一个数据值,这样4 个特征图就会输出4个数据点,将这些数据点组成一个1*4的向量的话,就成为一个特征向量,就可以送入到softmax的分类中计算了。

        这个过程中仅在计算平均数时涉及乘法,全连接层中的乘法运算就相对未使用全局平均池化减少了很多。

2、全局最大池化

     与全局平均池化类似,把均值运算改为取最大值的运算即可。

发布了185 篇原创文章 · 获赞 873 · 访问量 127万+

猜你喜欢

转载自blog.csdn.net/duan19920101/article/details/102619396