专栏首页人工智能前沿讲习【AIDL专栏】王井东:深度融合——一种神经网络结构设计模式

【AIDL专栏】王井东:深度融合——一种神经网络结构设计模式

一、深度网络结构的发展脉络

深度学习,是最近十年来才发展起来的。2006年Hinton发表在Science的文章【1】首次提出了深度学习的概念,但当时没有很多人认可深度学习。深度学习真正引起关注是在2012年的ILSVRC图像分类比赛——深度学习方法的性能超过了所有传统方法。从此,深度学习在图像分类以外的很多领域得到了应用和发展。

1.1 从AlexNet到VGGNet

王老师首先回顾了近年来深度网络结构的发展。发展脉络如下图所示。

2012年的AlexNet【2】使深度学习引起了广泛关注。该网络只有8层,结构设计上没有特别之处。但该网络参数量很大,所以网络的训练引起了关注。王老师认为,这主要得益于GPU的发展。

2013年的ZFNet【3】,网络结构方面没有很大的突破。

2014年的VGGNet【4】结构上也没有很大改进。但是,VGGNet可以训练到19层,深度得到很大加深,且结果取得了突破式进步。这启示大家去加深网络深度。

在从AlexNet到VGGNet这一发展阶段里,网络结构都是线性的,区别仅仅是深度的加深。除了深度,期间也提出了Dropout【5】方法。

1.2 Dropout和DisturbLabel

由于Dropout对深度网络的训练有重要意义,王老师对Dropout和相关的方法进行了重点阐述。当训练参数量较大的网络时,可能会出现Overfitting,而Dropout可以缓解Overfitting问题。Dropout是指在每次迭代时,用随机的方法在原网络的基础选择一个子网络进行训练,得到每个子网络的参数,并将这些参数代入原网络结构中用于预测。其本质是使用同样的样本训练多个小网络,集成这些小网络来进行预测,从这个角度看,Dropout与Ensembling是相似的。

对于Overfitting,王老师介绍了他自己的工作——DisturbLabel【6】。DisturbLabel是指在每次迭代时不改变网络的结构,而是改变样本(包含数据和标签)——样本的标签以一定的概率出错,而数据保持不变。DisturbLabel的本质是将结构相同且使用不同样本训练得到的网络集成用于预测。DisturbLabel和Dropout的区别在于——在每次迭代时,Dropout不改变样本,而随机改变网络结构。DisturbLabel是网络结构保持不变,而随机改变样本的标签。

DisturbLabel以一定的概率使标签出错。对于概率如何影响网络性能,王老师设计了如下实验,结果如下图所示。

在MNIST数据集下,标签以α的概率出错。当α=0%时出现了Overfitting。当α=10%时结果最好。这表明DisturbLabel可以缓解Overfitting。CIFAR10数据集下结论是一致的。由此可知,DisturbLabel和Dropout都可以缓解Overfitting。

接下来,王老师进一步分析了DisturbLabel和Dropout的作用是互补的。如下图所示。

当单独使用Dropout或DisturbLabel时,错误率都有所改善。当同时使用Dropout和DisturbLabel方法时,性能可以得到进一步提高,这说明两者的效果可以互补。

1.3 从GoogleNet到ResNet

之前提到,在AlexNet到VGGNet的发展阶段,网络结构都是线性的。2014年,Google提出了GoogleNet【7】。GoogleNet不再是简单的线性结构,它提出了Multi-branch的概念,即网络包含多条分支(Branch),并且每个Branch的深度不同。

2015年的Highway【8】,虽然没有参加ILSVRC比赛,但它提出了Identity Connection的方法。Identity Connection缓解了深度过大带来的训练困难,可以使更深的网络得到训练。

2015年的ResNet【9】借鉴了Highway的Identity Connection,可以将网络训练得很深。同时,ResNet的特殊贡献在于它带来的重要启示——网络越深性能越好。王老师提出了不同的观点。

王老师从Deeply-fused Net【10】出发,阐述网络太深会导致不好的结果,最后提出Merge-and-Run【11】的方式增加宽度。

二、Deeply-fused Net

2016年,王老师提出了Deeply-fused Net(DFN)。DFN是基于GoogleNet的Multi-branch方法,同时借鉴了Highway和ResNet的机制。融合(Fusion)的概念是众所周知的,而Deeply-fused是指在深度网络的中间层也进行Fusion。

2.1 Deeply-fused Net的特点

DFN的网络结构十分简单,如下图所示。

图中是DFN的两种不同表示法,从右边的表示法中更容易看出,DFN可以看做由两个深度不同的基本网络(Base Network)组成,且两个Base Network在中间某些层进行Fusion,如上图右所示。两个融合层之间的网络称为块(Block),每个Block包含来自两个Base Network的两个部分。可以发现,如果将每个block内的两个部分互换位置,整体的DFN实质上不变。但互换后的DFN可以看做由两个不同于原Base Network的新Base Network组成。进一步,这种互换方式是多样的。于是,同一DFN可以看做由多对新Base Network融合而成。如下图所示。

