首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

AIDL简介

“人工智能前沿讲习班”(AIDL)由中国人工智能学会主办,旨在短时间内集中学习某一领域的基础理论、最新进展和落地方向,并促进产、学、研相关从业人员的相互交流,对于硕士、博士、青年教师、企事业单位相关从业者、预期转行AI领域的爱好者均具有重要的意义。2018年AIDL活动正在筹备,敬请关注获取最新消息。

导读

在由中国人工智能学会举办的第一期AIDL《人工智能前沿讲习班》上,微软亚洲研究院王井东研究员进行了题为“深度融合:一种神经网络结构设计模式”的演讲。王老师首先回顾了近十年来深度网络结构的发展脉络,总结了不同网络结构的特点。接着介绍了由他提出的Deeply-fused Net,分析了融合对于网络的作用,反思了网络深度的意义,并提出了一种Merge and Run的结构。最后王老师总结了深度网络结构设计的四条经验,并分享了自己对深度网络结构发展趋势的观点。

关注本公众号,回复“王井东”,获取完整版PPT

分享PPT仅供学习交流,请勿外传

讲师简介

王井东,微软亚洲研究院视觉计算组高级研究员,中国科学与技术大学博士生导师。研究方向为机器学习、模式识别、计算机视觉,尤其是深度网络结构设计,行人再识别。担任IEEE TMM/IEEE TCSVT等国际期刊的副主编,CVPR/ICCV/ECCV/ACM/MM/IJCAI/AAAI等国际会议的领域主席。

全文目录

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

1.1 从AlexNet到VGGNet

1.2 Dropout和DisturbLabel

1.3 从GoogleNet到ResNet

二、Deeply-fused Net

2.1 Deeply-fused Net的特点

2.2 Deeply-fused Net和Ensembling

三、网络深度的作用

四、Merge and Run

五、总结与展望

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

深度学习,是最近十年来才发展起来的。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

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180508G0X0HG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券