可解释机器学习 Task04 - GradCAM深度学习可解释性分析

2019-09-03 Grad-CAM++ 原理及实现 GradCAM++ vs GradCAM 优点 定位更准确 更适合同类多目标的情况 原理 和gradcam一样,都基于假设: 某类的得分是权重和feature map点积而来。 Yc=∑kwkc⋅∑i∑jAi,jk Y^{c}=\sum_{k}w^{c}_{k}\cdot\sum_{i}\sum_{j}A_{i,j}^{k} Yc=k∑​wkc​⋅i∑​j∑​Ai,jk​ 热力图是由feat... 阅读详情

一、GradCAM算法简介

1.算法流程

  • 输入一张图片,经过与CAM算法相同的卷积层操作,到最后一层卷积层输出512个14*14的 feature map
  • 将卷积层输出结果输入到全连接层中,得到了1000个类别对应的线性预测分数logit,用 y c y^{c} yc表示
  • 求 y c y^{c} yc相对于512*14*14的梯度,得到512*14*14的偏导数,用GAP方法得到512个权重(核心步骤:用梯度代替GAP层)
  • 用512个权重与上述对应的 channel 相乘后相加,得到一个14*14的热力图
  • 将热力图通过ReLU函数,通过双线性插值的方法缩放回256*256,得到原图大小的图片

在这里插入图片描述

2.算法拓展

  • 可以用来做多方面的任务(图像分类、图像描述、视觉问答、强化学习……)
  • 与Guided Backpropagation(可以得到一种高分辨率细粒度的图像256256)结合,Grad-CAM得到的是1414的粗粒度的矩阵,将矩阵缩放置256*256后,将两种矩阵逐元素的做乘法,得到 Guided Grad-CAM 图像(既是高分辨率(256*256),又具有类别判别性)。

在这里插入图片描述

3.算法优点

  • 无需GAP层,无需修改模型结构,无需重新训练
  • 可分析任意中间层
  • 数学上是CAM的推广
  • 细粒度图像分类、Machine Teaching

4.算法缺点

  • 图像上有多个同类物体时,只能画出一块热力图
  • 不同位置的梯度值,GAP平均之后,影响是相同的
  • 梯度的传统问题:梯度饱和、梯度消失、梯度噪声
  • 权重大的channel,不一定对类别预测分数贡献大
  • 只考虑从后往前的反向传播梯度,没考虑前向预测的影响
  • 深层生成的粗粒度热力图和浅层生成的细粒度热力图 都不够精准

在这里插入图片描述

二、Grad-CAM++

1.解决问题

  • 图像上有多个同类物体时,只能画出一块热力图

用不同的 channel 捕捉不同的特征(如下图 A 1 A^{1} A1、 A 2 A^{2} A2、 A 3 A^{3} A3)

在这里插入图片描述

  • 不同位置的梯度值,GAP平均之后,影响是相同的

给每一个激活函数增加一个权重 α i j k c \alpha^{kc}_{ij} αijkc​

在这里插入图片描述

三、ScoreCAM

1.解决问题

  • 梯度的传统问题:梯度饱和、梯度消失、梯度噪声
  • 权重大的channel,不一定对类别预测分数贡献大
  • 只考虑从后往前的反向传播梯度,没考虑前向预测的影响

使用了两个卷积神经网络

  • 神经网络一:
    • 将图像输入Phase 1 中,得到了1000个14*14的 channel
    • 对这1000个 cahnnel 进行上采样,得到了1000个256*256的 channel
  • 神经网络二:
    • 将神经网络一的1000个256*256的 channel 与原图做逐个像素的乘法
    • 将上述结果输入到第二个神经网络中,得到1000个权重
    • 将这1000个权重与神经网络一的1000个 channel 做线性组合,得到结果

在这里插入图片描述

四、LayerCAM

1.解决问题

  • 深层生成的粗粒度热力图和浅层生成的细粒度热力图 都不够精准
