【池化选择】全局最大池化和全局平均池化的实验分析

根据MIT的LearningDeepFeaturesforDiscriminativeLocalization论文中的描述,在使用类响应图classactivationmapping(CAM)对比全局平均池化Globalaveragepooling(GAP)vs全局最大池化globalmaxpooling(GMP):类响应图示例:…

大家好,又见面了,我是你们的朋友全栈君。

根据MIT的 Learning Deep Features for Discriminative Localization论文中的描述,在使用类响应图class activation mapping (CAM) 对比全局平均池化Global average pooling (GAP) vs 全局最大池化global max pooling (GMP):

类响应图示例:
在这里插入图片描述
图中高亮区域就是根据label的注意图高响应区域

具体得到的这个相应区的方法是

在这里插入图片描述
1) 训练主干网络得到特征图
2) 进行全局池化(图中用的GAP,也可以使用GMP)
3) 对全局池化的结果做全连接得到全连接参数 w
4) 把全连接参数作为权重对特征图进行加权求和 上图最下方的公式

根据对图像的研究发现,不同的类别的特征图相应区域不一样,原始的卷积网络具有一定的定位能力。而且如下图所示,不同类别的注意力区域也大不相同也呈现出非常准确的特征区域。

模型可以预测出不同类别概率,根据类注意图发现。即使是错误预测的类别,比如上图预测狗狗预测成了人,但是人也在图中特征区域也是定位在了人的身上。

说了这么多就是论证GAP和GMP具有定位能力。那么具体那个好呢

先看一组实验
在这里插入图片描述

我们发现相比GAP,GMP在同一个类别上的top1 和top5 的损失都有所升高。

原因分析:
GAP 是对全局求平均,GAP LOSS 促使网络区分辨每个类别的程度,找到所有的目标可区分区域进行预测。
GMP 是对全局求最大,只去找分数最高的那个区域。而去忽略其他分数低的区域

因此在定位方面,GAP 比GMP要好

GAP outperforms GMP for localization.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/127458.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月9日 下午9:20
下一篇 2022年4月9日 下午9:20


相关推荐

  • Android Binder机制介绍

    Android Binder机制介绍转载于 http www cnblogs com zc9527 p 5638688 html 备注 该博客简单介绍类型的做过 Android 开发的同学可能有些体会 入门初期 工作内容主要是实现各式各样的 UI 界面 以及实现应用的业务逻辑 在这个阶段 我们会逐渐熟悉 View 系统 逐渐学会实现各种各样的界面以及动画效果 再往后 当我们想更深入的学习 android 系统 比如学习 androi

    2026年3月18日
    1
  • JSP 九大内置对象及四个作用域详解

    JSP 九大内置对象及四个作用域详解JSP 中一共预先定义了 9 个内置对象 内置对象 又叫做隐含对象 不需要预先声明就可以在脚本代码和表达式中随意使用 request response session application out pagecontext config page exceptionreq 请求对象 类型 javax servlet ServletReque

    2026年3月20日
    2
  • 一些书籍和下载链接地址读研究生

    一些书籍和下载链接地址读研究生

    2022年1月7日
    48
  • spring cloud面试题_javaspring面试题

    spring cloud面试题_javaspring面试题Tags:JavaEE,Spring,面试题发表时间:2014-11-2915:03:53原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。比如:转自:Su的技术博客 原文地址:https://blog.verysu.com/article/119 这些Spring面试题是从尚硅谷http://www.atguigu.c…

    2022年10月14日
    3
  • 十进制转换成八进制(C++)

    十进制转换成八进制(C++)Description 用递归算法 把任一给定的十进制正整数转换成八进制数输出 Input 输入一个正整数 表示需要转换的十进制数 Output 输出一个正整数 表示转换之后的八进制的数 SampleInput1 方法 1 乱搞这种做法很有技术含量代码 include bits stdc h usingnamesp bits

    2025年11月25日
    5
  • d触发器q端的输出波形_D触发器、波形、代码(转)

    d触发器q端的输出波形_D触发器、波形、代码(转)在学习 verilog 之前 我们先学习一下 D 触发器以及它的代码 FPGA 的设计基础是数字电路 因此很多同学会认为我们要先学好数字电路之后 才学习 FPGA 但是 数字电路教材的内容很多 例如 JK 触发器 RS 触发器 真值表 卡诺图等 但是 这里的很多内容其实已经过时了 此外 对于 FPGA 的学习来讲 我们只用到了其中很少很少的一部分内容 如果没有数字电路的基础 我们建议就看一部分 知道 D 触发器就够了 那

    2025年6月15日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号