CAM:Class Activation Mapping 类激活映射

CAM

  • CAM
    • 1. 引言和相关工作
    • 2. Class Activation Mapping 类激活映射
      • 分析:
      • 讨论:
    • 3. 实验:Localization (定位竞赛)
    • 4. CAM算法缺点:
      • 改进工作:
        • Grad-CAM
        • SqueezeNet(轻量化网络)
    • 5. 显著性分析的意义
    • 参考资料:
    • 思考题:

CAM

同济子豪兄-——CAM可解释性分析-算法讲解

Learning Deep Features for Discriminative Localization, CVPR2016

贡献:

  1. 奠定了可解释分析、显著性分析的基石

CAM:Class Activation Mapping 类激活映射_第1张图片

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

  1. 同一张图像,根据不同类别绘制不同的热力图

CAM:Class Activation Mapping 类激活映射_第2张图片

  1. 潜在的注意力机制

  2. 弱监督学习 (图像分类模型 -> 完成定位)

1. 引言和相关工作

  1. 卷积神经网络中卷积单元充当目标检测器。但使用全连接层分类时,这种显著定位物体的能力丧失。
  2. NIN 提出了 GAP (全局平均池化), 其优势不仅体现在正则化,更关键的在于,它能保持网络的定位能力到最后一层。
  3. GAM 可用于弱监督目标定位。

两篇多实例学习弱监督目标定位
“R. G. Cinbis, J. Verbeek, and C. Schmid. Weakly supervised object localization with multi-fold multiple instance learning. IEEE Trans. on Pattern Analysis and Machine Intelligence, 2015. 1, 2”
“P. O. Pinheiro and R. Collobert. From image-level to pixellevel labeling with convolutional networks. 2015. 1, 2”


2. Class Activation Mapping 类激活映射

CAM:Class Activation Mapping 类激活映射_第3张图片

分析:

  • 类别 c 的线性分类 l o g i t logit logit 分数:
    S c = ∑ k ω k c ∑ x , y f k ( x , y ) = ∑ x , y ∑ k ω k c f k ( x , y ) S_c = \sum_k \omega_k^c \sum_{x,y} f_k(x,y) = \sum_{x,y}\sum_k \omega_k^c f_k(x,y) Sc=kωkcx,yfk(x,y)=x,ykωkcfk(x,y)

其中, f k ( x , y ) f_k(x,y) fk(x,y) 表示最后一层卷积层的单元 k 在空间网格 ( x , y ) (x,y) (x,y) 处的激活。之后,对单元 k ,经过GAP全局平均池化得到 F k = ∑ x , y f k ( x , y ) F_k = \sum_{x,y} f_k(x,y) Fk=x,yfk(x,y)。对于类别 c ,输入经过 s o f t m a x softmax softmax w k c w_k^c wkc表明类别 c 对单元 k 重要性的权重。

  • 类别 c 的类别概率映射 M c M_c Mc
    M c ( x , y ) = ∑ k ω k c f k ( x , y ) M_c(x,y) = \sum_k \omega_k^c f_k(x,y) Mc(x,y)=kωkcfk(x,y)

因此, S c = ∑ x , y M c ( x , y ) S_c = \sum_{x,y} M_c(x,y) Sc=x,yMc(x,y), 其中 M c ( x , y ) M_c(x,y) Mc(x,y) 表明 在空间网格 ( x , y ) (x,y) (x,y) 处对将图片分为 c 类的激活的重要性。

每个 特征图 (feature map) 的通道 (channel) 代表了一个卷积核从图像中提取出的一类视觉特征。 w c w_c wc 权重间接反映了该特征对类别 c 的重要程度。接着通过上采样,将 14x14 的特征图缩放到原输入图像尺寸。


GAP vs GMP:

  • average:关键区域范围内的特征都有影响
  • max : 非最大值的特征怎么变化都没用(无梯度)

分类性能接近, 定位性能不同


讨论:

  1. 全卷积神经网络?为什么不用池化?
    池化(Max、Mean)作用:
    • 减少计算量
    • 防止过拟合
    • 平移不变性

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

  1. 全局平局池化(GAP)?

全局平均池化(GAP) 取代了全连接层,减少了参数量、防止过拟合。
而且每个GAP平均值,间接代表了卷积层最后一层输出的每个channel。
CAM算法中,必须有GAP层,否则无法计算每个channel的权重。[缺点]

CAM:Class Activation Mapping 类激活映射_第4张图片


[注] NIN 中提出了 GAP、1x1卷积。
CAM:Class Activation Mapping 类激活映射_第5张图片


3. 实验:Localization (定位竞赛)

Localization :定位竞赛,图像中有一个物体需要分类 + 画一个框。

方法:用 GAP 代替全连接层 ⟶ \longrightarrow 重新训练模型
下采样次数越少, 最后一层卷积层输出的 feature map 越大, 空间信息丢失越少,定位性能越好。


4. CAM算法缺点:

  1. 必须有GAP层,否则得修改模型结构后重新训练
  2. 只能分析最后一层卷积层输出,无法分析中间层

改进工作:

Grad-CAM

  • 不需要GAP层
  • 可以分析中间层
    CAM:Class Activation Mapping 类激活映射_第6张图片

SqueezeNet(轻量化网络)

最后一层卷积层直接输出对于类别数的channel数特征图
CAM:Class Activation Mapping 类激活映射_第7张图片


5. 显著性分析的意义

1.工业应用

  • machine learning
    • 解决工业中的问题: 如参数设置
  • machine teaching
    • 通过可视化,告诉人们需要关注的位置,教会人们学习
  1. AI 教学

论文:Making a Bird AI Expert Work for You and Me
教会人们利用图像的不同种类的鸟的哪些特征去区分不同的鸟


参考资料:

CAM:Class Activation Mapping 类激活映射_第8张图片

思考题:

CAM:Class Activation Mapping 类激活映射_第9张图片

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