Weight Standarization:携手GN,超越BN

2019 年 6 月 16 日 人工智能前沿讲习班

https://arxiv.org/abs/1903.10520

所属领域:深度学习-网络结构研究


温故而知新

先简要复习一下BN的概念:

(1)主要解决了:ICS(Internal Covariate Shift)现象

google原文这样定义:

We define Internal Covariate Shift as the change in the distribution of network activations due to the change in network parameters during training.

简单理解,就是激活函数势必会改变各层数据的分布,那么随着网络的加深,这种改变的趋势也会加剧,数据分布会越来越偏移。我们知道像sigmoid、tanh这一类激活函数在x绝对值较大时梯度较小,当x逐渐向函数两端区域靠拢时,模型将很难继续优化更新。

因此,BN试图将各层数据的分布固定住(目前能肯定的是,确实固定了数据的范围,但不一定真的调整了分布),使得各层数据在进入激活函数前,保持均值为0,方差为1的正态分布。这样就能使数据尽量靠近激活函数的中心,在反向传播时获得有效的梯度。

当然,由于BN的本质还是根据激活函数调整数据分布范围,所以增加了偏移量 来应对Relu等不以0为中心的激活函数,增加网络稳定性。

(2)计算方式

BN,batch normalization,即是对batch进行归一化。如图所示,一个batch取N张图片。

Layer normalization(LN)可以更好地帮助我们理解BN。BN是把整个batch的数据看做整体,针对每个神经元的输入来归一化。LN则是把每一层的数据看做整体,针对每一层进行归一化。解决了BN不能很好适用于RNN的问题。

(3)存在的问题

batch_size过小:由于BN是以整个batch来计算均值和方差,所以batch size不能设置过小,失去BN的意义。

batch_size过大:①超过内存容量 ②跑一次epoch迭代次数少,达到相同精度所需要的迭代次数(参数调整的次数)是差不多的,所以大的batch size需要跑更多的epoch,导致总的训练时间变长。③过大的batch size会直接固定下降方向,导致很难更新。


What is Weight standarization?

于是,为了像BN一样加速训练过程,又能够摆脱对于large batch size的限制,WS(Weight standarization)横空出世。

常见的normalization方式(e.g. BN,LN,IN,GN)都是从激活函数的输入来考虑,以不同的方式对激活函数的输入进行标准化;WS则想,我们这么费心费力地去处理卷积后的结果来加速训练,那为什么不直接去处理这个卷积的weight呢。最后实验表明,确实直接向weight下手对速度的影响更加直观。同时,直接处理weight,也很好地规避了对batch size的依赖,使得真正的mini batch size成为可能。


实验结果

实验非常全面,在ImageNet、COCO、VOC、ModelNet40都对GN+WS和BN+WS做了详细的实验分析,具体可以去原文仔细阅读。

最后的结论是GN+WS可以在micro batch(1~2images per GPU)的条件下,匹配甚至超越BN在large batch size下的性能。



-----END-----


作者 | Lingyun Zeng

(https://www.zhihu.com/people/lingyun-zeng/activities)
版权声明
本文版权归《Lingyun Zeng》,转载请自行联系

历史文章推荐



你正在看吗?👇

登录查看更多
1

相关内容

在人工神经网络中,给定一个输入或一组输入,节点的激活函数定义该节点的输出。一个标准集成电路可以看作是一个由激活函数组成的数字网络,根据输入的不同,激活函数可以是开(1)或关(0)。这类似于神经网络中的线性感知器的行为。然而,只有非线性激活函数允许这样的网络只使用少量的节点来计算重要问题,并且这样的激活函数被称为非线性。
【Google】平滑对抗训练,Smooth Adversarial Training
专知会员服务
48+阅读 · 2020年7月4日
【CVPR 2020-商汤】8比特数值也能训练卷积神经网络模型
专知会员服务
25+阅读 · 2020年5月7日
【Google】监督对比学习,Supervised Contrastive Learning
专知会员服务
74+阅读 · 2020年4月24日
【伯克利】再思考 Transformer中的Batch Normalization
专知会员服务
40+阅读 · 2020年3月21日
专知会员服务
44+阅读 · 2020年3月6日
神经网络中的权重初始化一览:从基础到Kaiming
大数据文摘
12+阅读 · 2019年4月18日
你有哪些深度学习(rnn、cnn)调参的经验?
七月在线实验室
10+阅读 · 2019年3月27日
Google:数据并行对神经网络训练用时的影响
综述:DenseNet—Dense卷积网络(图像分类)
专知
85+阅读 · 2018年11月26日
详解深度学习中的Normalization,不只是BN(1)
PaperWeekly
5+阅读 · 2018年2月6日
干货|深度神经网络(DNN)反向传播算法(BP)
全球人工智能
7+阅读 · 2018年1月12日
深度学习超参数简单理解
计算机视觉战队
4+阅读 · 2017年11月28日
最近流行的激活函数
计算机视觉战队
6+阅读 · 2017年11月27日
Layer Normalization原理及其TensorFlow实现
深度学习每日摘要
32+阅读 · 2017年6月17日
Star-Transformer
Arxiv
5+阅读 · 2019年2月28日
Arxiv
3+阅读 · 2018年12月18日
Arxiv
7+阅读 · 2018年3月22日
Arxiv
5+阅读 · 2018年1月30日
Arxiv
5+阅读 · 2017年4月12日
VIP会员
相关资讯
神经网络中的权重初始化一览:从基础到Kaiming
大数据文摘
12+阅读 · 2019年4月18日
你有哪些深度学习(rnn、cnn)调参的经验?
七月在线实验室
10+阅读 · 2019年3月27日
Google:数据并行对神经网络训练用时的影响
综述:DenseNet—Dense卷积网络(图像分类)
专知
85+阅读 · 2018年11月26日
详解深度学习中的Normalization,不只是BN(1)
PaperWeekly
5+阅读 · 2018年2月6日
干货|深度神经网络(DNN)反向传播算法(BP)
全球人工智能
7+阅读 · 2018年1月12日
深度学习超参数简单理解
计算机视觉战队
4+阅读 · 2017年11月28日
最近流行的激活函数
计算机视觉战队
6+阅读 · 2017年11月27日
Layer Normalization原理及其TensorFlow实现
深度学习每日摘要
32+阅读 · 2017年6月17日
相关论文
Star-Transformer
Arxiv
5+阅读 · 2019年2月28日
Arxiv
3+阅读 · 2018年12月18日
Arxiv
7+阅读 · 2018年3月22日
Arxiv
5+阅读 · 2018年1月30日
Arxiv
5+阅读 · 2017年4月12日
Top
微信扫码咨询专知VIP会员