赞
踩
深度残差网络(ResNet)由微软研究院的何恺明、张祥雨、任少卿、孙剑提出。研究动机是为了解决深度网络的退化问题,不同于过去的网络是通过学习去拟合一个分布,ResNet通过学习去拟合相对于上一层输出的残差。实验表明,ResNet能够通过增加深度来提升性能,而且易于优化,参数量更少,在许多常用数据集上有非常优秀的表现。ResNet 在2015 年的ILSVRC(ImageNet Large Scale Visual Recognition Challenge)中取得了冠军。
配合阅读:上述作者在Identity Mappings in Deep Residual Networks中介绍了ResNet易于优化、快速收敛的原因,并且分析几种不同的残差结构
深度网络在物体检测、语义分割等许多领域上都有重要的需求,它能够提取数据中更高层次的丰富的特征,但直接简单地堆积搭建深度的网络往往无法取得良好的效果,甚至会非常糟糕。
对于退化问题,既然浅层网络的性能优于深度网络,那么不妨做这样的一个构建。假设我们已经有了一个浅层网络,并且由输入得到了输出,那么当构建与之相对应的深度网络时,我们直接在原浅层网络的基础上连接一系列的恒等映射层(Identity Mapping),使得输入与输出完全相同,这样一来,虽然网络的层数增加了,但输出结果仍然与浅层网络的结果一致,那么至少可以保证深度网络的性能不会比浅层网络差。但这样的做法仅在理论上成立,在实际过程中,网络训练往往难以拟合恒等映射,因为在训练过程中网络总会学习某些权重、总要做出一些改变。为此,论文作者提出了一种深度残差学习框架用于解决退化问题。
假设是需要学习得到的底层映射(不一定是整个网络的,可以是局部层次的),ResNet并没有让网络层去直接拟合,而是去拟合相对于x的残差,最后将残差与输入相加就可以得到。图2.1中,曲线表示的是恒等映射(也称为Shortcut Connection短路连接/Skip Connection),左边的网络用于拟合残差,两条路径汇合时,结果相加再激活。相加(需要保证两者的shape与channel是相同的)的操作既不会增加参数,也不会增加模型复杂度。拟合残差往往比拟合底层映射要容易,网络通常难以拟合恒等映射。在某种极端情况下,当恒等映射达到最优,即上一层的输出结果已经最佳时,残差部分的权重可以直接置为0,这时恒等映射就是底层映射。这说明拟合残差确实能够实现恒等映射,在大多数情况下,恒等映射往往无法达到最优,这时就需要通过残差模块进行修正。
万能近似定理:人工智能领域的著名定理,指的是只要有一个隐含层的神经网络,理论上就可以拟合任何函数,不论这个函数有多复杂。
用数学公式表达图2.1中最后相加的环节就是
其中,代表激活函数。偏置(bias)通常是被忽略掉的,当添加有BN层时,则完全不需要偏置,因为它不会发挥作用,反而添加了多余的参数。
有时左侧网络与恒等映射的输出维度并不一致,这时候就需要使用一个方阵(做卷积操作)来调整恒等映射的输出维度,使得两者能够相加,这时图2.2中的式子就变为:
【注意】该方阵仅用于匹配维度,在Identity Mappings in Deep Residual Networks中,实验表明采用恒等映射的效果是最好的,使用该方阵反而会增加了参数。
在图3.1当中,可以发现存在两种Shortcut Connection的类型:
- 实线类型:第一个粉色块的输出与第三个粉色块的输出channel数相同,都为64,故Shortcut Connection为恒等映射,无需进行维度匹配
- 虚线类型:第三个粉色块的输出与第二个绿色块的输出channel数不同,前者为64,后者为128,故Shortcut Connection需要进行维度匹配
论文作者提供了两种维度匹配方式:
(A)通过Padding填充0,补充通道数。这种做法不会引入额外的参数。
(B)通过1×1的卷积核改变维度
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。