CVPR2016
code: https://github.com/KaimingHe/deep-residual-networks

针对CNN网络深度问题,本文提出了一个叫深度残差学习网络,可以使得网络的层数达到1000层,不论训练速度还是效果都是很不错。

1 Introduction
自从2012年AlexNet提出之后,VGG和GoogleNet相继被提出。从中我们可以网络模型的深度越来越深,效果越来越好。于是一个直接的想法便是让网络的深度更深些,效果不是更好吗?直接增加网络的层数立马会产生一个问题:梯度消失/发散,这会导致在训练网络一开始就难以收敛。当然这个收敛问题可以通过初始化参数归一化和batch normalization来解决。
收敛问题解决之后,又一个问题暴露出来了,性能下降。随着网络深度的增加,网络的精度首先饱和,然后快速下降。出乎意料,这个下降不是过拟合造成的,对一个合适的模型加入更多的网络层,导致更高的训练误差,这一点我们的实验也验证了。如下图所示:

这个训练精度的下降说明不是所有的系统都容易优化的,我们来看看一个浅层模型和它对应的深度模型。这个对应的深度模型可以通过加入 identity mapping 来构建,其他网络层和浅层模型一样。理论上来说这个深度模型和它对应的浅层模型训练误差应该差不多,但是实验结果却表明我们目前的求解器不能得到比浅层模型更好的解或差不多的解。
本文我们提出了一个深度残差学习框架来解决这个性能下降问题。这里我们不期望把一些网络层叠加在一起就可以拟合一个我们期望的映射。我们显式的让这些叠加层去拟合一个残差映射。假定我们期望的映射是 H(x),我们让叠加的非线性网络层拟合另一个映射:F(x):=H(x)-x。那么期望的映射就可以表示为 F(x)+x。我们假设这个残差映射F(x)要比原来的期望映射 H(x) 容易优化。如果在极端情况下,identity mapping是最优的,那么我们可以直接将残差置零,而不需要用叠加的非线性网络层来拟合这个identity mapping。
这个 F(x)+x在网络中可以通过带有 “shortcut connections”的前馈网络来实现。

Shortcut 连接 会直接跳过一层或多层。在我们这里 shortcut connections 只是完成 identity mapping,没有引入额外的参数和计算量。整个深度残差网络也可以通过 后向传播的 SGD 来实现端对端训练,很容易通过常用的库(如 Caffe)来实现。
我们在 ImageNet 上做了大量实验来验证我们的方法。结论是:1)我们的深度残差网络是容易优化的,而普通的网络层的累加则会增加训练误差。2)随着大幅增加网络层数,深度残差网络的性能提升比较大。
同样在 CIFAR-10 数据集上我们的网络也是有效的,所以深度残差网络不是只针对特定数据集。
深度残差模型在2015的各种竞赛上都是第一名。

2 Related Work
Residual Representations
以前已经有很多文献采用了残差表示,而且解决了一些问题。
这些文献表明对问题的一个好的重组合或预处理会简化优化工作。

Shortcut Connections
也有一些文献采用了 Shortcut Connections 这种结构。
接着介绍了残差网络和 highway networks 的不同之处有下面三点。
1)在 highway networks中,Shortcut Connections 是通过 gating functions 实现的。这些 gating functions 依赖于数据,有参数。而我们的 Shortcut Connections 没有参数。
2)当一个 gated shortcut 关闭时(趋于0),highway networks 中的网络层表示的就不是残差函数。我们的网络结构则总是学习残差函数。 identity shortcuts 从来不会被关闭,所有的信息总是通过 shortcuts 。
3)highway networks 没有验证当网络层数很大时(超过100层),性能会提升。

3 Deep Residual Learning
3.1. Residual Learning
假定希望几层叠加的网络来学习数据内在的映射为 H(x),这几层网络的输入是 x,因为我们认为这几层网络是可以拟合任意函数的,所有我们可以用它来拟合残差函数 H(x)-x (假定输入输出维数一样)。貌似用网络去拟合 H(x)-x 和 H(x)没有什么区别,但是两者学习的难度可能不一样。
为什么我们换一个思路,去拟合残差函数了?这是受图1左边中的性能下降现象启发的。正如我们前面讨论,如果直接在网络中加入 identity mappings,理论上这个深度模型不应该比没加 identity mappings 浅模型有更大的训练误差。但是实际中却出现了性能下降,那么这很可能是我们的求解器难以用几层叠加的网络去拟合 identity mappings 。如果我们换做残差学习,那么拟合 identity mappings 就变得很简单了。
当然在实际中 一般情况下 identity mappings 不是最优解。但是使用残差表达或许可以帮助我们预处理问题。如果最优解相对于0映射,更接近 identity mappings ,那我们使用使用 identity mappings 作为基准,应该更容易得到最优解。我们的实验也表明 identity mappings 提供了合理的preconditioning(数据内在信息)。

3.2. Identity Mapping by Shortcuts
图2 网络结构表示的模块可以用下面的公式来表示:

这里 x 和 y 是模块的输入输出向量,两个的维数是一样的,也可以不一样,如果不一样,我们可以将 x 的维数投影成和 y 一样的维数。

