必威体育Betway必威体育官网
当前位置:首页 > IT技术

Residual Networks 理解(一)

时间:2019-10-16 18:13:24来源:IT技术作者:seo实验室小编阅读:76次「手机版」
 

residual

从开始接触机器学习以来,就一直想做一些读书/论文笔记,因为越来越认识到这一领域是一个复杂又庞大的系统,(尤其是在进入深度学习这一领域之后),破碎的知识点随着时间的推移在不断的遗忘,为了更加方便的搜索和管理知识点,还是决定在博客做一些记录。因为CSDN申请需要手机号,昨天弄了一天还是没法绕过去手机验证,最后找人帮忙申请了一个,在这里表示感谢!

在CSDN的第一篇博客就从残差网络(Residual Net-2016)写起, 之前的经典网络结构如果有时间会在后面慢慢进行更新。希望通过这样的方式能够和同领域人员有一定的交流,在平时看别人的博客过程中,确实发现这是一个非常好的交流的平台

这篇博客主要讲《Residual Networks Bahave Like Ensemble of Relatively Shallow Networks》[http://papers.nips.cc/paper/6556-residual-networks-behave-like-ensembles-of-relatively-shallow-networks.pdf))这篇论文,这篇论文对残差网络做了一个比较独到的分析,有助于加深对ResNet的理解和感悟. 这篇文章的第一作者是Andreas Veit,来自于Cornell University的一名博士生,他在ICCV,AAai等机器学习顶会中都曾经发表过文章,这一篇文章可以认为是这名博士生的起家之作。文章被投在2016 NIPS上的,我认为NIPS是一个更加侧重学习理论的会议。

残差网络由何凯明博士在2016年CVPR的文章《Deep Residual Learning for Image recognition》中首次提出,提出之后两年时间里引用量可以说是飞速增长,这一网络甚至被认为是当前性能最佳的网络结构,关于该网络具体提出和实现细节在后续的文章中再说明。残差网络主要存在三点与传统卷积网络不同的地方:

1) 残差网络shortcut Connections的引入实现了恒等映射,使得数据流可以跨层流动。原问题就转化使残差函数(F(x)=H(x)-x)逼近0值,而不用直接去拟合一个恒等函数H’(x),这在实际中是非常难的,而转化为优化残差函数,使用SGD优化过程便不会出现退化现象,基于此网络结构才可以进一步的扩展到成百上千层。这一残差转化思想来源于图像处理中残差向量编码特征(VLAD),VLAD又来源于’Bag of Feature & Fisher vector’. 关于这一方面的知识可以查阅相关的资料。

2) Idendity mAPPing的出现使网络相对传统结构而言变得更深。

3) 从残差网络结构中移除一层后并不会对网络的性能产生大的影响,对于传统网络如VGG-16,VGG-19,删除任何一层都会大幅降低网络性能。这可能与网络多路径的叠加有关,这样的叠加实现了较好的正则化。

通过分解视图,将残差网络分解对多个路径网络的和集合。通过一些列的实验,发现虽然残差网络可以通过增加更多的层来提升性能,但是在网络训练过程中起作用的仅仅是一些shallow layers的那些路径。因此本文认为残差网络并没有从本质上通过保存梯度信息到所有层来解决梯度消失问题,而是将所有层的性能集中到有效的浅层网络中。因此,浅层对于训练非常深度的网络是非常关键的。

通过lesion study也发现网络的各个路径之间是相互独立的,同时整个网络的性能与有效路径的数量是正相关的。在传统网络结构中(从LeNet, AlexNet, ZF Net, VGG, 到 GoogleNet)都严格的遵循一个分级结构,在底层中,神经元获取low-level特征,这些神经元是相对敏感的,而且不易于区分的,随着层数的增加,越来越高级别的特征被提取,特征越来越具备不变性,稳定性和可区分性,最终利用high-level特征完成相应的视觉任务,这也是为何可以把深度网络作为特征提取算子的原因。因此在以往的网络研究中存在一个普遍的观点,网络的深度控制着网络的表达力和性能。但是残差网络并不是这样子。

