[论文解读]CNN网络可视化——Visualizing and Understanding Convolutional Networks
概述
- 反卷积神经网络(Deconvolutional Network)
- 反池化:
- 反激活:
- 反卷积:
卷积网络就是网络利用学习到的卷积核对上一层的特征进行卷积得到本层的feature map。而反卷积就是这个过程的逆过程,用本层的feature map与转置后的卷积核进行卷积,得到上一层的特征。
2. 可视化结果
- 特征曾学到了什么?

从上图可是化的结果中,我们可以看出,不同层的layer学习到的是不同的特征。对于Layer1和Layer2来说,网络学习到的基本上是边缘、颜色等图像中底层的特征;Layer3开始可以学习到一些复杂些的特征,类似网格纹理等;Layer4可以学习到更高维的特征,比如说狗头、鸟类的脚、同心环等;Layer5则是更加具有辨别性的关键特征。
- 特征层是如何随训练演化的?

上图展示了网络中各个特征层是如何随着训练步数而进化的。各子图中每列分别代表训练了[1,2,5,10,20,30,40,64]个epoch。可以看出,对于较低的特征层来说,它们的特征很快就学到并稳定下来了。而对于像Layer5这样比较高维的特征层来说,则是在学习了30个epoch后才学习到了比较有辨别性的关键特征。说明训练步数的增加还是能够比较好地提升网络的学习和收敛能力的。
- 可视化网络如何提升网络性能?
作者可视化了原版AlexNet各特征层,发现了对于AlexNet来说,第一层的卷积核大部分是高频和低频的特征,而对中频段图像特征整提取得不好。同时,第二层特征的可视化的结果显示出了由于第一层卷积步长太大(4)导致的“ 混叠伪影”。因此作者对AlexNet的改善包括:将第一层的卷积核从11x11减小为7x7;将卷积步长减小为2,而不是4。经过作者改善后的模型在ImageNet2012的分类误差均比AlexNet有提高。
- 消融分析(Ablation Analysis)

