论文题目:《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 公布