From: http://www.infoq.com/cn/news/2016/12/depth-neural-network-fake-photos

当时大部分的DNN在识别图像中对象的过程中主要依据的特征是一些局部特征(如豹子身上的斑点、校车的黑黄色),而忽略了整体特征(如海星的五角星形状、豹子长了四条腿)。

知道了DNN所忽略的特征,从而有针对性的进行算法的改进,就有可能大幅提升DNN生成指定图像的能力。

2016年,该研究组先后发布了两篇论文介绍 Deep Generator Networks(DGN)以及其改良版 Plug & Play Generative Networks(PPGN),这些改良后的神经网络——创作网络 Generator Network——足以生成以假乱真的图片。

可能有关的另一个概念:visualizing residual networks

< Deep Residual Learning for Image Recognition > - Kaiming HeXiangyu ZhangShaoqing RenJian Sun

可视化CNN模型中的卷积核 - 论文解读

From: http://www.qingpingshan.com/bc/jsp/202002.html

可视化工作分为两大类,

  • 一类是非参数化方法:这种方法不分析卷积核具体的参数,而是先选取图片库,然后将图片在已有模型中进行一次前向传播,对某个卷积核,我们使用对其响应最大的图片块来对之可视化;
  • 另一类方法着重分析卷积核中的参数,使用参数重构出图像。

发觉

最初的可视化工作见于AlexNet[1]论文中。Krizhevsky, A., Sutskever, I., Hinton, G.: Imagenet classification with deep convolutional neural networks. In: NIPS (2012)

在这篇开创Deep Learning新纪元的论文中,Krizhevshy直接可视化了第一个卷积层的卷积核:

们知道,AlexNet[1]首层卷积层(conv1)的filters是(96,3,11,11)的四维blob,这样我们就可以得到上述9611*11的图片块了。 显然,这些重构出来的图像基本都是关于边缘,条纹以及颜色的信息。

但是这种简单的方法却只适用于第一层卷积层,对于后面的卷积核我们就无法使用这种方法进行直接可视化了。

开山

系统化地对AlexNet进行了可视化,并根据可视化结果改进了AlexNet得到了ZFNet,拿到了ILSVRC2014的冠军。 这篇文章可以视为CNN可视化的真正开山之作。

Zeiler, Matthew D and Fergus, Rob. Visualizing and understanding convolutional neural networks. arXiv preprint arXiv:1311.2901, 2013.

发展 - Tool

2015年,Yosinski[5]根据以往的可视化成果(包括参数化和非参数化方法)开发了一个可用于可视化任意CNN模型的toolbox: yosinski/deep-visualization-toolbox,通过简单的配置安装之后,我们就可以对CNN模型进行可视化了。

J. Yosinski, J. Clune, A. M. Nguyen, T. Fuchs, and H. Lipson, “Understanding neural networks through deep visualization,” CoRR, vol. abs/1506.06579, 2015.

反卷积 - 揭示了模型中任意层的feature map与输入之间的响应关系。

为了了解卷积操作,我们需要首先了解中间层的特征激活值。

我们使用了一种新的方式将这些激活值映射回输入像素空间,表明了什么样的输入模式将会导致feature map中一个给定的激活值。

我们使用反卷积网络来完成映射[6]。

一个反卷积网络可以被看成是一个卷积模型,这个模型使用和卷积同样的组件(过滤和池化),但是却是相反的过程,因此是将特征映射到像素。

在[6]中,反卷积网络被提出作为一种进行非监督学习的方法,但是在这里,它没有学习能力,仅仅用来探测一个已经训练好的卷积神经网络。

在layer5的第一行第二列,这些图片块似乎没有什么共同之处,但是从左边的可视化结果我们可以看出,这个特殊的feature map关注的是背景中的草,而不是前景中的物体。

来自每个层中的投影显示出网络中特征的分层特性。

第二层响应角落和其他的边缘/颜色信息,

