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

rocklamighty 2018-05-22 原文

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

  概述

虽然CNN深度卷积网络在图像识别等领域取得的效果显著,但是目前为止人们对于CNN为什么能取得如此好的效果却无法解释,也无法提出有效的网络提升策略。利用本文的反卷积可视化方法,作者发现了AlexNet的一些问题,并在AlexNet基础上做了一些改进,使得网络达到了比AlexNet更好的效果。同时,作者用“消融方法”(ablation study)分析了图片各区域对网络分类的影响(通俗地说,“消融方法”就是去除图片中某些区域,分析网络的性能)。
  1. 反卷积神经网络(Deconvolutional Network)
反卷积神经网络可以看做用与卷积神经网络相同的卷积核、池化层等等进行的相反过程。为了用反卷积神经网络去分析卷积神经网络,我们需要将反卷积网络各层与卷积神经网络各层衔接起来。如下图所示,右半部分进行的是卷积过程,而左半部分进行的是反卷积过程。从右边卷积的过程开始,首先用卷积核F对上一层池化出来的Pooled Maps进行卷积,得到Feature Maps, 然后在逐步进行Relu归一化(Rectified Linear)和最大值池化(Max Pooling)。而反卷积过程则是从反最大值池化开始(Max unpooling),逐步得到unpooled、rectified unpooled和reconstruction map。

反卷积神经网络主要组成部分:
  • 反池化:
对于最大值池化来说,它是不可逆的过程,因此作者的技巧就是在池化的时候记录下每个最大值的位置。这样的话,在反池化的时候只要把池化过程中最大激活值所在的位置激活,其它位置的值赋0。(具体反池化过程可参考hjimce的博客:http://blog.csdn.net/hjimce/article/details/50544370)
  • 反激活:
对于Relu激活函数来,激活值均为非负值。因此对于反向过程,同样需要保证每层的特征值为非负值,因此Reluctant反激活过程和激活过程相同。
  • 反卷积:

卷积网络就是网络利用学习到的卷积核对上一层的特征进行卷积得到本层的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的改善包括:将第一层的卷积核从11×11减小为7×7;将卷积步长减小为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.

 

发表于 2018-05-22 22:49 rockalmighty 阅读() 评论() 编辑 收藏

 

版权声明:本文为rocklamighty原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/rocklamighty/p/9074083.html

[论文解读]CNN网络可视化——Visualizing and Understanding Convolutional Networks的更多相关文章

  1. 基于C#的机器学习–模糊逻辑-穿越障碍

      模糊逻辑-穿越障碍 模糊逻辑。另一个我们经常听到的术语。但它的真正含义是什么?它是否意味着不止一件事?我们 […]...

  2. 手撸机器学习算法 – 非线性问题

    系列文章目录: 感知机 线性回归 非线性问题 算法介绍 前面两篇分别介绍了分类与回归问题中各自最简单的算法,有 […]...

  3. [AI开发]视频多目标跟踪高级版(离自动驾驶又‘近’了一点点)

    **本文恐怕不是完全的标题党** 视频多目标跟踪需要解决的关键点是前后两帧之间的Target Associat […]...

  4. 使用Azure Congnitive Services 技术制作AI故事机

    引言   前一段时间有幸参加了微软MVP的AI方面的学习挑战赛,对于AI 这个新的领域的技术瞬间勾起了我的学习 […]...

  5. AI革命:Midjourney和ChatGPT的颠覆

    Midjourney,是全球最强的AI绘画工具。 ChatGPT,是全球最强的AI语言模型。 阿里、亚马逊、国 […]...

  6. ModelArts准备工作

    说明: 本文是一个ModelArts准备工作文档,适用于初次使用ModelArts的用户。使用ModelArt […]...

  7. 自动网络搜索(NAS)在语义分割上的应用(二)

    前言: 本文将介绍如何基于ProxylessNAS搜索semantic segmentation模型,最终搜索 […]...

  8. Python3 与 C# 基础语法对比(String专栏)

    Python3 与 C# 基础语法对比:https://www.cnblogs.com/dotnetcrazy […]...

随机推荐

  1. CRM系统主要业务流程思维导图

    【CRM五策略】           ❶对客户进行分类,不是根据规模,而是根据和你的关系,越细腻越好;     […]...

  2. Excel 制作散点图并添加趋势线

    选中数据,插入>>>散点图,选择合适的格式,如果要有两条趋势线,需要有3列数据。 1.1修改 […]...

  3. Redis(九):主从复制的设计与实现解析

      前面几篇我们已经完全理解了redis的基本功能的实现了。   但单靠基本功能实现,往往还是称不上优秀的项目 […]...

  4. 51Degrees.mobi 开源项目介绍

    一、概括 设备检测数据是缺少的成分,可以把任何标准的Web站点到移动电话和设备量身定制的体验。它可以让任何组织 […]...

  5. nginx搭建基于http协议的视频点播服务器

    1,于由自己的服务器上已经安装好nginx(具体安装方法见我的另一篇文章,Linux中安装nginx),所以不 […]...

  6. 程序员不能错过的20个学习网站

    这个假期过得尤其漫长,还得时不时地提防一觉醒来,假期延长的消息到来。好在,现在情况越来越好,很多地方都紧锣密鼓 […]...

  7. 模拟微信h5打飞机小游戏

    js微信小游戏   写在前面的话 ——— 微信之前一个很火的小游戏-打飞机小游戏,很多人之前都玩过,现在有些过 […]...

  8. 实验吧 看起来有点难(手工注入加sqlmap注入)

    嗯~打开题目看见一个逼格有点高的图 查看网页源代码,表单以get的方式传送三个参数(admin,pass,ac […]...

展开目录

目录导航