最近准备用Resnet来解决问题,于是重读Resnet的paper

《Deep Residual Learning for Image Recognition》, 这是何恺明在2016-CVPR上发表的一篇paper,在2015年12月已经发布在arXiv上,并且用文中所述的网络在 2015年 的ILSVRC获得分类任务冠军,在2015-COCO detection,segmentation 的冠军.

先说一下新的收获:

  1. 结合了caffe的prototxt才知道, F(x) + x ,是 element-wise addition , 是逐元素相加,之前以为是在通道那个维度进行连接呢.

  2. cifar10 实验中, Data Aumentation的方法,在 32*32的基础上行进行padding , 得到 36*36的图片,然后再随机的crop出 32*32 的,这种方法是([24] C.-Y. Lee, S. Xie, P. Gallagher, Z. Zhang, and Z. Tu. Deeply-supervised nets. ArXiv:1409.5185, 2014.) 当中提到的. 以后可以考虑这种方法

  3. 在cifar10的实验当中, 训练 resnet-110时, 初始学习率不能像之前那样设置为0.1 而是设置成 0.01, 等到训练了400 个interactions 时,再把学习率增大到0.1 ( 差不多3个epochs的时候, 把学习率增大到

    0.1) . 这种一开始小, 然后大的方法, 可以借鉴.

Abstract:

深层网络难以训练, 而深层的Resnet 可以训练得很好. Resnet改变传统神经网络学习的内容, 传统上,让神经网络直接学习(mapping)一个复杂函数, 而Resnet是让网络学习一个Residual function (文中提及的 F(x) ) . 而且证明了这样效果好, 获得了多个竞赛任务冠军.

Introduction:

神经网络越深可以得到的特征的”level”越丰富 .越深就越好. 想要更好,就要越深. 越深,那么问题就来了.

两个问题: 1. vanishing/exploding gradients 2. degradation problem

针对1. 有batch normalization 以及 intermediate normalization layers 这两种方法来解决,但是也就在几十层内奏效

问题2. 越深, 反而训练 error 越高. 主要是深了, 不好训练

存在问题, Resnet就是来解决问题的. 利用 residual learning frame 解决 问题2.degradation problem. 就是越深, training error 没有像之前那样会升高, 而是降低. 到底residual是什么意思呢? Residual function 是什么function呢?

通常, 神经网络学习的输入是 x, 输出是 y = H(x), 那么神经网络学习的是一个映射H(). 直接学习H()可能不那么容易, 那么假设 H() 是这样一个形式, 就是 H(x) = x + F(x) . 再假设一个条件, 就是我们要学习的映射是一个 identity mapping的话, 直接学习 H() 不容易, 然而 学习 x +F(x) 就容易了. 以为让 F(x)等于0 ,那么好了.

F(x) + x 这个形式可以理解为传统的前向神经网络 加上一个 shortcut connections ,什么意思呢? 如上图:

Related work

Residual representation, 讲到 VLAD ,VLAD是通过Residual vector 编码得到的一种 representation .结果显示很还不错.( 要深究的话, 还要去看看文中给的文献, 到底residual vector是什么概念, 作者是如何想到把residual vector的思想给用到这里来的)

shortcut connections, 说到shortcut connections 的工作被人研究了不少年了, 给了一些 关于 shortcut connections 的paper . 最后对比highway networks , highway networks 的shortcut connections 有一个gating functions, 而Resnet没有. 这样就不会增加额外的参数 .

Deep residual learning

residual learning , 就是 将本来是学习 H(x) 这样一个映射, 现在把映射变成 x +F(x) 了.

先假设本身要映射的是一个identity mapping , 那么 x + F(x)映射 要比 H(x)这个映射要来得简单, 然后说, 实际情况并不像 学习一个 identity mapping , 但是, 这样做有助于解决 precondition 问题.

(终究搞不懂为什么work ,反正paper中说这样做的效果好, 做了实验也是好….)

Identity mapping by shortcuts

定义一个 building block 是这样的

F(x {w}) 要和 x 相加, 那么经过 F()的映射, 维度可能发生变化, 维度不同是不能相加的, 所以作者探讨了如何使x的维度与F()一致. 一种方法就是给x一个线性变换, 就是wx的方法( 经过实验, 最终并不是用这个方法)

看图 , 当虚线部分那里, feature maps 是56*56*64 然后要变成 28 * 28 * 128 , 这样维度就不一样了,

所以要对shortcut connections 进行操作,使得 56* 56 * 64 变得和 28* 28 *128一致

这里有两种方法(1) 补零 . (2) 线性变换

Experiments

实验部分主要是做了 imagenet 和cifar10 的实验, 对于imagenet 主要是对标vgg, 更深,参数更少,性能更好. 对于cifar10 主要是验证深层resnet的性能, 并不对标state of the art.

如果有做相应实验的话, 建议看一看作者的实验描述, 讲得还是很详细的.

【文献阅读】Deep Residual Learning for Image Recognition--CVPR--2016的更多相关文章

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

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

  2. Deep Residual Learning for Image Recognition这篇文章

    作者:何凯明等,来自微软亚洲研究院: 这篇文章为CVPR的最佳论文奖:(conference on computer vision and pattern recognition) 在神经网络中,常遇 ...

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

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

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

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

  5. Deep Residual Learning for Image Recognition (ResNet)

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

  6. Deep Residual Learning for Image Recognition

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

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

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

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

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

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

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

  10. 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. 六. 异常处理10.Java的内置异常

    在标准包java.lang中,Java定义了若干个异常类.前面的例子曾用到其中一些.这些异常一般是标准类RuntimeException的子类.因为java.lang实际上被所有的Java程序引入,多 ...

  2. 四. Java继承和多态7. Java static关键字

    static 修饰符能够与变量.方法一起使用,表示是“静态”的. 静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法.静态 ...

  3. UIPanGestureRecognizer判断滑动的方向

    .h文件 CGFloat const gestureMinimumTranslation = 20.0 ; typedef enum : NSInteger { kCameraMoveDirectio ...

  4. Node应用的Systemd启动(转)

    作者: 阮一峰 日期: 2016年3月12日 前面的文章介绍了 Systemd 的操作命令和基本用法,今天给出一个实例,如何使用 Systemd 启动一个 Node 应用. 本文是独立的,不需要前面的 ...

  5. hibernate的 lazy 和 fetch 一般配置

    fetch 和 lazy 配置用于数据的查询 lazy 参数值常见有 false 和 true,Hibernate3 映射文件中默认lazy = true : fetch 指定了关联对象抓取的方式,参 ...

  6. Elasticsearch 索引实例

    1.简述 ElasticSearch包含了一系列的感念,比如索引(indexing).搜索(search)以及聚合(aggregations),现在我们主要介绍indexing. 在Elasticse ...

  7. linux中grep命令

    grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. grep常用用法 [root@www ~]# grep [-acinv] [--color=auto] '搜寻字 ...

  8. Android Fragment 真正的完全解析

    出处: 自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~ 本篇博客力求为大家说明Fragmen ...

  9. mongoDB - 插入数据

    db.use.js /** * 使用前:先安装node环境.express.mongodb. * * 1.1 安装Node * 1.2 npm i -D express mongodb &&a ...

  10. CCF计算机职业资格认证 2015年3月第2题 数字排序 解法和思路

    问题描写叙述 给定n个整数,请统计出每一个整数出现的次数.按出现次数从多到少的顺序输出. 输入格式 输入的第一行包括一个整数n,表示给定数字的个数. 第二行包括n个整数.相邻的整数之间用一个空格分隔, ...