CAM,PradCAM,layer CAM(可解释性分析方法) 尽管CAM在计算机视觉领域起到了解释性的作用,但同时也要注意到,CAM只能关注模型得到结果依据的特征是什么,它依然不能从根本上解释神经网络在做什么。真正意义上的可解释性分析,应该有一个通用模型,而不是一个计算模型,一个解释模型,因为这两个模型还是不同的,这样的解释模型也无法百分之百保证对计算模型的解释是正确的。 阅读详情

相关推荐

Grad-CAM-解释CNN决策过程的可视化技术

Grad-CAM(Gradient-weighted Class Activation Mapping)是一种用于解释卷积神经网络(CNN)决策过程的可视化技术。其核心思想是通过计算分类分数相对于网络确定的卷积特征的梯度,来识别图像中哪些部分对分类结果最为重要。这种方法不需要修改网络架构,因此可以广泛应用于各种CNN模型中。

xw555666的博客 2829

[可解释机器学习]Task04:[算法]GradCAM

CAM的升级版Grad-CAM

m0_59286668的博客 2191

IMDb影评数据集:从下载到情感分析实战指南

本文提供了IMDb影评数据集从下载、探索到情感分析建模的完整实战指南。详细介绍了数据预处理、TF-IDF向量化方法,并对比了逻辑回归、随机森林、SVM及LSTM深度学习模型在情感分析任务上的应用与效果评估,帮助读者系统掌握自然语言处理的核心流程。

weixin_29052717的博客 449

神经网络的解释方法之GAP、CAM、Grad-CAM、Grad-CAM++的理解

卷积神经网络的解释方法之一是通过构建类似热力图 (heatmap) 的形式,直观展示出卷积神经网络学习到的特征,当然,其本质还是从像素的角度去解释卷积神经网络。在深度学习的可解释性研究中比较经典的研究方法是采用反卷积(Deconvolution)和导向反向传播(Guided-backpropagation)等。而随着网络的提出,GAP(全局平均池化)的概念被我们所熟知。基于此,对热力图中所引申的CAM、Grad-CAM、Grad-CAM实现原理以及应用进行简单说明。结合论文中的理论去理解,并通过对代码实现进

tz的博客 5722

SQLite学习——Dapper初识

dapper下载:https://www.nuget.org/packages/Dapper/1.40.0

jiDxiaohuo的博客 1298

RealSense D455的标定并运行VINS-FUSION

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

qq_40186909的博客 2万+

【机器学习】CNN-ViT混合架构胸部影像分析:从算法到临床部署

算法层面:并行式CNN-ViT架构结合门控融合,在NIH ChestX-ray14上达到SOTA性能工程层面:OpenVINO优化实现亚秒级边缘推理,DICOM集成确保无缝workflow临床层面:符合FDA/CE监管要求,77%报告时间缩短的临床价值验证代码实现涵盖模型训练、优化、部署和监控的全生命周期,可直接用于研究和生产环境。

u012133341的博客 540

【Cadence】 ADS Dynamic Link使用教程

在Cadence617上使用ADS Dynamic Link

乾巽的博客 6080

Grad-CAM++: Improved Visual Explanations for Deep Convolutional Networks 论文阅读笔记

本文针对Grad-CAM中出现的问题,例如当图像中存在多个目标或单个物体存在多个部分时,显著图无法将其全部标注、显著图无法完整地捕获整个对象的结构。面对上述问题,本文在CAM和Grad-CAM的基础上提出一个全新的可解释性算法Grad-CAM++,下面将对Grad-CAM++算法进行详细介绍。

qq_42310545的博客 1525

一个中科大差生的8年程序员工作总结

今年终于从大菊花厂离职了,离职前收入大概60w不到吧,在某乎属于比较差的,今天终于有空写一下自己的职场故事,也算是给自己近8年的程序员工作做个总结复盘。近8年有些事情做对了,也有更多事情做错了,在这里记录一下,希望能够给后人一些帮助吧,也欢迎私信交流。文笔不好,见谅,有些细节记不清了,如果有出入,就当是我编的这个故事吧。 PS:有几个问题先在这里解释一下,评论就不一一回复了 1、关于差生,我本人在科大时确实成绩偏下,差生主要讲这一点,没其他意思。 2、因为买房是我人生中的大事,我认为需要记录和总结一下

