[可解释机器学习]Task03:[算法]CAM

CAM可解释性分析-算法讲解

CAM类激活热力图:深度学习可解释性分析、显著性分析经典之作

Learning Deep Features for Discriminative Localization

CVPR 2016

导论

两天搞定图像分类毕业设计代码教程

为什么说这是一篇让人拍案叫绝的文章?

  1. 奠定了可解释性分析、显著性分析的基石
  2. 且后续衍生出若干基于它的算法,打破深度学习的黑箱子

[可解释机器学习]Task03:[算法]CAM_第1张图片

https://github.com/frgfm/torch-cam

代码教程: https://github.com/TommyZihao/Train_Custom_Dataset

各种CAM算法,有公众号做了合集

[可解释机器学习]Task03:[算法]CAM_第2张图片

算法

数字为置信度

3. 对于同一张图像,不同类别可以产生不同的热力图

数字为置信度

纯数字驱动

[可解释机器学习]Task03:[算法]CAM_第3张图片

4. 潜在的注意力机制

能够分析出神经网络对图像的哪部分感兴趣

5.弱监督分析

我们是用图像分类的数据集,标签,数据去训练出图像分类模型

但这个模型不仅可以用来分类,也可以用来定位——>用分类数据集去训练定位模型

6. 使得Machine Teaching成为可能

反向知道我们进行学习

CAM算法原理

预备知识﹒深度学习、卷积神经网络、图像分类

[可解释机器学习]Task03:[算法]CAM_第4张图片

精妙之处就是权重

讨论:全卷积网络(无池化)

池化的作用:

  1. 减少计算量
  2. 防止过拟合
  3. 平移不变性

同时也丢失了长宽方向的空间信息

因此在CAM热力图中,不适用带池化的卷积神经网络

[可解释机器学习]Task03:[算法]CAM_第5张图片

讨论:全局平均池化(Global Average Pooling)

[可解释机器学习]Task03:[算法]CAM_第6张图片

[可解释机器学习]Task03:[算法]CAM_第7张图片

[可解释机器学习]Task03:[算法]CAM_第8张图片

左侧很消耗计算量和参数量

[可解释机器学习]Task03:[算法]CAM_第9张图片

全局平均池化(GAP)取代全连接层

减少参数量、防止过拟合(参数越多,过拟合风险越大)

而且每个GAP平均值,间接代表了

卷积层最后一层输出的每个channel

CAM算法中,必须有GAP层(没有GAP层就没有代表)

否则无法计算每个channel的权重

如果没有GAP层,需把全连接层替换为GAP

再重新训练模型

CAM算法的缺点

GradCAM改进

  1. 必须得有GAP层,否则得修改模型结构后重新训练

        GradCAM改进

[可解释机器学习]Task03:[算法]CAM_第10张图片

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

讨论:SqueezeNet

一个轻量化卷积神经网络

[可解释机器学习]Task03:[算法]CAM_第11张图片

一步到位

讨论:显著性分析的意义

教工人改进工艺

教普通人类判别鸟的种类

可解释机器学习专题精读论文清单

CAM可解释性论文精读

前言:论文十问

  1. 论文试图解决什么问题?深度学习,特别是卷积神经网络的弱监督定位。进而实现可解释性分析和显著性分析。
  2. 这是否是一个新的问题?不是,这是一个内卷的问题。
  3. 这篇文章要验证一个什么科学假设?卷积神经网络能提取位置信息,并按特定类别展示出来
  4. 有哪些相关研究?如何归类?谁是这一课题在邻域内值得关注的研究员?可视化卷积神经网络中间特征,基于CAM的可解释性分析、显著性分析,论文作者周博磊、南开大学程明明团队
  5. 论文中提到的解决方案之关键是什么?通过全局平均池化(GAP)层,获得指定类别对最后一层卷积层输出的每个特征图Channel权重,进而计算CAM类激活热力图,展示指定类别在原图上重点关注的特征区域
  6. 论文中的实验是如何设计的?lmageNet定位任务、其它视觉任务
  7. 用于定量评估的数据集是什么?代码有无开源?lmageNet定位任务、VQA等其它视觉任务数据集有开源
  8. 论文中的实验及结果有没有很好地支持需要验证的科学假设?在各种视觉任务上,都表明了,CAM算法能够打破深度学习的黑箱子,人工智能展示自己的“注意力"和“学到的特征”
  9. 这篇论文到底有什么贡献?打破深度学习的黑箱子,让人工智能展示自己的“注意力"和"学到的特征”,使得Machine Teaching成为可能。深入理解它,解释它、改进它,进而信赖它。知其然,也知其所以然。
  10. 下一步呢?有什么工作可以继续深入?Grad-CAM、Score-CAM、LayerCAM等一系列基于CAM的可解释性分析、显著性方法(这一点在论文中也有提到,后续也会继续继续学习)

论文结构:

  1. Introduction
  2. Class Activation Mapping
  3. Weakly-supervised Object Localization
  4. Deep Features for Generic localization
  5. Visualizing Class-Specific Units
  6. Conclusion

最重要的就是CAM的原理图,和两个重点

[可解释机器学习]Task03:[算法]CAM_第12张图片

两个重点:

  1. CAM热力图
  2. 弱监督的定位

总结:本文最重要的是理解热力图的形成及其含义(记得完成相应的代码实现,当然并不是创造而是阅读)

然后回顾下上节课的ZFNet,本节课也很重视可解释机器学习本身,可解释本身更偏向可视化,热力图比特征提取图,

在可视上的表现更好,更方便人类理解,“定位”更像一个附带的效果

就图像上,ZFNet那篇文很喜欢做对比实验,CAM更在意卷积神经网络语义上的理解

你可能感兴趣的:(算法,深度学习,计算机视觉)