论文笔记:Visualizing and Understanding Convolutional Networks

2014 ECCV
纽约大学 Matthew D. Zeiler, Rob Fergus网络

简单介绍(What)ide

  1. 提出了一种可视化的技巧,可以看到CNN中间层的特征功能和分类操做。
  2. 经过对这些可视化信息进行分析,咱们能够
    • 直观了解和分析CNN学到的特征(中间层特征对应什么样的图像)
    • 能够找到提高模型的办法(观察中间层特征,分析模型能够改进的地方)
    • 分析CNN的遮掩敏感性(遮住某一块区域后对分类结果的影响)
  3. 这种可视化技巧主要用到反卷积的技术,把中间层的激活特征映射回输入空间。

论文动机(Why)学习

  1. 虽然CNN在图像任务上取得了优秀的表现,可是看不到CNN的内部操做和复杂模型的表现行为,不清楚它们为什么会取得这么好的效果。
  2. 在科学的角度上,这是不能接收的,没有清晰地理解CNN是如何工做以及为何这样运做,那么它的发展和进步就只能靠不断地“试错”。
  3. 因此论文提出了可视化的技巧,能够观察到训练过程当中特征的演化和影响,能够分析模型潜在的问题。

怎么作的(How)blog

  1. 论文的网络结构和alexNet很相似,作了一些改动,好比stride变成2,11x11的卷积核变成7x7的卷积核。
  2. 为了把中间层的激活块映射回输入空间,使用了反卷积的技术,以下图所示,右边是卷积网,左边是反卷积网。
  3. 反池化:因为池化操做不可逆,使用了一个近似可逆的方法,用Switches记录每一个池化块最大值的位置,以下图所示,这样就能够利用Switches和池化后的特征图,反池化成Unpooled Maps
  4. relu:反池化后,为了得到有效的特征重建,也使用relu,获得Rectified Unpooled Maps
  5. 反卷积:用原来卷积核的转置版本,进行卷积操做,获得重建的Reconstruction

特征可视化it

  1. 下图是对ImageNet训练完成后,在验证集数据进行反卷积获得的各层的可视化结果。
  2. 对于某个给定的feature map,在数据集上选取激活值最强的9张图,画成一个九宫格。把它们映射回输入空间后能够看到不一样结构的重建特征图(灰色的那些图),以及这些特征图对应图像块(那些彩色图)。
  3. 能够看到彩色图的变化比灰色图更大,由于灰色图是集中于给出那些具备区分性的信息。
  4. 能够看到每一层彷佛在学习不一样的东西,第二层学习边缘,角落信息;第三层学到了一些比较复杂的模式,网状,轮胎;第四层展现了一些比较明显的变化,可是与类别更加相关了,好比狗脸,鸟腿;第五层则看到了整个物体,好比键盘,狗。

训练过程的特征演化io

  1. 下图是随着训练的迭代,特征图的变化,每一层里面的8列表示不一样epoch时的特征图。
  2. 列出的特征图是,对于该层的某个feature map,在全部训练集中激活最强的那个样本的feature map。
  3. 能够看到,低层的特征图收敛地比较快,而高层的特征图要到后面的epoch才开始变更。

帮助提高模型可视化

  1. 经过可视化能够看到alexNet模型中第一层和第二层(下图中的b和d)存在一些问题,好比第二层有一些重叠和混乱
  2. 经过把第一层的11x11卷积核变成7x7,而后stride从4变成2,获得的结果如图c和e所示,获得了更多的独特的特征。
  3. 这样的改动也提高了模型的效果。

遮挡敏感性技巧

  1. 以下图所示,以第一张小狗图为例,b图表示第5层激活最强的feature map,每一个位置的颜色表示那个位置被遮挡后的激活,能够看到遮住狗脸后,激活值最低,也就是蓝色那块区域,说明遮挡对模型有影响。
  2. c图表示被遮住不一样区域后,第5层激活最强的feature map,第一个图表示遮住狗脸后的。
  3. d图中每一个位置的颜色表示那个位置被遮挡后,正确类别的几率。能够看到遮住狗脸后,几率很低,蓝色那一块,说明遮挡对模型有影响。
  4. e图中每一个位置的颜色表示那个位置被遮挡后,最可能的标签,能够看到若是遮挡其它区域,模型都能识别出为博美犬,可是若是遮住了狗脸,而不遮住球,模型就会将样本分类为球。
  5. 这展现了模型的遮挡敏感性,模型确实学到了物体的位置,而不是说只学到物体的环境上下文。

实验map

  1. 基于可视化后对AlexNet模型进行了修改,提高了表现,说明能够经过可视化的技巧分析和改善模型。
  2. 对模型(alextNet以及本身修改后的模型)进行删除层,修改层神经元大小,对比实验结果,观察变化。
  3. 把ImageNet训练好的模型用于Caltech-101,Caltech-256和PASCAL 2012数据集的训练,发现ImageNet预训练过的模型表现要(比没预训练过的)好不少,并且击败了一些前人的工做,说明了CNN提取的特征的泛化能力,以及ImageNet特征的强大。
  4. 经过逐渐提高(预训练模型中保留的)层数(好比1层,2层,3层升到7层),把这些特征送到SVM和softmax中去分类,获得的结果对比,发现层数越深,学到的特征越有用。

总结方法

  1. 提出了一种可视化CNN的方法,说明了内部特征并非随机的,是能够解释的。
  2. 经过可视化CNN了解到了一些直觉上的特性,好比随着增长层数,类别的可区分度越高,特征越有用。
  3. 经过可视化CNN能够对模型进行分析和改善。
  4. 经过可视化CNN的遮蔽实验,发现模型对局部结构是敏感的,并非只用到了广阔的场景信息。
  5. 展现了ImageNet的预训练模型能够很好地泛化到其它数据集。
相关文章
相关标签/搜索