最近准备用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. 每天一个linxu命令6之jps  查看java进程的端口

    jps -- JavaVirtual Machine Process Status Tool 可以列出本机所有Java进程的pid jps [ options ] [ hostid ] 选项 -q 仅 ...

  2. 关于spring.net的面向切面编程 (Aspect Oriented Programming with Spring.NET)-通知(Advice)API

    本文翻译自Spring.NET官方文档Version 1.3.2. 受限于个人知识水平,有些地方翻译可能不准确,但是我还是希望我的这些微薄的努力能为他人提供帮助. 侵删. 让我们看看 Spring.N ...

  3. VUE -- 安装新模块

  4. ubuntu配置无密码登录

    1 本地生成ssh公钥和私钥, 2将公钥拷贝到ubuntu上的.ssh/authorized_keys 中

  5. Spring Bean Life Cycle Methods – InitializingBean, DisposableBean, @PostConstruct, @PreDestroy and *Aware interfaces

    Spring Beans are the most important part of any Spring application. Spring ApplicationContext is res ...

  6. shell中set命令

    set命令作用主要是显示系统中已经存在的shell变量,以及设置shell变量的新变量值.set命令不能够定义新的shell变量.如果要定义新的变量,可以使用declare命令以变量名=值的格式进行定 ...

  7. iOS小技巧 - 如何使UIView可以绑定点击事件

    让我们这次直接进入正题,有时候我们想做以下这种界面: 目前我就想到三种方案: 做一个tableview,然后组织cell的界面如上图所示 做一个button子类,使得button的界面能如上图所示 做 ...

  8. iOS开发:Framework的创建

    转载自:http://jonzzs.cn/2017/06/01/iOS%20开发笔记/[iOS%20开发]将自己的框架打包成%20Framework%20的方法/ 环境:Xcode 8 创建 Fram ...

  9. MSSQL数据库导入导出大全二(SQL语句)

    Excel文件导入数据库多个Sheet if exists(select 1 from sysobjects where name=N'p_import_excel' and type='P')dro ...

  10. 迭代器适配器(一)back_inserter和front_inserter的实现

    本文讨论back_inserter和front_inserter的实现. 当我们调用copy函数的时候,要确保目标容器具有足够大的空间,例如: //将other的所有元素拷贝到以coll.begin( ...