【论文快读】Visualizing and Understanding Convolutional Networks

链接:http://www.arxiv.org/abs/1311.2901
作者:Matthew D. Zeiler, Rob Fergus
摘要:
abs
CNN的迅速发展主要归功于三个因素:大量数据集的应用(尤其是labeled examples);GPU算力的提升;模型处理策略的发展(Dropout等)。本文着重回答“为什么CNN表现优异”和“如何提高CNN的表现”两个问题,在这两个目标下,作者研究了visualize各个layer的方法,进而可以直接观察feature map的演化方式并有助于解决一些潜在的问题,从而实现优于AlexNet的架构,当采用softmax之后,作者的model可以在多个数据集上达到state-of-art的结果。
本文均采用标准全监督CNN(LenNet和AlexNet),2D-RGB图像 x i 做为input,output是C维概率向量 y i ^ ,C是总的类别数。CNN的每层都是(或近似于)kernel+activation+pooling的结构,最后若干层是全连接+softmax的结构。训练loss是交叉熵函数,更新法则为后向传播+SGD。

使用解卷积网络(Deconvnet)visual feature map

首先,每一个参数确定的CNN都会有一个与之对应的Deconvnet,它把feature map做为输入,output位于原像素空间内,目的是观察“什么样的像素模式可以产生特定的feature map”。
这里写图片描述

如图,右上是CNN,在pooling的过程中生成了一个switch矩阵,记录maximum的index;左上是DCNN,下是借助前述switch进行unpooling的过程。

非线性化使用ReLU函数,卷积kernel使用对应CNN的kernel的转置。

训练

作者采用类似AlexNet的结构,输入经过resize和cropping成为256×256。参数使用128-minibatch+SGD进行更新,学习率0.01,动量项0.9,全连接层以0.5的概率进行dropout,参数初始化为0.01,bias设置为0。

观察

如图,是由验证集各层的feature maps经Deconvnet重构得到的图片和原始图片的对比,我们可以看出到底是什么造成了某一layer的high activation,也可以看出layer1到layer5提取到的信息越来越复杂。
这里写图片描述
这里写图片描述
这里写图片描述
另外对于同一image,将各层feature map解卷积,同样也能看到各层是怎样提取特征的。
evolution
下图(图表含义参考原文Figure5的说明)表明,当原始图片经过平移、旋转、尺度变换之后,CNN的分类准确度。可知平移和尺度变换不影响CNN的分类,但是旋转会。
这里写图片描述

跟据观察结果调整模型

作者给出了AlexNet的前两层feature map的重构图,并据此修改了网络结构:使用更小的filter和更小的stride,从而实现了更好的表现。这对于后面若干经典网络减小filter和stride给出了足够的启发。
作者另外做实验证明了CNN对于对象的定位是通过前景而不是surrounding context。
这里写图片描述

图e给出了遮挡不同部分会引起分类错误的概率,发现遮挡对象本身很有可能造成分类错误。

猜你喜欢

转载自blog.csdn.net/tfcy694/article/details/80282411
今日推荐