社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

论文解读:网络科学如何打开深度学习的黑箱?

集智俱乐部 • 6 年前 • 733 次点击  

文末附论文地址


导语

随着AI系统,尤其是深度学习技术在学术界和企业界的开枝散叶,彻底打开算法的黑箱变得日益重要。本文尝试从复杂网络的角度为该解决问题提供思路。



从复杂网络

切入深度学习


如今,以多层神经网络为特点的深度学习技术正是风华正茂,不仅在计算机视觉和自然语言处理等传统领域大放异彩,在时序数据和复杂网络分析等领域也攻城略地。


多层神经网络能取得如此辉煌的成绩,离不开其多层非线性结构强大的拟合能力,但也是由于这种复杂结构,对神经网络内部机理的解析困难重重。


以深度信念网络(deep belief networks,DBN)为例,该生成式深度学习框架能以非监督学习的方式挖掘出大数据集中复杂的统计结构。虽然DBN能在统计学框架下规范表述,但是这种自组织系统涌现出的动力学仍没有解析表示,导致网络内部功能仍旧是一团迷。

由多层受限玻尔兹曼机堆叠而成的深度信念网络


如上图所示,在网络科学的角度下,DBN可以看作是一个带权k分图(k-patite graph, k表示网络层数)。用成熟的复杂网络科学技术手段来理解这个系统,分析学习前和学习后网络结构的变化,便成为一种显然的解析思路。


近日,几位意大利研究者在其放在arXiv上的论文(Deep learing systems as complex networks)中率先做了这方面的尝试。



实验设置


研究者针对MNIST手写体识别任务,分析了一个三层的DBN。该网络由v1-h1, h1-h2和h2-h3三个受限玻尔兹曼机堆叠而成,其中v1是输入层,hi为隐含层,网络采用逐层贪心的非监督方式训练,采用对比散度(contrastive divergence)进行参数更新。


因为手写体数据集每张图片都是28x28的灰度图,可展成长784的一维数组,故输入层v1含有784个神经元,其余各层分别含有500,500,2000个神经元,参数量大约为160万。考虑到前向和后向传播的连边权重,网络的整体参数可以表示如下:



为了从三层DBN得到一个非平凡的复杂网络结构,作者为连边权重设定了一个阈值:若两神经元连边权重高于阈值,则认为两者有连边,否则没有连边。


如此,就得到一个无权无向的复杂网络



复杂网络的分析工具


为了分析网络性质,作者设计了关注了几个统计量:


  1. 神经网络连边权重分布

  2. 神经元强度分布

  3. 定义:该节点到下一层所有节点连边权重之和

  4. 神经元度分布

  5. 在无权网络基础上考虑节点度

  6. 神经元的感受域


连边权重分布


神经网络初始化时各层权重都是根据高斯分布初始化,均值为0(图A),而经过学习之后,网络连边权重分布的均值向负数移动,由于偏度的增加,权重分布也不再是一个高斯分布。



为什么会出现这种情况呢?我们把各层权重单独打印出来,发现第一层和第三层(D、F图)出现了均值偏移和偏度增加,而第二层的权重仍然非常像是高斯分布,但是其出现了长尾现象。所以,B图中高斯分布消失的情况,可能是由于训练过程中,参数分布方差增大所致。   

     


神经元强度分布


考虑到上图所示的权重分布,你很容易想到第一层神经元的强度分布几乎都是负数,实验结果也支持这样的结论,说明输入层神经元对高层主要是起到抑制作用。而最后一层神经元的强度分布最大值达到了10左右,这是高层神经元信息冗余的体现,具体将在下文说明。


利用感受域对神经元进行功能区划分


神经元的感受域可以看作对其功能的可视化描述:一个神经元的感受域表示在学习过程中,该神经元对输入的特征提取。对于一个复杂网络,划分相同出功能相同的区域是分析过程中非常重要的一步,而感受域是对神经元功能非常抽象的描述,以此作为神经元功能划分的依据,是比较自然的想法。


论文中作者画出了每个隐含层神经元的感受域(并表示成28*28的灰度图),然后利用EMD距离将这些灰度图聚为20类,其中每一类中部分神经元感受域和每一类之间的距离如下分层聚类图:



感受域相似的神经元被分成了相同的类,每一类可以看作是具有相同功能的神经元集合。这样,我们就完成了对网络功能分区的划分,也即每一类作为网络具有相同功能的子网络。



神经网络

功能与结构的关系


上一小节中,作者利用感受域将网络划分成了不同的功能分区,即将上述无权网络拆分成20个子网络。那么不同分区中的神经元的结构性质有何不同呢?作者分析了不同分区中如下三个结构信息:


  • 平均度值

  • 平均强度值

  • 最近邻居的平均度值



上图一个小圈代表一个功能分区,每一列代表两个统计量之间的关系,每一行表示第一个隐含层,第二行代表第二个隐含层。


由第一列的分布情况,可以发现神经元度值和其邻居度值没有相关性,说明神经网络在学习过程中并没有发展出任何同配性。


对于平均度和平均强度的关系(第二列),假设节点的度和两边的权重没有相关性,容易得出节点的强度和其度值是成比例关系的,也就是说度值和强度所携带的信息相互重叠。而在上图第二列中,节点度值和强度并没有简单的呈现出比例关系(每层的皮尔森系数分别为:0.56,-0.72,0.87)



笔者后记


这篇文章将网络科学的分析方法用在人工神经网络上的做法值得借鉴,尤其是如何将人工神经网络转化为非平凡的复杂网络,如何对该复杂网络进行功能区划分的方法。


但是文中的结论比较羸弱,只用到了网路科学中的统计分析工具,得出了一些定性的结果。更加深刻的结论,还有待研究者将复杂网路中更加深刻的工具和方法应用在深度学习的分析上



作者:高飞

编辑:王怡蔺

原文:https://arxiv.org/abs/1809.10941(可下载)




推荐阅读


文速递:作为复杂网络的深度学习系统

让AI自我迭代完成深度学习关键:架构设计

区块链技术如何堵上深度学习的隐私漏洞?

解救深度学习过拟合的神器:非线性系数

加入集智,一起复杂


线上公开课预告


集智AI学园:

https://campus.swarma.org





集智俱乐部QQ群|877391004

商务合作及投稿转载|swarma@swarma.org

◆ ◆ 

搜索公众号:集智俱乐部


加入“没有围墙的研究所”

让苹果砸得更猛烈些吧!



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/H4dyGoBJ3C
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/24783
 
733 次点击