【文献阅读】Deep Residual Learning for Image Recognition--CVPR--2016
最近准备用Resnet来解决问题,于是重读Resnet的paper
《Deep Residual Learning for Image Recognition》, 这是何恺明在2016-CVPR上发表的一篇paper,在2015年12月已经发布在arXiv上,并且用文中所述的网络在 2015年 的ILSVRC获得分类任务冠军,在2015-COCO detection,segmentation 的冠军.
先说一下新的收获:
结合了caffe的prototxt才知道, F(x) + x ,是 element-wise addition , 是逐元素相加,之前以为是在通道那个维度进行连接呢.
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.) 当中提到的. 以后可以考虑这种方法
在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的更多相关文章
- [论文阅读] Deep Residual Learning for Image Recognition(ResNet)
ResNet网络,本文获得2016 CVPR best paper,获得了ILSVRC2015的分类任务第一名. 本篇文章解决了深度神经网络中产生的退化问题(degradation problem). ...
- Deep Residual Learning for Image Recognition这篇文章
作者:何凯明等,来自微软亚洲研究院: 这篇文章为CVPR的最佳论文奖:(conference on computer vision and pattern recognition) 在神经网络中,常遇 ...
- 论文笔记——Deep Residual Learning for Image Recognition
论文地址:Deep Residual Learning for Image Recognition ResNet--MSRA何凯明团队的Residual Networks,在2015年ImageNet ...
- [论文理解]Deep Residual Learning for Image Recognition
Deep Residual Learning for Image Recognition 简介 这是何大佬的一篇非常经典的神经网络的论文,也就是大名鼎鼎的ResNet残差网络,论文主要通过构建了一种新 ...
- Deep Residual Learning for Image Recognition (ResNet)
目录 主要内容 代码 He K, Zhang X, Ren S, et al. Deep Residual Learning for Image Recognition[C]. computer vi ...
- Deep Residual Learning for Image Recognition
Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun Microsoft Research {kahe, v-xiangz, v-sh ...
- Deep Residual Learning for Image Recognition论文笔记
Abstract We present a residual learning framework to ease the training of networks that are substant ...
- Deep Residual Learning for Image Recognition(残差网络)
深度在神经网络中有及其重要的作用,但越深的网络越难训练. 随着深度的增加,从训练一开始,梯度消失或梯度爆炸就会阻止收敛,normalized initialization和intermediate n ...
- Deep Residual Learning for Image Recognition(MSRA-深度残差学习)
转自:http://blog.csdn.net/solomonlangrui/article/details/52455638 ABSTRACT: 神经网络的训练因其层次加深而 ...
- 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 ...
随机推荐
- JavaEE目录
第一章: Spring介绍 Spring项目搭建 Spring概念 第二章: Sprin配置详解 属性注入(构造方法注入,设值注入) 实例化(构造器(空参构造器),静态工厂,工厂方法) 装配(xml方 ...
- DELPHI7下SUPPEROBJECT遍历子对象的name和value
DELPHI7下SUPPEROBJECT遍历子对象的name和value var ite: TSuperAvlIterator; while ite.MoveNext do begin if ite. ...
- ubuntu 下安装nodejs以及pm2
ubuntu 12.04服务器可以使用apt-get方式安装Node JS,但是,安装完后的版本为v0.6.12的版本,如果我们想要使用新一点的版本需要做如下配置: 1 2 3 4 apt-get i ...
- 几个有关Hadoop自带的性能测试工具的应用
http://www.talkwithtrend.com/Question/177983-1247453 一些测试的描述如下内容最为详细,供你参考: 测试对于验证系统的正确性.分析系统的性能来说非常重 ...
- ASP.NET MVC学习---(四)MVC初窥
前面三篇大幅度的介绍了EF框架 这并不是没有道理的 现在使用mvc开发一般都离不开ef 因为它们相结合可以为你带来完美的体验 当然 前面所描述的仅仅是ef框架的冰山一角 它是一门学问很深的功课 如果你 ...
- 转:Hash, MAC,HMAC说明
from: http://www.cnblogs.com/songhan/archive/2012/07/29/2613898.html Hash, MAC,HMAC Hash-MD5, SHA-1, ...
- 倍福TwinCAT(贝福Beckhoff)基础教程5.1 TwinCAT-3 读写注册表
读写注册表和读写文件一样,里面涉及的输入类型比较复杂,需要参考官方范例 sSubKey是指注册表的路径 sValName是指注册表要写入的名值对的名称 eValType是一个枚举类型(而且不是什么常规 ...
- java web 分页实现
分页实现的效果: ///////// /////////////////////////////////////////////////////// /////////////////// ...
- RAP + MOCK
前后端分离式开发的思考 目前大部分公司都实行了前后端分离开发.然而在项目开发过程当中,经常会遇到以下几个尴尬的场景: 1.前端开发依赖于后端接口数据,需要与后端接口联调才能获得数据展示,从而拖慢了开发 ...
- JavaScript字符编解码
示例代码: <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF ...