【那些年我们一起看过的论文】之《Deep Residual Learning for Image Recognition》

来源:互联网 发布:成龙获奥斯卡奖知乎 编辑:程序博客网 时间:2024/05/19 00:09

/*
残差网络 非常有名 新 国产
介绍了一个深层次网络的残差学习框架 解决过深难优化问题
效果显著 排名为证
*/

Deeper neural networks are more difficult to train, but we present a residual network which is easier to optimize, and can gain accuracy from considerably increased depth.
These residual nets achieves 3.57% error on the ImageNet test set which won the 1st place on the ILSVRC 2015 classification task.

1.Introduction

理论上来说,一个层数越多的神经网络,那么它所能拟合的函数就越复杂,得出的错误率就应该越小。然而,实际上当网络足够深后,它的性能的提升没有那么简单,如图1所示,56层的网络反而不如20层网络来的错误率低。所以本文提到的残差网络(residual networks)就是用来训练“very deep”的网络的框架。
这里写图片描述
—————————图1—————————
残差网络描述:
H(x)是任意一种理想的映射,希望第2类权重层能够与F(x)拟合, 使H(x) = F(x) + x。图示与注解如图2所示
Ps,图2中的shortcut connections是执行一个简单的恒等映射;既没有参数,也没有计算复杂度。
这里写图片描述
—————————-图2—————————-

2 Residual Learning

性能退化问题暗示多个非线性网络层用于近似identity mappings 可能有困难。使用残差学习改写问题之后,如果identity mappings 是最优的,那么优化问题变得很简单,直接将多层非线性网络参数趋0。(With the residual learning reformulation, if identity mappings are optimal, the solvers may simply drive the weights of the multiple nonlinear layers toward zero to approach identity mappings.)

3 Identity Mapping by Shortcuts
每隔几个层就采用一个residual learning的方法,如图2所示,这里讲其公式化如下:
这里写图片描述
x, y 是输入和输出向量,shortcut不会增加任何参数或计算复杂度,所以可以说它与Plain networks是一样的计算代价。而且也限制了x与F的维度是一致的,否则可以通过线性投影(linear projection )Ws来将其匹配,公式如下
这里写图片描述

4.Network Architectures
Plain Network 主要是受 VGG 网络启发,主要采用3*3滤波器,遵循两个设计原则:1)对于相同输出特征图尺寸,卷积层有相同个数的滤波器,2)如果特征图尺寸缩小一半,滤波器个数加倍以保持每个层的计算复杂度。通过步长为2的卷积来进行降采样。一共34个权重层。 需要指出,我们这个网络与VGG相比,滤波器要少,复杂度要小。 Residual Network 主要是在 上述的 plain network上加入 shortcut connections。

5.网络的实现与实验结果
首先摘录一段他人总结的tricks:
这里写图片描述
训练中:1)所有的平原/残差网络都是从头开始训练的。
2) 所有的平原/残差网络都运用组归一化(Batch Normalization)
3) 标准化的超参数&增强
结果展示:
1. 深度残差网络(ResNets)能够在没有任何难题的情况下得到训练;残差网络(ResNets)具有较低的训练误差和测试误差
这里写图片描述

  1. 我们的设计可以做到更深更有效
    这里写图片描述
    更深的网络有着更低的错误率,并且保持了低计算量。
    这里写图片描述

6 总结(摘录)
在论文中介绍了一个深层次的残差学习框架来解决精准度下降问题。我们明确地让这些层适合残差映射,而不是寄希望于每一个堆叠层直接适合一个所需的底层映射。形式上,把H(x)作为所需的基本映射,让堆叠的非线性层适合另一个映射F(x):=H(x)-x。那么原映射便转化成:F(x)+x。我们假设优化剩余的映射,比优化原来未引用的映射更容易。如果身份映射是最佳的,那么将剩余的映射推为零,就比用一堆非线性层来适应身份映射更容易。
公式F(x)+x可以通过“快捷连接”前馈神经网络实现。快捷连接是那些跳过中的一层或更多层。在我们的情景中,快捷连接简单的执行身份映射,并将它们的输出添加到叠加层的输出。身份快捷连接添加既不产生额外的参数,也会增加不计算的复杂度。通过反向传播的SGD,整个网络仍然可以被训练成终端到端的形式,并且可以在没有修改器的情况下很容易的使用公共资料库(例如Caffe)。

Code from GitHub:https://github.com/KaimingHe/deep-residual-networks

只言片语 随手摘录
以上。

0 0