陈小房的自我修炼 5万+

YOLOv11改进 | 主干/Backbone篇 | 轻量级移动端网络ShuffleNetV2(附代码+修改教程)

本文给大家带来的改进内容是ShuffleNetV2,这是一种为移动设备设计的高效CNN架构。其在ShuffleNetV1的基础上强调除了FLOPs之外,还应考虑速度、内存访问成本和平台特性。(我在YOLOv11n上修改该主干降低了GFLOPs,但是参数量还是有一定上涨,其非常适合轻量化的读者来使用,同时精度也有一定程度的上涨)。本文通过介绍其主要框架原理,然后教你如何添加该网络结构到网络模型中。

Snu77的博客 3387

【学习打卡04】可解释机器学习笔记之Grad-CAM

其实 CAM 得到的效果已经很不错了,但是由于其需要修改网络结构并对模型进行重新训练,这样就导致其应用起来很不方便。CAM的缺点必须得有GAP层,否则得修改模型结构后重新训练只能分析最后一层卷积层输出,无法分析中间层仅限图像分类任务Grad-CAM解决了上述问题,基本思路和CAM是一致的,也是通过得到每对特征图对应的权重,最后求一个加权和。区别是求解权重的过程,CAM通过替换全连接层为GAP层,重新训练得到权重,而Grad-CAM另辟蹊径,用梯度的全局平均来计算权重。

风信子的猫Redamancy的快乐星球 4166

HyperLynx(三十一)高速串行总线仿真(三)

(5)选择 “File”→ “Open Touchstone”,打开路径 C:\Adv_HL_Tmg\SERDES_Interface\models,选中connector.s4p,单击打开,如图所示。接下来,找出将要分配模型的S参数连接。(12)单击“Assign”按钮,选择模型类型为“Touchstone models”,在库中选择“connector.s4p”,如图所示。(14)单击“OK”按钮,选中“connector.s4p”这一行,单击“Connection Editor”按钮,如图所示。

小幽余生不加糖 3367

【CV with Pytorch】第 10 章 :计算机视觉的可解释人工智能

大多数机器学习和深度学习模型都缺乏解释和解释结果的方法。由于深度学习模型的动态特性和不断增加的最先进模型,当前的模型评估基于准确度分数。这使得机器学习和深度学习成为黑盒模型。这导致对应用模型缺乏信心,对生成的结果缺乏信任。有多个库可以帮助我们解释结构化数据模型,例如 SHAP 和 LIME。本章介绍计算机视觉模型输出。以下是近年来提出的一些用于计算机视觉的白盒算法:CAMGrad-CAMGrad-CAM++SmoothGRADRISE。

sikh_0529的博客 1176

【Windows Server 2019】Active Directory Certificate Services 证书颁发机构的安装,配置和管理Ⅰ——AD CS的安装和配置

博文主要介绍了Windows Server 2019的证书颁发机构的安装和配置方法。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 4833

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【算法】可解释机器学习-CAM / Grad_CAM(Datawhale)

CAM以及Grad-CAM极其后续变种算法介绍

weixin_46847902的博客 2630

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

GAP CAM Grad-CAM Grad-CAM++的解释

转载于:https://www.zhihu.com/question/274926848/answer/473562723 卷积层输出的特征映射其实和原图是存在一定的空间对应关系的。把最后一层卷积输出的特征映射处理一下,然后绘制到原图上,就得到了热图(也就是网络模型更关注的区域)。 关键是通过什么方式处理得到的效果比较好? GAP 让我们小小地绕行一下,先介绍下全局平均池化(globa...

Loong Cheng的博客 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

使用Python进行Grad-CAM ++:深度卷积网络的改进视觉解释

在Grad-CAM ++和Guided Grad-CAM ++显著图中,**狗(多个对象)的可视化效果更好(第一行和第二行),并且该类的整个区域都处于局部状态(第三行和第四行),**而Gr...

