干货|一文弄懂ResNet有多大威力?最近又有了哪些变体?

2017 年 7 月 22 日 全球人工智能

欢迎加入全球最大AI社群>>

来源:mediun 作者:Vincent Fung

自从AlexNet在LSVRC2012分类比赛中取得胜利之后,深度残差网络(deep Residual Network)可以说成为过去几年中,在计算机视觉、深度学习社区领域中最具突破性的成果了。ResNet可以实现高达数百,甚至数千个层的训练,且仍能获得超赞的性能。


得益于其强大的表征能力,许多计算机视觉应用在图像分类以外领域的性能得到了提升,如对象检测和人脸识别。


自从2015年ResNet进入人们的视线,并引发人们思考之后,许多研究界人员已经开始研究其成功的秘诀,并在架构中纳入了许多新的改进。本文分为两部分,第一部分我将为那些不熟悉ResNet的人提供一些相关的背景知识,第二部分我将回顾一些我最近读过的关于ResNet架构的不同变体及其论文的相关阐述。


重新审视ResNet

根据泛逼近性原理(universal approximation theorem),我们知道,如果给定足够的容量,一个具有单层的前馈网络足以表示任何函数。然而,该层可能是巨大的,且网络可能容易过度拟合数据。因此,研究界有一个共同的趋势,即我们的网络架构需要更深。


自从AlexNet投入使用以来,最先进的卷积神经网络(CNN)架构越来越深。虽然AlexNet只有5层卷积层,但VGG网络和GoogleNet(代号也为Inception_v1)分别有19层和22层。


但是,如果只是通过简单地将层叠加在一起,增加网络深度并不会起到什么作用。由于有着臭名昭著的梯度消失问题,深层网络是难以进行训练的,因为梯度反向传播到前层,重复乘法可能使梯度无穷小,而造成的结果就是,随着网络的深层,其性能趋于饱和,或者甚至开始迅速退化。

增加网络深度导致性能下降


其实早在ResNet之前,已经有过好几种方法来处理梯度消失问题,例如,在中间层增加辅助损失作为额外的监督,但遗憾的是,似乎没有一个方法可以真正解决这个问题。


ResNet的核心思想是引入所谓的“身份近路连接(identity shortcut connection)”,可以跳过一层或多层,如下图所示:

 

残差块


《用于图像识别的深度残差学习》(arXiv:1512.03385,2015)的作者认为,堆积层不应该降低网络性能,因为我们可以简单地在当前网络上堆积身份映射(层不做任何事情),并且所得到的架构将执行相同的操作。这表明,较深的模型所产生的训练误差不应该比较浅的模型高。他们假设让堆积层适应残差映射比使它们直接适应所需的底层映射要容易得多。上图的残差块可以明确地使它做到这一点。

ResNet架构


事实上,ResNet并不是第一个利用近路连接、Highway Networks引入门控近路连接的。这些参数化门控制允许多少信息流过近路(shortcut)。类似的想法可以在长短期记忆网络(LSTM)单元中找到,其中存在参数化的忘记门,其控制多少信息将流向下一个时间步。因此,ResNet可以被认为是Highway Networks的一种特殊情况。


然而,实验表明,Highway Networks的性能并不如ResNet,因为Highway Networks的解决方案空间包含ResNet,因此它应该至少表现得像ResNet一样好。这就表明,保持这些“梯度公路”干净简洁比获取更大的解决方案空间更为重要。


照着这种直觉,《用于图像识别的深度残差学习》的作者改进了残差块,并提出了一个残差块的预激活变体,其中梯度可以畅通无阻地通过快速连接到任何其他的前层。事实上,在《用于图像识别的深度残差学习》中表明,使用原始的残差块,训练1202层ResNet所展示的性能比其训练110层对等物要差得多。


残差块的变体


《深度残差网络中的身份映射》的作者通过实验证明,他们现在可以训练一种1001层的深度ResNet,以超越其较浅层的对手。 由于其令人信服的结果,ResNet迅速成为各种计算机视觉任务中最流行的架构之一。


ResNet的最新变体和阐述

随着ResNet在研究界越来越受欢迎,其架构获得大量研究。在本节中,我将首先介绍几种基于ResNet的新架构,然后介绍一篇论文,阐述一下将ResNet作为许多小型网络的集合的缘由。


ResNeXt

S. Xie,R. Girshick,P. Dollar,Z. Tu和 K. He在《深度神经网络的聚集残差变换》中提出了一个代号为ResNeXt的ResNet变体,它具有以下构建块:


左:《用于图像识别的深度残差学习》中所提及的构建块,右图: ResNeXt构建块 基数=32


