论文笔记 | Identity Mappings in Deep Residual Networks
2016-07-04 06:13
706 查看
这一篇文章为上一篇ResNets提供了更加可信服的论据
都是“老熟人”了就不介绍了
上篇文章中, h(xl)=xl,是输入,f是Relu,x(l+1)是输出。如果h(xl)和f(yl)都是identity mappings, 信息就会直接从shortcut直接传输。
为了明白skip connections的作用,文章进行了分析与实验,发现identity mapping h(xl)=xl可以取得最快的error reduction和lowest training loss(参与实验的有 scaling,gating, 1x1convolutions)。
这里使用ReLU和BN放置于weightlayer前,作为新的residual unit,如下图:
新的结构更容易训练也更容易泛化,使用它建立了1001层网络。
另外在上篇文章中200层网络就开始过拟合,这里对其进行改进。
上式展现了ResNets两个特性:
1. 模型是以残差形式存在的
2. 这是以相加的形式存在而plain network是以矩阵相乘的形式存在的
上式的反向传播形式ε是loss function:
可见∂ε∂xl分为两部分其中∂ε∂xL保证了信息直接传递回任何浅层单元l。
并且可以看出其∂ε∂xl 一般不会为0,因为
一般不会一直为-1,这就意味着某一层的梯度可以非常小但是一般不会为0.
反向传播变为:
那么对于深层网络,如果λ大于一就容易成指数爆炸,如果小于1就容易弥散,那么我们原本的shortcut就会被堵塞,反向传播更多的经过权重层,导致优化困难。
如果将h(xl)换做更复杂的变换,如1x1convolution,那么其中的第一项就会变为∏L−1i=lh′,h’代表h的导数,这也可能堵塞训练过程。
事实上, shortcut-only gating和1x1包含原来的identity shortcut, 其表达能力应该更强,但是造成其结果degradation的原因是优化问题,而非representational abilities。
Post-activation or pre-activation?
原始的residual unit的设计中,activation xl+1=f(yl)对于两个分支都有影响,我们设计了一个非对称的结构,只对F分支,也就是:
这就等于pre-activation形式了:
这里设置了fig4中的de两种方案,d的提高不明显,可以看出BN和ReLU更配,他俩适合在一起,table3更说明了这个问题。
1. 优化更加简单,f成了一个identity mapping(图1)
2. BN提高了regularization,防止过拟合。
但是我们也发现,当层数不是那么多,比如图6中的164时(==|),原本的ReLU的影响可能没有那么大,大部分的yl都是整数,其反向传播公式越接近:
但是如果到了1000层,非正数的情况越来越多,上式不再合适。
只是用了translation和flipping 的augment;
lr:0.1 32k和48k时除以10,开始400iterations时为0.01
batchsize:128
weight decay:0.0001
momentum:0.9
初始化设置:
Imagenet
无warming up
Abstract
Introduction
Analysis of Deep Residual networks
On the importance of identity skip connections
1 Experiments on Skip connections
on the usage of Activation Fuctions
1 Experiments on activation
2 Analysis
3 比较
Appendix implementation details
conclusion
Authors
Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun都是“老熟人”了就不介绍了
Abstract
上篇文章中(http://blog.csdn.net/bea_tree/article/details/51735788)因residual builing blocks而得以建设100多层的深度网络,这里有介绍了新的residual unit,使训练更容易, 并且improves generalization。1 Introduction
Residual Units:上篇文章中, h(xl)=xl,是输入,f是Relu,x(l+1)是输出。如果h(xl)和f(yl)都是identity mappings, 信息就会直接从shortcut直接传输。
为了明白skip connections的作用,文章进行了分析与实验,发现identity mapping h(xl)=xl可以取得最快的error reduction和lowest training loss(参与实验的有 scaling,gating, 1x1convolutions)。
这里使用ReLU和BN放置于weightlayer前,作为新的residual unit,如下图:
新的结构更容易训练也更容易泛化,使用它建立了1001层网络。
另外在上篇文章中200层网络就开始过拟合,这里对其进行改进。
2 Analysis of Deep Residual networks
如果f也是一个identity mapping,那么其结构可以写成这样:上式展现了ResNets两个特性:
1. 模型是以残差形式存在的
2. 这是以相加的形式存在而plain network是以矩阵相乘的形式存在的
上式的反向传播形式ε是loss function:
可见∂ε∂xl分为两部分其中∂ε∂xL保证了信息直接传递回任何浅层单元l。
并且可以看出其∂ε∂xl 一般不会为0,因为
一般不会一直为-1,这就意味着某一层的梯度可以非常小但是一般不会为0.
3 On the importance of identity skip connections
如果我们做一点小的调整,加入一个比例因子λ:h(xl)=λlxl那么:反向传播变为:
那么对于深层网络,如果λ大于一就容易成指数爆炸,如果小于1就容易弥散,那么我们原本的shortcut就会被堵塞,反向传播更多的经过权重层,导致优化困难。
如果将h(xl)换做更复杂的变换,如1x1convolution,那么其中的第一项就会变为∏L−1i=lh′,h’代表h的导数,这也可能堵塞训练过程。
3.1 Experiments on Skip connections
事实上, shortcut-only gating和1x1包含原来的identity shortcut, 其表达能力应该更强,但是造成其结果degradation的原因是优化问题,而非representational abilities。
4 on the usage of Activation Fuctions
4.1 Experiments on activation
Post-activation or pre-activation?
原始的residual unit的设计中,activation xl+1=f(yl)对于两个分支都有影响,我们设计了一个非对称的结构,只对F分支,也就是:
这就等于pre-activation形式了:
这里设置了fig4中的de两种方案,d的提高不明显,可以看出BN和ReLU更配,他俩适合在一起,table3更说明了这个问题。
4.2 Analysis
我们发现pre-activation主要影响有二:1. 优化更加简单,f成了一个identity mapping(图1)
2. BN提高了regularization,防止过拟合。
但是我们也发现,当层数不是那么多,比如图6中的164时(==|),原本的ReLU的影响可能没有那么大,大部分的yl都是整数,其反向传播公式越接近:
但是如果到了1000层,非正数的情况越来越多,上式不再合适。
4.3 比较
Appendix: implementation details
CIFAR:只是用了translation和flipping 的augment;
lr:0.1 32k和48k时除以10,开始400iterations时为0.01
batchsize:128
weight decay:0.0001
momentum:0.9
初始化设置:
He, K., Zhang, X., Ren, S., Sun, J.: Delving deep into rectiers: Surpassing human- level performance on imagenet classication. In: ICCV. (2015)
Imagenet
无warming up
conclusion
AuthorsAbstract
Introduction
Analysis of Deep Residual networks
On the importance of identity skip connections
1 Experiments on Skip connections
on the usage of Activation Fuctions
1 Experiments on activation
2 Analysis
3 比较
Appendix implementation details
conclusion
相关文章推荐
- Unity中Detroy之后的引用情况
- 个人在开发中导jar包与生成jar包的开发的经验
- 个人在开发中导jar包与生成jar包的开发的经验
- 个人在开发中导jar包与生成jar包的开发的经验
- 个人在开发中导jar包与生成jar包的开发的经验
- Android ProGuard打包混淆代码
- Android---Volley请求 Json解析 xUtils数据存储
- PF_NETLINK应用实例NETLINK_KOBJECT_UEVENT具体实现--udev实现原理
- PF_NETLINK应用实例NETLINK_KOBJECT_UEVENT具体实现--udev实现原理
- 对线程池的理解
- iOS-FMDB
- iOS-使用CFStringTransform将汉字转换为拼音
- RemObjects 客户端完整执行流程
- Android开发笔记之Jni编程第二弹
- Exception raised during rendering: com/android/util/PropertiesMap问题解决
- iOS学习- 24 Core Data by Tutorials - CH04
- 【Android死丢丢】Cannot run program "git.exe":CreateProcess error=2
- 在Android 中使用KSOAP2调用WebService
- 微信JS-SDK坐标位置如何转换为百度地图坐标
- 微信公众号:封号、养号、防封号技巧篇