@

0. 论文地址

http://arxiv.org/pdf/1311.2901.pdf

1. 概述

  本文设计了一种可以可视化卷积层中feature map的系统,通过可视化每层layer的某些activation来探究CNN网络究竟是怎样“学习”的,同时文章通过可视化了AlexNet发现了因为结构问题,导致有“影像重叠”(aliasing artifacts),因此对网络进行了改进,设计出了ZF-Net。
  文章通过把activation(feature map中的数值)映射回输入像素的空间,去了解什么样的输入模式会生成feature map中的一个给定activation,这个模型主要通过反卷积(deconvolution),反向池化(Unpooling)与“反向激活”(Rectification),其实就是把整个CNN网络倒过来,另外值得说一下的是,并不是完全倒过来,只是近似,所有的“反向”操作都是近似,主要是使得从各层layer的尺度还原到在原始图像中相应大小的尺度。
  同时文章还分析了每层layer学习到了什么,以及可视化最强activation的演化过程来关系模型的收敛过程,同时也利用遮挡某些部位来学习CNN是学习object本身还是周围环境。

2. 可视化结构

2.1 Unpooling

要想完全还原max-pooling是不太现实的,除非记录每一层feature,那有些得不偿失,文章通过记录池化过程中最大激活值所在位置以及数值,在uppooling的时候,还原那个数值,其他的位置设为0,从而近似“反向池化”,具体如下图:

2.2 Rectification:

CNN使用ReLU确保每层输出的激活之都是正数,因此对于反向过程,同样需要保证每层的特征图为正值,也就是说这个反激活过程和激活过程没有什么差别,都是直接采用relu函数。

2.3 Filtering:

卷积过程使用学习到的过滤器对feature map进行卷积,为近似反转这个过程,反卷积使用该卷积核的转置来进行卷积操作

注意在上述重构过程中没有使用任何对比度归一化操作

ps: 反卷积(转置卷积)的原理我会重新整理博客,之后再加进来。

3. Feature Visualization

在ImageNet验证集上使用反卷积进行特征图的可视化,如下图:


对于一个给定的feature map,我们展示了响应最大的九张响应图,每个响应图向下映射到原图像素空间,右面的原图通过找到在原图的感受野来截取对应的原图。

通过观察可以发现,来自每个层中的投影显示出网络中特征的分层特性。第二层响应角落和其他的边缘/颜色信息,层三具有更复杂的不变性,捕获相似的纹理,层四显示了显著的变化,并且更加类别具体化,层五则显示了具有显著姿态变化的整个对象,所以这就是常说的CNN结构前几层通常学习简单的线条纹理,一些共性特征,后面将这些特征组合成 不同的更丰富的语义内容。

4. Feature Evolution during Training

文中对于一个layer中给定的feature map,图中给出在训练epochs在[1,2,5,10,20,30,40,64]时,训练集对该feature map响应最大的可视化图片,如下图:

从图中可以看出,较低层(L1,L2)只需要几个epochs就可以完全收敛,而高层(L5)则需要很多次迭代,需要让模型完全收敛之后。这一点正好与深层网络的梯度弥散现象正好相反,但是这种底层先收敛,然后高层再收敛的现象也很符合直观。

5. Feature Invariance

上图显示出了相对于未变换的特征,通过垂直平移,旋转和缩放的5个样本图像在可视化过程中的变化。小变换对模型的第一层有着显著的影响,但对顶层影响较小,对于平移和缩放是准线性的。网络输出对于平移和缩放是稳定的。但是一般来说,除了具有旋转对称性的物体来说,输出来旋转来说是不稳定的.(这说明了卷积操作对于平移和缩放具有很好的不变性,而对于旋转的不变性较差)

6. ZF-Net

可视化训练模型不但可以洞察CNN的操作,也可以帮助我们在前几层选择更好的模型架构。通过可视化AlexNet的前两层(图中b,d),我们就可以看出问题:

1)第一层filter是非常高频和低频的信息,中间频率的filter很少覆盖

2)第二层的可视化有些具有混叠效应,由于第一层比较大的stride

为了解决这些问题:

1)将第一层的filter的尺寸从1111减到77

2)缩小间隔,从4变为2。

这两个改动形成的新结构,获取了更多的信息,而且提升了分类准确率。

7. 实验

首先,作者进行了网络结构尺寸调整实验。去除掉包含大部分网络参数最后两个全连接层之后,网络性能下降很少;去掉中间两层卷积层之后,网络性能下降也很少;但是当把上述的全连接层和卷积层都去掉之后,网络性能急剧下降,由此作者得出结论:模型深度对于模型性能很重要,存在一个最小深度,当小于此深度时,模型性能大幅下降。
作者固定了通过ImageNet pre-train网络的权值,只是使用新数据训练了softmax分类器,效果非常好。这就形成了目前的人们对于卷积神经网络的共识:卷积网络相当于一个特征提取器。特征提取器是通用的,因为ImageNet数据量,类别多,所以由ImageNet训练出来的特征提取器更具有普遍性。也正是因为此,目前的卷积神经网络的Backbone Network基本上都是Imagenet上训练出来的网络。

