作者:何凯明等,来自微软亚洲研究院;

这篇文章为CVPR的最佳论文奖;(conference on computer vision and pattern recognition)

在神经网络中,常遇到的问题:

1.   当网络变深以后的 vanishing/exploding gradient 问题:  对于这一个问题,现在可以说差不多已经有解决的办法了,如:使用 ReLU激活函数、 良好的权值初始化方法 、还有 intermediate normalization layers(即网络中间的batch normalization);

2. 对于网络过程中的过拟合问题: 解决办法如使用很不错的regularization, 如:权值衰减、dropout方法、maxout(这个?)

3. 现在通过看这篇论文注意到了一个以前没有注意到的问题:

当随着网络的层数深以后,出现一个问题: 网络的训练error与验证error 会变大,比shallow的效果差 (并且这个问题不是由于梯度消失或爆炸问题引起的,而是更深层的优化问题)。。这个现象在很多论文中也已经证明了这一问题; 用文中的图表示:

                        

(左图中可以看出,34层的无论是train error[细线] 还是 validation error[粗线] 是比 18层的大,                  右图同样的现像)

本文的提出的方法就是解决算是解决了这一问题了,甚至把网络的层数加到了152层; 甚至1202层;   使用文中的网络结构得到的误差曲线:(与上面的图分别作比较)

                                      

本文采用的什么方法呢?

使用了 residual learning 方法;     用一个图表示就是:

假如原始网络想学习一个F(X) + X 的mapping, 现在通过 shortcut connection ,使网络变成学习F(X)就可以了;         用文中的话:

We hypothesize that it is easier to optimize the residual mapping than to optimize the original, unreferenced mapping. To the extreme, if an identity mapping were optimal, it would be easier to push the residual to zero than to fit an identity mapping by a stack of nonlinear layers。

想想是这么个道理,但是呢,我的疑问是::谁能确定怎么知道网络学习得到的mapping, 一定是需要加上X的呢?? 这个会不会限制了网络的representation呢?

一些细节:1. 对于Fx 与X 的dimension不相同是怎么办啦,文中两个方法:要么用0补齐,要么 Linear projection;

2. 文中说了一个 deeper bottleneck 的结构; 文中作用它的目的应该是可以加深网络的结构同时保持或减少着网络的参数;       但是当我看到这里的时候有一个疑问:这个难道不影响网络的representation吗?因为看论文Rethinking the inception architecture for computer vision中提到应该避免 bottleneck啊(原话:Avoid representational bottlenecks, especially early in the network.)

更重要的是:

已经很容易了解了这个网络的具体的implementation, 如何去窥探其内部的本质问题呢?    我现在想的是 为residual learning 就可以呢??需要看看 residual reprentation的相关知识,引用文中的话:

上面这两段,我不了解,因为以前没有接触过这方面的知识,所以呢,更需要知道 residual representation 如何啊? 所以,下一步,深入数字内部,看一下details;

通过文章,学习到了一个shortcut connection;还是随着网络的加深,网络的性能不下降,并且这个原因不是由于梯度消失或爆炸引起的,而是由于深层网络的本质的难以训练的原因;

文中其它的部分,关乎的具体的实验设置、过程也实验结果的分析;不多说明;

参考:He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778.

