能帮你更好理解分析深度卷积神经网络,今天要解读的是一款新型可视化工具——CNNVis,看完就能用!

以下为译文:

更好的理解分析深度卷积神经网络

 

图1 CNNVis,一个能够帮助专家理解,分析与改进深度卷积神经网络的视觉分析工具

摘要:深度卷积神经网络(CNNs)在许多模式识别任务中取得了很大的性能突破, 然而高质量深度模型的发展依赖于大量的尝试,这是由于没有很好的理解深度模型是怎么工作的,在本文中,提出了一个可视化分析系统,CNNVis,帮助机器学习专家更好的理解、分析、设计深度卷积神经网络。

关键词:深度卷积神经网络,矩形填充,矩阵排序,边缘捆绑,双聚类

1 引言

深度卷积神经网络在许多模式识别任务上较传统的方法而言已经展示了很大的提升,比如语音识别,图像分类和视频分类。然而由于其费解的函数和不清楚的工作原理,深度卷积神经网络也被称为黑盒子模型。

对于理解和分析深度卷积神经网络而言,面临两个技术挑战:首先是CNN可能是由几十或几百的层组成、每层有几千的神经元;其次是CNN是由许多函数分量组成,并且其值之间的关系也不好理解。

为了解决这个问题,提出了一个交互式视觉分析系统,称作CNNVis,该系统是为了帮助机器学习专家更好的理解,分析与改进CNNs,基于深度CNN的结构,构思出DAG,其中每个节点代表一个神经元,每个边代表神经元对之间的连接;基于DAG表示,提出了混合可视化;另外基于Held-Karp算法,设计了矩阵重新排序算法等。

本文中,使用图像分类作为一个例子,第一种情况帮助去说明CNN模型结构的性能影响,第二种情况学习CNNVis是如何帮助分析潜在的失败训练情况,第三种情况是帮助为改进CNN结构并提高性能。

本文工作的关键技术贡献是:

可视化分析系统帮助专家理解,分析和改进深度卷积神经网络;

混合可视化:结合了DAG,矩形填充,矩阵可视化和边缘捆绑等方法;

2 相关工作

为了说明每个神经元学习的特征,一般是由一个实像或者合成图像的部分来表示。现存的方法分为两类:代码反演和激活值最大化。代码反演主要是从一个特点层中的激活向量来合成一个图像;激活值最大化方法主要是找到一幅图像最大化给定神经元;上述方法使用基于网格表示来展示神经元的特征。具体分析请见原文。

不像上述方法,制定了深度CNN作为一个DAG,基于DAG表示,又提出了一个混合可视化,是由矩形填充,矩阵排序和基于双聚类的边缘捆绑。、

3 背景

图2 典型的卷积神经网络结构

 

图3 卷积操作示意图

在介绍可视分析系统之前,我将简要的介绍卷积神经网络。

结构:图2展示的是一个典型的卷积神经网络结构。这个网络包含两个卷积层(convolution layer),两个池化层(pooling layer)和一个全连接层(fully connected layer)。

卷积层:采用各种卷积核对输入图片进行卷积处理,基本卷积过程如图3a所示。卷积操作具有平移不变性。因而,能够支持神经元学习到鲁棒性比较高的特征。

激活函数:非线性的变换。根据一系列的输入值,神经元之间连接的权值以及激励规则,刺激神经元。

典型的激活函数:ReLU和Softmax函数,具体公式请见原文。    

池化:池化层的操作,是一种降采样操作。该操作是在一个小区域内,采取一个特定的值作为输出值。比如图3b,在每个特定的小区域内,选取最大值作为输出值。池化层的操作可以达到一定的空间不变性效果。使用最大的是最大池化。

归一化:归一化是CNNs中的一个优化操作,是为了加快训练过程中的收敛速度和减少陷入局部最优解的可能。

损失函数:,在训练阶段,用于评估网络输出结果与实际值的差异。然后用损失函数的值更新每个神经元之间的权重值。卷积神经网络的训练目的就是最小化损失函数值。

4 CNNVis

共用的深度学习框架包括Caffe,Theano,Torch和TensorFlow。但是研究人员使用这些框架时发生错误后无法找到出错点,因此其需要一个能够帮助他们更好地理解CNN中的内在原理的工具。

4.1 需求分析