这可能看起来很熟悉,因为它非常类似于《IEEE计算机视觉与模式识别会议论文集》中《Going deeper with convolutions》的Inception模块,它们都遵循“拆分-转换-合并”范式,除了在这个变体中,不同路径的输出通过将它们相加在一起而被合并,而在《Going deeper with convolutions》中它们是深度连接的。另一个区别是,在《Going deeper with convolutions》中,每个路径彼此互不相同(1x1,3x3和5x5卷积),而在此架构中,所有路径共享相同的拓扑。


作者介绍了一个称为 “基数(cardinality)”的超参数——独立路径的数量,以提供调整模型容量的新方式。实验表明,可以通过增加基数,而不是深度或宽度,来更加有效地获得准确度。作者指出,与Inception相比,这种新颖的架构更容易适应新的数据集/任务,因为它具有一个简单的范式,且只有一个超参数被调整,而Inception却具有许多超参数(如每个路径中卷积层内核大小)待调整。


这个新颖的构建块有如下三种等效形式:


实际上,“分割-变换-合并”通常是通过点分组卷积层来完成的,它将其输入分成特征映射组,并分别执行正常卷积,其输出被深度级联,然后馈送到1x1卷积层。


Densely Connected CNN

Huang 等在《密集卷积网络》中提出了一种称为DenseNet的新型架构,进一步利用近路连接的效果—将所有层直接互连在一起。在这种新颖的架构中,每层的输入由所有较早层的特征映射组成,其输出传递给每个后续层。特征映射与深度级联聚合。

 


《深度神经网络的聚集残差变换》的作者除了应对梯度消失问题外,还认为这种架构还鼓励特征重用,从而使得网络具有高度的参数效率。一个简单的解释是,在《用于图像识别的深度残差学习》和《深度残差网络中的身份映射》中,身份映射的输出被添加到下一个块,如果两层的特征映射具有非常不同的分布,这可能会阻碍信息流。因此,级联特征映射可以保留所有特征映射并增加输出的方差,从而鼓励特征重用。



遵循这个范式,我们知道第l层将具有k *(l-1)+ k_0个输入特征映射,其中k_0是输入图像中的通道数。作者使用一个称为增长率(k)的超参数,防止网络生长过宽,他们还使用1x1卷积瓶颈层,以减少昂贵的3x3卷积之前的特征映射的数量。整体结构如下表所示:


ImageNet的DenseNet架构


具有随机深度的深度网络

尽管ResNet在许多应用中已被证明很强大,但它的主要的缺点是,更深层的网络通常需要几周的时间进行训练,而这在实际应用中几乎不可行。为了解决这个问题,G. Huang、Y. Sun、 Z. Liu、D. Sedra和K. Q. Weinberger引入了一种在训练过程中随机丢弃图层的反直觉方法,同时使用完整的网络进行推理。


作者使用残差块作为其网络的构建块,因此,在训练期间,当特定残差块被启用时,它的输入在身份近路和权重层流动,否则,输入只在身份近路流动。在训练时间内,每层都有“生存概率”,随机下降。在测试时间内,所有的块都保持活动状态,并在测试期间根据其生存概率进行重新校准。


形式上,设定H_l是第l个残差块的输出,f_l是由第l块的加权映射定义的映射,b_l是在训练期间只有1或0(表示块是否有效)的伯努利随机变量:  

当b_l = 1时,该块成为正常的残差块,当b_l = 0时,上述公式为: 

由于我们知道H_(l-1)是ReLU的输出,它已经是非负的,所以上述方程减少到只将输入传递到下一层的身份层:

令p_l是训练期间l层的生存概率,在测试期间,我们有:

作者将线性衰减规则应用于每个层的生存概率,他们认为,由于前层提取将被稍后使用的低级特征,因此不应太频繁地丢弃,所以得到的规则变为:

其中L表示块的总数,因此p_L是最后一个残差块的生存概率,并且在实验中固定为0.5。 另请注意,在此设置中,输入被视为第一层(l = 0),因此不会丢弃。随机深度训练的总体框架如下图所示。


类似于Dropout,训练具有随机深度的深层网络可以被视为训练许多较小ResNets的合集。不同之处在于,该方法随机丢弃整个图层,而Dropout在训练期间仅将一部分隐藏单元下降。


实验表明,训练具有随机深度的110层ResNet会比训练恒定的110层ResNet得到更好的性能,同时大大减少了训练时间。这表明ResNet中的一些层(路径)可能是冗余的。


ResNet作为小型网络的组合

《具有随机深度的深度网络》提出了一种反直觉的方式,训练一个非常深层的网络,通过在训练期间随机丢弃它的层,并在测试时间内使用完整的网络。Veit等人有一个更反直觉的发现:我们实际上可以删除一些已训练的ResNet的一些层,但仍然具有可比性能。这使得ResNet架构更加有趣,该论文亦降低了VGG网络的层,并大大降低了其性能。


