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

这篇文章为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. HTML杂记

    1.URL  uniform resource locator 遵循格式: scheme://host.domain:port/path/filename scheme - 定义因特网服务的类型.最常 ...

  2. redis-3.0.0_rc5的RPM包制定

    首先查看脚本: # cat /tmp/redis_before.sh #!/bin/bash if [ ! -d /apps/redis-3.0.0-rc5 ];then mkdir -p /apps ...

  3. 【Windows】windows核心编程整理(上)

    小续 这是我11年看<windows核心编程>时所作的一些笔记,现整理出来共享给大家 windows核心编程整理(上) windows核心编程整理(下) 线程的基础知识 进程是不活泼的,进 ...

  4. js 时间格式化和时间戳

    formatMessageTime: function (time) { var week = { "0": "星期日", "1": &qu ...

  5. make -C M=

    http://blog.sina.com.cn/s/blog_89fa41ef0100trjr.html Makefile:PWD = $(shell pwd)KERNEL_SRC = /usr/sr ...

  6. js 将数字转换成人民币大写的方法

    //将数字转换成人民币大写的方法 var digitUppercase = function (n) { var fraction = ['角', '分']; var digit = [ '零', ' ...

  7. Ubuntu 系统下卸载 IntelliJ IDEA

    参考:http://blog.csdn.net/csdnones/article/details/50449947 卸载只需要删除解压出来的目录就行了,然后删除/home/你用登录名/IntelliJ ...

  8. 解决java.io.IOException: Cannot run program "javac"问题,并设置jdk版本

    原因:没有配置java路径 解决方法:设置java_home路径 设置jdk版本是10的方法:在sbt文件中添加一行: javacOptions := Seq(") 然后重新执行命令:sbt ...

  9. Beaglebone Black教程Beaglebone Black中的Cloud9 IDE基本使用

    Beaglebone Black教程Beaglebone Black中的Cloud9 IDE基本使用 ​Beaglebone Black中的Cloud9 IDE基本使用 Cloud9是集成在Beagl ...

  10. VS2013代码调试:[7]如何避免调试时加载符号

    调试的时候不小心点了个东西,然后就花很长时间加在各种dll 解决办法: 1.点 调试2.然后 选项和设置3.右边勾上 启用源服务器支持4.左边点 符号5.把微软符号服务器勾6.运行的时候等一下 莫慌! ...