基于讨论和前期工作,认定以下高等级的需求,具体原因请参考原文。

R1-提供一个神经元的学习特征的概述;

R2-交互式修改神经元的聚类结果;

R3-探索神经元的多面性;

R4-揭示低层次的特征是如何聚合成高层次特征;

R5-检查调试信息;

4.2 系统概述                                                                       图4  CNNVis的设计流程图

可视化分析系统CNNVis的设计流程图如图4所示,主要包含四个部分:

1DAG规划模块将CNN转换成DAG并从概述上总结神经元和层(R1,R4);

2、神经元聚类可视化模块揭示神经元的多面性(R3);

3、基于双聚类的边缘捆绑减少由于大量连接造成的视觉混乱(R4);

4、提供交互模块(R2)和显示调试信息(R5);

为了有效的表示一个大的CNN网络,DAG制定模块在每一层聚类神经元。然后送入到神经元聚类可视化模块,该模块使用矩形填充算法去展示每个神经元的学习特征。之后基于双聚类的边缘捆绑减少视觉混乱。

 图5 DAG转换及聚类过程

5 DAG 构想

CNN可以被构想成DAG,其中每个节点表示神经元,每条边表示神经元间的连接。由于一个卷积神经网络往往会有很多层,每一层会有很多神经元。为了提供总览图,方便用户建立对整个卷积神经网络的认识,他们首先对层进行了聚类。然后在每个层聚类中,对内部的神经元进行了聚类(如图5所示)。

在CNNVis中,采用两种聚类方法,分别为K-Means和MeanShift。

6 可视化

6.1 概述

基于DAG构想,设计了混合可视化,能够直观说明神经元(节点)聚类和神经元之间的连接(边)。 

图6 可视化概述 

每一个神经元聚类用一个大的矩形表示,如图6A所示。其中每个学习特征是由更小的矩形编码得到,如图6B1;神经元激活值由矩阵的可视化来表示,如图6B2;在输入与输出聚类之间加入一层“in-between”,如图6C所示,在该层中,每个双聚类在DAG中看成是节点。

6.2 神经元聚类可视化

6.2.1 矩阵填充学习特征

计算神经元的学习特征。采用矩阵填充技术,将群簇内神经元的输出图像填充成一个矩阵来表示该群簇特征。同时,为了方便用户分析每个神经元在不同类别上性能,采用矩阵形式来表示此类信息。一个群簇用一个矩阵表示。在矩阵中,每一行表示一个神经元,每一列表示一个类别,颜色的深浅表示该神经元在该类别上的判别能力(如图6所示)。为了更好的表现出该群簇的特点,对矩阵中的行进行了重排序,最大化邻近的两个行的相似性之和。

 

  图7 分层矩形填充的说明

布局。构想图片快的布局作为矩形填充的问题,目标是将给定的矩形填充到最小区域的包围矩形。采用混合填充算法,该算法主要分为以下三个步骤,详细过程请见原文。

步骤1:混分层聚类。

步骤2:计算每个聚类的布局区域。

步骤3:每个聚类的矩形填充。

6.2.2  激活值作为矩阵可视化

矩阵可视化被采用来说明神经元的激活值

图8 矩阵排序的说明

矩阵排序。列(聚类)的顺序在不同的神经元聚类中应该是一致的,因此只需要重新排序矩阵中的行(神经元)。

6.2.3 交互

为了更好的理解每个神经元聚类的多面性,CNNVis提供用户的交互性。

交互式聚类结构修正;用户可以将一个神经元从神经元聚类中或另外的神经元聚类中提取出。

选择神经元的一部分可视化;用户可以选择一组聚类,并显示在这些类中的强激活的神经元。

在多面之间切换;用户可以切换查看学习到的特征或激活矩阵。

6.3 基于双聚类的边缘捆绑

图9 基于双边聚类的边捆绑技术示意图

提出了基于双边聚类的边捆绑技术。此处的双边分别指两层之间输入的边和输出的边。如图9所示,双边聚类之后,对每个聚类结果分别进行边捆绑操作。图中,绿色表示边的权值为正,红色表示其权值为负。

7 应用

7.1 概述

选择基本CNN模型并设计案例研究:

