论文笔记-Identity Mappings in Deep Residual Networks
2016-06-18 01:02
597 查看
论文题目:Identity Mappings in Deep Residual Networks
--Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian SunAbstract
文章分析了 ResNet 中 Identity mapping 为什么比较好,为何能让梯度在网络中顺畅的传递而不会爆炸或消失,实验方面 1001层的 ResNet 在CIFAR10上4.62%的错误率,在CIFAR100和ImageNet上也做了实验。Introduction
先回顾下ResNet中的 Residual Units:Residual Units可以如下表示:上图中的H与下面的h不是一个东西,别管上图了,从两篇文章截的图,有点不一样。
上面公式中:h 表示 shortcut 使用什么形式的变换(Resdual Net论文[1]中给出了A,B,C3种,最后用的 Identity map,也就是 h(x)= x,这篇文章进一步分析了 Identity map 为什么好)
F 是 residual function。F= y-h(x)
f 为Residual Units输出处使用的函数,[1] 中用的ReLU,即上图中最下面那个relu。
本文提出 f 也该用 Identity map。y 为原本应该拟合的输出。
Residual Net 核心思想是,去拟合残差函数 F (F = y - h(x)),选 h(x)=x 时效果最好。
本文分析得出:当 h(x) 和 f(y) 都取 Identity Map 时,signal could be directly propagated
from one unit to any other units, in both forward and backward
passes。这使训练更容易。
文章实验了各种 h(x) 的选择(Figure 2),发现 Identity map 是最佳选择,achieves the fastest error reduction and lowest training loss
右图虚线是训练误差,实线是测试误差。
Analysis of Deep Residual Networks
当 h(x) 和 f(y) 都取 Identity Map 时,有
L 为 任意深的 Residual Units
公式(4)在反向求导的过程中有很好的特性:
(5)
公式(5)有两项:第一项直接把深层的梯度传递到任意浅层,可以看出浅层的梯度很难为0,应该括号内第二项不可能一直为 -1,所以不管参数多小,梯度也不会消失!
注意:[1] 中有些 Residual Units 会增加或减少 feature map 数量,上面的公式就不成立了,这种层在 CIFAR上只有2个,ImageNet上只有3个,取决于图片大小,作者认为对本文结论影响不大。
On the Importance of Identity Skip Connections
本节主要是说明 shortcut 取其他非 Identity map 的变换时,为什么不好。1.如果
时:
(6)
(7)
(8)
对比公式(8)和(5),第一项不再是 1 了,在很深的网络中,如果 λ>1,括号内第一项会很大,如果 λ<1,会很小或者消失,然后就堵塞了 shortcut,
反向传导的信号只能从第二项传递,网络优化会困难很多(因为第二项是复杂的非线性变换)
2.如果 h(x)取更复杂的变换,如 gating 或 1*1 卷积层 ,也会阻碍信号反向传播的通畅。
Experiments on Skip Connections
1. 110-layer ResNet on CIFAR-10 ,包含 54个2层的Residual Units(每层为3*3卷积层)。详细实现见 论文appendix跑了5次,取了准确率的中值。
尽管之前的分析是基于 f 为 Identity 的,但是实验取的 f 为 ReLU as in [1],实验分别证明了 Figure 2中的所有 h(x)的选择都不如 Identity map :h(x)=x
实验详见论文。
相关文章推荐
- CUDA搭建
- 深入理解CNN的细节
- TensorFlow人工智能引擎入门教程所有目录
- 用于对象识别的最好的多级结构是什么?(What is the Best Multi-Stage Architecture for Object Recognition)
- deep learning 在各对象数据集上的识别率比较
- convolutional neural network
- UFLDL Exercise: Convolutional Neural Network
- 使用深度卷积网络和支撑向量机实现的商标检测与分类的例子
- 对Pedestrian Detection aided by Deep Learning Semantic Tasks的小结
- 深度学习的一些教程
- ubuntu 14.04上配置无GPU的Caffe(A卡机适用)
- Deep learning: autoencoders and sparsity
- deep learning 个人理解及其实现工具
- 阅读 理解 思考 - Learning to Segment Object Candidates
- 卷积神经网络学习
- 深度学习笔记:windows10+visual studio 2013+cuda7.5+theano+lasagne环境配置
- CNN: single-label to multi-label总结
- 总结:Large Scale Distributed Deep Networks
- 总结:One weird trick for parallelizing convolutional neural networks
- deep learning in NLP—深度学习在自然语言处理中的应用—入门学习序列