CAM,PradCAM,layer CAM(可解释性分析方法)

news2024/9/24 5:22:25

目录

1.CAM

1.1作用

1.2应用实例

1.3CAM的特点

1.4CAM的思路

1.5CAM的缺点

2.GradCAM

2.1和GAM的区别及思路

2.2应用面

2.3一个延深(解决模型偏见)

2.4缺点

3.Grad CAM++

4.Score CAM

5.layer CAM

参考文献


1.CAM

1.1作用

CAM不不光可以分类还可以定位:从下图理解,识别palace时热力图定位了模型认为它是palace的特征,同样对dome等识别时也用热力图定位了相应特征,也就是定位了palace和dome的位置。

1.2应用实例

从热力图可以看出,识别福建土楼依据的特征是洞状结构,识别吊脚楼依据的是棍状结构,识别故宫依据的是沿状结构

1.3CAM的特点

      1.实现了深度学习的可解释性分析

      2.可拓展性强,后续研发出一系列基于CAM的算法

      3.在每张图片,每个类别都能生成CAM热力图

      4.若监督模型:用图像分类模型解决定位问题

      5.潜在的注意力机制:比方说,识别不同的鸟时(属于细粒度分类) ,人类可以根据模型识别鸟的不同种类所依据的特征的热力图,去理解和学习如何对鸟进行分类,这也属于用人工智能理解世界的方式,带人类去认识这个世界。

      6.使得Machine Teaching成为可能:就是,现在模型不仅可以人类一个问题的答案,还可以给出解决这个问题的思路,这不就可以实现真曾意义上的利用人工智能学习嘛

1.4CAM的思路

如下图所示,正常来说对于图像分类问题,最后一层卷积层之后通常链接全连接层,但这里用GAP(全局平均池化)替代了全连接层,具体操作为,假设最后一层为14×14×512,可以理解为该层有512个特征图然后对每个特征图进行平均池化操作,我们得到每一个特征图对应的值(标量,每一个值代表了原来的特征图),最终得到512个值,再乘以512个w(权重)得到每一个类别的得分,再进行softmax操作,得到对应的概率值。这个方法的特点就在于GAP的w值,对某个类别评分越高,说明这512个特征图某一部分占的比重越大,w也就越大,然后这些特征图还包含位置信息,如第Class Activation Mapping下的图所示,w1*(14×14的特征图)+w2*(14×14的特征图)+......w512*(14×14的特征图)中,我们看到w1对应特征图原图中的位置,w2对应特征图原图中的位置,w3对应特征图原图中的位置,从结果看我们得到的类别是狗,w1对应的特征图和狗毫无关系,所以输出时比重很低,在最终的识别图根本看不到这个特征图,而w2和w3对应的特征图包含狗,我们会发现,最终的识别图中有这两张特征图的身影。

注意到没有池化层:因为池化层会丢失长宽信息,这是CAM无法接受的

1.5CAM的缺点

      1.必须要有GAP层,否则无法得到热力图,基于此有了gradCAM

      2.只能分析最后一层卷积输出,无法分析中间层的特征图

      3.仅限图像分类任务

2.GradCAM

2.1和GAM的区别及思路

区别:在CAM中用GAP替代了全连接层,在GradCAM中,保留了全连接层

思路:如下图所示,简单理解全连接层对类别打分之后,再对其求导重新得到输入全连接层之前的卷积层,14×14×512(这个和原来不完全一样,这里面是梯度值,但能表示卷积层原来的特征图),再进行GAP操作。

优势:对CAM,当我们只想进行图像分类任务时,我们只用一个分类模型就行了,但如果我们想进行性可解释性分析,就需要将全连接层改为GAP重新训练。对GradCAM,当我们想进行可解释性分析时,直接载原模型上加入GAP就可以使用了。

2.2应用面

这样就导致GradCAM应用面很广,只要最后一层结果可导,不管是用什么忘了,RNN还是LSTM,不管是图像还是文本任务等,都可以用其解决。在强化学习中,比方说玩超级马里奥,我们就可以知道,模型执行上下左右的某一个操作,是基于什么,是为了金币,躲避伤害还是其他什么原因

 在文字描述生成任务中:就是说根据一张图生成文字描述,如下图所示,使用GradCAM,不仅可以生成文字,还有生成该文字所依赖的特征。

2.3一个延深(解决模型偏见)

做一个可视化分析的延深,可以用于纠正模型偏见:比方说我们通常会认为医生男性多,护士女性多,那么在建立数据集时,我们可能会在图片中,医生男性占比较多,护士女性占比较多,这就可能导致,模型基于男女分别医生还是护士,但这显然是不对的,在黑箱模型中,知道模型有问题,但可能很难找出问题在哪,需要做大量的实验尝试,有了可视化分析,就可以直接找出问题所在,改进模型。

