可解释机器学习 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

[STM32H750]HAL库下FMC驱动正点原子MCU屏的移植与优化

本文详细介绍了在STM32H750平台上使用HAL库移植与优化正点原子MCU屏幕驱动的完整过程。重点解析了FMC硬件配置、Cache一致性处理、精确延时实现等关键技术难点,提供了实用的移植方案和性能优化技巧,帮助开发者高效解决屏幕显示问题。

rock5的博客 286

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

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

tz的博客 5722

Java课程设计——扫雷游戏程序

使用Java语言对扫雷游戏的复刻

m0_60671275的博客 3501

保姆级教程:在树莓派4B上用V4L2驱动USB摄像头(附完整代码)

本文提供树莓派4B上使用V4L2驱动USB摄像头的完整教程,涵盖环境配置、V4L2架构解析、代码实现及问题排查。通过详细步骤和完整代码示例,帮助开发者快速掌握嵌入式Linux下的摄像头驱动开发,解决实际应用中的兼容性和性能问题。

weixin_30312563的博客 382

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

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

u012133341的博客 540

串口调试神器诞生记:我是如何用Cursor+AI自动生成C#上位机的(含VSCode插件清单)

本文详细介绍了如何利用Cursor和AI技术快速开发C#上位机程序,实现高效的串口通讯调试。从开发环境搭建到代码自动生成,再到性能优化和功能增强,全面展示了AI辅助开发在串口调试中的实际应用和显著效率提升。

weixin_28340315的博客 302

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

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

qq_42310545的博客 1525

R语言实战:GEO单细胞数据下载与自动化整理全流程(附代码)

本文详细介绍了使用R语言从GEO数据库下载scRNA-seq数据并实现自动化整理的完整流程。通过GEOquery和Seurat等工具包,读者可以高效获取单细胞RNA测序数据,完成从原始数据下载到预处理的全过程,最终生成可直接用于分析的Seurat对象。文章包含完整代码示例,特别适合生物信息学研究者处理单细胞数据。

weixin_29061821的博客 427

Cesium中级开发教程之五十二:气泡弹窗

支持多种交互方式触发气泡弹窗显示,如鼠标悬停、点击地图上的特定元素(像实体、标注、模型等)。例如,当用户鼠标悬停在一个表示城市的点上时,弹出显示该城市名称、人口等信息的气泡。:依据特定的数据条件或业务逻辑触发。比如,当某个区域的气象数据达到一定阈值时,自动弹出显示相关气象预警信息的气泡。

664

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

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

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

[网络安全提高篇] 一二九.Powershell恶意代码检测 (5)混淆和反混淆 [上]

前文介绍了如何利用MS Defender实现恶意样本家族批量标注。这篇文章将继续讲解Powershell恶意代码检测,主要包括PowerShell混淆与反混淆内容,首先结合Invoke-Obfuscation工具详细介绍PowerShell代码混淆方法,再结合PowerDecode工具阐述解混淆方法。该研究将为后续的恶意软件家族分类或溯源提供帮助。未完待续,基础性文章,希望您喜欢,且看且珍惜。

杨秀璋的专栏 1541

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

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

sikh_0529的博客 1176

YOLOv11改进策略【模型轻量化】| 替换骨干网络为 GhostNet V1 基于 Ghost Module 和 Ghost Bottlenecks的轻量化网络结构

本文记录的是基于的YOLOv11网络模型轻量化方法研究。GhostNet中的Ghost模块和Ghost瓶颈结构是其轻量化的关键。Ghost模块克服了传统卷积层计算资源需求大的问题,Ghost瓶颈则合理设计了通道数量的变化以及与捷径连接的方式,能更好地在减少计算成本的同时保持较高性能,从而提升模型在移动设备上的应用能力和效率。

Limiiiing的博客 1430

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

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

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

weixin_46847902的博客 2630

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

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

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

Loong Cheng的博客 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

使用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、付费专栏及课程。

余额充值