上图左的两个Base Network进行三次融合,可以得到上图右所示的四种形态不同的DFN,这四种DFN包含不同的Base Network,但实质上是同一DFN。这表明DFN具有Multi-path和Multi-scale的性质,且网络的深度相对更小。

DFN的Multi-path有利于提高网络性能。网络的训练需要良好的信息流(Information Flow),如果网络的中间某层离Input/Output很近,则该层具有Information Flow的高速通道(Express Way)。众所周知,当某层离Output很远,则会出现梯度消失问题。缩短离Output的距离可以缓解梯度消失问题。如果某层离Input更近,则它能获得更多Input的变化信息,因此训练会更容易。DFN的Multi-path可以带来Express Way的性质。如下图所示。

上图中R03在原Base Network中距离Input两层,距离Output三层。但在DFN中,由于Multi-path的作用,R03距离Input变成了一层,距离Output变成了两层。因此具有了Express Way的性质。

2.2 Deeply-fused Net和Ensembling

Ensembling可以提高网络性能,前面提到Dropout和DisturbLabel都可以理解为Ensembling。DFN同样也可以从Ensembling角度来理解。首先在网络结构角度,如下图所示。

上图左的DFN网络与上图右的四组DFN是等价的。如果把上图右的四组网络的对应融合层合并到一起,形成下图中中间部分的网络结构,这两者是等价的。因此,就得到了由八个Base Network组成的网络。这八个Base Network如下图右边部分所示。

通过以上过程,可以发现DFN和Ensembling是类似的。为了探求结构相似的作用,王老师设计实验,采用了三种网络结构,如下图所示。

左边是Plain网络,中间是DFN,右边是Ensembling。王老师在不同网络深度上对比了以上三种结构的性能。结果如下图所示。

可以发现,Plain网络的性能随着网络加深而迅速下降。DFN和Ensembling的性能很接近。但DFN相对来说较差,王老师认为这是因为Ensembling中每个Base Network的相关度(Correlation)较小。

在分析了DFN和Ensembling关系的基础上,王老师进一步分析了在Ensemble过程中会影响DFN性能的因素。首先是Ensemble Size。从实验中发现:Ensemble Size越大则网络性能越好。并且,当网络越来越深Ensemble Size对性能提高的作用越来越明显。结果如下图所示。

因为Fusion越多则Ensemble Size越大,而从图中可以看出Fusion越大DFN的性能越好,因此Ensemble Size越大DFN的性能越好。

另外,DFN中Base Network的性能好坏也会影响DFN的整体性能。如下图所示。

上图上半部分表示网络的错误率,上图下半部分的四个数字代表DFN中Base Network的层数。比如,左边第一列的四个数字,14表示该DFN中最深的Base Network是14层,5表示最浅的Base Network是5层,而8和11代表另外两种深度。红色/黄色分别示意该深度的Base Network的性能较好/差。通过对比图中数据,可以发现在DFN中如果某Base Network的深度太深,则该Base Network的性能会降低(绿色示意),进而导致整个DFN的性能降低。这表明较深的Base Network的性能会影响整个DFN的性能。

三、网络深度的作用

前面提到,DFN中较深的Base Network性能较差,而ResNet得到的启示是网络越深性能越好。对于深度如何影响网络性能,王老师提出了自己的观点。

王老师首先分析了DFN中的Weight Sharing的作用。如下图所示。

Weight Sharing即DFN中不同Base Network的对应层(如L01)共享权值。王老师设计了多种深度的DFN对比试验,发现Weight Sharing会使DFN中较浅的Base Network的性能变差,而让较深的Base Network的性能变好。王老师分析,这是因为Weight Sharing会使DFN中较深的Base Network变得更容易训练,从而达到更好的性能。

虽然Weight Sharing有利于DFN中较深的Base Network缓解训练的困难,但对于最深的Base Network如何影响DFN的性能还没有定论,可以确定的是它决定了整个DFN的深度。为研究最深的Base Network的其他作用,王老师设置了三种不同的网络结构,如下图所示。

左边的DFN包含最深的Base Network,中间的不包含最深的Base Network,右边的训练时包含最深的Base Network,而测试时不使用最深的Base Network。实验结果如下图所示。

从上图中可以看出,如果训练时包含最深的Base Network,则会影响整个网络的性能。王老师分析其原因是最深的Base Network会对网络的训练造成不良影响。

除了分析DFN中最深的Base Network的影响,王老师也分析了DFN中其他Base Network。首先在DFN中依次切除各个Base Network,然后对DFN的性能进行分析,从而得到对DFN性能影响最大的Base Network。该实验的结果表明,对整个DFN性能影响最大的不是最深的Base Network。

总而言之,通过以上的实验发现:加深深度可以使Ensemble Size得到扩大,从而提高网络性能。但由于网络加深,最深的Base Network得不到良好的训练,导致DFN中的其他Base Network的性能降低,从而影响整个网络的性能。这表明,想要提高网络的性能一味地加深深度是不正确的。

