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层是没有数据参数的。这也与network in network 有关,其文章中提出了一种非线性的 类似卷积核的mlpconv的感知器的方法,计算图像的分块的值,可以得到空间的效果,这样就取代了pooling的作用,但是会引入一些参数,但是为了平衡,作者提出了使用global average pooling。

下面是network in network 中的摘取

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

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

Global Average Pooling相关推荐

  1. Global Average Pooling对全连接层的可替代性分析

    Global Average Pooling对全连接层的可替代性分析 原创  2017年08月24日 15:54:22

  2. Global Average Pooling对全连接层的可替代性分析(转)

    版权声明:本文为williamyi原创,未经许可禁止转载或直接挪作他用! https://blog.csdn.net/williamyi96/article/details/77530995 在NIN ...

  3. Global Average Pooling全局平均池化的一点理解

    Traditional Pooling Methods 要想真正的理解Global Average Pooling,首先要了解深度网络中常见的pooling方式,以及全连接层. 众所周知CNN网络中常 ...

  4. 深度学习方法(十):卷积神经网络结构变化——Maxout Networks,Network In Network,Global Average Pooling

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入. 最近接下来几篇博文会回到神经网络结构 ...

  5. 深度学习基础系列| Global Average Pooling是否可以替代全连接层?

    Global Average Pooling(简称GAP,全局池化层)技术最早提出是在这篇论文(第3.2节)中,被认为是可以替代全连接层的一种新技术.在keras发布的经典模型中,可以看到不少模型甚至 ...

  6. Global Average Pooling与FC、Global Max Pooling的比较

    原文 Global Average Pooling(简称GAP,全局池化层)技术最早提出是在这篇论文(第3.2节)中,被认为是可以替代全连接层的一种新技术.在keras发布的经典模型中,可以看到不少模 ...

  7. Global average Pooling解析

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

  8. 全局平均池化(Global Average Pooling)

    出处:Lin M, Chen Q, Yan S. Network in network[J]. arXiv preprint arXiv:1312.4400, 2013. 定义:将特征图所有像素值相加 ...

  9. Global Average Pooling、Global Max Pooling

    https://www.zhihu.com/question/358913301 https://blog.csdn.net/qq_16234613/article/details/79520929 ...

最新文章

  1. android 搜索框 github,Github上Android简单好用的提示框推荐 | 夕辞
  2. Linux查看端口号是否使用
  3. 监督学习应用与梯度下降
  4. 计算机网络:TCP和UDP的对比
  5. htmlspecialchars() 函数过滤XSS的问题
  6. java字符流输出流_JAVA语言之IO流字符串输入输出流
  7. 《最后的狮子》纪录片观后
  8. hdoj2045:LELE的RPG难题(递推)
  9. 2015-11-23 12:50:55
  10. 把CSV文件导入到MySQL数据库中
  11. java计算机毕业设计飞机航班信息查询系统演示视频2021MyBatis+系统+LW文档+源码+调试部署
  12. 公交线路查询系统 C++实现 图
  13. 使用matlab对输入数据进行卡尔曼滤波
  14. mysql 多表查询 优化_MySql多表查询优化
  15. 计算机基础知识---位运算的简介
  16. 【Python数据分析及可视化】美国犯罪监禁数据分析与可视化
  17. 【Linux】USB驱动程序
  18. 企业做好私域电商的六大关键点
  19. 3b1b视频《奥数级别的数数问题》笔记
  20. 概率图模型推断之Belief Propagation

热门文章

  1. HDU 3234 Exclusive-OR [并查集]
  2. Navicat Premium 12:实现两个数据库结构对比和同步
  3. Verilog 中需要使用原语的情况
  4. 来自“啄木鸟社区”的奋起宣言
  5. #002 WebStrom Live Templete 使用说明
  6. [转载]茶话之四:政和工夫英伦打李鬼
  7. Python识别二维码的两种方法(cv2)
  8. 轻松实现离线地图-离线地图-地图瓦片下载
  9. eclipse+装android+studio,EclipseAndroid Studio安装教程
  10. 太极链资讯,拜占庭将军问题