[Paper] Tell Me Where to Look: Guided Attention Inference Network + CAM + Grad-CAM

[Paper] Tell Me Where to Look: Guided Attention Inference Network + CAM + Grad-CAM

题图来自这篇文章: Kunpeng Li, Ziyan Wu, Kuan-Chuan Peng, Jan Ernst, Yun Fu, Tell Me Where to Look: Guided Attention Inference Network, arxiv.org/pdf/1802.1017


之前有不少工作是在探讨怎么样可视化训练好的模型,形式上包括生成可以让某个类别响应最大化的图像,或者是显示出模型在给定输入上的Attention。


图片来源: Karen Simonyan, et al. Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps, https://arxiv.org/pdf/1312.6034.pdf


这篇文章思路上挺有趣的。大体上的方法是,给定图像,分类网络输出对于c个类别上的分布,对于每一类可以利用Grad-CAM的方法得到一张Attention Map。根据Attention Map把重要的部分遮盖掉得到c张不同的图。然后同一个分类网络需要对每张处理过的图分类,使得对应的正确类别上的分数尽可能的低。当然如果有正确的attention annotation,可以额外加一个loss来帮助学习attention map。


图片来源: Kunpeng Li, Ziyan Wu, Kuan-Chuan Peng, Jan Ernst, Yun Fu, Tell Me Where to Look: Guided Attention Inference Network, https://arxiv.org/pdf/1802.10171.pdf


实验做的是Weakly Supervised Semantic Segmentation。有一点疑虑的地方是,对于分类最合适的Attention Map,可能和实际的Segmentation并不一致。增加了后面这部分是不是会影响整体的分类结果,并不太清楚。比如,数据上对于猫这个类别做分类可能只需要重点关注头部,因为身体部分可能和其它动物混淆。如果增加监督信息去训练Attention Map来覆盖全身,反倒可能影响分类效果。


这篇文章里用到了Grad-CAM (Gradient-weighted Class Activation Mapping) 来得到Attention Map。Grad-CAM是另外一篇文章 Ramprasaath R. Selvaraju, Michael Cogswell, Abhishek Das, Ramakrishna Vedantam, Devi Parikh, Dhruv Batra, Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization.

Grad-CAM是 @周博磊的CAM (Class Activation Mapping)的进一步拓展。CAM的方法是这样的:

图片来源: http://cnnlocalization.csail.mit.edu

假设分类网络最后不是用FC而是Global Average Pooling,那么实际上对于每一类的响应都有一张对应的Feature Map。Feature Map其实就包含了对不同位置的响应强度。所以给定图片想要得到针对某类的Attention Map只要weighted average各个feature map即可。得到weight的方式很直观,从最后分类的FC层的参数就可以得到对于某一类每个feature map的权重。


CAM需要网络最后有Global Average Pooling,Grad-CAM去掉了这个限制。

图片来源: Ramprasaath R. Selvaraju, Michael Cogswell, Abhishek Das, Ramakrishna Vedantam, Devi Parikh, Dhruv Batra, Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization

方法上图表达的很清楚。以得到Attention Map为例,对于任何网络我们想得到的是最后Conv层输出的response maps的权重。这个权重也可以理解为reponse map对于最终的Loss或者Score的影响程度。很自然的,通过reponse map上的gradients就可以知道这个影响程度。

图片来源: Ramprasaath R. Selvaraju, Michael Cogswell, Abhishek Das, Ramakrishna Vedantam, Devi Parikh, Dhruv Batra, Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization

没有做过模型可视化方向的研究,感觉很有趣。现在很多深度学习模型可以很好的给图像分类。给定一张图像,这些模型究竟是依照什么样的规则判断这张图像上的物体是什么,是一个挺有意思的问题。更近一步的思考,如果我们能够直观的观察到模型的“思考”过程,就有可能找到更好方法来纠正它犯的错误。比如在VQA中,通过可视化可以了解模型如何给出的回答。也就可以直观的了解到模型是不是真的学到了和人类相似的推理过程。


相关文章:

Bolei Zhou, Aditya Khosla, Agata Lapedriza, Aude Oliva, Antonio Torralba, Learning Deep Features for Discriminative Localization

Ramprasaath R. Selvaraju, Michael Cogswell, Abhishek Das, Ramakrishna Vedantam, Devi Parikh, Dhruv Batra, Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization

Kunpeng Li, Ziyan Wu, Kuan-Chuan Peng, Jan Ernst, Yun Fu, Tell Me Where to Look: Guided Attention Inference Network

编辑于 2018-03-04 15:08