Global Average Pooling

CNN的变种有很多,除了CNN进化史上经典的那几种Net,还有一些网络根据实际问题的不同需求,对其中某些Layer进行修改。

本文的问题源于一篇关于肺部CT的CNN的文章(Shuo Wang, et al. Predicting EGFR mutation status in lung adenocarcinoma on computed tomography image using deep learning. European Respiratory Journal Mar 2019, 53 (3) 1800986)。附件中将CNN得到的特征进行了单因素分析,于是疑惑其如何提取的特征。追其方法引用文献,找到另一篇文章(Selvaraju RR, et al. Grad-CAM: Visual Explanations from Deep Networks via Gradient-Based Localization. In: 2017 IEEE International Conference on Computer Vision (ICCV); 2017; 2017. p. 618-626.)。文中提到:

Reall that CAM produces a localization map for an image classification CNN with a specific kind of architecture where global average pooled convolutional feature maps are fed directly into softmax. Specifically, let the penultimate layer produce K feature maps. These feature maps are then spatially pooled using Global Average Pooling (GAP) and linearly transformed to produce a score Sc for each class c.

简而言之,就是在倒数第二层进行改进(用GAP替代FC),使用GAP将倒数第三层的输出转化成特征值。

由此,在网上找了一些GAP的介绍,此处转载一篇还可以的博客:Global average Pooling

 

Global Average Pooling

这个概念出自于 network in network 。主要是用来解决全连接的问题,其主要是是将最后一层的特征图进行整张图的一个均值池化,形成一个特征点,将这些特征点组成最后的特征向量,进行softmax中进行计算。

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

      Global Average Pooling_第1张图片

      上图展示的是对比全连接与全局均值池化的差异

原文中介绍这样做主要是进行全连接的替换,减少参数的数量,这样计算的话,global average pooling层是没有数据参数的。这也与network in network 有关,其文章中提出了一种非线性的 类似卷积核的mlpconv的感知器的方法,计算图像的分块的值,可以得到空间的效果,这样就取代了pooling的作用,但是会引入一些参数,但是为了平衡,作者提出了使用global average pooling。

下面是network in network 中的摘取

      Global Average Pooling_第2张图片

下图是是一个基于MLP的局部计算,最后使用global average pooling 的network in network 的结构图

      Global Average Pooling_第3张图片

NOTE.

GAP和GMP都是将参数的数量进行缩减,这样一方面可以避免过拟合,另一方面这也更符合CNN的工作结构,把每个feature map和类别输出进行了关联,而不是feature map的unit直接和类别输出进行关联。

差别在于,GMP只取每个feature map中的最重要的region,这样会导致,一个feature map中哪怕只有一个region是和某个类相关的,这个feature map都会对最终的预测产生很大的影响。而GAP则是每个region都进行了考虑,这样可以保证不会被一两个很特殊的region干扰。这篇论文有更详细的说明。

 

借鉴自这个方法,其实对于每个卷积层的输出,都可以用类似的方法得到特征值。当然,最后的卷积层出来的特征最有价值啦。

 

参考资料:

Shuo Wang, et al. Predicting EGFR mutation status in lung adenocarcinoma on computed tomography image using deep learning. European Respiratory Journal Mar 2019, 53 (3) 1800986

Selvaraju RR, et al. Grad-CAM: Visual Explanations from Deep Networks via Gradient-Based Localization. In: 2017 IEEE International Conference on Computer Vision (ICCV); 2017; 2017. p. 618-626.

CSDN博客 Global average Pooling

你可能感兴趣的:(深度学习)