对ResNet本质的一些思考

2019 年 4 月 27 日 极市平台

加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!

同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流点击文末“阅读原文”立刻申请入群~


作者 | 黄二二

来源 | https://zhuanlan.zhihu.com/p/60668529


最近在总结完成语义分割任务的轻量级神经网络时,看到了MobileNet V2中对于ReLU层的思考,于是我也回过头重新审视ResNet之所以work的本质原因。以下是一些个人的见解,如有错误,还望及时指正。


在谈及ResNet之前,我们先聊聊故事的背景。


我们知道,在神经网络中,非线性激活层可以为模型引入了非线性,让模型具有更强的拟合能力。如果只是单纯的线性操作层的叠加,则完全可以等价为一个线性层,这就浪费了深度神经网络的一身好本领。


所谓针无两头尖,那么非线性激活层会带来一些什么问题呢?我们以ReLU为例来进行说明,其他非线性激活层亦同理。


首先,最直观的,从实验中我们可以注意到一个事实:ReLU会造成的低维数据的坍塌(collapse)。顾名思义,即是说,低维度的feature在通过ReLU的时候,这个feature会像塌方了一样,有一部分被毁掉了,或者说失去了。能恢复吗?能,但是基本无法百分百还原了。


具体表现出来就是:若是我们对一个feature,先通过一个给定的变换规则T,将它映射到它的embedding space中,再在该embedding space中,利用一个ReLU去处理该feature,最后再把这个feature以同样的变换规则(逆方向)给映射回原始空间,我们会发现,这时,这个feature已经变得连亲妈都不认得了。如图↓



图片来自《MobileNetV2: Inverted Residuals and Linear Bottlenecks》


ReLU这个东西,其实就是一个滤波器,只不过这个滤波器的作用域不是信号处理中的频域,而是特征域。那么滤波器又有什么作用呢?维度压缩,俗话说就是降维啦:如果我们有m个feature被送入ReLU层,过滤剩下n个(n<m),这不就是相当于对feature的维度进行了压缩,使其从m维变为n维嘛。


那么,为什么低维数据流经非线性激活层会发生坍塌(信息丢失),而高维数据就不会呢?


打个简单但不严谨的比方:大家都有过年抢高铁票的经验吧?几个人(维度低)帮你抢一张票,肯定没有一群人(维度高)帮你抢一张票,成功的概率高啊。几个人里面,大概率全军覆没,没一个能帮上你忙的。而一群人里面,大概率总有那么一个手速惊人的单身青年,帮你抢到你心心念念的回家票。


在数据上也是一个道理,维度低的feature,分布到ReLU的激活带上的概率小,因此经过后信息丢失严重,甚至可能完全丢失。而维度高的feature,分布到ReLU的激活带上的概率大,虽然可能也会有信息的部分丢失,但是无伤大雅,大部分的信息仍然得以保留。所谓留得青山在,不愁没柴烧嘛。更何况被ReLU截杀的信息,可能只是一些无用游民(冗余信息)。


那么数据的坍塌,是个很严重的事吗?


那事儿可大了。如果把神经网络比作一个人的话,你这就是给它的某个部位的血管里,丢了个血栓。


当信息无法流过ReLU时,该神经元的输出就会变为0。而在反向传播的过程中,ReLU对0值的梯度为0,即发生了梯度消失,这将导致神经元的权重无法再通过梯度下降法进行更新,这种现象被称为特征退化。所以这个神经元相当于死掉了,丧失了学习能力。我们说,一旦神经元的输出陷入0值,就无法恢复了。



那么,我们应该怎么去规避数据的坍塌呢?非线性激活层到底是个什么样的东西?


其实,对于一个数据,利用非线性激活层对其进行激活,其实是从该数据的信息中提取出其潜在的稀疏性,但是这种提取的结果是否正确,就要分情况讨论了。


对于一个M维的数据,我们可以将其看成是在M维空间中的一个M维流形(manifold)。而其中的有用信息,就是在该M维空间中的一个子空间(子空间的维度记为N维,N<=M)中的一个N维流形。非线性激活层相当于压缩了这个M维空间的维度(还记得前面提过的维度压缩吗?)。若是该M维空间中的M维流形本来就不含有冗余信息(M=N),那么再对其进行维度压缩,必然导致信息的丢失。


而维度低的数据其实就是这么一种情况:其信息的冗余度高的可能性本来就低,如果强行对其进行非线性激活(维度压缩),则很有可能丢失掉有用信息,甚至丢失掉全部信息(输出为全0)。


与非线性激活层不同的是,线性激活层并不压缩特征空间的维度。于是,我们得到了一条使用激活层的原则:

  1. 对含有冗余信息的数据使用非线性激活(如ReLU),对不含冗余信息的数据使用线性激活(如一些线性变换)。

  2. 两种类型的激活交替灵活使用,以同时兼顾非线性和信息的完整性。

  3. 由于冗余信息和非冗余信息所携带的有用信息是一样多的,因此在设计网络时,对内存消耗大的结构最好是用在非冗余信息上。