2.4缺点

      1.图像上有多个同类物体时,只能画出一块热力图,比方说图中有三值猫,但只能画出一只猫,

      2.不同位置的梯度,GAP平局之后,影响相同,但一般来讲图片边缘的影响应该小于图像中心。

      3.梯度饱和、梯度消失、梯度噪声

      4.权重大的channel,不一定对类别预测分数贡献大

      5.只考虑从后往前的反向传播梯度,没考虑前向预测的影响

      6.深层生成的粗粒度热力图和浅层生成的细粒度热力图都不够精确

      7.CAM中只能分析最后一层,GradCAM可以分析中间层,但发现在浅层中,分析效果很差,基于这个有了layer CAM

3.Grad CAM++

解决Grad CAM两个问题

      1.图像上有多个同类物体时,只能画出一块热力图,比方说图中有三值猫,但只能画出一只猫,

      2.不同位置的梯度,GAP平局之后,影响相同,但一般来讲图片边缘的影响应该小于图像中心。

对于第一个问题简单理解:从下图看假设intput image输入的图片包含三个猫(分别对应灰色区域),经过卷积之后,这三个区域分别出现在不同的特征图之中,经过Grad CAM处理之后只能激活其中一个猫的特征图,在Grad CAM++中, 可以同时激活三个猫的特征图。

对于第二个问题简单理解:就是对梯度加了权重,来区别不同位置梯度的影响。

4.Score CAM

解决Grad CAM三个问题

      3.梯度饱和、梯度消失、梯度噪声

      4.权重大的channel,不一定对类别预测分数贡献大

      5.只考虑从后往前的反向传播梯度,没考虑前向预测的影响

做个对比:如下图所示,明显Score CAM热力图对应的位置更加聚焦。

思路

 首先用Phase1(第一个网络),经过Upsampling之后得到14×14×256个特征图,将这些特征图和原图input的小狗分别相乘我们会得到,将每个特征图在原图中对应的位置高亮显示,进一步得到每一个特征图对应他权重,最后Phase2输出这些权重和Phase1中对应的每一个特征图相乘得到Score CAM的结果。

5.layer CAM

解决Grad CAM2个问题

      6.深层生成的粗粒度热力图和浅层生成的细粒度热力图都不够精确

      7.CAM中只能分析最后一层,GradCAM可以分析中间层,但发现在浅层中,分析效果很差,基于这个有了layer CAM

应用:工业检测很合适。

做个对比:如下图左所示,第一行为Grad CAM的特征结果,第二行为layer CAM的特征结果,很明显Grad CAM噪声过多。如下图右所示,即使在浅层中也能聚焦较好的特征。

 补充

参考文献

1.类别激活热力图可视化工具介绍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/839369.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端JS实用操作符,一些骚操作✨

目录 0、!! 双重逻辑非操作符 📚 1、?? 操作符 空值合并/空判断 ✅ 2、?. 可选链运算符🔍 3、?? 操作符 逻辑空值赋值运算符 💚 4、三元运算符 📗 5、~~ 操作符 双位运算符 🔨 6、&&与 ||或 短…

在java中操作redis_Data

