【阅读笔记】《Grad-CAM: Why did you say that? ...》

2023-12-12 18:08
文章标签 笔记 阅读 say cam grad

本文主要是介绍【阅读笔记】《Grad-CAM: Why did you say that? ...》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文记录了博主阅读论文《Grad-CAM: Why did you say that? Visudal Explanations from Deep Networks via Gradient-based Localization》的笔记,代码,demo。更新于2019.05.31。

文章目录

  • Abstract
  • Introduction
  • Related Work
  • Approach
  • Weakly-supervised Localization
  • Evaluating Visualizations
    • Evaluating Class Discrimination
    • Evaluating Trust
    • Faithfulness vs. Interpretability
  • Analyzing Failure Modes for Image Classification
  • Image Captioning and VQA
    • Image Captioning
    • Visual Question Answering
  • Conclusion
  • Appendix
    • A. Introduction
    • B. Experimental Results
      • B.1 Image Classification
      • B.2 Image Captioning
      • B.3 Visual Question Answering (VQA)
    • C. Ablation studies
      • C.1 Varying mask size for occlusion
      • C.2 Grad-CAM on different layers
      • C.3 Design choices
        • C.3.1 Importance of ReLU in (4) in main paper
        • C.3.2 Absolute value of each derivative in (3) in main paper
        • C.3.3 Global Average Pooling vs. Global Max Pooling
        • C.3.4 Effect of different ReLU on Grad-CAM

Abstract

提出了一个通过观察对于估计更重要的区域,实现将基于神经网络的模型变得更灵活的方法。这个方法称为Gradient-weighted Class Activation Mapping (Grad-CAM),利用了传递到CNN最后一层的与类别相关的梯度信息来生成图像中重要区域的粗略位置信息。Grad-CAM是CAM的一个严格范化(strict generalization)。CAM局限于CNN模型的有限类别(narrow class),而Grad-CAM能够使用人和基于CNN模型。【意思就是Grad-CAM不受限于网络模型而CAM受限】。论文中还展示了Grad-CAM如何能够结合现有的像素级显示(pixel-space visualizations,比如Guided Backpropagation)来生成更高分辨率的分类器(Guided Grad-CAM)。

论文作者还生成了Grad-CAM和Guided Grad-CAM的视觉解释来帮助理解图像分类、图像说明(iamge captioning)和视觉问题回答(VQA,visual question answering)模型。在图像分类模型的上下文中,本文的显示(a)考察这些模型的失败情况(对于看似无法理解的估计其实有合理的解释);(b)在ILSVRC-15弱监督位置任务中的网络模型能够实现更好的pixel-space gradient visualizations(比如Guided Backpropagation和Deconvolution)。对于图像说明和VQA,本文的模型在莫种程度上证明了即使不用真值image-text pairs训练,CNN+LSTM模型通常也能够实现更好的定位。

最后,我们设计并实施了调查,来看显示Guided Grad-CAM解释能否帮助用户建立对深度学习网络的估计结果的新人。有趣的是,他们证明了Guided Grad-CAM能够帮助没有受训过的用户,只依靠不同的解释,成功辨别强网络和弱网络。

Introduction

Related Work

Approach

Class Activation Mapping(CAM)
CAM中对指定类型的图像分类结构提取坐标图,其中要求最后一层全局平均池化的结果直接送入softmax。具体而言,假设倒数第二层生成了K个宽为 u u u高为 v v v的特征图 A k ∈ R u × v A^k\in\mathbb R^{u\times v} AkRu×v。这些特征图随后用全局平均池化(Global Average Pooling, GAP)和线性变换生成对c个类别的score y c y_c yc
在这里插入图片描述
为了生成对于类别c的位置图 L C A M c ∈ R u × v L_{CAM}^c\in\mathbb R^{u\times v} LCAMcRu×v,CAM计算最后一层权重所学习到的最终特征图的线性组合:
在这里插入图片描述
用于现实目的,这个被归一化在0到1之间。为了将CAM应用在在最后一层之前使用了多层全连接层的网络上,全连接层被替换成卷积层,重新训练网路。


Gradient-weighted Class Activation Mapping
为了对一般结构得到类别敏感的位置图Grad-CAM L G r a d − C A M c ∈ R u × v L^c_{Grad-CAM}\in\mathbb R^{u\times v} LGradCAMcRu×v,文中计算了一个卷积层 y c y^c yc相对于特征图 A A A的梯度,即 ∂ y c ∂ A i j k \frac{\partial y^c}{\partial A^k_{ij}} Aijkyc。这个梯度遵循全局池化回去得到权重 α k c \alpha^c_k αkc
在这里插入图片描述
这个权重 α k c \alpha^c_k αkc代表神经网络从 A A A中传递回来的部分线性(partial linearization),并获取了特征图 k k k对于目标类别KaTeX parse error: Double superscript at position 4: c^2^̲的重要性。凭经验,用全局平均池…y^c$不需要是CNN图像分类器的类别score,而可以是任何可微激活(differentiable activation)。