3.3. Network Architectures

这里我们主要测试对比了两个网络,一个叫 Plain Network,另一个叫Residual Network 。

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

Residual Network 主要是在 上述的 plain network上加入 shortcut connections

3.4. Implementation
针对 ImageNet网络的实现,我们遵循【21,41】的实践,图像以较小的边缩放至[256,480],这样便于 scale augmentation,然后从中随机裁出 224*224,采用【21,16】文献的方法。

4 Experiments

深度残差网络 - Deep Residual Learning for Image Recognition相关推荐

  1. 深度残差网络(Deep Residual Network)ResNet

    一说起"深度学习",自然就联想到它非常显著的特点"深.深.深",通过很深层次的网络实现准确率非常高的图像识别.语音识别等能力.因此,我们自然很容易就想到:深的网 ...

  2. ResNet残差网络——Deep Residual Learning for image recongnition

    作者简介--何凯明 2003 年广东省理科高考状元(2000后的业界翘楚的状元郎),2016年前在微软亚洲研究院,2016后在Facebbok AI 研究院. 知名论文: motivation 研究人 ...

  3. Deep Residual Learning for Image Recognition(深度残差网络用于图像识别)理解

    本文转载于https://blog.csdn.net/dulingtingzi/article/details/79870486,个人觉得博主写的通俗易懂,故将其转发,欢迎大家一起学习,一起进步 其实 ...

  4. 图像分类经典卷积神经网络—ResNet论文翻译(中英文对照版)—Deep Residual Learning for Image Recognition(深度残差学习的图像识别)

    图像分类经典论文翻译汇总:[翻译汇总] 翻译pdf文件下载:[下载地址] 此版为中英文对照版,纯中文版请稳步:[ResNet纯中文版] Deep Residual Learning for Image ...

  5. 基于深度残差学习的图像识别 Deep Residual Learning for Image Recognition

    [译]基于深度残差学习的图像识别 Deep Residual Learning for Image Recognition Kaiming He Xiangyu Zhang Shaoqing Ren ...

  6. 图像分类经典卷积神经网络—ResNet论文翻译(纯中文版)—Deep Residual Learning for Image Recognition(深度残差学习的图像识别)

    图像分类经典论文翻译汇总:[翻译汇总] 翻译pdf文件下载:[下载地址] 此版为纯中文版,中英文对照版请稳步:[ResNet中英文对照版] Deep Residual Learning for Ima ...

  7. 深度学习论文:Deep Residual Learning for Image Recognition

    论文: He, Kaiming, et al. "Deep residual learning for image recognition." Proceedings of the ...

  8. 深度学习论文阅读图像分类篇(五):ResNet《Deep Residual Learning for Image Recognition》

    深度学习论文阅读图像分类篇(五):ResNet<Deep Residual Learning for Image Recognition> Abstract 摘要 1. Introduct ...

  9. 【读点论文】Deep Residual Learning for Image Recognition 训练更深的网络

    Deep Residual Learning for Image Recognition 深层次的神经网络更难训练.何凯明等人提出了一个残差学习框架,以简化比以前使用的网络更深的网络训练. 明确地将层 ...

最新文章

  1. Python3.6 和 Pycharm 详细安装教程
  2. python模块学下urllib
  3. RK3288 GMAC整理
  4. 掌握技术思想比解决问题本身更重要
  5. Go channel 的妙用
  6. mysql一对多代码_MySQL实现一对多查询的代码示例
  7. 手把手教你学Dapr - 1. .Net开发者的大时代
  8. 如何利用vmware workstation安装linux
  9. 英文java简历模板下载_java英文简历模板
  10. 如何将mac中的资料拷贝到U盘,移动硬盘(实用!!!)
  11. python生成首尾相连的字符串
  12. 三星 OMNIA7/I8700 刷机 ROM集合
  13. 搞定HTML\CSS之background属性
  14. 晶振电路并联一个电阻作用
  15. 科大讯飞实现了APP用自己的声音听故事
  16. Android Remote Views
  17. 有限体积法(5)——对流-扩散方程的离散
  18. 数商云:把握数字化核心趋势,推动煤炭企业数字化转型布局
  19. 云网融合解决方案|快数据云管平台(CMP)最优解决方案
  20. HTTP访问控制(CORS) 跨域访问

热门文章

  1. ICML2020 | GCNII:使用初始残差和恒等映射解决过度平滑
  2. Jupyter notebook运行指定的conda虚拟环境
  3. CentOS 7-(64位)系统下安装Anaconda(Python3.x)及pip使用
  4. R语言与数据分析(9)R与Excel
  5. MPB:林科院袁志林组-利用acdSf3/acdSr4引物快速鉴定产ACC脱氨酶细菌
  6. 宏基因组文章目录(9月1日更新)
  7. pandas使用replace函数将dataframe中None值以及其他异常编码值(例如,9999)替换为np.nan
  8. R语言ggplot2可视化改变图中线条的透明度级别实战
  9. # Error in colSums(iris) : ‘x‘ must be numeric,# Error in rowSums(iris) : ‘x‘ must be numeric
  10. R语言as.numeric函数将因子变量(factor)转化为数值变量(Numeric)