可解释机器学习 Task03 - CAM可解释性分析

CAM可解释性分析

  • 一、CAM算法简介
  • 二、算法说明
    • 1.算法步骤
    • 2.算法巧妙之处
    • 3.为什么不采取池化操作
      • (1)池化的作用
      • (2)不使用池化的原因
    • 4.常规全连接层与GAP比较
    • 4.CAM算法的缺点
  • 三、SqueezeNet算法
    • 1.算法简介
  • 四、研究意义

一、CAM算法简介

论文: Learning Deep Features for Discriminative Localization

CAM算法简介:,展示指定类别在原图上重点关注的特征区域。并巧妙用图像分类实现弱监督定位。打破深度学习的黑箱子,让人工智能展示自己的“注意力”和“学到的特征”。

可解释机器学习 Task03 - CAM可解释性分析_第1张图片

CAM算法的精妙之处

  • 对深度学习实现可解释性分析、显著性分析
  • 可扩展性强,后续衍生出各种基于CAM的算法
  • 每张图片、每个类别,都能生成CAM热力图
  • 弱监督定位:图像分类模型解决定位问题
  • 潜在的“注意力机制
  • 使得Machine Teaching成为可能

二、算法说明

1.算法步骤

  • 输入原始图像
  • 全卷积神经网络(无池化
  • 最后一层卷积层输出512个 feature map (channel) ,每一个 channel(矩阵)大小都是都是14*14。(其中蓝色层、红色层、绿色层都是14 *14的矩阵,一共512层)这512层对应卷积神经网络提取出来的512个特征
  • 全局平均池化(GAP):将每一层的矩阵取平均值,得到一个512*1的向量,起到了全连接层的作用
  • 线性分类层:对于n个类别,训练得到对应上一层的平均数的权重(权重的大小间接地反映出对于对应卷积层(对应特征)的关注程度
  • 将权重与平均数进行线性组合(相乘后相加),得到n个线性分类分数(logit),再进行softmax操作,则得到了n个概率(后验置信度、后验概率)
  • 找到后验概率最大的top1、top3或者top5,得到图像分类的结果

可解释机器学习 Task03 - CAM可解释性分析_第2张图片

2.算法巧妙之处

  • 全局平均池化(GAP)操作的出现,可以利用权重间接反应出特定类别对于每一个 channel 的影响程度(贡献)
  • 最后得到的是一个14*14的矩阵,利用双线性插值,可以将矩阵缩放回原图大小(分辨率低→高)

3.为什么不采取池化操作

(1)池化的作用

  • 减少计算量(输入数据大小变小)
  • 防止过拟合(将一个大图转化为一个小图,但是核心信息仍然保留在小图上)
  • 平移不变性(对于图像进行平移操作后,网络接收到的信息不变)——不采取池化操作的关键所在

可解释机器学习 Task03 - CAM可解释性分析_第3张图片

(2)不使用池化的原因

  • 池化(下采样)引入了平移不变性
  • 也意味着 丢失了长宽方向的位置信息
  • 因此在CAM热力图中
  • 不使用带有池化的卷积神经网络

4.常规全连接层与GAP比较

  • 常规的全连接层:将所有的 channel 平铺合并为一个长向量,将这个长向量输入全连接层,耗费计算量、参数量爆炸
  • GAP:减少参数量(512 *14 *14 → 512),防止过拟合

可解释机器学习 Task03 - CAM可解释性分析_第4张图片

4.CAM算法的缺点

  • 必须得有GAP层,否则得修改模型结构后重新训练(Grad-CAM可以改进)
  • 只能分析最后一层卷积层输出,无法分析前面的、中间的层(Grad-CAM可以改进)

三、SqueezeNet算法

1.算法简介

  • 最后一个卷积层输出1000个 channel,对应1000个类别的CAM图
  • 对这1000个类别的CAM图做GAP,可以直接得到1000个 logit 分数,对应1000个概率。跳过了线性分类层
  • 轻量化、速度快

可解释机器学习 Task03 - CAM可解释性分析_第5张图片

四、研究意义

从 Machine Learning 到 Machine Teaching,通过AI学习特征,将特征展现给人类,帮助人类学习。

你可能感兴趣的:(深度学习,人工智能)