这篇文章14年发表在ECCV,可以说是CNN领域可视化理解的开山之作,这篇文献告诉我们CNN的每一层到底学习到了什么特征,然后作者通过可视化进行调整网络,提高了精度。在CNN的研究中,很多学者不明白,为什么通过某种调参、改动网络结构等精度会提高。而这篇文献的目的就是通过特征可视化,来告诉我们如何通过可视化的角度,查看我们的精度确实提高了,

2.1 Visualization with a deconvnet

想要理解一个convnet的operation首先需要解释中间层的feature activity。论文提出了一种方式来将这些activities 映射回输入像素空间,从而展示什么样的input pattern能够引起feature map中某个activation。文章通过Deconvolutional Network(deconvent)来实现这种映射过程。Here,they are not used in any learning capacity,just as a probe of an already trained convnet。

为了检验一个convnet,一个deconvnet在这个convnet的每一层都进行了连接,如图一所示,这提供了一个映射回image pixel的连续路径:

开始时,一个输入图片被提供给convnet并且通过各个层计算feature。为了检验某个给定的convnet activation,我们将这一层的其他所有activation设定为0并且将这个feature map作为输入给到连接的deconvnet layer中。接下来我们进行三个连续的操作:

  1. unpool
  2. rectify
  3. filter

通过这三步来reconstruct the activity in the layer beneath that gave rise to the chosen activation。这个过程将会重复,直到input pixel space is reached。

Unpooling

在convnet中,max pooling操作是不可逆的,但是我们可以获得一个合适的逆转过程,通过记录每个pooling区域的最大值位置,我们将这些位置存在一个集合中,称为switch variable。在deconvnet中,unpooling操作使用这些switch值来place the reconstruction from the layer above into appropriate locations,保留激活因素的结构性。这个过程在图1的底部进行了阐述。

Rectification

convnet使用relu非线性激活函数来修正feature map,使得feature map的值一直为正。为了获取每一层的有效的feature reconstruction(which also should be positive),we pass the reconstructed signal through a relu non-linearity。

Filtering

convnet使用学习到的filter来convolve the feature map from the previous layer。为了反转这个过程,deconvnet使用transposed versions of the same filters,但是应用于修正后的maps(而不是和convnet一样取在它之下的层的输出)。In practice this means flipping each filter vertically and horizontally。

从高层向下映射的过程使用了convnet中正向传播生成的switch信息。As these switch setting are peculiar to a given input image, the reconstruction obtained from a single input image, with structures weighted according to their contribution toward to the feature activation. Since the model is trained discriminatively, they implicitly show which parts of the input image are discriminative。Note that these projection are not samples from the model,since there is no generative process involved。

三、训练细节

这一节描述了要在第四部分进行可视化的convnet模型,整体模型如图三所示:

四、Convnet可视化

利用第三节描述的模型,我们接下来使用deconvnet来可视化ImageNet validation set上的feature activation。

Feature Visualization:

图二展示了训练完成后我们模型的feature visualizations。但是,我们不是仅展示给定feature map后最强的activation,而是展示了top 9 activations。将这9个中的每一个映射回pixel space揭示出了能excite一个给定feature map的不同的structure,因此展示了它在输入变化下的不变性。伴随着这些可视化,我们展示了对应的image patches。这些图片本身相对visualization来说有着更大的变化性因为visualization仅仅关注每个patch中的discriminant structure。

例如,在第五层的第一行第二列,图片patches看似几乎没有共同点,但是visualization揭示出这个feature map聚焦在背景的草地,并不是foreground的物体。每个layer的projections都展示出了网络中feature的hierarchical nature。 第二层responds to corners以及其他edge/color的结合。第三层有着更复杂的不变性,会捕获一个相似的纹理(例如第一行第一列的mesh patterns,文本 R2,C4)。第四层显示出了明显的variation,但是更class-specific:例如狗的脸(R1,C1);鸟的腿(R4,C2)。第五层显示出了整个物体且带有明显的pose variation,例如键盘(R1,C11)以及狗(R4)、