与CAM相同,Grad-CAM的热度图也是一个特征图的加权组合,但是后面跟了ReLU:
在这里插入图片描述
得到的热度图的尺寸与卷积特征图尺寸是相同的(对于VGG和AlexNet的最后一层是14x14)。为了实现下图中的显示(1c、1h等), L G r a d − C A M c L^c_{Grad-CAM} LGradCAMc被归一化到0到1之间。
在这里插入图片描述
对于CAM可使用的网络结构(即全卷积网络的输出为 A A A,后面接一个全局平均池化和softmax),CAM中调用的权重 w k c w_k^c wkc是精确的 α k c \alpha^c_k αkc。除了上式中的ReLU使得Grad-CAM成为CAM的范化。ReLU的动机是:我们只关心对于结果有正面影响的特征,即像素点的intensity应该为了增加 y c y^c yc而增加。既然特征图 A A A已经是非负的了,就用了上式来强化这些像素点。正如推测,在没有ReLU的情况下,定位图有时候会在关注区域以外也进行标注,从而影响精度(见支撑材料)。直观上来说,负值代表像素可能属于另一个类别的图像,因此需要用ReLU将它们评比出去。上图中的1c和1h分别代表Grad-CAM对于猫和狗的可视化结果(更多结果见支撑材料)。

这个ReLU也使得Grad-CAM可以适用于除了分类以外的任务,比如温中实验的图像标注和视觉问答。


Guided Grad-CAM
尽管Grad-CAM可视化是类别可分的而且能够不错地定位相关图像区域,但是它们缺少了显示fine-grained importance的能力,比如pixel-space梯度可视化方法(Guided Back-propagation和Deconvolution)。比如上如中的1c,Grad-CAM能够轻松定位猫的位置,但是在低分辨率下,热度图很难解释为什么这个实例是tiger cat。为了结合这两种方式的优势,这里将Guided Backpropagation和Grad-CAM可视化通过point-wise乘法整合在一起(先把 L C A M c L^c_{CAM} LCAMc用双线性插值上采样到输入图像分辨率)。下图左下角显示这个融合过程。用Deconvolution替代Guided Backpropagation能够得到相似的结果,但是作者发现Deconvolution有artifacts,所以这里选择了Guided Backpropagation(无噪声)。
在这里插入图片描述
根据以往的研究结果,作者默认最后一层中有着最高级的语义特征和最细节的空间信息。下图显示了在不同卷积层下的效果(通过替换特征图 A A A)来证明这个假设。
在这里插入图片描述

Weakly-supervised Localization

这一部分平谷了Grad-CAM在图像分类上的定位能力(同时提供bounding box和类别标签)。与CAM的做法相同,给定一个图像,先用网络获取类别估计。随后,用Grad-CAM定位每个估计类别,再用阈值(最大值的15%)将定位图二值化。最后,在单个最大的分割周围生成bounding box。

下表是结果:
在这里插入图片描述

Evaluating Visualizations

实验中用到了PASCAL VOC 2007训练集下fine-tuned的VGG和AlexNet CNNs,同时用到验证集生成可视化结果。

Evaluating Class Discrimination

在这里插入图片描述

Evaluating Trust

在这里插入图片描述

Faithfulness vs. Interpretability

Analyzing Failure Modes for Image Classification

在这里插入图片描述

Image Captioning and VQA

Image Captioning

在这里插入图片描述

Visual Question Answering

在这里插入图片描述

Conclusion

Appendix

A. Introduction

B. Experimental Results

B.1 Image Classification

在这里插入图片描述

B.2 Image Captioning

B.3 Visual Question Answering (VQA)

在这里插入图片描述

C. Ablation studies

C.1 Varying mask size for occlusion

在这里插入图片描述

C.2 Grad-CAM on different layers

在这里插入图片描述

C.3 Design choices

在这里插入图片描述

C.3.1 Importance of ReLU in (4) in main paper
C.3.2 Absolute value of each derivative in (3) in main paper

在这里插入图片描述

C.3.3 Global Average Pooling vs. Global Max Pooling

在这里插入图片描述

C.3.4 Effect of different ReLU on Grad-CAM

在这里插入图片描述

这篇关于【阅读笔记】《Grad-CAM: Why did you say that? ...》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/485498

相关文章

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个