0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深度神经网络竟然是模块化的?

倩倩 来源:量子位 2020-03-27 15:16 次阅读

深度神经网络这个黑箱子,似乎有了更清晰的轮廓。

我们都知道深度神经网络性能十分强大,但具体效果为什么这么好,权重为什么要这么分配,可能连“设计者”自己都不知道如何解释。

最近,一项来自UC伯克利和波士顿大学的研究,就对这个黑箱子做了进一步的解密:

经过训练和权重修剪的多层感知器(MLP),与具有相同权重分布的随机网络相比,通常模块化程度更高。

也就是说,在特定条件下,深度神经网络是模块化(modularity)的。

研究人员认为:

了解神经网络的模块化结构,可以让研究工作者更容易理解神经网络内部的工作原理

这项研究还被ICML 2020接收,也已在GitHub开源(见文末“传送门”)。

将神经网络模块化

为什么要用模块化来研究深度神经网络呢?

首先,模块化系统允许分析系统的研究人员,检查单个模块的功能,并将他们对单个模块的理解合并为对整个系统的理解。

其次,神经网络由不同的层(layer)组成,在定义网络时,不同的层可以单独配置。

而通过实验,研究人员发现:

一个深度神经网络是模块化的,它可以被分割成神经元集合,其中每个神经元集合内部高度连接,但集合之间的连接度很低。

更具体点来说,研究人员使用图聚类(graph clustering)算法将训练好的网络分解成集群,并将每个集群视为一个“模块”。

采用的聚类算法叫做谱聚类(spectral clustering),用它来计算一个划分(partition)以及评估一个聚类的n-cut。

通俗点来说,就是:

先把数据转换为图,所有的数据看做是空间中的点,点和点之间用边相连。距离较远的两个点,它们之间边的权重值较低,距离较近的两点之间边的权重值较高。

接下来,进行n-cut操作,也就是切图。目标就是要让切图后不同的子图间“边权重和”尽可能的低,而子图内的“边权重和”尽可能的高。

那么,实验结果又如何呢?

实验主要采用了3个数据集,分别是MNIST、Fashion-MNIST和CIFAR10,并在每个数据集上训练了10次。

可以看到,对MNIST测试的正确率为98%,Fashion-MNIST的正确率为90%,而CIFAR-10的正确率为40%。修剪后的网络通常比随机网络具有更好的聚类性。

下图显示了在剪枝前和剪枝后,所有受训练网络的n-cut和测试精度结果。

△每个训练网络的n-cut和精度的散点图

为了帮助解释这些n-cut值,研究人员还对200个随机初始化的网络进行了聚类,n-cut的分布如下图所示。

△200个随机初始化网络n-cut分布的直方图和核密度估计

当然,作者也指出一点,这项研究的定义只涉及到网络的学习权值(learned weight),而不是数据分布,更不是模型的输出或激活的分布。

模块之间的重要性和依赖性

那么,这些模块之间的又有怎样的关联呢?

研究人员进一步评估了不同模块之间的重要性和关系。

在神经科学领域中,要想确定大脑某个区域的功能,有一种方法是研究这个区域意外受损的患者的行为,叫做损伤实验(lesion experiment)。

类似的,研究人员也采用了这样的方法:

通过将模块的神经元激活设置为0,来研究模块的重要性,并观察网络如何准确地对输入进行分类。

在这项实验中,“损伤”的原子单位是每个模块与每个隐含层的交集,称之为“子模块”。

重要性

对于每个子模块,将传入组成神经元的所有权重设置为0,并保持网络的其余部分不变。

然后,确定受损网络的测试集精度,特别是它比整个网络的精度低了多少。

△使用剪枝和dropout在Fashion-MNIST上训练后,不同子模块的绘图

如上图所示,重要的子模块会先标记它的层号,然后再标记模块号。横轴表示该层神经元在子模块中的比例,纵轴表示由于子模块受损而导致精度的下降。

这项实验表明,许多子模块太小,不能算作重要模块,而许多子模块在统计上有显著影响,但在实际中却不显著。然而,有些子模块显然对网络的运作具有实质的重要性。

依赖性

既然已经知道了哪些子模块是重要的,那么最好还能够理解这些重要的子模块是如何相互依赖的。

为了做到这一点,研究人员在不同的层中破坏两个不同的重要子模块,称之为X和Y。

通过实验,研究人员得到了如下结论:

如果X在Y上不是重要条件,且Y在X上也不是重要条件,那么来自X上的所有信息都传递给了Y。

