图像分类中的max pooling和average pooling


         feature coding之后的那步pooling(bag-of-words framework下),pooling可以用在CNN和BoW中(CNN和BoW是两套系统),两个不太一样。CNN的那个pooling主要目的是降维;但是,在BoW中,特征编码之后做pooling,更多的是因为不做此操作之后的分类就无法继续进行了。

缘由还要从feature coding讲起。最初编码的方式比较直接(VQ,矢量量化),这样计算的结果本身是一个统计直方图,也就是向量,因此不需要做什么处理,直接送到SVM里面就完了。但是由于特征本身语义不高,这样的编码方式会造成比较大的误差。2009年,图像方面的稀疏编码被提了出来(Jianchao Yang, Kai Yu, Yihong Gong, and Thomas Huang.  Linear spatial pyramid matching using sparse coding for image classification . CVPR2009.)掀起了一股特征编码的潮流(集中在09-10这个阶段)。稀疏编码减小了量化误差,效果也十分显著(14%的正确率提升),但是经过稀疏编码得到的结果是一个矩阵而不是向量(具体可以看paper),矩阵的两个维度分别是word和location,这个矩阵是无法直接拿来分类的,所以需要对它做pooling变成一个向量,这就是题主所说的pooling。

在刚开始的pooling中,sum就是对每一列求和,max就是求最大,因为矩阵里面的数值强度表现了这个词本身的响应,所以对响应不同的操作会得到不同的结果。上面的那篇文章也比较了一些pooling的效果,但是没有探讨哪种比较好,或者哪种为什么好。

后来有一些工作开始思考什么样的pooling比较好以及为什么好。比如Y. Boureau, J. Ponce, Y. LeCun A Theoretical Analysis of Feature Pooling in Visual Recognition, ICML, 2010,P. Koniusz, F. Yan, K. Mikolajczyk Comparison of Mid-Level Feature Coding Approaches And Pooling Strategies in Visual Concept Detection. CVIU, 117(5):479-492, 2013。 CVIU的这篇文章提出了AxMin的方法,应该是比较新的(是不是最新不太确定)。也有尝试探讨什么样的pooling好以及为什么好的:Protected Pooling Method Of Sparse Coding In Visual Classi cation,ICCVG,2014(会很水而且写得非常naive,只供参考)。不过pooling本身对分类系统的影响不大,2%以内差不多。

总的来说pooling确实起到了整合特征的作用,因为不同的方法得到的结果有些差别,不过我理解主要动机还是“不池化就没法继续了”这种感觉。或许有不对的地方,希望大家有帮助~


参考文献:

http://www.zhihu.com/question/23437871  ; 知乎: 水哥重二病患者;

http://blog.csdn.net/stdcoutzyx/article/details/41596663  ;卷积神经网络;




你可能感兴趣的:(图像处理)