层三具有更复杂的不变性,捕获相似的纹理,

层四显示了显著的变化,并且更加类别具体化,

层五则显示了具有显著姿态变化的整个对象。

这里的内容是这篇文章极其重要的贡献,虽然还是不能完全解释CNN这个黑盒,但是通过可视化,我们发现了CNN学习到的特征呈现分层特性,

底层是一些边缘角点以及颜色的抽象特征,越到高层则越呈现出具体的特征,这一过程正与人类视觉系统类似。

这也为如何得到更好的模型给出了指导,一个最简单的思路便是使网络更深,使得每层的特征更加层次分明,这样就能学到更加泛化的特征,后来的VGGNet以及ResNet则证明了这一点。

上图中左侧的图像就是根据反卷积网络得到的结果,下面我们详细解释一下右侧的图片块是如何得到的。

感受野(receptive field)

一个非常重要的概念,receptive field往往是描述两个feature maps A/B上神经元的关系,假设从A经过若干个操作得到B,这时候B上的一个区域 只会跟a上的一个区域 相关,这时候 成为 的感受野。用图片来表示:

(Map 1卷积去掉了边缘,正好是11-2-2=7)

在上图里面,map 3里1x1的区域对应map 2的receptive field是那个红色的7x7的区域,而map2里7x7的区域对应于map1的receptive field是蓝色的11x11的区域,所以map 3里1x1的区域对应map 1的receptive field是蓝色的11x11的区域。

(其实就是相关的、涉及到的、相对应的区域)

Understanding Neural Networks Through Deep Visualization

From: http://yosinski.com/deepvis

安装 deep-visualization-toolbox 时遇到的疑难解决方法:

hdf5:

https://gist.github.com/wangruohui/679b05fcd1466bb0937f

"/usr/bin/ld: cannot find -lcblas" :

https://github.com/BVLC/caffe/issues/559

cvNamedWindow:

https://github.com/yosinski/deep-visualization-toolbox/issues/62

https://stackoverflow.com/questions/14655969/opencv-error-the-function-is-not-implemented

Solution:

-- 好东西 --

其他还有:https://github.com/Sunghyo/revacnn 实时卷积查看,不错的样子

工具使用说明:http://www.evolvingai.org/files/2015_Yosinski_ICML.pdf

借此工具,深入卷积,先从深入理解概念入手。

新工具:https://github.com/ml4a/ml4a-ofx

 

[CNN] Tool - Deep Visualization的更多相关文章

  1. Deep Visualization:可视化并理解CNN(转)

    转载地址:https://zhuanlan.zhihu.com/p/24833574 一.前言 CNN作为一个著名的深度学习领域的“黑盒”模型,已经在计算机视觉的诸多领域取得了极大的成功,但是,至今没 ...

  2. Deep Visualization:可视化并理解CNN

    原文地址:https://zhuanlan.zhihu.com/p/24833574 一.前言 CNN作为一个著名的深度学习领域的“黑盒”模型,已经在计算机视觉的诸多领域取得了极大的成功,但是,至今没 ...

  3. A Light CNN for Deep Face Representation with Noisy Labels

    承接上一篇博客.该论文思路清晰,实验充分,这里大致写一些比较不错的idea.从标题就能看出本文的主要贡献:轻量.鲁棒.利用一个轻量CNN从大规模数据且含大量噪声中来学习一个深度面部表征. 直接谈谈贡献 ...

  4. Understanding Neural Networks Through Deep Visualization

    当数据一层一层通过更多的卷积层时,你可以得到的特征图像代表的特征就会更加的复杂. 在网络的最后,你也许可以得到一个抽象的物体.如果你想通过可视化方法在卷积神经网络中看到更多的信息.这里有一个工具方便你 ...

  5. 本人AI知识体系导航 - AI menu

    Relevant Readable Links Name Interesting topic Comment Edwin Chen 非参贝叶斯   徐亦达老板 Dirichlet Process 学习 ...

  6. Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN

    http://m.blog.csdn.net/blog/wu010555688/24487301 本文整理了网上几位大牛的博客,详细地讲解了CNN的基础结构与核心思想,欢迎交流. [1]Deep le ...

  7. 转载 - CNN感受野(receptive-fields)RF

    本文翻译自A guide to receptive field arithmetic for Convolutional Neural Networks(可能需要FQ才能访问),方便自己学习和参考.若 ...

  8. [CNN] Understanding Convolution

    From: http://blog.csdn.net/zouxy09/article/details/49080029 一个概念需经过反复的推敲以及时间的沉淀,之后才能真正理解 [OpenCV] Im ...

  9. Deep Learning(深度学习)学习笔记整理(二)

    本文整理了网上几位大牛的博客,详细地讲解了CNN的基础结构与核心思想,欢迎交流. [1]Deep learning简介 [2]Deep Learning训练过程 [3]Deep Learning模型之 ...