如果X不是以Y为重要条件,而Y是以X为重要条件,则X将其所有信息发送给Y,并且Y还从其他子模块中接收到了信息。

如果Y不是以X为条件的重要条件,而是X是以Y为条件的重要条件,则认为Y从X接收其所有信息,然后X将信息发送到其他子模块。

如果X和Y都是彼此重要的条件,则无法得出任何结论。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4562

    浏览量

    98644
  • 模块化
    +关注

    关注

    0

    文章

    300

    浏览量

    21157
  • 数据集
    +关注

    关注

    4

    文章

    1176

    浏览量

    24340
收藏 人收藏

    评论

    相关推荐

    从AlexNet到MobileNet,带你入门深度神经网络

    思维导图如下:发展历程DNN-定义和概念在卷积神经网络中,卷积操作和池操作有机的堆叠在一起,一起组成了CNN的主干。同样是受到猕猴视网膜与视觉皮层之间多层网络的启发,深度
    发表于 05-08 15:57

    非局部神经网络,打造未来神经网络基本组件

    `将非局部计算作为获取长时记忆的通用模块,提高神经网络性能在深度神经网络中,获取长时记忆(long-range dependency)至关重要。对于序列数据(例如语音、语言),递归运算
    发表于 11-12 14:52

    神经网络资料

    基于深度学习的神经网络算法
    发表于 05-16 17:25

    【案例分享】ART神经网络与SOM神经网络

    是一种常用的无监督学习策略,在使用改策略时,网络的输出神经元相互竞争,每一时刻只有一个竞争获胜的神经元激活。ART神经网络由比较层、识别层、识别阈值、重置
    发表于 07-21 04:30

    卷积神经网络深度卷积网络:实例探究及学习总结

    深度学习工程师-吴恩达》03卷积神经网络深度卷积网络:实例探究 学习总结
    发表于 05-22 17:15

    卷积神经网络CNN介绍

    深度学习】卷积神经网络CNN
    发表于 06-14 18:55

    解析深度学习:卷积神经网络原理与视觉实践

    解析深度学习:卷积神经网络原理与视觉实践
    发表于 06-14 22:21

    改善深层神经网络--超参数优化、batch正则和程序框架 学习总结

    深度学习工程师-吴恩达》02改善深层神经网络--超参数优化、batch正则和程序框架 学习总结
    发表于 06-16 14:52

    怎么解决人工神经网络并行数据处理的问题

    本文提出了一个基于FPGA 的信息处理的实例:一个简单的人工神经网络应用Verilog 语言描述,该数据流采用模块化的程序设计,并考虑了模块间数据传输信号同 步的问题,有效地解决了人工神经网络
    发表于 05-06 07:22

    深度神经网络是什么

    多层感知机 深度神经网络in collaboration with Hsu Chung Chuan, Lin Min Htoo, and Quah Jia Yong. 与许忠传,林敏涛和华佳勇合作
    发表于 07-12 06:35

    如何构建神经网络

    原文链接:http://tecdat.cn/?p=5725 神经网络是一种基于现有数据创建预测的计算系统。如何构建神经网络神经网络包括:输入层:根据现有数据获取输入的层隐藏层:使用反向传播优化输入变量权重的层,以提高模型的预测
    发表于 07-12 08:02

    基于深度神经网络的激光雷达物体识别系统

    【新技术发布】基于深度神经网络的激光雷达物体识别系统及其嵌入式平台部署激光雷达可以准确地完成三维空间的测量,具有抗干扰能力强、信息丰富等优点,但受限于数据量大、不规则等难点,基于深度神经网络
    发表于 12-21 07:59

    卷积神经网络模型发展及应用

    卷积神经网络模型发展及应用转载****地址:http://fcst.ceaj.org/CN/abstract/abstract2521.shtml深度学习是机器学习和人工智能研究的最新趋势,作为一个
    发表于 08-02 10:39

    什么是神经网络?什么是卷积神经网络

    在介绍卷积神经网络之前,我们先回顾一下神经网络的基本知识。就目前而言,神经网络深度学习算法的核心,我们所熟知的很多深度学习算法的背后其实都
    的头像 发表于 02-23 09:14 2507次阅读

    卷积神经网络深度神经网络的优缺点 卷积神经网络深度神经网络的区别

    深度神经网络是一种基于神经网络的机器学习算法,其主要特点是由多层神经元构成,可以根据数据自动调整神经元之间的权重,从而实现对大规模数据进行预
    发表于 08-21 17:07 2217次阅读