深度学习可解释性分析-Grad-CAM

概念介绍        

        CAM揭示了卷积神经网络分类模型中图像的空间特征与其类别权重之间的联系,然鹅,CAM只适用于模型中有全局平均池化层并且只有一个全连接层(即输出层)的情形,如ResNet,MobileNet等。因为CAM算法中生成类激活图所需要的类别权重,即为全局平均池化层和全连接输出层之间的,对应着图片类别的权重。对于VggNet,DenseNet等有着多个全连接层的模型,CAM则不再适用,因为无法获取到类别权重。为了解决这一问题,Grad-CAM应运而生。

        GradCAM的提出是为了解决CAM对模型架构的要求限制,给定一张图像和一个感兴趣的类别(例如,"cat"或任何其他类别的输出)作为输入,我们通过模型的CNN部分前向计算图像,然后通过特定任务(task-specific)的计算获得该类别的原始分数。所有类别的梯度都设置为零,但所需类别"cat"除外,该类别设置为1。然后,该信号被反向传播到Rectified Conv Feature Maps,我们将其结合起来计算粗糙GradCAM(蓝色热图),该热力图表示模型决策的局部激活(类似CAM)。最后,我们将热图与引导反向传播(Guided Backprop,输入图像级的梯度)逐点相乘,以获得高分辨率和语义特定的Guided GradCAM可视化。

网络结构

  1. 假设还是两个类别:猫和狗,要可视化猫这个类别的GradCAM,首先通过softmax得到猫的概率,然后对最后一层卷积层的所有特征图求偏导,得到大小与最后一层卷积层大小一致的偏导矩阵。

  2. 将这偏导特征图做GAP(全局平均池化),得到一个权重向量,向量长度就是特征图数量。

  3. 将权重向量与特征图对应相乘再相加,此时得到一个二维的矩阵,宽高与特征图一致。

  4. 将这个二维矩阵送入Relu过一遍,把负数变成0。

  5. 最后,进行上采样,得到GradCAM。

 

        Grad-CAM是一个可以满足多任务的方法,只要任务的输出可以进行求导,就可以反向求梯度从而求得不同卷积次输出的feature map的偏导数,获得不同特征的重要程度。 

实验结果

                                                     图像分类任务的可解释性分析

                                                    图像描述任务的可解释性分析 

 

                                                        视觉问答模型的可解释性分析 

                                                        发现数据集中的偏见,并纠正模型 

模型总结

Grad-CAM优点:

  • 不需要GAP层,无需修改模型结构,无需重新训练可分析任意的中间层

  • 细粒度图像分类,Maching Teaching

Grad-CAM缺点:

  • 图像上有多个同类别时,只能画出一个类别的热力图

  • 不同位置的梯度值,GAP后影响是相同的

  • 梯度消失,梯度饱和...

深度学习可解释性分析总结

1.Grad-CAM 和 CAM 的区别

  • CAM 只能用于最后一层特征图和输出之间是GAP的操作,grad-CAM可适用非GAP连接网络结构

  • CAM只能提取最后一层特征图的热力图,而gard-CAM可以提取任意一层;

2.Grad-CAM 和 CAM 的共同点

  • 对深度学习实现可解释性分析,打破“黑箱子”

  • 对图像分类,目标检测,问答系统等都能生成对应的热力图,辅助人类进行决策

  • 弱监督定位:图像分类模型解决定位问题

  • 潜在的“注意力机制”,确定模型的关注点并进行模型纠正

  • Machine learning 到Machine teaching

猜你喜欢

转载自blog.csdn.net/xs1997/article/details/129824165