Visualizing and Understanding Convolutional Networks(ZF-Net)解读

会议: ECCV 2014


Introduction

自从AlexNet出现出现之后,大量的CNN都冒出来取得了很好的分类效果,但是,存在有两个问题,一个是对CNN为什么能够表现得如此之好并不清楚;二是他们的表现怎么能够提升;这篇论文探索的就是这两个问题,同时提出的ZF-Net取得了ILSVRC 2013图像分类冠军。


CNN成功的要素主要有三个方面的原因,(1)有大得多的训练集和带标签的百万级样本;(2)强大的GPU使得训练一个非常大的模型成为可能;(3)更好的模型正则策略,比如说dropout;


从科学研究的角度,如果CNN的成功只能作为一个黑箱而背后原理而不能被解释,从科学角度来说,这是很不科学的!因此本文就提出了一种可视化技术,能够展现模型任何一层的输入的特征映射。可视化技术使用的是多层的反卷积网络(deconvnet),把特征映射回输入的像素空间。同时,本文还做了通过遮挡一部分输入图片,看看那部分对分类是重要的做了敏感性分析。


Approach

本文用的模型如图:


其实跟AlexNet结构是类似的。


理解卷积的操作需要翻译在中间层的特征活动。作者展现了一种把这些活动映射回输入像素空间的方法,展示什么样的输入模式能够引起特征映射中一个给定的激活。为了检测一个卷积层,就附上一个反卷积层,提供一个连续的回到图片像素的路径。如图:


图的左边部分就是反卷积。

首先,输入图片经过卷积层得到特征映射,为了检测一个给定的卷积激活,把这层除了这个激活之外的其他激活设置为0并且把特征映射组为反卷积的输入,然后经过unpool, ReLU和卷积核重建这层的这个活动,直到得到输入像素空间。


Unpooling:  我们都知道在卷积网络中,max pooling是不可逆的,但是可以通过记录每一个pooling区域的最大值的位置在一个转换变量集合(a set of switch variables)中获得一个近似的反转值。使用这些转换找到大概的位置,把结构重建出来,正如上图中的左下部分所示。

Rectification: 卷积网络使用ReLU来得到非线性,并且把特征修正为正的。为了得到准确的特征重建,也需要把特征通过ReLU;

Filtering: 卷积网络通过卷积核从前一层得到卷积特征,为了反转这个步骤,用同样卷积核的转置;


整个过程有点类似于BP, 只是是强激活对输入图片进行求导;


Convnet Visualization

如图,展现了ImageNet验证集的特征激活:

Feature Visualization

特征映射展现出一种层级性。第二层展现出对应的角和其他边或者颜色连接;第三层有更多的复杂不变性,抓取了一些像素的纹理特征;第四层展现出了重要的变化,更像是具体的类了,比如说狗脸、鸟的腿之类;第五层展现了带着重要姿势变化的整个物体,比如狗,键盘等;

Feature Evolution during Training

在训练过程中的可视化发现,模型更低的层在几个epoch就收敛了,但是高层在相当轮epoch(40~50)才能形成,所以说当训练完全收敛后再可视化是很重要的。

其实这也正好说说明底层的卷积层提取的是相对底层的特征,而层数越深特征也越高层,所以在微调中更强调的是高层的微调。


Occlusion Sensitivity

分类问题中很自然的一个问题是模型真正的识别了图片中的物体还是使用了环境。作者通过灰色的正方形遮挡图片的不同部分,然后监控分类器的输出,结果发现当物体被遮挡时,正确分类率下降得很快,因此证明了模型识别的是物体本身。


同时作者还对网络结构进行调整进行实验,结果如下:



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值