晓强Deep Learning的读书分享会,先从这里开始,从大学开始。大家好,我是晓强,计算机科学与技术专业研究生在读。我会不定时的更新我的文章,内容可能包括深度学习入门知识,具体包括CV,NLP方向的基础知识和学习的论文;网络表征学习的相关论文解读。当然我每天的读书心得也会分享给大家,可能涉及我们生活各个方面的书籍。我也会不定时回答大家的问题与大家一同进步,共同交流,互相监督,结交更多的朋友。希望大家多留言,多交流,多多关照。
【晓白】今天终于更新图像处理必读论文系列了!大家久等了,之前的几天都更新了算法设计与分析的内容,感兴趣的朋友可以关注我,继续阅读其他的文章。最近我分享了一些AI领域会议的总结,每天都涨粉,谢谢精神合伙人的支持,我会继续努力。以后我会不定期更文章,先从计算机视觉开始,逐步更新多个深度学习应用领域的知识点,如有错误大家多指正,多交流,多讨论,共同学习,互相进步。如果内容对大家有一些帮助,请大家多点赞支持,分享。接下来我们来分享深度学习技术应用到图像处理方向的另一篇佳作-它是Going Deeper with Convolutions(GooLeNet-1)的后续论文,Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift。如果对基础知识掌握不熟可以阅读我的其他论文,或者私信与我讨论,进入我们的学习家族,一起进步。如果对大家有帮助的话,可以点赞,收藏,关注支持一下。
Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
批标准化:缓解内部协变量偏移加快深度神经网络训练
作者: Sergey Ioffe & Christian Szegedy(GoogLeNet-v1 一作)
单位: Google Inc.
时间: 2015
研究背景
ImageNet Large Scale Visual Recognition Challenge 是李飞飞等人于2010年创办的图像识别挑战赛,自2010起连续举办8年,极大地推动计算机视觉发展
比赛项目涵盖:图像分类(Classification)、目标定位(Object localization)、目标检测(Object detection)、视频目标检测(Object detection from video)、场景分类(Scene classification)、场景解析(Scene parsing)
竞赛中脱颖而出大量经典模型: alexnet,vgg,googlenet,resnet,densenet等
ImageNet
相信读过我的系列文章的人,这些内容并不陌生,如果不了解可以继续阅读我的其他CV系列论文。
GoogLeNet –V1 采用多尺度卷积核,1*1卷积操作,辅助损失函数,实现更深的22层卷积神经网络,夺得ILSVRC-2014 分类和检测冠军,定位亚军。
本文在GoogLeNet-V1 基础上加入BN层,同时借鉴VGG的小卷积核思想,将5*5卷积替换为2个3*3卷积。
ICS(Internal Covariate Shift,内部协变量偏移
ICS现象:输入数据分布变化,导致的模型训练困难,对深度神经网络影响极大
白化(Whitening)
白化的目的是去除输入数据的冗余信息。假设训练数据是图像,由于图像中相邻像素之间具有很强的相关性,所以用于训练时输入是冗余的;白化的目的就是降低输入的冗余性。
输入数据集X,经过白化处理后,新的数据X'满足两个性质:
(1)特征之间相关性较低;
(2)所有特征具有相同的方差。
[1] 1998-LeCun, Y., Bottou, L., Orr, G., and Muller, K. Efficient backprop. In Orr, G. and K., Muller (eds.), Neural Net- works: Tricks of the trade. Springer, 1998b.
[2]2011-Wiesler, Simon and Ney, Hermann. A convergence anal- ysis of log-linear training. In Shawe-Taylor, J., Zemel, R.S., Bartlett, P., Pereira, F.C.N., and Weinberger, K.Q. (eds.), Advances in Neural Information Processing Sys- tems 24, pp. 657–665, Granada, Spain, December 2011.
研究成果
提出BN层:加快模型收敛,比googlenet-v1快数十倍,获得更优结果
GoogLeNet-v2 获得ILSVRC 分类任务 SOTA
BN 优点:
1. 可以用更大学习率,加速模型收敛
2. 可以不用精心设计权值初始化
3. 可以不用dropout或较小的dropout
4. 可以不用L2或者较小的weight decay
5. 可以不用LRN(local response normalization)
研究意义
加快了深度学习的发展
开启神经网络设计新时代,标准化层已经成为深度神经网络标配
在Batch Normalization基础上拓展出了一系例标准化网络层,如Layer Normalization(LN),Instance Normalization(IN),Group Normalization(GN)
摘要
1. 提出问题:数据分布变化导致训练困难(PS:权重变化--输出变化--输入变化--训练困难)
2. 已有方法:通过小学习率和精心权重初始化,但是很训练缓慢,效果不佳
3. ICS:上述现象为ICS,本文提出标准化网络层来缓解它
4. BN:在模型中增加BN层,可在mini-batch中执行标准化,让模型可以用大学习率,不需要精心设计权值初始化,可以少用Dropout
5. 本文成果:BN使模型训练加快14倍,并且可显著提高分类精度,在Imagenet分类任务中超越了人类的表现
论文图表
BN层
Batch Normalization:批标准化
批:一批数据,通常为mini-batch
标准化:使得分布为 mean=0, std=1
如 1, 2 ;mean=1.5, std=0.5, 变换得到-1, 1
一定有正有负,并且拉到0附近了
比如,
BN优点
可采用较大学习率
针对类似Sigmoid的饱和激活函数,加上BN层后,可采用较大学习率
充当正则,顶替Dropout
加入BN层后,将当前样本与以前样本通过统计信息联系起来,相当于某种约束,经实验表明可减轻Dropout的使用
BN注意事项
BN层前一层不需要加偏置(bias),该偏置可被BN层中的Shift(Beta)给抵消
卷积网络时,是针对特征图为单位进行BN层,即使2D的BN操作,这一点要好好理解,比较容易理解错误。
GoogLeNet-V2结构
GoogLeNet-V2 模型特点
对V1的改进:
激活函数前加入BN
5*5卷积替换为2个3*3卷积
第一个Inception模块增加一个Inception结构
增多“5*5”卷积核
尺寸变化采用stride=2的卷积
增加9层(10-1层)到 31层
(10表示inception数量)
实验结果及分析
MNIST实验
观察收敛速度
观察MLP网络最后一层输出值分布
结果:
加入BN层之后,收敛速度更快
加入BN层之后,输出值更稳定,缓解ICS问题
ILSVRC 分类实验一:速度对比
参数设置:初始学习率=0.0015
x5: 表示学习率 = 0.0015*5 = 0.0075
加BN更快:BN-Baseline比Inception快一倍
可用大学习率:BN-x5 比 Inception 快14倍
加BN精度更高:BN-x30比 x5 慢,但精度更高
Sigmoid时,加BN精度更高:BN-x5-Sigmoid虽精度最低,比Inception-Sigmoind高很多
ILSVRC 分类实验二:模型集成,超越人类
六个BN-x30集成,六个BN-x30不同之处:
增大权重初始化的值,即分布的标准差变大
dropout设为5%或10%,GoogLeNet-V1是40%
论文总结
关键点&创新点
提出BN层,缓解ICS带来的训练困难,可实现
1. 可以用更大学习率,加速模型收敛
2. 可以不用精心设计权值初始化
3. 可以不用dropout或较小的dropout
4. 可以不用L2或者较小的weight decay
5. 可以不用LRN(local response normalization)
借鉴VGG,全面将5*5卷积替换为两个3*3卷积堆叠
1. 两个模型组合优点,放在一句话。加速14倍是BN-x5,获得显著提升的是BN-x30
we can match its performance using only 7% of the training steps, and can further exceed its accuracy by a substantial margin. (1 Introduction p6)
2. 0均值,1标准差的数据分布可加速网络训练
It has been long known (LeCun et al., 1998b; Wiesler & Ney, 2011) that the network training converges faster if its in- puts are whitened – i.e., linearly transformed to have zero means and unit variances, and decorrelated. (2 towards Reducing Internal Covariate Shift p1)
3. 即使不去相关,0均值,1方差的数据分布也可加快网络训练
As shown in (LeCun et al., 1998b), such normalization speeds up convergence, even when the fea- tures are not decorrelated.(3 Normalization via Mini-Batch Statistics p1)
4. 推理时,BN相当于线性变换,即缩放加平移,进一步的,可将BN层融合到卷积层中
Since the means and variances are fixed during inference, the normalization is simply a linear transform applied to each activation. (3.1 p1)
5. bias作用被抵消,因此不需要bias,并且线性变换中的beta可充当bias
Note that, since we normalize W u+b, the bias b can be ignored since its effect will be canceled by the subsequent mean subtraction (3.2 p2)
6. 卷积层的BN中,不仅考虑batch维度,还考虑空间维度,以feature map维度进行求取均值,方差
we let B be the set of all values in a feature map across both the elements of a mini-batch and spatial locations – so for a mini-batch of size m and feature maps of size p × q, we use the effec- tive mini-batch of size m′ = |B| = m · pq. We learn a pair of parameters γ(k) and β(k) per feature map, rather than per activation.(3.2 p2
7. 一个样本的计算受到其它样本的约束,可认为是一种正则约束
a training example is seen in conjunction with other examples in the mini-batch, and the training network no longer producing deterministic values for a given training example. (3.4 p1)
8. 堆叠使用2个3*3卷积,全面替换5*5卷积,并且给予更多卷积核
The main difference to the net- work described in (Szegedy et al., 2014) is that the 5 × 5 convolutional layers are replaced by two consecutive lay- ers of 3 × 3 convolutions with up to 128 filters. (4.2 p1)
9. 加速BN的7个改变
1). Increase learning rate: BN特性
2). Remove Dropout:BN可充当正则
3). Reduce the L2 weight regularization by a factor of 5.
因为BN允许权重大一些,所以对于权重大小的限制可以减轻一些
4).Accelerate the learning rate decay
5). Remove Local Response Normalization
6). Shuffle training examples more throughly
7). Reduce the photometric distortions
10. GoogLeNet-V1 采用ReLU和Sigmoid,获得的精度几乎是一样的,即ReLU在V1中并没有提升精度
We also tempted to train the original Inception with sigmoid, but the model remained at the accuracy equivalent to chance.
11. GoogLeNet-V1 训练到收敛,用了大约826个epochs,这一个数据在V1论文中从未给出
Inception reached the accuracy of 72.2% after 31 · 10^6 training steps.
12. 下一步工作:研究RNN中BN的效用,以及BN在域适应领域的应用
Our future work includes applications of our method to Recurrent Neural Networks (Pascanu et al., 2013), where the internal covariate shift and the vanishing or exploding gradients may be especially severe.
We plan to investigate whether Batch Normalization can help with domain adaptation, in its traditional sense – i.e. whether the normalization performed by the network would al- low it to more easily generalize to new data distribu- tions, perhaps with just a recomputation of the population means and variances. (5 conclusion p4)
至此,GoogLeNet-2网络更新完毕!希望大家多多支持一下!知乎小号,每天坚持更新不容易!关注我,读下面更多文章.
晓强DL:数据分析及机器学习之数据分析处理库pandaszhuanlan.zhihu.com