深度学习论文随记(四)ResNet 残差网络
DeepResidual Learning for Image Recognition
Author:Kaiming He, XiangyuZhang, Shaoqing Ren, Jian Sun,
Microsoft Research
Year:2015
1、导引
之前文章谈到GoogLeNet和VGG,人们开始认为增加网络的层数,即让网络变深似乎能进一步提高分类任务的准确性。于是,微软研究院的何凯明团队提出了这样一个问题:
Is learning better networks as easy as stacking more layers?
然后他们通过增加层数就发现一个奇怪的现象:
When deeper networks areable to start converging, adegradationproblem has been exposed:
网络加深了, accuracy却下降了。如上图20-layer和50-layer的对比图所示,第20层网络相比,第56层网络存在更高的训练误差与测试误差。这个问题称为degradation。并且,他们发现这个问题is not caused by overfitting. 所以degradation问题说明不是所有网络都那么容易优化。
正因如此,他们提出了残差网络的idea. 构建了Deep Residual Net
然后在2015年的各类比赛中,他们取得了如下成果。
然后大家可以感受一下深度学习网络的“深度革命”
在ILSVRC2010年左右还主要是浅层网络,大部分需要手动调教特征。在ILSVRC2012年时,出现了8层的网络——AlexNet,降低了10%的错误率。而后ILSVRC2014出现的VGG和GoogleNet是相当成功的,它们分别将层级提到了19层、22层,错误率也降低到了7.3、6.7。到ILSVRC2015, ResNet将层级提到了152层,将错误率降到了3.57。
2、模型分析
通过在输出个输入之间引入一个shortcut connection,而不是简单的堆叠网络,这样可以解决网络由于很深出现梯度消失的问题,从而可可以把网络做的很深。
实际中,考虑计算的成本,对残差块做了计算优化,即将两个3x3的卷积层替换为1x1 + 3x3 + 1x1, 如下图。新结构中的中间3x3的卷积层首先在一个降维1x1卷积层下减少了计算,然后在另一个1x1的卷积层下做了还原,既保持了精度又减少了计算量。
3、特点分析
在ImageNet上进行了综合性实验展示精准度下降问题,并对他们的方法做出评估。发现:
(1)特别深的残差网络很容易优化,但当深度增加时对应的“平面”网(即简单的堆栈层)表现出更高的训练误差。
(2)深度残差网络能够在大大增加深度的同时获得高精准度,产生的结果本质上优于以前的网络。
公式F(x)+x可以通过“快捷连接”前馈神经网络实现。
快捷连接是那些跳过中的一层或更多层。在我们的情景中,快捷连接简单的执行身份映射,并将它们的输出添加到叠加层的输出。身份快捷连接添加既不产生额外的参数,也会增加不计算的复杂度。