深度学习与计算机视觉 3342

CAM, Grad-CAM, Grad-CAM++可视化CNN方式的代码实现和对比

当使用神经网络时,我们可以通过它的准确性来评估模型的性能,但是当涉及到计算机视觉问题时,不仅要有最好的准确性,还要有可解释性和对哪些特征/数据点有助于做出决策的理解。模型专注于正确的特征比模型的准确性更重要。理解CNN的方法主要有类激活图(Class Activation Maps, CAM)、梯度加权类激活图(Gradient Weighted Class Activation Mapping, Grad-CAM)和优化的 Grad-CAM( Grad-CAM++)。

deephub 4947

梯度grad公式_【论文翻译】Grad-CAM++,可视化卷积的升级

Contact me:Blog : https://cugtyt.github.io/blog/indexEmail: cugtyt#qq.com, cugtyt#http://gmail.comGrad-CAM++: Generalized Gradient-based Visual Explanations for Deep Convolutional Networks​cugtyt.git...

weixin_39708854的博客 2642

Grad-CAM++: Improved Visual Explanations for Deep Convolutional Networks——改进的深度卷积网络的可视化解释

Grad-CAM++: Improved Visual Explanations for Deep Convolutional Networks——改进的深度卷积网络的可视化解释

Together_CZ的博客 951

【学习打卡】GradCAM可解释性分析

总结:Grad-CAM算法原理,它避免了使用GAP,用全连接层的网络也完全ok,用求梯度的方法间接的求得这个权重,不需要修改网络结构,也不需要用数据重新训练,如果你来了一个用全连接层的网络,马上就可以用Grad-CAM做可解释新分析,绘制出每一个类别的Grad-CAM热力图了,所以这是一个非常不错的拿来即用算法。,它会关注脸的区域,比如说2-2图,他是一个医生,但是网络预测她是一个护士,依据是她脸部的区域,因为长头发或者女性的容貌,这是不对的,网络不应该看脸,而应专注于职业本身。的一些专业的问题非常重要。

像初雪一样自由洒落 4556

pytorch 实现Grad-CAM和Grad-CAM++

Grad-CAM.pytorch ​ pytorch 实现Grad-CAM:Visual Explanations from Deep Networks via Gradient-based Localization 和 Grad-CAM++: Improved Visual Explanations for Deep Convolutional Networks 工程地址: G...

default 1万+

告别黑箱!用Grad-CAM++可视化EfficientNet-PyTorch的注意力机制

你是否曾好奇:当EfficientNet识别一张图片时,它究竟在“看”哪里?作为计算机视觉模型的“眼睛”,注意力机制(Attention Mechanism)决定了模型关注图像的哪些区域。本文将带你从零实现Grad-CAM++算法,用热力图直观展示EfficientNet的决策过程,彻底揭开深度学习模型的黑箱面纱。 ## 为什么需要注意力可视化? 在工业质检场景中,当模型判断一个零件“不合格”...

gitblog_00795的博客 474

LayerCAM:Exploring Hierarchical Class Activation Maps for Localization

LayerCAM

weixin_44884999的博客 4980

pytorch_grad_cam——pytorch下的模型特征(Class Activation Mapping, CAM)可视化库

深度学习是一个"黑盒"系统。它通过“end-to-end”的方式来工作,中间过程是不可知的,通过中间特征可视化可以对模型的数据进行一定的解释。最早的特征可视化是通过在模型最后一个conv层的Global average pooling实现,并将分类层设置为单个全连接层。通过Global average pooling的值来确定各个feature map的权重,然后累加到一起实现可视化。后来有衍生出了一系列,基于特定class label反向传播获取梯度的可视化方法,Grad-CAM。更为详细的发展路线可以参

a486259的博客 1万+
上一篇: 可解释机器学习 Task03 - CAM可解释性分析
下一篇: CS231N斯坦福计算机视觉公开课 02 - 损失函数和优化
T4neYours
博客等级 码龄6年 8粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值