Deep Residual Learning for Image Recognition这篇文章的更多相关文章

  1. 论文笔记——Deep Residual Learning for Image Recognition

    论文地址:Deep Residual Learning for Image Recognition ResNet--MSRA何凯明团队的Residual Networks,在2015年ImageNet ...

  2. [论文理解]Deep Residual Learning for Image Recognition

    Deep Residual Learning for Image Recognition 简介 这是何大佬的一篇非常经典的神经网络的论文,也就是大名鼎鼎的ResNet残差网络,论文主要通过构建了一种新 ...

  3. Deep Residual Learning for Image Recognition (ResNet)

    目录 主要内容 代码 He K, Zhang X, Ren S, et al. Deep Residual Learning for Image Recognition[C]. computer vi ...

  4. [论文阅读] Deep Residual Learning for Image Recognition(ResNet)

    ResNet网络,本文获得2016 CVPR best paper,获得了ILSVRC2015的分类任务第一名. 本篇文章解决了深度神经网络中产生的退化问题(degradation problem). ...

  5. Deep Residual Learning for Image Recognition

    Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun           Microsoft Research {kahe, v-xiangz, v-sh ...

  6. Deep Residual Learning for Image Recognition论文笔记

    Abstract We present a residual learning framework to ease the training of networks that are substant ...

  7. Deep Residual Learning for Image Recognition(MSRA-深度残差学习)

    转自:http://blog.csdn.net/solomonlangrui/article/details/52455638   ABSTRACT:           神经网络的训练因其层次加深而 ...

  8. Deep Residual Learning for Image Recognition(残差网络)

    深度在神经网络中有及其重要的作用,但越深的网络越难训练. 随着深度的增加,从训练一开始,梯度消失或梯度爆炸就会阻止收敛,normalized initialization和intermediate n ...

  9. Paper | Deep Residual Learning for Image Recognition

    目录 1. 故事 2. 残差学习网络 2.1 残差块 2.2 ResNet 2.3 细节 3. 实验 3.1 短连接网络与plain网络 3.2 Projection解决短连接维度不匹配问题 3.3 ...

随机推荐

  1. C++ 读写MySQL经典 (转载)

    from: http://blog.csdn.net/jemlee2002/article/details/1523164   看过很多C或是C++操作MySQL数据库的文章,大部分太吃力了,甚至有一 ...

  2. 每日英语:Got 5 Minutes? 'Flash Fiction' Catches On

    Chinese author Lao Ma has a simple approach to his short stories: In the face of life, everything is ...

  3. Frick'ing Terrain Mesh!

    CDLOD地形的实现方法步骤: 1.实现完全二叉树结构的创建2.实现完全四叉树的视锥裁剪与LOD选择(包括节点的部分选择功能)3.使用forward rendering, 实现已选择四叉树节点的普通渲 ...

  4. 使用MSYS、Notepad++搭建C/C++开发环境

    目标说明 本文的目标是教会大家如何用Notepad++来编写C/C++代码,并能够编译运行. 注:Notepad++是一个非常优秀的开源文本编辑器.官网地址 http://notepad-plus-p ...

  5. H3C部分笔记

    进入交换机各个视图的命令如下图: 用户视图 系统视图 查看历史命令 配置历史命令缓存大小为30 配置Heade信息 Header 3种类型: incoming:登录终端用户界面时的提示信息. logi ...

  6. JAVA-JSP内置对象之response对象实现页面自动跳转

    相关资料:<21天学通Java Web开发> response对象 实现页面自动跳转1.可以通过response对象的addHeader()方法添加一个标题为Refresh的标头,并指定页 ...

  7. iOS import导入时没有提示的解决办法

    我认为是工程中在import时检测不到第三方类库的原因,从而import不会自动补全.在网上搜了很多,终于在stackoverflow找到了解决方法:只要把pods目录添加到用户头文件检索的路径即可. ...

  8. Python进阶(三十五)-Fiddler命令行和HTTP断点调试

    Python进阶(三十五)-Fiddler命令行和HTTP断点调试 一. Fiddler内置命令   上一节(使用Fiddler进行抓包分析)中,介绍到,在web session(与我们通常所说的se ...

  9. Error: Java heap space

    在chd中 的hive中执行 (select count (*))  或者mr程序都报Error: Java heap space 4.io.sort.mb 的作用  排序所使用的内存数量.  默认值 ...

  10. Jquery的回调函数的使用

    用$.Callbacks实现观察者模式 // 观察者模式 var observer = { hash: {}, subscribe: function(id, callback) { if (type ...