Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps

[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.”

        即,给定训练好的网络以及感兴趣的类别,可以使用本文所提出的可视化方法计算出与之对应的图像,该图像可以理解为对于给定网络的特定类别的最具有代表性的输入图像。

        具体来说,我们令 S_c(I) 代表模型在输入图像为 I 时类别 c 对应的分数;并给定以下优化目标:

\mathop{\arg\max}\limits_IS_c(I)-\lambda \left \| I \right \|_{2}^{2}

        使用L-2正则化,其中 \lambda 是正则化参数,通过最大化目标函数得到输入图像 \hat{I}。与训练阶段网络权重的更新方法一致,这个优化问题同样可以通过back-propagation来实现;与训练时不同的地方在于此时网络的权重是冻结住的;用全0的图像作为初始化。

        需要注意的是,为了确保生成的 \hat{I} 只针对于某一特定类别,此处的“分数”使用的是unnormalized class score而并不是经过softmax P_c=\frac{\mathop{\exp}S_c}{\sum_{c}\mathop{\exp}S_c} 之后得到的结果——因为通过softmax后最大化某一类的得分可以通过最小化其它类的得分而实现;并且作者也尝试了将经过softmax之后的结果作为class score,但由此优化得到的图像效果并不好。

        下图展示的是对于给定的ConvNet,在不同类别上“得分最高”的图像。


2. Image-Specific Class Saliency Visualization

        “Given an image I_0, a class c, and a classification ConvNet with the class score function S_c(I), we would like to rank the pixels of I_0 based on their influence on the score S_c(I_0).”

        首先来看一个简单的例子,如果分类模型是线性的,class c 所对应的类别分数为:

S_C(I)= w^{\textrm{T}}I+b_c

        其中 I 是原始图像对应的向量形式。在线性模型的情况下,可以很容易地发现 w 定义了图像 I 中的像素对于类别 c 的重要性程度。再把视角切换到深度卷积网络中,此时score function不再是线性的,因此不能通过刚刚的方式获取像素的importance;然而,对于给定的图像 I_0,我们可以在 I_0 附近计算first-order Taylor expansion对 S_c(I) 进行估计:

S_c(I)\approx S_c(I_0) + \nabla S_c(I_0) \cdot (I - I_0)=w^{\textrm{T}}I+b

        where w is the derivative of S_c w.r.t. the image I at the point (image) I_0:

w=\frac{\partial S_c}{\partial I}|_{I_0}

        总结一下,如果是线性模型,那么图像中每个位置的像素点的importance就由权重 w 所决定(不论图像长什么样子,importance都是固定的);而对于非线性模型,比如神经网络,虽然我们无法像通过线性模型那样直接观察 w 来确定每个像素点的importance,但是我们可以在给定的图像 I_0 附近对模型做first-order Taylor expansion近似,而相应得到的结果恰好是一个线性模型,其权重可以通过计算模型分类分数在 I_0 处的偏导得到,也就得到于图像 I_0 中的每个pixel在给定神经网络中对于类别 c 的importance。

(i) Class Saliency Extraction

        给定图像 I_0 (m 行 n 列)以及类别 c,the class saliency map M\in\mathbb{R}^{m\times n}可以通过以下步骤进行:(1) 通过back-propagation计算 S_c(I) 对 I_0 的偏导得到 w;(2.a) 对于grey-scale image,由于像素数目= w 中元素数目,令 M_{i,j}=|w_{h(i,j)}|,其中 h(i,j) 是 w 中元素的索引,对应于第 i 行第 j 列的pixel(简单来说就是得到的 w 与图像 I_0 在空间位置上是一一对应的); (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的推广。

  • 20
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

exploreandconquer

谢谢老板,老板大气!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值