BaseCNN。 首先设计了包含10个卷积层,4个池化层和2个全连接层的卷积神经网络BaseCNN,使用普遍的ReLU激活函数,普遍的损失函数交互熵。网络结构如图10所示。将该网络用于CIFAR10数据库中,在测试的时候实现了11.32%的错误率。

 

图10 BaseCNN结构

案例研究的设计

首先,基于BaseCNN,构建几种变种,目的是为了研究网络结构对于性能的影响;

其次,需要分析训练过程,看是否未能收敛;

最后,想要进一步提高BaseCNN模型的性能。

图11 用CNNVis分析BaseCNN

7.2 案例研究: 网络结构的影响

为了分析卷积神经网络的结构对最后结果的影响,设计了另外两种卷积神经网络来分析网络的深度对结果的影响。表1展示了这三种网络的基本信息。与BaseCNN相比,ShallowCNN少了三层卷积层和一层池化层;DeepCNN的卷积层和池化层数量是BaseCNN的两倍。

网络深度。进一步研究网络的深度对神经元学习特征的影响。

表1不同深度之间的CNN性能比较

 

 图12 模型深度对性能的影响

网络宽度。进一步研究网络的宽度对神经元学习特征的影响。尝试分析,每个神经层内神经元的数量对结果的影响。为此设计了以下五种网络,如表2所示。

图13 用CNNVis分析DeepCNN的高层神经元性能

从上图可以发现,DeepCNN的高层神经层之间的边都是绿色,表明其权重都是正值,这就说明,这内部存在冗余现象。神经元之间的学习都是正值,基本没有进行结果的纠正。

表2 用于分析卷积神经网络的宽度对结果的影响,BaseCNN#w 表示其每个神经层内神经元的个数是BaseCNN的w倍

 

从表2可以发现,BaseCNN*4的训练错误率很低,但是测验错误率却比较高。这说明,这个网络出现了过拟合现象。图14展示了其在CNNVis系统中的现象。我们可以发现,在图14(a)的矩阵中,大部分行都非常的相似,这就说明,这些神经元在学习相同的特征。这是一种冗余现象。

 

图14不同宽度的模型之间性能比较

7.3 案例研究:训练分析

 

图15 探索神经元之间的连接

图16 探索神经元聚类

该案例研究表明CNNVis是怎样帮助专家分析一个失败的训练过程。

改进后的模型在CIFAR-10数据库上实现了分类错误率为9.43%,使得专家很满意。

8 结论

本文提出一种新型的可视化分析系统,能够帮助机器学习专家更好的理解、分析与改进CNNs,进一步提高网络性能。

以下还有一些工作去进一步提升该系统,CNNVis关注CNN模型在训练过程中快照分析,而训练状态是实时更新的,关键点在于难以有些的选择快照的表示形式并做出很好的比较。另外一个有趣的未来工作在于将CNNVis应用于其他那些不能被构想成DAG的深度模型,比如RNN等,主要瓶颈在于设计一个有效的可视化,以方便专家理解通过不同的深度模型的数据流。

文章原标题《Towards Better Analysis of Deep Convolutional Neural Networks》,作者:Mengchen Liu 等人

文章为简译,更为详细的内容,请查看原文        

              翻译:海棠

时间: 2024-11-02 17:55:36

能帮你更好理解分析深度卷积神经网络,今天要解读的是一款新型可视化工具——CNNVis,看完就能用!的相关文章

深度卷积神经网络CNNs的多GPU并行框架及其应用

[编者按]深度卷积神经网络有着广泛的应用场景,本文对深度卷积神经网络Deep CNNs的多GPU模型并行和数据并行框架做了详细的分享,通过多个Worker Group实现了数据并行,同一Worker Group内多个Worker实现模型并行.框架中实现了三阶段并行流水线掩盖I/O.CPU处理时间:设计并实现了模型并行引擎,提升了模型并行计算执行效率:通过Transfer Layer解决了数据存储访问效率问题.此框架显著提升了深度卷积神经网络训练速度,解决了当前硬件条件下训练大模型的难题. 以下为

使用专用硬件加速深度卷积神经网络

英文论文链接:http://research.microsoft.com/apps/pubs/default.aspx?id=240715 翻译:卜居 转载请注明出处:http://blog.csdn.net/kkk584520/article/details/47711755 [摘要] 最近在多层卷积神经网络的突破导致了识别任务(如大量图片分类和自动语音识别)准确率的大幅提升[1].这些多层神经网络很大,很复杂,需要大量计算资源来训练和评估[2].然而这些需求发生在目前这样一个尴尬的时刻,商业

