深度残差网络 ResNet

论文链接:Deep Residual Learning for Image Recognition

1 前言

1.1 背景

深度残差网络(ResNet)由微软研究院的何恺明、张祥雨、任少卿、孙剑提出。研究动机是为了解决深度网络的退化问题,不同于过去的网络是通过学习去拟合一个分布,ResNet通过学习去拟合相对于上一层输出的残差。实验表明,ResNet能够通过增加深度来提升性能,而且易于优化,参数量更少,在许多常用数据集上有非常优秀的表现。ResNet 在2015 年的ILSVRC(ImageNet Large Scale Visual Recognition Challenge)中取得了冠军。

配合阅读:上述作者在Identity Mappings in Deep Residual Networks中介绍了ResNet易于优化、快速收敛的原因,并且分析几种不同的残差结构

1.2 问题与挑战

深度网络在物体检测、语义分割等许多领域上都有重要的需求,它能够提取数据中更高层次的丰富的特征,但直接简单地堆积搭建深度的网络往往无法取得良好的效果,甚至会非常糟糕。

  • 梯度消失/梯度爆炸(Vanishing/Exploding Gradients):随着网络变深(层数增多),反向传播求取梯度的时候,容易发生梯度消失或梯度爆炸的问题。简单的理解就是,通过链式法则反向不断求梯度时,如果每一次求得的结果都小于1,那么相乘之后的结果就会趋近于0,造成梯度消失(梯度爆炸可对应大于1的情况)。该问题阻碍了算法初期的收敛,会使得训练速度变慢,甚至无法收敛。相关研究表明,通过适当的权重初始化和归一化(常用Batch Normalization,简称BN)可以有效解决这个问题。
  • 退化问题(Degradation Problem):该问题是ResNet聚焦解决的问题,指的是深度网络的性能不如浅层网络的问题,网络加深并没有带来性能的提高。网络退化不是由梯度消失/梯度爆炸/过拟合导致的,因为过拟合的表现是算法在训练集上的误差低,而在测试集上的误差高,但退化的网络在训练集与测试集上的误差都高。
深度残差网络 ResNet_第1张图片 图1.1 网络退化

1.3 思考与尝试

对于退化问题,既然浅层网络的性能优于深度网络,那么不妨做这样的一个构建。假设我们已经有了一个浅层网络,并且由输入得到了输出,那么当构建与之相对应的深度网络时,我们直接在原浅层网络的基础上连接一系列的恒等映射层(Identity Mapping),使得输入与输出完全相同,这样一来,虽然网络的层数增加了,但输出结果仍然与浅层网络的结果一致,那么至少可以保证深度网络的性能不会比浅层网络差。但这样的做法仅在理论上成立,在实际过程中,网络训练往往难以拟合恒等映射,因为在训练过程中网络总会学习某些权重、总要做出一些改变。为此,论文作者提出了一种深度残差学习框架用于解决退化问题。

2 ResNet 基本理论

2.1 残差学习(Residual Learning)

深度残差网络 ResNet_第2张图片 图2.1 残差块                    

 假设是需要学习得到的底层映射(不一定是整个网络的,可以是局部层次的),ResNet并没有让网络层去直接拟合,而是去拟合相对于x的残差,最后将残差与输入相加就可以得到。图2.1中,曲线表示的是恒等映射(也称为Shortcut Connection短路连接/Skip Connection),左边的网络用于拟合残差,两条路径汇合时,结果相加再激活。相加(需要保证两者的shape与channel是相同的)的操作既不会增加参数,也不会增加模型复杂度。拟合残差往往比拟合底层映射要容易,网络通常难以拟合恒等映射。在某种极端情况下,当恒等映射达到最优,即上一层的输出结果已经最佳时,残差部分的权重可以直接置为0,这时恒等映射就是底层映射。这说明拟合残差确实能够实现恒等映射,在大多数情况下,恒等映射往往无法达到最优,这时就需要通过残差模块进行修正。

万能近似定理:人工智能领域的著名定理,指的是只要有一个隐含层的神经网络,理论上就可以拟合任何函数,不论这个函数有多复杂。

 2.2 通过短路连接实现恒等映射(Identity Mapping by Shortcuts)

用数学公式表达图2.1中最后相加的环节就是

                    图2.2 短路连接效果的数学表示

 其中\sigma代表激活函数。偏置(bias)通常是被忽略掉的,当添加有BN层时,则完全不需要偏置,因为它不会发挥作用,反而添加了多余的参数。

有时左侧网络与恒等映射的输出维度并不一致,这时候就需要使用一个方阵(做卷积操作)来调整恒等映射的输出维度,使得两者能够相加,这时图2.2中的式子就变为:

 【注意】该方阵仅用于匹配维度,在Identity Mappings in Deep Residual Networks中,实验表明采用恒等映射的效果是最好的,使用该方阵反而会增加了参数。

 3 网络架构

深度残差网络 ResNet_第3张图片                                                         图3.1 34层的残差网络                                                                                             
  •  以34层的残差网络为例,不同的颜色将网络分成不同的块(Block),颜色块中设置多个残差块,不同的颜色块之间涉及通道维度的变化。
  • 跨越不同颜色块时,采用stride为2的卷积核取代下采样层
深度残差网络 ResNet_第4张图片                                                   图3.2 Shortcut Connection                                                         

在图3.1当中,可以发现存在两种Shortcut Connection的类型:

  • 实线类型:第一个粉色块的输出与第三个粉色块的输出channel数相同,都为64,故Shortcut Connection为恒等映射,无需进行维度匹配
  • 虚线类型:第三个粉色块的输出与第二个绿色块的输出channel数不同,前者为64,后者为128,故Shortcut Connection需要进行维度匹配

论文作者提供了两种维度匹配方式:

(A)通过Padding填充0,补充通道数。这种做法不会引入额外的参数。

(B)通过1×1的卷积核改变维度

你可能感兴趣的:(卷积神经网络,人工智能)