使用Python进行Grad-CAM ++:深度卷积网络的改进视觉解释
在Grad-CAM ++和Guided Grad-CAM ++显著图中,**狗(多个对象)的可视化效果更好(第一行和第二行),并且该类的整个区域都处于局部状态(第三行和第四行),**而Grad-CAM热图仅显示部分覆盖范围。
在该故事由印度海得拉巴技术学院和Cisco Systems撰写,名为Grad-CAM ++:深度卷积网络的改进视觉解释,Grad-CAM ++。在本文中:
Grad-CAM++,基于Grad-CAM,提供CNN模型预测的更好的视觉的解释,在以下方面:目标定位以及在单个图像中的多个对象实例的说明发生。
Grad-CAM:https://sh-tsang.medium.com/review-grad-cam-visual-explanations-from-deep-networks-via-gradient-based-localization-wsol-edab5fd4fd0a
最后一个卷积层特征图的正偏导数相对于特定类别分数的权重组合作为权值,用于生成相应类别标签的直观说明。
这是2018年WACV上的一篇论文,被引用超过260次。
Sik-Ho Tsang@Medium:https://sh-tsang.medium.com/
CAM技术系列已被许多SOTA论文广泛使用,例如 EfficientNet(它使用 CAM 来直观地解释模型。值得阅读这一系列论文。
EfficientNet:https://sh-tsang.medium.com/efficientnet-rethinking-model-scaling-for-convolutional-neural-networks-image-classification-ef67b0f14a4d
CAM:https://sh-tsang.medium.com/cam-learning-deep-features-for-discriminative-localization-weakly-supervised-object-7cab7b31f972
目录
CAM简介
Grad-CAM简介
Grad-CAM ++
实验结果
1. CAM简介
在CAM中,需要修改CNN,因此需要重新训练。全连接层需要删除。
在softmax之前使用全局平均池(GAP)。
特定类c的最终分类得分Yc可以写为其全局平均集合最后卷积层特征图Ak的线性组合:
然后,将类特定显著性图Lc中的每个空间位置(i,j)计算为:
Lcij与特定类c的特定空间位置(i,j)的重要性直接相关,因此可作为网络预测类的视觉解释。
2. Grad-CAM简介
Grad-CAM是为解决CAM问题而构建的,因此不需要重新训练或架构修改。
Grad-CAM支持计算权重。
特征图Ak和类c的权重wck定义为:
其中Z是常数(激活图中的像素数)。
因此,Grad-CAM可以与任何深度CNN一起使用,其中最终的Yc是激活映射Ak的可微函数。
为了获得细粒度的像素比例表示,对 Grad-CAM 显著性图进行上采样,并通过点向乘法与引导反向传播生成的可视化进行更新采样和融合。这种可视化被称为 Guided Grad-CAM。
但是,如果图像包含多次出现的同一类,则 Grad-CAM 无法正确定位图像中的对象。
偏导数的未加权平均值的另一个结果是,局部化通常并不对应于整个对象,而是对应于对象的位和部分。
这可以显示在顶部的第一个图中。
3. Grad-CAM ++
如上所述,CAM需要进行网络修改。
Grad-CAM通过除以Z(即特征图的大小)来估计权重。如果响应较小或响应面积较小,则权重会变小。
Grad-CAM ++通过更复杂的反向传播解决了上述问题:
像这样:
如果αkcij = 1 / Z,则Grad-CAM ++简化为Grad-CAM的公式。
因此,顾名思义,Grad-CAM ++可以视为Grad-CAM的广义形式。
(我仅对Grad-CAM ++进行了简要回顾。本文描述了更详细的方程式推导。如果有兴趣,请随时阅读本文。)
与输入图像 I 相比,很明显,图像中对象的空间足迹对于Grad-CAM的可视化效果很重要。
因此,如果一个物体有轻微不同的方向或视图(或对象激发不同的特征映射的部分),不同的特征映射可能会被不同的空间足迹激活,足迹较小的特征图会在最终的显著性图中消失。
可以如上图的示例所示。面积较小的特征图往往会获得较小的值(0.26和0.13),因此重要性就越低。
但是使用Grad-CAM ++可以解决上述Grad-CAM问题。示例中的所有值均为1.0,这同样重要。
与Grad-CAM相似,要生成最终的显著图,我们对上采样的(到图像分辨率)显著图Lc与由引导反向传播生成的像素空间可视化进行逐点乘法。因此生成的表示称为Guided Grad-CAM ++。
4.实验结果
4.1 物体识别
ImageNet验证集上的Grad-CAM ++和Grad-CAM:
PASCAL VOC 2007验证集中的Grad-CAM ++和Grad-CAM
使用VGG -16。
Grad-CAM ++在生成视觉说明时采用的逐像素加权更适合于模型,并且与模型的预测一致。
询问13位人类受试者中,哪一位更信任基础模型。
Grad-CAM ++的得分为109.69,而Grad-CAM的得分为56.08。剩下的84.23则被受试者标记为“相同”。
4.2 目标定位
在 PASCAL VOC 2012 val 上进行对象本地化的IoU结果:
*结果表明,在该指标上,Grad-CAM ++也比Grad-CAM有所改进。尤其是,IoU的改善随着的更大的值而增加。δ,即生成二进制映射的阈值。
与Grad-CAM ++相比,CAM的对象热图通常具有较低的强度值。
4.3 知识精炼
在CIFAR-10数据集上训练一个WRN-40-2教师网络(2.2 M参数)。为了训练一个学生WRN-16-2网络(0.7 M参数),训练一个修正的Lexp_student损失,它是标准交叉熵 Lcross_ent 损失和可解释性损失 Linterpret 的加权组合:
其中Linterpret定义为:
Linterpret中的L基于由Grad-CAM或Grad-CAM ++发现的权重。
Grad-CAM ++提供了比Grad-CAM更好的基于解释的知识精炼。
所考虑的学生的参数数量减少了68.18%。
与仅在VOC 2007训练集上训练学生网络相比,平均精度(mAP)大约提高了35%
学生网络是一个较浅的11层CNN,具有27M个参数(减少了80%)。
4.4 图像字幕和3D动作识别
这里使用的架构是Show-and-Tell模型,它包括一个CNN来编码图像,然后是一个LSTM来生成字幕。
Grad-CAM ++比Grad-CAM生成更完整的热图。
Grad-CAM ++的可视化可以洞察网络关注的是什么。
在Sports-1M数据集上训练了C3D模型。
在所有指标上,Grad-CAM ++的性能均优于Grad-CAM。
Grad-CAM ++生成的解释在语义上更相关。
Grad-CAM ++倾向于强调视频的上下文(类似于图像),因为视频说明中的亮度较差,而最有区别的部分则较明亮。
参考文献
[2018 WACV] [Grad-CAM++] Grad-CAM++: Improved Visual Explanations for Deep Convolutional Networkshttps://arxiv.org/abs/1710.11063)
弱监督目标定位(WSOL)
2014 [Backprop]
https://sh-tsang.medium.com/backprop-visualising-image-classification-models-and-saliency-maps-weakly-supervised-94392011b34a
2016 [CAM]
https://sh-tsang.medium.com/cam-learning-deep-features-for-discriminative-localization-weakly-supervised-object-7cab7b31f972
2017 [Grad-CAM] [Hide-and-Seek]
https://sh-tsang.medium.com/review-grad-cam-visual-explanations-from-deep-networks-via-gradient-based-localization-wsol-edab5fd4fd0a
https://sh-tsang.medium.com/hide-and-seek-weakly-supervised-object-localization-action-localization-a1ea4a028d01
2018 [Grad-CAM++] [ACoL] [SPG]
https://sh-tsang.medium.com/review-grad-cam-improved-visual-explanations-for-deep-convolutional-networks-weakly-760264e66bc6
https://sh-tsang.medium.com/acol-adversarial-complementary-learning-weakly-supervised-object-localization-e112e5343f
https://sh-tsang.medium.com/review-spg-self-produced-guidance-weakly-supervised-object-localization-8400d2f57461
2019 [CutMix] [ADL]
https://sh-tsang.medium.com/paper-cutmix-regularization-strategy-to-train-strong-classifiers-with-localizable-features-5527e29c4890
https://sh-tsang.medium.com/review-adl-attention-based-dropout-layer-weakly-supervised-object-localization-bebf5ab21457
2020 [Evaluating WSOL Right] [SAOL]
https://sh-tsang.medium.com/review-evaluating-weakly-supervised-object-localization-methods-right-weakly-supervised-object-b46d6ebc51fc
https://sh-tsang.medium.com/review-saol-spatially-attentive-output-layer-image-classification-weakly-supervised-object-742e2eeb3226
如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 mthler」,每日朋友圈更新一篇高质量博文。
↓扫描二维码添加小编↓
使用Python进行Grad-CAM ++:深度卷积网络的改进视觉解释相关推荐
- 深度卷积网络CNN与图像语义分割
转载请注明出处: http://xiahouzuoxin.github.io/notes/html/深度卷积网络CNN与图像语义分割.html 级别1:DL快速上手 级别2:从Caffe着手实践 级 ...
- 04.卷积神经网络 W2.深度卷积网络:实例探究(作业:Keras教程+ResNets残差网络)
文章目录 作业1:Keras教程 1. 快乐的房子 2. 用Keras建模 3. 用你的图片测试 4. 一些有用的Keras函数 作业2:残差网络 Residual Networks 1. 深层神经网 ...
- 深度卷积网络:第二课
深度卷积网络:第二课 基本概念 对数据集合的切分 一个训练的过程: 学习的种类 有监督学习:回归.分类.标签.排序.Seq2Seq 无监督学习:聚类.降维.生成模型.GAN.自编码.推荐 半监督学习 ...
- 深度卷积网络详细解释
深度卷积网络 涉及问题: 1.每个图如何卷积: (1)一个图如何变成几个? (2)卷积核如何选择? 2.节点之间如何连接? 3.S2-C3如何进行分配? 4.16-120全连接如何连接? 5.最后ou ...
- 吴恩达深度学习笔记11-Course4-Week2【深度卷积网络:实例探究】
深度卷积网络:实例探究 实例探究(Case studies) 为什么要进行实例探究(Why look at case studies?) 从中获得灵感,借鉴一些效果很好的网络来完成自己的任务. 一.经 ...
- 深度学习笔记 第四门课 卷积神经网络 第二周 深度卷积网络:实例探究
本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...
- 经典论文复现 | 基于深度卷积网络的图像超分辨率算法
过去几年发表于各大 AI 顶会论文提出的 400 多种算法中,公开算法代码的仅占 6%,其中三分之一的论文作者分享了测试数据,约 54% 的分享包含"伪代码".这是今年 AAAI ...
- 4.4)深度卷积网络:人脸识别和神经风格转换
目录 1)What is face recognition? 2)One-shot learning 3)Siamese network 4)Triplet Loss(重点) 5)Face Verif ...
- Deep Image Prior:深度卷积网络先天就理解自然图像
点击我爱计算机视觉标星,更快获取CVML新技术 昨天分享了文章ICCV 2019 | Adobe 无需大量数据训练,内部学习机制实现更好的视频修补,其中借鉴的Deep Image Prior (DIP ...
最新文章
- 基础数据仓库环境搭建(三)Zookeeper的安装与配置和操作
- C++远程dll注入到QQ聊天工具
- hbase 学习(十五)缓存机制以及可以利用SSD作为存储的BucketCache
- sql重命名数据库_为什么要为SQL单元测试巧妙地命名数据库对象
- 【CSS3】---last-of-type选择器+nth-last-of-type(n)选择器
- 03day输入及转义符的使用
- ue4模型为啥这么亮_UE4中的HLOD和Proxy
- Linux低分辨率下时钟中断调用流程
- Apache Shiro官方构架文档中文翻译
- 微信打开网址后自动调用手机自带默认浏览器或提示选择浏览器打开如何实现
- 《一天搞懂深度学习》下载
- php转换ofd文件格式,OFD文件怎么转换成图片格式
- 计算机设备码的功能,电脑机器码,详细教您电脑机器码修改软件
- (XWZ)的python学习笔记Ⅵ——进程和线程
- The server cannot or will not process the request due to something that is perceived to be a client
- 苹果强制使用HTTPS传输后APP开发者必须知道的事
- JDK源码解析---Short
- 如何快速搭建公司网站?
- Tcp为什么是4次挥手呢?为什么是3次握手,不能是3次挥手呢?
- 产品设计体会(4014)记一次产品整合预研
热门文章
- 通俗易懂,Android视图系统的设计与实现
- web调用IC卡读卡器开发第八章--DES和3DES加解密
- Android视频压缩实现,基于Android系统的H.264视频压缩技术实现
- 苹果mac休眠快捷键_只有Mac上才有的免费软件清单,个个好用到爆!
- 学习Python开发数据恢复工具(1)
- 爱思助手更新后无法连接服务器,刷机提升 无法连接到苹果服务器 怎么解决
- 06Launch文件
- python根据经纬度转换详细地址_基于python实现地址和经纬度转换
- Threejs—sketch 素描特效实现
- 【汇智学堂】-JS菜鸟版过河小游戏(之八---补充返程判断)