看了这篇文章,了解深度卷积神经网络在目标检测中的进展

近些年来,深度卷积神经网络(DCNN)在图像分类和识别上取得了很显著的提高.回顾从 2014 到 2016 这两年多的时间,先后涌现出了 R-CNN,Fast R-CNN, Faster R-CNN, ION, HyperNet, SDP-CRC, YOLO,G-CNN, SSD 等越来越快速和准确的目标检测方法. 1. 基于 Region Proposal 的方法 该类方法的基本思想是:先得到候选区域再对候选区域进行分类和边框回归.  1.1 R-CNN[1] R-CNN 是较早地将 DCNN

优化基于FPGA的深度卷积神经网络的加速器设计

英文论文链接:http://cadlab.cs.ucla.edu/~cong/slides/fpga2015_chen.pdf 翻译:卜居 转载请注明出处:http://blog.csdn.net/kkk584520/article/details/47450159 [0. 摘要] CNN已经广泛用于图像识别,因为它能模仿生物视觉神经的行为获得很高识别准确率.最近,基于深度学习算法的现代应用高速增长进一步改善了研究和实现.特别地,多种基于FPGA平台的深度CNN加速器被提出,具有高性能.可重配置

深度神经网络可视化工具集锦

  TensorBoard:TensorFlow集成可视化工具 GitHub官方项目:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tensorboard TensorBoard 涉及到的运算,通常是在训练庞大的深度神经网络中出现的复杂而又难以理解的运算. 为了更方便 TensorFlow 程序的理解.调试与优化,Google发布了一套叫做 TensorBoard 的可视化工具.你可以用 TensorBoard 来

【Hinton实验室探访】Capsule后最新研究,用软决策树更好理解DNN分类

2012年,Geoffrey Hinton改变了机器"看"世界的方式. Hinton和他的两名学生Alex Krizhevsky和Ilya Sutskever一起,发表论文<ImageNet Classification with Deep Convolutional Neural Networks>,提出了深度卷积神经网络模型AlexNet,在当年的ImageNet大规模图像识别竞赛中获得冠军,将Top-1和Top-5误差分别降到了37.5%和17.0%,比此前的技术要好

在人工智能时代,我们更需要理解自己的智能 | 艾伦脑科学研究所所长STEP峰会演讲实录

我们的大脑只有1.5千克,但对我们来说非常重要.是我们的大脑,而不是心脏,塑造了人的思维,帮助我们记忆.这也形成了科学研究中最具挑战性的难题之一:这个不起眼的器官,如何让我们拥有如此复杂的行为与记忆能力?我们尚不能理解,这一切是如何发生的. 这就是我们在艾伦脑科学研究所研究的物体.这个研究机构是由保罗·艾伦(Paul Allen)建立的,艾伦曾经与比尔·盖茨一起在微软工作,他在14年前建立了艾伦脑科学研究所.我们是一家位于西雅图的独立非盈利研究机构,支持了很多科学家和工程师进行基础脑科学研究.

由光年论坛的关闭理解分析关闭光年的原因(二)

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 在前面写到了国平老师关闭光年的原因的前2点,由光年论坛的关闭理解分析关闭光年的原因(一),下面,笔者来接着说余下的一点和自己理解的关闭的原因吧,毕竟光年论坛伴随着成长也太久太久了,这是由太深的感情了. 第三点:"论坛运营以来帖子质量提升得不高.主流的SEO技术也没有深入发展" 一句感慨点开了我们广大站长的心扉,我相信这是很

nodejs事件的监听与触发的理解分析

 这篇文章主要介绍了nodejs事件的监听与触发的理解分析,以实例形式对比分析了nodejs与jQuery关于事件监听的实用技巧,有助于加深对nodejs的理解,需要的朋友可以参考下     本文实例分析了nodejs事件的监听与触发.分享给大家供大家参考.具体分析如下: 关于nodejs的事件驱动,看了<nodejs深入浅出>还是没看明白(可能写的有点深,或者自己理解能力不够好),今日在图灵社区看到一篇关于nodejs事件的监听与触发,由于给出的例子比较多人,很容易理解,所以也大致明白了no