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