残差网络最大的区别是使用了残差块(residual block结构),假设x为输入,输出y=f(x)+x.其中f由一系列卷积操作,BN操作和ReLU激活函数组成,公式表达如下。

公式

神经网络的并行分支卷积的想法在inception系列结构中就已经出现过,将卷积操作分组并行进行,而不是传统的严格顺序进行,而残差思想第一次出现的网络是Highway Network,它通过一种gate fuction来控制残差,但是当gate关闭的时候,残差便会消失,而Residual Net中的残差思想是随时存在的。

这里写图片描述

此外highway net参数也很多,复杂度极高。

在神经网络研究的早期,研究人员已经开始使用Ensembling技术去正则化网络,进一步提高网络性能,这一技术即平均化多个网络结果(Dropout技术即来源于此思想)。虽然这一技术已经被广泛使用,但是更为简单的操作可以设计一种神经网络投票系统,将不同网络的打分值平均作为最终的预测结果,随着打分系统的数量不断增加,整体性能的改变量不断的降低,看起来残差网络的行为与此比较相似。为了进一步理解残差网络结果,将残差递归块展开为以下形式:

这里写图片描述

传统分层网络结构中(VGG, AlexNet),每一层的处理过程严格的依赖于上一层的输出,而在残差网络中并不遵循这一规则,它每一层输入的数据来源于2^(i-1)中不同结构的组合。因此在传统网络中所有经过每一层的path的长度是相同的,但是在残差网络中paths的长度是变化的,因为skip connections的存在。

这里写图片描述

Lesion study 研究残差网络中各个paths之间的相关性,以及是否他们扮演ensemble的角色。数据集使用CIRAR-1O (110-layer net + 54-module) & ImageNet(200-layer + 66 module).

(1) Experiment: Deleting inpidual layers from neural networks at test time. 删除网络一些层, 通过这样的实验证明并不是所有的transformations都是必要的,或者可以理解为对网络的性能都是影响比较大的。使用VGG-15做对比实验。结果表明残差网络在使用过程中结构是可以更改的,这样不会对整体性能产生较大的影响。(Residual Net 中的路径是相互独立的,彼此间的依赖性不强。)

这里写图片描述

(2)Experiment: Deleting many modules from residual networks at test-time.随机删除残差网络中的一些残差块。主要是为了验证不同路径的共同作用是否相当于ensemble。可以看到错误率随着删除残差模块平滑增长。这也说明了残差网络中包含esemble的作用。

这里写图片描述

Short paths在残差网络中的重要性。在文章之前已经说过并不是网络中所有的路径都是相同的,仅有一条路径会经过所有的模块,n条路径仅仅通过一个module,因为这一原因路径的长度服从二项分布(n次伯努利实验,出现各个结果的频率)。通过统计,网络的路径长度集中在n/2处附近(19-35)。同时也观察了不同路径长度网络在第一层的梯度值。

这里写图片描述

以上实验结果说明残差网络中有效的路径还是相对浅的。较深层处梯度的总值已经趋于0,说明权值不会再进行调整。网络的收敛还取决于浅层结构。

综上,作者做了大量的对比实验去深度挖掘、分析残差网络,为其提供了补充解释,不仅仅集中于‘深度’这一原因:

1. 这一类型的网络可以看作多路径网络的集合,取代了传统的单一路径网络。

2. 残差网络中各个路径都是不相互依赖的,这一不相关性很好的增加了整体结构的正则效果。

3. 对网络训练过程中梯度有贡献的路径集中在浅层处(有效路径),因此残差网络并没有通过保留每一层的梯度信息的手段解决vanishing gradient问题,而是通过增加有效短路径权重的方式实现。

references

[1] Veit, Andreas, Michael J. Wilber, and Serge Belongie. “Residual networks behave like ensembles of relatively shallow networks.” Advances in Neural Information Processing Systems. 2016.

相关阅读

目标跟踪-CREST: Convolutional Residual Learning fo

1. 概述 论文中提出了CREST算法,该算法将DCF(判别式相关滤波)重定义为卷积神经网络的一层。该算法将特征提取(feature extraction)

分享到:

栏目导航

推荐阅读

热门阅读