1.引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 2.配置Redis数据源 redis:host: ${sky.redis.host}port: ${sky.redis.port}password: ${sk…

揭秘程序员最喜欢的5个高薪工作

大家好&#xff0c;这里是程序员晚枫。想了解更多精彩内容&#xff0c;快来关注程序员晚枫 今天给大家推荐5个适合程序员的高薪岗位。 01 推荐岗位 以下是5个工资最高的程序员工作&#xff1a; 数据科学家&#xff1a;数据科学家是负责数据收集、处理、分析和报告的专业人员。…

Markdown学习简记

目录 一、写Markdown的第0步 二、语法须知 标题 粗体强调 斜体 斜体同时粗体 删除线 高亮 代码 代码块 引用块 无序列表 有序列表 链接 表格 图片 分割线 目录生成 内联HTML代码 Typora常用快捷键 Typora的主题样式与检查元素 一、写Markdown的第…

MySQL事务篇:ACID原则、事务隔离级别及事务机制原理剖析

引言 众所周知&#xff0c;MySQL数据库的核心功能就是存储数据&#xff0c;通常是整个业务系统中最重要的一层&#xff0c;可谓是整个系统的“大本营”&#xff0c;因此只要MySQL存在些许隐患问题&#xff0c;对于整个系统而言都是致命的。那此刻不妨思考一个问题&#xff1a; …

录像编辑软件—— Camtasia Studio 2023下载安装和激活的基本流程

Camtasia Studio 2023是一款简单易用的高清录屏和视频编辑软件&#xff0c;拥有录制屏幕和配音、视频的剪辑和过场动画、添加说明字幕和水印、制作视频封面和菜单、视频压缩和播放。 Camtasia Studio能在任何颜色模式下轻松地记录 屏幕动作&#xff0c;包括影像、音效、鼠标移…

C语言案例 按序输出三个整数-02

题目&#xff1a;输入三个整数a,b,c,按从小到大的顺序输出 步骤一&#xff1a;定义程序的目标 编写一个C程序&#xff0c;随机输入三个整数&#xff0c;按照从小到大的顺序输出。 步骤二&#xff1a;程序设计 整个程序由三个模块组成&#xff0c;第一个为scanf输入函数模块&a…

[FlareOn6]FlareBear

前言 apk的逆向&#xff0c;没有壳&#xff0c;但可能做的不是太多&#xff0c;没能想到整个算法的运作原理 分析 搜索flag会发现存在这么一个函数&#xff0c;那么显示flag的时候应该是熊会跳舞显示flag,只要满足熊happy和ecsstatic就可以&#xff0c;happy只要一直存在点击…

集中/本地转发、AC、AP

1.ADSL ADSL MODEM&#xff08;ADSL 强制解调器&#xff09;俗称ADSL猫 ADSL是一种异步传输模式&#xff08;ATM)。ADSL是指使用电话线上网&#xff0c;需要专用的猫&#xff08;Modem)&#xff0c;在上网的时候高频和低频分离&#xff0c;所以上网电话两不耽误&#xff0c;速…

后端进阶之路——万字总结Spring Security与数据库集成实践(五)

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★前端炫酷代码分享 ★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ 解决算法&#xff0c;一个专栏就够了★ ★ 架…

K8S系列文章之 一键部署K8S环境

部署的原理是基于自动化部署工具 Ansible 实现的&#xff0c;需要提前安装Ansible 并配置下主机节点环境 1. 安装 Ansible 首先ansible基于python2.X 环境&#xff0c;默认centos都已经安装好了python2环境 // 最好更新下库 // yum update yum install -y epel-release yum i…

ctfshow-web5

0x00 前言 CTF 加解密合集CTF Web合集 0x01 题目 0x02 Write Up 首先看到代码&#xff0c;发现要求v1必须是字符串&#xff0c;v2必须是数字&#xff0c;并且对v1和v2的md5弱相等&#xff0c;也就是&#xff0c;只比较字符串开头是否相等&#xff0c;那么就需要找到两个md5开…

Mac系统下使用远程桌面连接Windows系统

一、远程桌面工具 Microsoft Remote Desktop 二、下载地址 https://go.microsoft.com/fwlink/?linkid868963 三、下载并安装 四、添加远程PC PC name:云服务器IP。 User account: 添加系统用户 PC name&#xff1a;远程桌面 IP 地址User account&#xff1a;可以选择是…

RabbitMQ 教程 | 第11章 RabbitMQ 扩展

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是 DevO…

机器学习、人工智能、深度学习三者的区别

目录 1、三者的关系 2、能做些什么 3、阶段性目标 1、三者的关系 机器学习、人工智能&#xff08;AI&#xff09;和深度学习之间有密切的关系&#xff0c;它们可以被看作是一种从不同层面理解和实现智能的方法。 人工智能&#xff08;AI&#xff09;&#xff1a;人工智能是一…

【网络编程·传输层】UDP和TCP的报头

目录 一、端口号划分 二、部分指令 1、pidof&#xff08;用于查看进程id&#xff09; 2、netstat&#xff08;查看网络状态&#xff09; 三、UDP协议 1、UDP协议格式 2、UDP协议如何进行封装、解包、分用 2.1封装、解包 2.2分用 3、UDP协议的特点 3.1UDP协议的特点 …

外部链接跳转到vue项目传递参数实现单点登录

1、问题背景描述&#xff1a; 我有一个困扰了很久项目需求&#xff0c;前台门户用的MVC&#xff0c;前台登录之后需要能点击某个按钮就能进入后台vue开发的前端项目&#xff0c;不需要重新登录。这个需求中mvc项目相对于vue项目来说是外部链接&#xff0c;他要跳转到vue项目&a…

HarmonyOS应用开发的新机遇与挑战

HarmonyOS 4已经于2023年8月4日在HDC2023大会上正式官宣。对广大HarmonyOS开发者而言&#xff0c;这次一次盛大的大会。截至目前&#xff0c;鸿蒙生态设备已达7亿台&#xff0c;HarmonyOS开发者人数超过220万。鸿蒙生态充满着新机遇&#xff0c;也必将带来新的挑战。 HarmonyO…

卷积神经网络实现MNIST手写数字识别 - P1

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f366; 参考文章&#xff1a;365天深度学习训练营-第P1周&#xff1a;实现mnist手写数字识别&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制&#x1f680; 文章来源&#xff1a;K同…

架构训练营学习笔记:5-3接口高可用

序 架构决定系统质量上限&#xff0c;代码决定系统质量下限&#xff0c;本节课串一下常见应对措施的框架&#xff0c;细节不太多&#xff0c;侧重对于技术本质有深入了解。 接口高可用整体框架 雪崩效应&#xff1a;请求量超过系统处理能力后导致系统性能螺旋快速下降 链式…