Visualizing and Understanding Convolutional Networks

论文链接:https://link.springer.com/chapter/10.1007/978-3-319-10590-1_53

本文贡献

CNN在图像分类中的表现中取得了惊人的进展,但是对于为什么CNN表现的如此之好还没有一个清晰的解释。本文主要介绍如何利用反卷积进行CNN的可视化,通过对特征图进行反卷积,直观感受特征图提取到的图像特征,对CNN的分类结果加以说明,同时介绍了基于CNN可视化的网络调优。并且作者通过实验证明了,通过ImageNet训练模型提取的特征具有泛化能力,提取的特征具有一定的代表意义。

1、Introduction

1、作者首先阐述CNN在分类以及检测领域表现好的原因:

  • 数据量的增加。
  • GPU的使用,使得训练成为可能。
  • Dropout等更好的模型训练策略。

2、介绍本文算法相关信息,在此不详述了。

2、本文算法

1、本文使用标准的全监督卷积神经网络。

  • 前后层卷积运算。
  • relu
  • max pooling
  • full connected layers
  • softmax
  • stochastic gradient descent

2.1 反卷积

1、反卷积可以理解为卷积的反向过程。
2、反卷积包含如下操作:
Unpooling

计算pooling时候,记录下max的位置,如下图”max location switches”,在计算unpooling时,根据“max location switches”的标记信息,将最大值标注回相应位置。

Rectification

在正向传播时候,利用ReLU,传播的值全部为正数,在Deconv时,同样利用ReLU保证传播的都是正数。

Filtering

卷积核旋转180度,实现反向卷积。

3、其他事项

  • 没有使用contrast normalization操作。
  • 从单一**值,重构原始图像的一部分。
  • 本文方法不同于直接反向传播单一的特征图**值在于:加入独立的ReLU以及没有 constrast normalization操作。

Visualizing and Understanding Convolutional Networks

3、训练细节

1、网络结构,不同于AlexNet在于:

layers 3,4,5 由sparse connected to dense connected
对卷积核大小以及stride大小进行调整,如下图所示:

Visualizing and Understanding Convolutional Networks

2、训练参数

  • ImageNet 2012数据集,1000类
  • resize and crop to 256,subtracting the per-pixel mean,sub-crops 10 images(corner and center and its flips image) 224 * 224
  • Stochastic gradient descent
  • batch size of 128
  • learning rate of 0.01
  • momentum 0.9
  • dropout in layer 6 and 7 with a rate of 0.5
  • All weights are initialized to 10−2 and biases are set to 0.
  • 可视化第一个层卷积核发现部分卷积核数值过大,为防止其过大,本文进行了规范化处理,使其均方根大小为0.1,使输入图像范围变为[-128,128]。

4、Convnet Visualization

特征可视化

  • 对于一个feature map , 取排序前9的**值(此处前9没说太清楚,经过分析认为是在验证集中,选取响应最大的前9个特征图),然后对每个最大相应点deconv到像素空间,查看提取特征的特点。
  • 如下图所示,layer具有层次化特点,不同的feature map 显示 提取了不同的特征。
  • 每个feature map 具有很强的关联性(strong grouping)
  • 较高的layer显示了较好的不变性。
  • 增强了图像中具有区分度的特征(如:眼睛,鼻子等)

Visualizing and Understanding Convolutional Networks

随着训练进行的特征提取程度分析
1、训练结果如下图所示:

下图代表5个layer的结果,每一行代表迭代[1,2,5,10,20,30,64]的结果,对于每一个feature map 可视化所有训练数据集中最强的**值,结果带有人工增强,使得结果对比度更强。

2、可以发现:低层,特征收敛较快,但是高层收敛较慢。

Visualizing and Understanding Convolutional Networks

模型结构选择

通过观察可视化结果,发现Krizhevsky et al. ’s architecture,第一层含有较多的高频以及低频信息,中频信息较少,并且由于第一层的stride为4,导致第二层中存在特征重叠干扰现象,因此做如下改变:

1、11*11大小的卷积变为 7*7的卷积。
2、stride从4 变为 2
3、效果有了提升。

遮挡

  • 作者通过对不同位置进行遮挡,然后验证不同遮挡位置对于分类效果的影响,实验证明,当遮挡位置为关键位置时,分类准确度下降明显。

  • 同时作者通过对top feature map 进行可视化,查看特征提取位置与遮挡位置对比,通过观察发现,基本保持一致,如下图c。图d和e分别对应遮挡不同部位的分类结果以及分类准确的可视化结果。

Visualizing and Understanding Convolutional Networks

5、实验

1、ImageNet 2012

实验证明,本文根据特征图可视化修改后的网络结构,实验错误率较原本的AlexNet有些许减少。

修改网络结构对于网络精度的影响

作者通过修改网络部分结构,然后重新训练,查看不同结构对于精度的影响。

  • remove 6、7全连接层,错误率有提升,但不大。
  • remove 3、4卷积层,错误率有提升,但不大。
  • remove 3、4、6、7,错误率明显增大,说明深度对于精度影响很大。
  • 增加卷积层的卷积核数量,分类效果有较小提升,但是有过拟合的风险。

Visualizing and Understanding Convolutional Networks

特征泛化能力

  • Caltech-101 , Caltech-256 and PASCAL VOC 2012. 数据集上验证特征提取泛化能力。
  • 验证方法:保存1-7层训练参数不变,利用新数据训练softmax。

  • 实验结果

    1、Caltech-101、Caltech-256结果:

    • 利用ImageNet学习到的特征进行实验效果最好,而重新训练的结果不是特别理想。说明ImageNet学习到的特征有效。
      2、 PASCAL 2012
    • PASCAL数据集图像中含有多个目标,而我们的网络只能给出一个分类,所以效果并没有完全超过其他的方法,不过在5个类别的分类中,我们仍然具有最好的效果,说明ImageNet学习到的特征依然有效。

特征分析
作者利用ImageNet预训练模型提取特征并分别训练了softmax以及SVM模型,发现,无论softmax还是SVM均取得了较好的效果,并且通过改变网络层数,证明了,加深网络层数可以在一定程度上提取更好的特征。