Feature Evolution during Training

图4可视化了the progression during training of the strongest activation(在所有的训练数据中)within a given feature map projected back to pixel space。Sudden jumps in appearance result from a change in the image from which the strongest activation originates。模型中较低层可以看出在几轮epoch后就已经收敛了。然而,较上层的layer仅在一个相对较大的epochs(40-50)后才会develop,这证实了我们需要让整个模型训练直到完全收敛为止。

Feature Invariance

图五展示了五张测试图片,这些图片被以多种degrees进行translated、rotated以及scaled,我们观察在整个过程中changes in the feature vectors from the top and the bottom layers of the model,relative to the untransformed feature。小的变换对于模型的第一层有显著的影响,但是对于最顶层的feature layer影响相对较小,being quasilinear for translation 以及 scaling。整个网络的输出对于translation以及scaling是稳定的。通常来讲,输出相对rotation并不是不变的,除了物体本身是rotational symmetry的情况(例如entertainment center)。

4.1 Architecture Selection

对于一个训练好的模型进行可视化不仅能给我们关于这个模型operation的insight,还可以帮助我们选取一种好的结构。通过可视化Krizhevsky等人模型的第一层以及第二层(图6 b和d),我们发现了非常明显的问题。第一层的filter是a mix of extremely high and low frequency information, with little coverage of the mid frequencies。此外,第二层可视化展示了第一层卷积时采用的较大的stride 4带来的alising artifacts。为了解决这些问题,我们采用了如下的方式:

  1. 将第一层的filter size从 11×1111\times 1111×11降低到了 7×77\times77×7
  2. 将stride修改为2而不是4

这个新的网络结构在第一层以及第二层保有了更多的信息,如图6 c和e所示。更重要的是,这种改进也提高了分类的准确率(在5.1节中介绍了这一点)

4.2 Occlusion Sensitivity

对图片分类任务来说,一个很自然的问题是,这个模型是在判定图片中我们需要的对象的信息,还是仅仅在判断这个对象周围的背景信息。图7尝试通过系统性地用grey square来occluding输入图片的不同部分,以及监控classifier的输出来解决这个问题。这个例子很清晰的说明了这个模型正在定位scene内的对象信息,因为当这个对象被occluded时probability of the correct class drops significantly。图7同样展示了visualizations from the strongest feature map of the top convolution layer,in addtion to activity in this map(summed over spatial locations)as a function of occluder position。当occluder包括了出现在visualization中的图像区域时,我们能够观察到a strong drop in activity in the feature map。这展示了visualization genuinely corresponds to the image structure that stimulate that feature map,hence validating the other visualizations shown in figure4 and figure 2.

4.3 Correspondence Analysis

深度神经网络和许多现有的方法不同的是并没有一个清晰的mechanism for establishing correspondence between specific object parts in different images(例如faces have a particular spatial configuration of the eyes and nose)。然而,一个intriguing possibility is that deep models might be implicitly computing them。为了探索这个性质,

https://arxiv.org/pdf/1311.2901.pdf

