Press "Enter" to skip to content

神经网络可视化:Grad-CAM

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

论文题目:《:Visual Explanations from Deep Networks via Gradient-based Localization》

 

作者单位:Georgia Institute of Technology,Facebook AI Research

 

年份:2017

 

公众号: CVpython 同步发布

 

导语:前段时间,用Grad-CAM来对神经网络的输出进行可视化,当时做的是一个多便签分类任务,但是可视化出来的结果感觉都点怪怪的,总感觉哪里不对。这次论文的总结让我对Gradm-CAM有了进一步的理解,终于知道当时可视化问题究竟在哪了,Oh yeah!。

 

1.论文要解决什幺问题?

 

虽然CNN模型在CV领域取得了很大的突破,但是CNN就像一个“黑盒子一样”,里面究竟是怎幺一回事,还是很难让人明白,可解释性很差。如果模型不work,其实也很难解析清楚究竟是为什幺。所以作者提出Grad-CAM模型,对CNN所做的决策作出可视化解释。

 

2. 论文所提模型如何解决问题?

 

很多研究都表明CNN更深的层能够捕获更高级的视觉结构信息,而且,卷积特征中空间信息会在全连接层丢失,所以在最后卷积层,我们在高级的语义信息和详细的空间信息之间能够得到最好的折衷(为什幺说这是一个折衷?)。Grad-CAM利用“流进”CNN的最后一层的梯度信息来理解每个神经元对决策的重要程度。

 

Grad-CAM总体结构如下图所示:

 

 

输入图像经过前向计算得到了特征映射$A$,对于类别$c$,在softmax之前有类别分数$y^c$。现在假设$A^k_{(x,y)}$为特征映射$A$在$(x,y)$位置的第$k$个通道的值,然后计算:

 

 

我们先来理解一下$y^c$对$A^k_{(x,y)}$的求导能够得到什幺。

 

先举个简单的例子,对于公式$y=w1*x1+w2*x2$,其中$x1,x2$为自变量,$w1,w2$分别是两个自变量的系数,$y$对$x1$求偏导结果为$w1$,如果$x1$对$y$更加重要,$w1$系数自然也更大,所以$y$对$x1$的偏导结果也就更大了,那是不是说明了求导可以反映出自变量对函数的重要程度?答案是显然的(如果有大佬觉得不严谨,请指点)。

 

所以$y^c$对$A^k_{(x,y)}$的求导能够得到什幺?得到的就是$A^k_{(x,y)}$这个特征值对$y^c$的重要程度,再来一个全局平均池化,得到就是特征映射第$k$个通道对$y^c$的重要程度了。

 

上面公式(1)求出了特征映射每个通道的系数,然后线性组合一下,如公式(2)所示。

 

 

加上$ReLU$的原因是因为作者只对那些对类别分数有正向影响的特征感兴趣,所以过滤了一下那些有负面影响的特征。

 

虽然Grad-CAM的可视化是具有类别判别力的,并且能够定位到相关的区域,但是它缺少显示细粒度重要性的能力。例如图1(c),虽然Grad-CAM可以定位到猫的区域,但是为什幺网络将它预测为“tiger cat”,从低分辨率的heat-map很难得到结论。为了能够定位的同时也显示细粒度,作者通过点乘将Guided Backpropagation 和Grad-CAM相结合,得到Guided Grad-CAM。如图1(d,j)所示。

 

 

3. 实验结果如何?

 

定位能力更好,分类也不弱。

 

 

4.对我们有什幺指导意义?

 

感觉这才是最重要的点。

Grad-CAM的可视化结果(包括区域和细粒度)为我们提供一个模型不work的解释,譬如某个图像分类错了,我们可视化一下,是感兴趣的区域有问题还是提取的细粒度特征有问题?
还可以验证数据集偏差,论文中有一个例子,例如识别医生和护士,可视化的结果显示模型定位的区域在人脸和发型,模型把有一些女医生识别成护士,而男护士识别成医生,存在性别偏见,以为男的就是医生,女的就是护士,看看数据集,会发现可能是因为78%的医生里面都是男的,而93%的护士都是女的,就存在数据集偏差。

本文由博客群发一文多发等运营工具平台 OpenWrite 发布

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注