MMLAB学习-Gard-CAM可视化方法

可视化模型背景

Gard-Cam方法目的是为了看到在模型训练过程中,我们的模型到底在关注哪些地方。如果一个模型分类总是分别。那么它一定把重点关注到了不重要的特征,Gard-Cam方法就可以看到在训练过程中我们的模型到底在关注哪些地方。
如图当我们在分类猫和狗时,通过Gard-Cam就可以知道模型在分类的时候关注点在哪一块。

当把它分类成猫的时候,它关注的特征一定在猫的身上
当把它分类成狗的时候,它的关注点一定在狗的身上,如下图所示
在这里插入图片描述

原理

当我们经过一系列的卷积操作得到的特征图,我们想知道这些特征图上的哪些点对我们的分类作用更大,比如当分类是猫的时候,这些特征图上的哪些点对我分类是猫的时候贡献比较大。 我们这里可以遍历每个点,求每个点对我贡献有多大,这里其实就是一个反向传播,求每一个特征图每一个点对我分类的贡献值多大。就是我们需要做的事。

在这里插入图片描述公式中的c表示是第几个类,yc表示是c这个类别的得分值,k的意思是第几个特征图,假设我们经过一系列的卷积得到了一个 7 * 7 * 512 的特征图,α(c,k)的意思是每个特征图的权重是多少,i,j表示的是特征图的大小,Z就是 i * j。意思就是我们要计算每个特征图影响,每个特征图计算每个点的重要程度求和再取平均,这些值算的结果大,就说明对这个类别的贡献比较大。
在这里插入图片描述
这个公式就说最终算的结果,我们再把我们之前算的每个特征图的影响再放到特征图当中,就可以知道每个特征图发挥的作用,在做一个累加。再通过relu函数把所有大于0 的贡献都加入到图中。

在这里插入图片描述这里简单来说如果第一张特征图A的地方贡献比较大,第二张特征图B的地方贡献比较大,加在一起这些地方的贡献程度也会相加,简单来说如下图所示,简单画了一下。
在这里插入图片描述

应用

这两张图片分别是护士和医生,当模型训练有偏差的时候可以看到,模型的注意力在脸上,显然模型的注意力不应该在脸上。当训练正常的时候可以看到模型关注的地方在医生和护士所使用工具上
在这里插入图片描述

mmcls任务中使用

配置参数

在这里插入图片描述配置完参数就可以直接运行看结果
在这里插入图片描述
蓝色表示关注点比较少,偏红色表示关注点比较大

总结

一般在模型训练结束可以用GARD-CAM的方法查看我们的模型在训练过程中关注点是否正确,也可以查看模型中不同层数的关注点,但一般只关注最后一层。
原论文Grad-CAM: Visual Explanations from Deep Networks
via Gradient-based Localization

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dzm1204

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值