Identity Mappings in Deep Residual Networks
论文名称《Identity Mappings in Deep Residual Networks》
代码:https://github.com/KaimingHe/resnet-1k-layers
摘要
深度残差神经网络表现出了很好的分类准确率和很好的收敛特性。本文是残差网络的作者在原始resnet的基础上分析了残差块背后的数学原理,表明了无论在前向还是反向过程中,信号可以在任意一对残差块之间进行传递。同时作者设计了新的残差结构,使得网络更加易于训练和改善了网络的泛化性能。最终作者验证了使用新的1001层的resnet网络在cifar-10和cifar-100上的分类准确率;使用新的200层的resnet网络验证了在ImageNet数据集上的分类准确率。
简介
深度残差网络有多个堆积的残差单元组成,原始的残差块结构如下图所示:
可以用下式进行表示:
其中,
本文中,作者目的是在网络中而不是一个残差块内为信息传递过程设置一个直接的通路。下面的推导显示 如果
作者在后续的论文中做了两组实验以证明两个恒等条件的优越性。首先实验证明了
深度残差网络的数学分析
残差块可以表示为:
其中,
如果
公式4有两个比较好的特性,首先,深层L的特征
对于任意一个L层的深度网络,最后一层的输入特征
公式4同样具有很好的反向传播的特性,将网络的损失函数表示为
上式表明,损失函数对输入的梯度可以分解为两项相加的结果,第一项损失函数对
恒等的skip connection的作用
最理想的
下面对比几种不同的
相比较对
下面的实验就是为了验证各种
常数缩放:如figure2(b)所示,设置
exclusive gating:如figure2(c)所示,考虑一个gating函数
exclusive gating具有两方面的作用,当
Shortcut-only gating:如figure2(d)所示,这种方式不再对残差部分进行缩放处理,只是对shortcut部分乘以
1*1卷积shortcut:在深层的101层残差网络中使用1*1卷积的测试误差为12.22%,取得的效果依然远不如基准网络,证明了1*1卷积依然阻碍了信号的传递过程。
dropout shortcut:以0.5的概率进行dropout,最终的结果远差于基准网络。因为这种情况相当于对shortcut乘了系数0.5,依然是阻碍了信号的传递过程。
总结:根据上面的实验结果,shortcut方式是最直接的信号传递方式,其他队shortcut的变种都阻碍了信号的传递过程,造成了最优化问题。
**函数的使用
下面部分的实验是用来论证**函数f该如何进行选择。
基准网络使用164层的ResNet网络,Fig. 4(a)的结构,在CIFAR-10数据集上取得了5.93%的测试误差。
BN after addition:如Fig.4(b)所示,效果不如基准网络。因为BN层阻碍了信号的传输过程。
ReLU before addition:如Fig.4(c)所示,将ReLU放到逐元素相加之前,但是这样做使得得到的残差值为非负值,这样会影响模型的表示能力,最终的测试误差也是不如基准网络。还是需要残差值分布于负无穷到正无穷之间。
Post-activation or pre-activation?原始的残差块处理方式中,
作者试验了两种方式,如Fig. 4(d)所示和Fig. 4(e)所示,表2的结果表明了使用4(d)的结果很接近基准网络。但是使用4(e)的结果如表2和表3所示,全面超越了基准网络一个大的margin。
分析为什么pre-activation效果如此的好:一是最优化工作更加容易了,主要是因为f是一个恒等映射函数;第二,将BN用在pre-activation中也增强了模型的正则化能力。
易于最优化:
如上图所示,原始设计的网络的训练误差在训练初始阶段减小的较慢,这是因为f=ReLU时,如果信号为负则会收到ReLU函数的影响,当残差单元很多时,这个影响还会比较大。但是如果f是恒等映射时,就不会存在这个问题。
另外,如上图右侧fig所示,作者发现使用164层的网络时,这种影响会弱一点。
减小过拟合:如Fig.6右侧图所示,预**方式训练误差略大,但是测试误差要小很多。这是因为BN层使用带来的正则化效应。作者认为在Fig. 4(a)所示的结构中,虽然BN层归一化了信号,但是加上shortcut之后的信号在输入到下一层之前并没有进行归一化操作。但是在提出的Fig. 4(e)结构中,所有输入到权重层的信号都被归一化处理了。
实验结果对比
cifar-10 & cifar-100
imagenet:
总结
论文通过理论和实验结果论证了为了使得信息顺利传输,恒等的shortcut连接和在逐元素相加之后的恒等**函数都是必须的。作者的实验也证明了1000层的深度网络可以易于训练且取得良好的分类准确率。