利用可视化方法直观理解CNN

 技术控

作者:lyl

由萝卜兔编辑整理

CNN模型虽然在各类任务上大放异彩,但一直以来都被诟病缺乏可解释性。针对这个问题,过去几年研究人员除了从理论层面去寻找解释外,也提出了一些可视化的方法直观地理解CNN的内部机理。本文主要介绍两类方法,一种是基于Deconvolution, 另一种则是基于反向传播的方法。 

基于Deconvolution的方法 

基于Deconvolution的方法一篇来自Matthew D Zeiler, Rob Fergus的工作《Visualizing and Understanding Convolutional Networks》

本文主要是将激活函数的特征映射回像素空间,来揭示什么样的输入模式能够产生特定的输出。 

整个架构如图所示: 

如图所示,每一个卷积层都连接着一个deconvnet,最后将特征映射回像素空间。给定一个输入,经过网络计算得到特征,保留某个特定的激活值,其他激活值置零,然后作为deconvnet的输入,逐渐映射回像素空间,这个过程中涉及三个操作及其逆操作: 

1、Unpooling 

实际上max-pooling是不可逆的,这里采用了一个近似操作,在max-pooling的时候记录下相应的索引,在unpooling时,将特征放在这些索引的位置上,如图所示: 

2、ReLU

为了保证所有的激活值都是正的,直接使用了ReLU激活函数 。

3、Deconvolution

对于卷积的逆操作,使用的卷积核是对应卷积层的卷积核的转置 。

基于上述方法得到的可视化结果第一次直观地给出了不同层级学到特征的不同,总的结论就是越靠近输入的层级学到的是越通用的特征,越靠近输出的层级学到的特征越抽象,与实际任务越相关,具体的结果可以参考论文。 

基于Backpropagation的方法 

1、Guided-Backpropagation 

这个方法来自于ICLR-2015 的文章《Striving for Simplicity: The All Convolutional Net》,文中提出了使用stride convolution 替代pooling 操作,这样整个结构都只有卷积操作。作者为了研究这种结构的有效性,提出了guided-backpropagation的方法。 

基于backpropagation的方法,一种最简单的思路是,选择某一种输出模式,然后通过反向传播计算输出对输入的梯度。这种方式与上一种deconvnet的方式的唯一区别在于对ReLU梯度的处理。如图所示: 

在图c中,ReLU处反向传播的计算采用的前向传播的特征作为门阀,而deconvnet采用的是梯度值。图b是一个具体的数值计算例子。guided-backpropagation则将两者组合在一起使用,这样有助于得到的重构都是正数,并且这些非零位置都是对选择的特定输出起到正向作用。这种方法能够很好的可视化高层的特征,而deconvnet会失效。这种方法与deconvnet的方法结果对比如下图,可以看出明显的差异: 

2、CAM(Class Activation Map) 

这个方法严格来说不是基于梯度的,但后面一种方法基于它,因此这儿归在一起一并介绍。CAM 来自CVPR 2016 《Learning Deep Features for Discriminative Localization》,作者在研究global average pooling(GAP)时,发现GAP不止作为一种正则,减轻过拟合,在稍加改进后,可以使得CNN具有定位的能力(当然RCNN系列已经说明CNN中蕴含着目标的位置信息,但是在进行分类任务时,引入全连接层,将目标的空间位置信息丢弃了)。CAM(class activation map)是指输入中的什么区域能够指示CNN进行正确的识别,作者提出了一种简单的方法,整个流程图如下: 

网络结构分为两部分,一部分是特征提取(CNN),一部分是分类层(softmax),在特征提取的最后一层我们使用全局平均池化,这样GAP的将会输出每个feature map的平均值,接下来进行一个加权求和得到最后的输出。那么对应的,我们可以对最后一层feature map利用分类层的权值进行加权。 

通常特征图上每个位置的值在存在其感知野里面某种模式时被激活,最后的class activation map是这些模式的线性组合。为了简便,可以直接使用上采样,将class activation map 还原到与原图一样的大小,通过叠加,我们就可以知道哪些区域是与最后分类结果息息相关的部分。 

3、Grad-CAM 

与CAM不同的是,CAM的特征加权系数是分类器的权值,Grad-CAM的加权系数是通过反向传播得到的。整个流程如下图: 

如何求得各个feature map的加权权值,本文采用梯度回传的方法: 

也很简单,分两步:第1步求logits对卷积特征的梯度,第2步,这些梯度进行一个global average pooling,那么得到的heatmap图为: 

得到的这个heatmap是个粗略的图,它的大小与特征图大小一致,如VGG 最后一层特征图大小是14x14,然后使用双线性插值得到与原图同样的大小。 

Grad-CAM 与 CAM相比,它的优点是适用的范围更广,不像CAM要求最后一层是GAP,Grad-CAM对各类结构,各种任务都可以使用。这两种方法也可以应用于进行弱监督下的目标检测,后续也有相关工作基于它们进行改进来做弱监督目标检测。 

总结

上述几种方法可以让我们对CNN有一些感性直观的认识,有助于理解CNN不同层级的特征的差异,可以指导我们如何更好的利用CNN的特征来研究某些任务。下篇文章将简单地实现上述几种可视化方法。

参考文献: 

Zeiler, Matthew D., and Rob Fergus. "Visualizing and understanding convolutional networks." European conference on computer vision. Springer, Cham, 2014. 

Springenberg, Jost Tobias, et al. "Striving for simplicity: The all convolutional net." arXiv preprint arXiv:1412.6806 (2014). 

Zhou, Bolei, et al. "Learning deep features for discriminative localization." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016. 

Selvaraju, Ramprasaath R., et al. "Grad-cam: Visual explanations from deep networks via gradient-based localization." https://arxiv.org/abs/1610.02391 v3 7.8 (2016). 


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,313评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,369评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,916评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,333评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,425评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,481评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,491评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,268评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,719评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,004评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,179评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,832评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,510评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,153评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,402评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,045评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,071评论 2 352

推荐阅读更多精彩内容