作者用消融分析对三张图进行了分析,发现当遮挡掉图片中的关键部位后,相关卷积核卷出来的特征激励会大幅变小(上图第二列)。同时发现遮挡掉关键部位后,网络很容易将图片放入错误的分类中去,而遮挡一些背景部位则不会(第五列)。
这篇文章是CNN网络可视化相关研究非常重要的一篇文章,在这之后的许多研究工作都基于了这篇文章的成果。所以说是研究CNN 网络可视化的必读文献也不为过。
参考资料:
1. http://blog.csdn.net/hjimce/article/details/50544370
2. Zeiler, M. D. and Fergus, R. Visualizing and understanding convolutional networks. In ECCV, 2014.
[论文解读]CNN网络可视化——Visualizing and Understanding Convolutional Networks的更多相关文章
- 深度学习论文翻译解析(十):Visualizing and Understanding Convolutional Networks
论文标题:Visualizing and Understanding Convolutional Networks 标题翻译:可视化和理解卷积网络 论文作者:Matthew D. Zeiler Ro ...
- Visualizing and Understanding Convolutional Networks论文复现笔记
目录 Visualizing and Understanding Convolutional Networks 论文复现笔记 Abstract Introduction Approach Visual ...
- 0 - Visualizing and Understanding Convolutional Networks(阅读翻译)
卷积神经网络的可视化理解(Visualizing and Understanding Convolutional Networks) 摘要(Abstract) 近来,大型的卷积神经网络模型在Image ...
- 【网络结构可视化】Visualizing and Understanding Convolutional Networks(ZF-Net) 论文解析
目录 0. 论文地址 1. 概述 2. 可视化结构 2.1 Unpooling 2.2 Rectification: 2.3 Filtering: 3. Feature Visualization 4 ...
- 论文笔记:Visualizing and Understanding Convolutional Networks
2014 ECCV 纽约大学 Matthew D. Zeiler, Rob Fergus 简单介绍(What) 提出了一种可视化的技巧,能够看到CNN中间层的特征功能和分类操作. 通过对这些可视化信息 ...
- 深度学习研究理解5:Visualizing and Understanding Convolutional Networks(转)
Visualizing and understandingConvolutional Networks 本文是Matthew D.Zeiler 和Rob Fergus于(纽约大学)13年撰写的论文,主 ...
- Visualizing and Understanding Convolutional Networks
前言:研究卷积神经网络,把阅读到的一些文献经典的部分翻译一下,写成博客,代码后续给出,不足之处还请大家指出. 本文来自:tony-tan.com Github:github.com/Tony-Tan ...
- 论文解读2——Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
背景 用ConvNet方法解决图像分类.检测问题成为热潮,但这些方法都需要先把图片resize到固定的w*h,再丢进网络里,图片经过resize可能会丢失一些信息.论文作者发明了SPP pooling ...
- ZFNet: Visualizing and Understanding Convolutional Networks
目录 论文结构 反卷积 ZFnet的创新点主要是在信号的"恢复"上面,什么样的输入会导致类似的输出,通过这个我们可以了解神经元对输入的敏感程度,比如这个神经元对图片的某一个位置很敏 ...
随机推荐
- PHP获取指定地区的天气
在开发网站的时候用到天气查询,由于是基于Wordpress的 所以有很多限制,先建一个[weather.php]的文件,然后看代码: <?php //获取天气 $url = 'http://m. ...
- rails中weill_paginate的paginate方法中不能使用额外参数的解决办法
我们知道高版本中的rails中的分页功能已经放在will_paginate这个gem中,我们在控制器方法中往往需要调用其paginate方法来实现分页数据集控制,举个例子:正常的情况我们想要每页显示1 ...
- 解读Raft(三 安全性)
前言 之前的两篇文章更多的是在描述Raft算法的正常流程,没有过多的去讨论异常场景. 而实际在分布式系统中,我们更多的都是在应对网络不可用.机器故障等异常场景,所以本篇来讨论一下Raft协议的安全性, ...
- 解决 RabbitMQ 集群 Channel shutdown: connection error 错误(HAProxy 负载均衡)
相关文章:搭建 RabbitMQ Server 高可用集群 具体错误信息: 2018-05-04 11:21:48.116 ERROR 60848 --- [.168.0.202:8001] o.s. ...
- SQL 逻辑优化 case when 转为 union all
通常数据库的优化从硬件层面去考虑可分为4个方面: CPU:即降低计算复杂度,如减少sql各类聚合函数,窗口函数,case when等. IO :(较少查询结果集过程中对数据的访问量.数据优化很大程度从 ...
- mysql 带条件的sum/count 使用技巧
本测试只是简单测试,其用途不在于代替count函数配合where函数进行聚合计算,而是在复杂查询中在sum/count中加入条件,一次性求出不同条件下的聚合结果. 1.插入测试数据如图 2.sum计算 ...
- ubuntu11.04安装nginx+php+mysql
先列参考内容,后面我再补充点东西: http://www.4wei.cn/archives/1001436 http://www.gidot.net/blog/article.asp?id=322 上 ...
- MognoDB3.4.2用户访问配置管理
说在前面,官方文档似乎略有瑕疵. 说一下大规则:把绑定IP换成127.0.0.1IP之后,把security的authorization关闭掉做用户添加操作. 添加用户的方法必须是createUser ...
- .net core使用orm操作mysql数据库
Mysql数据库由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库.MySQL是一个多用户.多线程的关系型数据库管理系 ...
- Java面向对象进阶篇(包装类,不可变类)
一. Java 8的包装类 Java中的8种基本数据类型不支持面向对象的变成机制,也不具备对象的特性:没有成员变量,方法可以调用.为此,Java为这8 种基本数据类型分别提供了对应的 包装类(Byte ...