该论文首先提供了ResNet的一个简单的视图,使事情更清晰。在我们展开网络架构之后,这是很显而易见的,具有i个残差块的ResNet架构具有2 ** i个不同的路径(因为每个残差块提供两个独立的路径)。

鉴于上述发现,我们很容易发现为什么在ResNet架构中删除几层,对于其性能影响不大——架构具有许多独立的有效路径,在我们删除了几层之后,它们大部分保持不变。相反,VGG网络只有一条有效的路径,所以删除一层是唯一的途径。


作者还进行了实验,表明ResNet中的路径集合具有集合行为。他们是通过在测试时间删除不同数量的层,然后查看网络的性能是否与已删除层的数量平滑相关,这样的方式做到的。结果表明,网络确实表现得像集合,如下图所示:



最后,作者研究了ResNet中路径的特点:很明显,所有可能的路径长度的分布都遵循二项式分布,如(a)所示。大多数路径经过19到35个残差块。



调查路径长度与经过其的梯度大小之间的关系,同时获得长度为k的路径的梯度幅度,作者首先将一批数据馈送给网络,随机抽取k个残差块。当反向传播梯度时,它们仅传播到采样残余块的权重层。(b)表明随着路径变长,梯度的大小迅速下降。


我们现在可以将每个路径长度的频率与其预期的梯度大小相乘,以了解每个长度的路径对于训练有多少帮助,如(c)所示。令人惊讶的是,大多数贡献来自长度为9至18的路径,但它们仅占总路径的一小部分,如(a)所示。这是一个非常有趣的发现,因为它表明ResNet并没有解决长路径上的梯度消失问题,而是通过缩短其有效路径,ResNet实际上能够实现训练非常深度的网络。

 

结论:在本文中,我们重新回顾了ResNet架构,简要介绍了其最新取得的成就。之后,我介绍了一些有趣的ResNet的变体的相关论文,同时给出了相关解释。我希望这篇文章能够帮助到你理解ResNet。

热门文章推荐

国家战略:国务院发布《新一代人工智能发展规划》

京东发布登月机器学习平台:为第四次零售革命输出AI能力

重磅|中国870家ai公司融资905亿人民币!

浙大女科学家解密:从最后一面逆袭第一名!

资料|麻省理工课程:深度学习数据基础(ppt)

推荐|40张动态图详解全部传感器关注原理!

警惕!中国人工智能有一只推荐算法叫:莆田系算法!

百度Apollo:无人驾驶技术发展成熟仅需3年左右!

阿里出了个Take Go无人便利店,比亚马逊还厉害!

大数据:99%的数据是无用的僵尸数据!

登录查看更多
1

相关内容

【清华大学】图随机神经网络,Graph Random Neural Networks
专知会员服务
152+阅读 · 2020年5月26日
【北航】面向自然语言处理的预训练技术研究综述
专知会员服务
111+阅读 · 2020年4月23日
【ICLR-2020】网络反卷积,NETWORK DECONVOLUTION
专知会员服务
37+阅读 · 2020年2月21日
神经网络与深度学习,复旦大学邱锡鹏老师
专知会员服务
116+阅读 · 2019年9月24日
一文简述ResNet及其多种变体
机器之心
23+阅读 · 2018年4月22日
深度学习DenseNet算法详解
数据挖掘入门与实战
7+阅读 · 2018年4月17日
干货|浅谈神经网络中激活函数的设计
机器学习研究会
5+阅读 · 2017年10月28日
变种神经网络的典型代表:深度残差网络
机器学习研究会
9+阅读 · 2017年10月20日
[深度学习] AlexNet,GoogLeNet,VGG,ResNet简化版
机器学习和数学
20+阅读 · 2017年10月13日
干货 | 深度详解ResNet及其六大变体
AI100
8+阅读 · 2017年8月8日
Meta-Transfer Learning for Zero-Shot Super-Resolution
Arxiv
43+阅读 · 2020年2月27日
Arxiv
9+阅读 · 2018年10月18日
Arxiv
3+阅读 · 2018年3月5日
VIP会员
相关资讯
一文简述ResNet及其多种变体
机器之心
23+阅读 · 2018年4月22日
深度学习DenseNet算法详解
数据挖掘入门与实战
7+阅读 · 2018年4月17日
干货|浅谈神经网络中激活函数的设计
机器学习研究会
5+阅读 · 2017年10月28日
变种神经网络的典型代表:深度残差网络
机器学习研究会
9+阅读 · 2017年10月20日
[深度学习] AlexNet,GoogLeNet,VGG,ResNet简化版
机器学习和数学
20+阅读 · 2017年10月13日
干货 | 深度详解ResNet及其六大变体
AI100
8+阅读 · 2017年8月8日
Top
微信扫码咨询专知VIP会员