[可解释机器学习]Task03:[算法]CAM
CAM可解释性分析-算法讲解
CAM类激活热力图:深度学习可解释性分析、显著性分析经典之作
Learning Deep Features for Discriminative Localization
CVPR 2016
导论
两天搞定图像分类毕业设计代码教程
为什么说这是一篇让人拍案叫绝的文章?
- 奠定了可解释性分析、显著性分析的基石
- 且后续衍生出若干基于它的算法,打破深度学习的黑箱子
https://github.com/frgfm/torch-cam
代码教程: https://github.com/TommyZihao/Train_Custom_Dataset
各种CAM算法,有公众号做了合集
算法
数字为置信度
3. 对于同一张图像,不同类别可以产生不同的热力图
数字为置信度
纯数字驱动
4. 潜在的注意力机制
能够分析出神经网络对图像的哪部分感兴趣
5.弱监督分析
我们是用图像分类的数据集,标签,数据去训练出图像分类模型
但这个模型不仅可以用来分类,也可以用来定位——>用分类数据集去训练定位模型
6. 使得Machine Teaching成为可能
反向知道我们进行学习
CAM算法原理
预备知识﹒深度学习、卷积神经网络、图像分类
精妙之处就是权重
讨论:全卷积网络(无池化)
池化的作用:
- 减少计算量
- 防止过拟合
- 平移不变性
同时也丢失了长宽方向的空间信息
因此在CAM热力图中,不适用带池化的卷积神经网络
讨论:全局平均池化(Global Average Pooling)
左侧很消耗计算量和参数量
全局平均池化(GAP)取代全连接层
减少参数量、防止过拟合(参数越多,过拟合风险越大)
而且每个GAP平均值,间接代表了
卷积层最后一层输出的每个channel
CAM算法中,必须有GAP层(没有GAP层就没有代表)
否则无法计算每个channel的权重
如果没有GAP层,需把全连接层替换为GAP
再重新训练模型
CAM算法的缺点
GradCAM改进
- 必须得有GAP层,否则得修改模型结构后重新训练
GradCAM改进
2. 只能分析最后一层卷积层输出,无法分析中间层
讨论:SqueezeNet
一个轻量化卷积神经网络
一步到位
讨论:显著性分析的意义
教工人改进工艺
教普通人类判别鸟的种类
可解释机器学习专题精读论文清单
CAM可解释性论文精读
前言:论文十问
- 论文试图解决什么问题?深度学习,特别是卷积神经网络的弱监督定位。进而实现可解释性分析和显著性分析。
- 这是否是一个新的问题?不是,这是一个内卷的问题。
- 这篇文章要验证一个什么科学假设?卷积神经网络能提取位置信息,并按特定类别展示出来
- 有哪些相关研究?如何归类?谁是这一课题在邻域内值得关注的研究员?可视化卷积神经网络中间特征,基于CAM的可解释性分析、显著性分析,论文作者周博磊、南开大学程明明团队
- 论文中提到的解决方案之关键是什么?通过全局平均池化(GAP)层,获得指定类别对最后一层卷积层输出的每个特征图Channel权重,进而计算CAM类激活热力图,展示指定类别在原图上重点关注的特征区域
- 论文中的实验是如何设计的?lmageNet定位任务、其它视觉任务
- 用于定量评估的数据集是什么?代码有无开源?lmageNet定位任务、VQA等其它视觉任务数据集有开源
- 论文中的实验及结果有没有很好地支持需要验证的科学假设?在各种视觉任务上,都表明了,CAM算法能够打破深度学习的黑箱子,人工智能展示自己的“注意力"和“学到的特征”
- 这篇论文到底有什么贡献?打破深度学习的黑箱子,让人工智能展示自己的“注意力"和"学到的特征”,使得Machine Teaching成为可能。深入理解它,解释它、改进它,进而信赖它。知其然,也知其所以然。
- 下一步呢?有什么工作可以继续深入?Grad-CAM、Score-CAM、LayerCAM等一系列基于CAM的可解释性分析、显著性方法(这一点在论文中也有提到,后续也会继续继续学习)
论文结构:
- Introduction
- Class Activation Mapping
- Weakly-supervised Object Localization
- Deep Features for Generic localization
- Visualizing Class-Specific Units
- Conclusion
最重要的就是CAM的原理图,和两个重点
两个重点:
- CAM热力图
- 弱监督的定位
总结:本文最重要的是理解热力图的形成及其含义(记得完成相应的代码实现,当然并不是创造而是阅读)
然后回顾下上节课的ZFNet,本节课也很重视可解释机器学习本身,可解释本身更偏向可视化,热力图比特征提取图,
在可视上的表现更好,更方便人类理解,“定位”更像一个附带的效果
就图像上,ZFNet那篇文很喜欢做对比实验,CAM更在意卷积神经网络语义上的理解
[可解释机器学习]Task03:[算法]CAM相关推荐
- 【学习打卡05】可解释机器学习笔记之CAM+Captum代码实战
可解释机器学习笔记之CAM+Captum代码实战 文章目录 可解释机器学习笔记之CAM+Captum代码实战 代码实战介绍 torch-cam工具包 可视化CAM类激活热力图 预训练ImageNet- ...
- 【学习打卡03】可解释机器学习笔记之CAM类激活热力图
可解释机器学习笔记之CAM类激活热力图 文章目录 可解释机器学习笔记之CAM类激活热力图 CAM介绍 CAM算法原理 GAP全局平均池化 GAP VS GMP CAM算法的缺点及改进 CAM可视化 同 ...
- 机器学习经典算法具体解释及Python实现--K近邻(KNN)算法
(一)KNN依旧是一种监督学习算法 KNN(K Nearest Neighbors,K近邻 )算法是机器学习全部算法中理论最简单.最好理解的.KNN是一种基于实例的学习,通过计算新数据与训练数据特征值 ...
- 【学习打卡04】可解释机器学习笔记之Grad-CAM
可解释机器学习笔记之Grad-CAM 文章目录 可解释机器学习笔记之Grad-CAM Grad-CAM介绍 Grad-CAM是CAM的泛化形式 Gard-CAM可视化结果 Grad-CAM算法的优点 ...
- 【学习打卡01】可解释机器学习之导论
可解释机器学习之导论 文章目录 可解释机器学习之导论 可解释学习 为什么我们需要可解释机器学习 前沿的AI方向 可解释性好的机器学习算法 深度学习的可解释性分析 可视化卷积核 遮挡Mask.缩放.平移 ...
- 【机器学习笔记】可解释机器学习-学习笔记 Interpretable Machine Learning (Deep Learning)
[机器学习笔记]可解释机器学习-学习笔记 Interpretable Machine Learning (Deep Learning) 目录 [机器学习笔记]可解释机器学习-学习笔记 Interpre ...
- 机器学习与算法面试太难?
机器学习与算法面试太难? 来源: https://mp.weixin.qq.com/s/GrkCvU2Ia_mEaQmiffLotQ 作者:石晓文 八月参加了一些提前批的面试,包括阿里.百度.头条.贝 ...
- 15分钟带你入门sklearn与机器学习——分类算法篇
作者 | 何从庆 本文转载自AI算法之心(ID:AIHeartForYou) [导读]众所周知,Scikit-learn(以前称为scikits.learn)是一个用于Python编程语言的免费软件机 ...
- 阿里资深AI工程师教你逐个击破机器学习核心算法
01 近年来,随着 Google 的 AlphaGo 打败韩国围棋棋手李世乭之后,机器学习尤其是深度学习的热潮席卷了整个 IT 界. 所有的互联网公司,尤其是 Google 微软,百度,腾讯等巨头,无 ...
最新文章
- 当上 CTO 才发现:程序员时常犯的 4 个错误有多可怕!
- 西工大matlab计算机实验题,西工大信号系统上机实验一实验二
- jvm六:主动使用(1.new一个对象, 2.反射)
- redis分布式缓存(二)
- C++函数模板和普通函数的调用规则
- Win8 HTML5与JS编程学习笔记(二)
- 博士可能是所有学生群体里被黑最猛烈的
- 项目管理中的流程管理
- Mysql binlog 解析
- Contest1874 - noip基础知识五:动态规划(背包、树dp、记忆化、递推、区间、序列dp、dp优化)...
- wp8.1 java,Windows Phone 粉的福音:如何给 WP8.1 解锁部署 xap 软件
- 网页Unity3D游戏资源的获取和解包
- 网络工程师 第8章 网络安全
- windows批量修改文件后缀名
- sql之分组TOPN
- ac8265网卡linux驱动,【奋威AC8265笔记本无线网卡使用总结】安装|驱动|任务管理器_摘要频道_什么值得买...
- AMD RX 7700XT、7800XT和7600显卡参数 RX 7700XT、7800XT和7600相当于什么水平
- vue项目报eslint格式错误解决方案
- [k8s]k8s详解
- VR全景车展提升产品透明度让消费者更加信赖