随机推荐

  1. 喵哈哈村的魔法考试 Round #21 (Div.2) 题解

    $ \sum{i=0}^{n-1}\sum{j=i}^{n-1}\mid Ai - Aj \mid $ 小学生在上课 题目大意:给你一个正整数N,问你1 ~ (n-1) 所有在模N下的逆的和(只计算存 ...

  2. weblogic10 部署 spring+cxf ,调用时报:cannot create a secure XmlInputFactory

    weblogic10 部署 spring+cxf ,调用时报:cannot create a secure XmlInputFactory   一个cxf webservice项目部署到tomcat能 ...

  3. 使用 IntraWeb (34) - TIWAJAXNotifier

    在异步事件中, 可以通过 TIWAJAXNotifier 发出一个通知(通过其 Notify 方法), 该通知会激发其 OnNotify 事件. 这一般用在: 当一个异步事件完成后, 立即处理随后的事 ...

  4. android:单位和尺寸

    为了要让程序拥有更好的屏幕适配能力,在指定控件和布局大小的时候 最好使用 match_parent 和 wrap_content,尽量避免将控件的宽和高设定一个固定值.不过在 有些情况下,仅仅使用 m ...

  5. 连接mysql 出现:java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'.

    数据测试的时候出现: 网上查资料说的是mysql5.x 版本和 8.x版本的区别: 5.7版本是:default_authentication_plugin=mysql_native_password ...

  6. CentOS7 下 keepalived 的安装和配置

    安装前准备:yum -y install gcc gcc-c++ autoconf automake make yum -y install zlib zlib-devel openssl opens ...

  7. 微软BI 之SSIS 系列 - XML Task 中XSLT 样式表转换错误记录

    开篇介绍 此文章专门记录 XSLT 样式表转换过程中的语法问题 错误一 值与属性的倒置 修改了几次样式表,但还是一如既往的报错,报错信息如下: [XML Task] Error: An error o ...

  8. MDX Cookbook 10 - 计算 Year To Date 的 Running Total(YTD 与 PeriodsToDate 的区别)

    在这个小节中我们将计算度量值的 Year To Date 的值,也就是计算从年开始到当前时间成员为止的度量值的累加结果. 下面的这个查询显示了所有以周为单位的 Reseller Sales Amoun ...

  9. 微软BI 之SSRS 系列 - 使用文档结构导航报表元素 Document Map

    在 SSRS 中也有类似于 Word 文档中的那种导航的效果 - 左侧部分,可以通过导航地图快速的定位到国家下的省份或者城市,并且这种层次结构是由在创建行分组时定义的. 比如说下面的这个例子中,我分了 ...

  10. PowerShell使用ServicePrincipal登陆Azure

    一.打开PowerShell 二.输入下列命令 $pass = ConvertTo-SecureString "<这里换成您的AAD应用密钥>" -AsPlainTex ...