根据以上的原则设计出来的结构,聪明的你想到了什么?ResNet。不得不赞叹Kaiming He的天才,ResNet这东西,描述起来固然简单,但是对它的理解每深一层,就会愈发发现它的精妙及优雅,从数学上解释起来非常简洁,非常令人信服,而且直切传统痛点。


ResNet本质上就干了一件事:降低数据中信息的冗余度。


具体说来,就是对非冗余信息采用了线性激活(通过skip connection获得无冗余的identity部分),然后对冗余信息采用了非线性激活(通过ReLU对identity之外的其余部分进行信息提取/过滤,提取出的有用信息即是残差)。


其中,提取identity这一步,就是ResNet思想的核心。


从本文的观点来看,因为从数据中拿掉了非冗余信息的identity部分,会导致余下部分的信息冗余度变高。这就像从接近饱和的溶液中移走了一部分溶质,会使得剩下的溶液的饱和度降低,一个道理。


在这里也引用一下其他的一些观点,方便大家可以从一个更全面的角度去看这个问题:

从特征复用的观点来看,提取identity部分,可以让网络不用再去学习一个identity mapping(虽然是一样的东西,但是毕竟又要从头学起,讲真,换你来试试,这其实真的不容易学到),而是直接学习residual。这就轻松愉快多了:站在巨人的肩膀上,做一点微小的工作什么的...


既然说了ResNet解决的痛点,也顺便多说几句它带来的好处:

  1. 由于identity之外的其余部分的信息冗余度较高,因此在对其使用ReLU进行非线性激活时,丢失的有用信息也会较少,ReLU层输出为0的可能性也会较低。这就降低了在反向传播时ReLU的梯度消失的概率,从而便于网络的加深,以大大地发挥深度网络的潜能。

  2. 特征复用能加快模型的学习速度,因为参数的优化收敛得快(从identity的基础上直接学习残差,总比从头学习全部来得快)。


最后是两个小tips:

  1. 如果一个信息可以完整地流过一个非线性激活层,则这个非线性激活层对于这个信息而言,相当于仅仅作了一个线性激活。

  2. 解决由非线性激活导致的反向传播梯度消失的窍门,就是要提高进行非线性激活的信息的冗余度。







*延伸阅读


点击左下角阅读原文”,即可申请加入极市目标跟踪、目标检测、工业检测、人脸方向、视觉竞赛等技术交流群,更有每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流,一起来让思想之光照的更远吧~


觉得有用麻烦给个在看啦~  

登录查看更多
26

相关内容

【图神经网络(GNN)结构化数据分析】
专知会员服务
115+阅读 · 2020年3月22日
【资源】100+本免费数据科学书
专知会员服务
107+阅读 · 2020年3月17日
模型压缩究竟在做什么?我们真的需要模型压缩么?
专知会员服务
27+阅读 · 2020年1月16日
注意力机制介绍,Attention Mechanism
专知会员服务
168+阅读 · 2019年10月13日
NAS发展史:从放弃到入门
极市平台
20+阅读 · 2019年8月31日
对 ResNet 本质的一些思考
新智元
6+阅读 · 2019年4月12日
图像分类:常用分类网络结构(附论文下载)
极市平台
13+阅读 · 2019年4月8日
后ResNet时代:SENet与SKNet
PaperWeekly
23+阅读 · 2019年3月25日
不用重新训练,直接将现有模型转换为 MobileNet
极市平台
6+阅读 · 2019年3月4日
目标检测论文阅读:DetNet
极市平台
9+阅读 · 2019年1月28日
ResNet, AlexNet, VGG, Inception:各种卷积网络架构的理解
全球人工智能
19+阅读 · 2017年12月17日
为什么大家都不戳破深度学习的本质?
36大数据
4+阅读 · 2017年12月7日
[深度学习] AlexNet,GoogLeNet,VGG,ResNet简化版
机器学习和数学
20+阅读 · 2017年10月13日
Arxiv
5+阅读 · 2020年3月16日
SlowFast Networks for Video Recognition
Arxiv
4+阅读 · 2019年4月18日
dynnode2vec: Scalable Dynamic Network Embedding
Arxiv
14+阅读 · 2018年12月6日
Arxiv
6+阅读 · 2018年5月22日
VIP会员
相关资讯
NAS发展史:从放弃到入门
极市平台
20+阅读 · 2019年8月31日
对 ResNet 本质的一些思考
新智元
6+阅读 · 2019年4月12日
图像分类:常用分类网络结构(附论文下载)
极市平台
13+阅读 · 2019年4月8日
后ResNet时代:SENet与SKNet
PaperWeekly
23+阅读 · 2019年3月25日
不用重新训练,直接将现有模型转换为 MobileNet
极市平台
6+阅读 · 2019年3月4日
目标检测论文阅读:DetNet
极市平台
9+阅读 · 2019年1月28日
ResNet, AlexNet, VGG, Inception:各种卷积网络架构的理解
全球人工智能
19+阅读 · 2017年12月17日
为什么大家都不戳破深度学习的本质?
36大数据
4+阅读 · 2017年12月7日
[深度学习] AlexNet,GoogLeNet,VGG,ResNet简化版
机器学习和数学
20+阅读 · 2017年10月13日
Top
微信扫码咨询专知VIP会员