Visualizing and Understanding Convolutional Networks论文解读相关推荐

  1. 图像分类经典卷积神经网络—ZFNet论文翻译(中英文对照版)—Visualizing and Understanding Convolutional Networks(可视化和理解卷积网络)

    图像分类经典论文翻译汇总:[翻译汇总] 翻译pdf文件下载:[下载地址] 此版为中英文对照版,纯中文版请稳步:[ZFNet纯中文版] Visualizing and Understanding Con ...

  2. Visualizing and Understanding Convolutional Networks

    目录 1.引言 1.1相关工作 2.方法 3.训练细节 4.1 结构选择 4.2 闭塞敏感性 4.3对应分析(缺失公式) 5.实验 5.1 ImageNet 2012 5.2 特征概括 6.结论 可视 ...

  3. Visualizing and Understanding Convolutional Networks - 可视化和理解卷积网络 - 看懂卷积网络

    Visualizing and Understanding Convolutional Networks 可视化和理解卷积网络 - 看懂卷积网络 Matthew D Zeiler, Rob Fergu ...

  4. ZFNet: Visualizing and Understanding Convolutional Networks

    目录 论文结构 反卷积 ZFnet的创新点主要是在信号的"恢复"上面,什么样的输入会导致类似的输出,通过这个我们可以了解神经元对输入的敏感程度,比如这个神经元对图片的某一个位置很敏 ...

  5. 【ZFNet】Visualizing and Understanding Convolutional Networks (2013) 全文翻译

    作者:Matthew D. Zeiler and Rob Fergus (Dept. of Computer Science, New York University, USA, {zeiler,fe ...

  6. 【Network Architecture】Densely Connected Convolutional Networks 论文解析

    [Network Architecture]Densely Connected Convolutional Networks 论文解析 目录 0. Paper link 1. Overview 2. ...

  7. Exploring the Connection Between Binary andSpiking Neural Networks论文解读

    Exploring the Connection Between Binary andSpiking Neural Networks论文解读 前言 总说 提出B-SNN(论文中为Ⅲ) 实验和结果(论文 ...

  8. OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks论文阅读笔记

    文章目录 OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks论文阅读笔记 ...

  9. Deformable Convolutional Networks论文翻译——中文版

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com ...

  10. Deformable Convolutional Networks论文翻译——中英文对照

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com ...

最新文章

  1. linearlayout设置最大高度_一句话掌握一消建筑高度计算方法,先收藏!
  2. 底层实现红黑树_stl map底层之红黑树插入步骤详解与代码实现 | 学步园
  3. 鼠标移动到div上,div中的img放大
  4. 人工智能大脑如何调控智能交通“疏堵”?
  5. cmd连接不了mysql_cmd连接mysql操作命令
  6. 使用MVPArms框架时,访问网络没响应。
  7. html坦克大战js代码包,js实现坦克大战游戏
  8. 安卓天天练练(五)CompoundButton
  9. 人大金仓数据库Centos 7 部署
  10. 【阿里102句土话集锦】菜鸟必备
  11. 小程序、APP Store 需要的 SSL 证书是个什么东西?
  12. (Tiled官方文档翻译)第四节:对象的编辑和使用
  13. 三个Python自动化测试高效工具的使用总结
  14. 分块9题【参考hzw】
  15. 初识二维码 第二讲 二维码的结构
  16. 一喝到威士忌真是什么烦恼都忘了
  17. 怎样禁止“Windows - 没有软盘”的提示?
  18. 东莞市中考计算机考试试题,东莞市数学中考真题(共7份word版,含答案).doc
  19. 酱狗的杂七杂八(叁)
  20. vsc 如何编译c语言,FW:win下轻量级的c语言开发环境配置:vsc + gcc

热门文章

  1. centos7 mysql添加密码_centos-在Centos7上更改mysql根密码
  2. Flink 中的应用部署:当前状态与新应用模式
  3. Flink 1.10 和 Hive 3.0 性能对比(附 Demo 演示 PPT)
  4. mysql 创建外键语句,MySQL 创建主键,外键和复合主键的语句 | 很文博客
  5. python comprehensions_Python中的Comprehensions和Generations
  6. python包裹和运费_使用shopifyapipython,添加新产品并注明价格和“需要运费”:Fals...
  7. python3--环境搭建说明;
  8. flush privileges提示Table 'mysql.servers' doesn't exist解决办法
  9. 机器学习实现计算不规则图形面积_【名师课堂】苏教数学五年级上2.11校园绿地面积...
  10. ug侧铣头编程_基于UG建模和仿真的拖拉机箱体零件数控加工研究