四、Merge and Run

通过以上的实验,王老师总结得到了两条网络设计的经验:第一,选用更大的Ensemble Size;第二,避免设计过深的网络。依据这两条经验,王老师设计了Merge and Run网络结构,并且用它和Inception-like结构以及ResNet结构进行了对比。如下图所示是三种网络结构。

从上图中可以看出,Inception-like结构具有三条Path,ResNet结构具有四条Path。而Merge and Run结构具有六条Path,且其深度小于ResNet。王老师利用不同层数的三种网络结构在四个数据集上分别进行了实验。实验发现,在每个数据集上,无论网络层数为多少,Merge and Run结构的结果都是最优的。同时,相对于其他结构改变较大的State-of-art网络,如FractalNet【12】和DenseNet【13】,Merge and Run结构的结构改变相对较小。

五、总结与展望

深度融合对深度网络结构的设计主要带来了四个启示。第一是Multi-path,即多个Path能提高网络的性能。第二是Long and Short,即多个Path中深浅要多样化。因为深的网络较难训练,浅的网络有助于深的网络更好地训练。第三是Express Way,即引入Express Way使网络各层之间的Information Flow更快。第四是Weight Sharing,Weight Sharing有利于浅网络帮助深网络更好地训练。

最后王老师提到,自ResNet以来,许多研究人员在强调深度的重要性。这实际上是一个误导,无论是在研究角度还是在应用角度,网络太深的意义有限,而使网络Wider或者Fatter(如下图所示)是下一步可以尝试的研究方向。

参考文献

【1】http://www.cs.toronto.edu/~hinton/csc321/readings/science.pdf

【2】http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf

【3】https://arxiv.org/abs/1311.2901

【4】https://arxiv.org/abs/1409.1556

【5】http://www.cs.toronto.edu/~hinton/csc321/readings/science.pdf

【6】https://arxiv.org/abs/1605.00055

【7】https://arxiv.org/abs/1409.4842

【8】https://arxiv.org/abs/1507.06228

【9】https://arxiv.org/abs/1409.4842

【10】https://arxiv.org/pdf/1605.07716.pdf

【11】https://arxiv.org/pdf/1611.07718.pdf

【12】https://arxiv.org/abs/1605.07648v1

【13】https://arxiv.org/abs/1608.06993

本文分享自微信公众号 - 人工智能前沿讲习(AIFrontier),作者:王井东

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-05-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 网络表示学习介绍

    网络数据可以自然表达物体与物体之间的联系,生活中充满了网络数据,例如社交网络、计算机网络、物流网络、学术网络等等。在有关网络的研究中,如何表示网络信息是一个重要...

    马上科普尚尚
  • SFFAI分享 | 张志鹏:SiamDW Real-Time Visual Tracking【附PPT与视频资料】

    目标跟踪是计算机视觉的基本任务之一,近年来随着大量跟踪数据库如OTB,VOT,LASOT,GOT10K的提出,以及VOT比赛的推广,单目标跟踪领域迅速发展。而这...

    马上科普尚尚
  • SFFAI分享 | 常建龙:基于关系的深度学习【附PPT与视频资料】

    常建龙,师从潘春洪和向世明研究员,中国科学院自动化研究所在读博士生,主要研究方向为基于关系的深度学习,包括自动机器学习、网络压缩、深度图网络、深度无监督学习等等...

    马上科普尚尚
  • 算法篇:链表之合并有序链表

    算法的核心在于两个有序链表的合并操作,K个有序链表的合并只是一个变形题目,先拆分成k/2个有序链表,然后等比数列减少到1个数列。

    灰子学技术
  • 10 款实用的jquery插件

    jquery 的流行造就了诸多令人称奇的插件,这里选出10款实用插件供大家参考使用。 本文翻译自国外技术博客,欢迎热心ITer参与我们的翻译工作,提供更多...

    用户1177380
  • ViewPager实现广告自动轮播核心代码(Handler+Thread)

    用户1737026
  • 堪称经典的50道SQL题

    DataScience
  • mongodb3 ubuntu离线安装(非apt-get)及用户管理

      目前mongodb已经出到3.x,相对于2.x改动较大,本着学新不学旧的原则来捣鼓nosql数据库。最初想着apt-get安装但是软件源上都是2.x的,遂下...

    用户2038589
  • AXI Central DMA

    Programming工作模式: 1.首先验证CDMASR.IDLE=1(开始写) 2.如果传输完成,则产生CDMACR.IOC_IrqEn中断请求,否则产生错...

    瓜大三哥
  • 可视化算法VxOrd论文研读

    摘要 本文介绍了一种适合挖掘超大型数据库的聚类和排序ordination算法,包括微阵列表达式研究microarray expression studies产生...

    ZONGLYN

扫码关注云+社区

领取腾讯云代金券