CNN 注意力/激活图

Que*_*atl 5 deep-learning keras

通过卷积神经网络查找图像的哪些部分对图像分类贡献最大的常用技术是什么?

一般来说,假设我们有 0 到 1 之间的浮点值作为整体的二维矩阵。每个矩阵都与一个标签(单标签、多类)相关联,目标是通过(Keras)2D CNN 进行分类。

我正在尝试寻找方法来提取对分类贡献最大的行/列的相关子序列。

两个例子:

https://github.com/jacobgil/keras-cam

https://github.com/tdeboissiere/VGG16CAM-keras

其他着眼于 Keras 的示例/资源将不胜感激。

请注意,我的数据集不是实际图像,因此在这种情况下使用 ImageDataGenerator 的方法可能不直接适用。

Sim*_*mdi 3

可视化方法有很多种。这些方法中的每一种都有其优点和缺点。

但是,您必须记住,这些方法部分地可视化了不同的事物。以下是基于本文的简短概述。您可以区分三个主要的可视化组:

  • 函数(梯度、显着图):这些方法可视化输入空间的变化如何影响预测
  • 信号(反卷积、Guided BackProp、PatternNet):信号(神经元激活的原因)被可视化。因此,这可以直观地看出是什么模式导致了特定神经元的激活。
  • 归因(LRP、深度泰勒分解、模式归因):这些方法可视化单个像素对预测的贡献程度。结果,您会得到一个热图,突出显示输入图像的哪些像素对分类贡献最大。

由于您询问像素对分类的贡献有多大,因此您应该使用归因方法。尽管如此,其他方法也有其存在的权利。

iNNvestigate是一个用于可视化热图的好工具箱。该工具箱包含以下方法: