https://www.bilibili.com/video/BV1PD4y1B77q/

CAM

类激活热力图,缺点:

  • 必须有 GAP 层(全局平均池化)才可以应用该算法
  • 只能分析最后一层卷积层输出,无法分析中间层

GradCAM

pytorch-grad-cam ,GitHub上的一个仓库,可以参考

优点:

  • 不需要重新训练网络了(不需要加上 GAP 层)
  • 可以分析任意中间层
  • 数学上是原生 CAM 的推广
  • 细粒度图像分类,Machine teaching

缺点:

  • 图像上有多个同类物体时,只能画出一张热力图
  • 不同位置的梯度值,GAP 平均之后,影响是相同的(中心的像素应该比边缘更重要才对)
  • 梯度饱和,梯度消失,梯度噪声
  • 权重大的 channel,不一定对类别预测分数贡献大
  • 只考虑从后往前反向传播梯度,没考虑前向预测的影响
  • 深层生成的粗粒度热力图和浅层生成的细粒度热力图都不够精准

LIME

超像素分割成多个块,分别做分类,看看哪个块影响大