8. 简单的可视化工具

数字识别
其中黑色和灰色表示负值,越黑越负;绿色表示正值,越亮越正

9. 参考链接

https://cloud.tencent.com/developer/article/1087075
https://www.jianshu.com/p/0718963bf3b5

【网络结构可视化】Visualizing and Understanding Convolutional Networks(ZF-Net) 论文解析的更多相关文章

  1. [论文解读]CNN网络可视化——Visualizing and Understanding Convolutional Networks

    概述 虽然CNN深度卷积网络在图像识别等领域取得的效果显著,但是目前为止人们对于CNN为什么能取得如此好的效果却无法解释,也无法提出有效的网络提升策略.利用本文的反卷积可视化方法,作者发现了AlexN ...

  2. 深度学习论文翻译解析(十):Visualizing and Understanding Convolutional Networks

    论文标题:Visualizing and Understanding Convolutional Networks 标题翻译:可视化和理解卷积网络 论文作者:Matthew D. Zeiler  Ro ...

  3. 0 - Visualizing and Understanding Convolutional Networks(阅读翻译)

    卷积神经网络的可视化理解(Visualizing and Understanding Convolutional Networks) 摘要(Abstract) 近来,大型的卷积神经网络模型在Image ...

  4. Visualizing and Understanding Convolutional Networks论文复现笔记

    目录 Visualizing and Understanding Convolutional Networks 论文复现笔记 Abstract Introduction Approach Visual ...

  5. Visualizing and Understanding Convolutional Networks

    前言:研究卷积神经网络,把阅读到的一些文献经典的部分翻译一下,写成博客,代码后续给出,不足之处还请大家指出. 本文来自:tony-tan.com Github:github.com/Tony-Tan ...

  6. 深度学习研究理解5:Visualizing and Understanding Convolutional Networks(转)

    Visualizing and understandingConvolutional Networks 本文是Matthew D.Zeiler 和Rob Fergus于(纽约大学)13年撰写的论文,主 ...

  7. 论文笔记:Visualizing and Understanding Convolutional Networks

    2014 ECCV 纽约大学 Matthew D. Zeiler, Rob Fergus 简单介绍(What) 提出了一种可视化的技巧,能够看到CNN中间层的特征功能和分类操作. 通过对这些可视化信息 ...

  8. ZFNet: Visualizing and Understanding Convolutional Networks

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

  9. Fully Convolutional Networks for semantic Segmentation(深度学习经典论文翻译)

    摘要 卷积网络在特征分层领域是非常强大的视觉模型.我们证明了经过端到端.像素到像素训练的卷积网络超过语义分割中最先进的技术.我们的核心观点是建立"全卷积"网络,输入任意尺寸,经过有 ...

随机推荐

  1. ntopng基础

    当你在本地网络监控网络流量,根据流量大小.监控平台/接口.数据库类型等等,可以有许多不同的选择.ntopng是一套开源(遵循GPLv3协议)网络流量分析解决方案,提供基于web界面的实时网络流量监控. ...

  2. Secure Sockets Layer(安全套接层)

    SSL SSL(Secure Sockets Layer安全套接层)及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议.TL ...

  3. U盘安装CentOS7笔记

    准备工具: 8G左右U盘; 最新版UltraISO; CentOS7光盘镜像; CentOS7的镜像文件可以在网易的开源镜像站或者阿里云的开源镜像站下载,地址分别是:http://mirrors.16 ...

  4. 简明python教程八----输入/输出

    通过创建一个file类的对象来打开一个文件,分别使用file类的read.readline或write方法来读写文件. 最后调用一个close方法来告诉Python我们完成了对文件的使用. poem= ...

  5. matlab 保存图片的几种方式

    最近在写毕业论文, 需要保存一些高分辨率的图片. 下面介绍几种MATLAB保存图片的 方式. 一. 直接使用MATLAB的保存按键来保存成各种格式的图片 你可以选择保存成各种格式的图片,  实际上对于 ...

  6. Subime3 快捷键

    实用快捷键 Ctrl+Shift+P:打开命令面板Ctrl+P:搜索项目中的文件Ctrl+G:跳转到第几行Ctrl+W:关闭当前打开文件Ctrl+Shift+W:关闭所有打开文件Ctrl+Shift+ ...

  7. Xcode8免证书生产IPA打包文件

    免证书生产IPA打包文件   修改Xcode配置文件: 关闭Xcode.然后打开“其他-终端”,就是命令行工具 cd /Applications/Xcode.app/Contents/Develope ...

  8. A class for dynamic icons in Windows

    A class for dynamic icons in Windows #include <windows.h> class DynamicIcon {public:  DynamicI ...

  9. 转:js获取json中key所对应的value值

    <script type="text/javascript"> getJson('age'); function getJson(key){ var jsonObj={ ...

  10. dubbo-admin 部署

    上一章主要是谈到zookeeper的安装和部署 因为zookeeper只是一个黑框,我们无法看到是否存在了什么提供者或消费者,这时就要借助Dubbo-Admin管理平台来实时的查看,也可以通过这个平台 ...