[Towards Interpretable Deep Learning] Post-hoc explanation series
本篇文章发表于ICLR 2014。
文章链接:https://arxiv.org/abs/1312.6034
参考代码:https://github.com/aaron-h-code/VisCNN_ICLR_2014_Saliency
一、概述
本篇论文提出了用于图像分类问题的卷积神经网络的可视化方法,涉及两种技术方案(gradient-based):(i) 给定类别,生成可以最大化类别分数的图像;(ii) 给定图像,生成对应的saliency map(显著性图)。
这是首个应用于ImageNet classification ConvNets的可视化方法;提出的saliency map可以实现weakly supervised object localization;此外,作者还建立了gradient-based visualization methods与deconvolution network reconstruction的联系。
(关于DeconvNet可以参考Visualizing and Understanding Convolutional Networks-CSDN博客)
二、方法
1. Class Model Visualisation
“Given a learnt classification ConvNet and a class of interest, the visualisation method consists in numerically generating an image, which is representative of the class in terms of the ConvNet class scoring model.”
即,给定训练好的网络以及感兴趣的类别,可以使用本文所提出的可视化方法计算出与之对应的图像,该图像可以理解为对于给定网络的特定类别的最具有代表性的输入图像。
具体来说,我们令 代表模型在输入图像为 时类别 对应的分数;并给定以下优化目标:
使用L-2正则化,其中 是正则化参数,通过最大化目标函数得到输入图像 。与训练阶段网络权重的更新方法一致,这个优化问题同样可以通过back-propagation来实现;与训练时不同的地方在于此时网络的权重是冻结住的;用全0的图像作为初始化。
需要注意的是,为了确保生成的 只针对于某一特定类别,此处的“分数”使用的是unnormalized class score而并不是经过softmax 之后得到的结果——因为通过softmax后最大化某一类的得分可以通过最小化其它类的得分而实现;并且作者也尝试了将经过softmax之后的结果作为class score,但由此优化得到的图像效果并不好。
下图展示的是对于给定的ConvNet,在不同类别上“得分最高”的图像。
2. Image-Specific Class Saliency Visualization
“Given an image , a class , and a classification ConvNet with the class score function , we would like to rank the pixels of based on their influence on the score .”
首先来看一个简单的例子,如果分类模型是线性的,class 所对应的类别分数为:
其中 是原始图像对应的向量形式。在线性模型的情况下,可以很容易地发现 定义了图像 中的像素对于类别 的重要性程度。再把视角切换到深度卷积网络中,此时score function不再是线性的,因此不能通过刚刚的方式获取像素的importance;然而,对于给定的图像 ,我们可以在 附近计算first-order Taylor expansion对 进行估计:
where is the derivative of w.r.t. the image at the point (image) :
总结一下,如果是线性模型,那么图像中每个位置的像素点的importance就由权重 所决定(不论图像长什么样子,importance都是固定的);而对于非线性模型,比如神经网络,虽然我们无法像通过线性模型那样直接观察 来确定每个像素点的importance,但是我们可以在给定的图像 附近对模型做first-order Taylor expansion近似,而相应得到的结果恰好是一个线性模型,其权重可以通过计算模型分类分数在 处的偏导得到,也就得到于图像 中的每个pixel在给定神经网络中对于类别 的importance。
(i) Class Saliency Extraction
给定图像 ( 行 列)以及类别 ,the class saliency map 可以通过以下步骤进行:(1) 通过back-propagation计算 对 的偏导得到 ;(2.a) 对于grey-scale image,由于像素数目= 中元素数目,令 ,其中 是 中元素的索引,对应于第 行第 列的pixel(简单来说就是得到的 与图像 在空间位置上是一一对应的); (2.b) 对于multi-channel image,比如RGB图像,选取所有channels的最大值作为saliency value。无论是grey-scale还是multi-channle,最后得到的都是一张grey-scale的salicency map。
不同图像对应的saliency maps如下。
(ii) Wekly Supervised Object Localization
给定image和对应的class saliency map,通过GraphCut colour segmentation计算目标对象的segmentation mask;这里使用colour segmentation的原因是saliency map可能只捕捉到目标对象最具区分性(最显著)的部分,因此仅通过一个threshold区分前景和背景可能无法突出对象的整体;而使用颜色的连续性可以帮助将thresholded的显著性图propogate到图像中的其他部分。
(1) Froeground and background colour models
使用高斯混合模型(GMM)对前景和背景进行建模,获取连续的颜色分布,其中“The foreground model was estimated from the pixels with the saliency higher than a threshold, set to the 95% quantile of the saliency distribution in the image; the background model was estimated from the pixels with the saliency smaller than the 30% quantile”. 即,使用的不是原始的saliency ma而是阈值化处理后的map,并且阈值化产生了三类point:一类用来建模前景(>95%)、一类用来建模背景(<30%)、一类不去管(30%~95%)。
(2)执行GraphCut分割
利用GraphCut分割实现对图像的前景和背景进行分割。
结果图帮助理解:
第一列是来自ILSVRC-2013测试集中的原始图像;
第二列是它们对应的saliency maps for the top-1 predicted class;
第三列是thresholded saliency maps,其中蓝色用来建模foreground colour model、青色用来建模background colour model,红色不管;建模方式为GMM,得到连续的colour;
第四列是使用GraphCut进行分割后的结果。
3. Relation to Deconvolutional Networks
作者在这部分介绍了本文方法与DeconvNet之间的联系与区别。简而言之,DeconvNet中涉及到的反卷积与反池化都与本文基于梯度的方法对应,只有ReLU rectification不太一致(本文针对的是layer input而DeconvNet针对的是the output reconstruction)。由于基于梯度的方法可以应用于任何层而不局限于卷积层,因此本文可以视为DeconvNet的一种推广。
这部分的具体介绍请参考原论文。
总结一下,本文提出了两种可视化技术:Class Model Visualisation以及Image-Specific Class Saliency Visualization。作者证明了saliency map可以用来初始化基于graphcut的object segmentation,而不需要训练专门的分割或目标检测模型。最后,作者还阐述了gradient-based的可视化相当于DeconvNet reconstruction的推广。