行业报告 AI展会 数据标注 标注供求
数据标注数据集
主页 > 机器学习 正文

超越BN和GN!谷歌提出新的归一化层:FRN

前言
目前主流的模型都会采用BN层(Batch Normalization)来加速模型训练以及提升模型效果,对于CNN模型,BN层已经上成为了标配。但是BN层在训练过程中需要在batch上计算中间统计量,这使得BN层严重依赖batch,造成训练和测试的不一致性,当训练batch size较小,往往会恶化性能。
 
GN(Group Normalization)通过将特征在channel维度分组来解决这一问题,GN在batch size不同时性能是一致的,但对于大batch size,GN仍然难以匹敌BN。这里我们要介绍的是谷歌提出的一种新的归一化方法FRN,和GN一样不依赖batch,但是性能却优于BN和GN
 
 
章节目录
从BN到GN
FRN
小结
 
01、从BN到GN
最重要的任务,是根据一些已观察到的证据(例如训练样本)来对感兴趣的未知变量(例如类别标记)进行估计和推测。概率模型(probabilistic model)提供了一种描述框架,将学习任务归结于计算变量
 
训练数据进行归一化处理有助于模型的优化,对于深度模型来说,归一化中间特征同样有助于训练,BN层就是最常用的归一化方法。BN层通过计算batch中所有样本的每个channel上的均值和方差来进行归一化,其计算方式如下所示:

 

 

 

BN的一个问题是训练时batch size一般较大,但是测试时batch size一般为1,而均值和方差的计算依赖batch,这将导致训练和测试不一致。BN的解决方案是在训练时估计一个均值和方差量来作为测试时的归一化参数,一般对每次mini-batch的均值和方差进行指数加权平均来得到这个量。虽然解决了训练和测试的不一致性,但是BN对于batch size比较敏感,当batch size较小时,模型性能会明显恶化。对于一个比较大的模型,由于显存限制,batch size难以很大,比如目标检测模型,这时候BN层可能会成为一种限制。
 
解决BN上述问题的另外一个方向是避免在batch维度进行归一化,这样当然就不会带来训练和测试的不一致性问题。这些方法包括Layer Normalization (LN),Instance Normalization (IN)以及的Group Normalization(GN),这些方法与BN的区别可以从图1中看出来:
 

 

 
图1 不同的归一化方法对比
 
这些方法处理方式和BN类似,但是归一化的维度不一样,BN是在(N, H, W)维度上,LN是在(H,W,C)维度上,IN是在(H,W)维度上,GN更巧妙,其通过对C分组,此时特征可以从[N, H, W, C]变成[N, H, W, G, C/G],GN的计算是在[H, W, G]维度上。LN,IN以及GN都没有在B维度上进行归一化,所以不会有BN的问题。相比之下,GN是更常用的,GN和BN的效果对比如图2所示:
 

 

图2 ResNet50模型采用BN和GN在ImageNet上不同batch size下的性能差异
 
从图中可以看到GN基本不受batch size的影响,而BN在batch size较小时性能大幅度恶化,但是在较大batch size,BN的效果是稍好于GN的。
 
解决BN在小batch性能较差的另外一个方向是直接降低训练和测试之间不一致性,比较常用的方法是Batch Renormalization (BR),它主要的思路是限制训练过程中batch统计量的值范围。另外的一个解决办法是采用多卡BN方法训练,相当于增大batch size。
 
02、FRN
谷歌的提出的FRN层包括归一化层FRN(Filter Response Normalization)和激活层TLU(Thresholded Linear Unit),如图3所示。FRN层不仅消除了模型训练过程中对batch的依赖,而且当batch size较大时性能优于BN。

 

图3 FRN层结构示意图

 

 

图4 当N=1时不同e对FRN归一化的影响

 

FRN层的实现也是极其容易,在TensorFlow中的实现代码如下所示:
    
FRN层的效果也是极好的,下图给出了FRN与BN和GN的效果对比:

 

图5 ResNet50模型采用FRN,BN,GN在ImageNet上不同batch size下的性能差异
可以看到FRN是不受batch size的影响,而且效果是超越BN的。论文中还有更多的对比试验证明FRN的优越性。
 
03、小结
BN目前依然是最常用的归一化方法,GN虽然不会受batch size的影响,但是目前还没大范围采用,不知道FRN的提出会不会替代BN,这需要时间的检验。
 
参考:
Group Normalization.:https://arxiv.org/pdf/1803.08494.pdf
 
Filter Response Normalization Layer: Eliminating Batch Dependence in the Training of Deep Neural Networks.:
https://arxiv.org/abs/1911.09737
 
Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift.:
https://arxiv.org/abs/1502.03167
 
声明:文章收集于网络,版权归原作者所有,为传播信息而发,如有侵权,请联系小编删除,谢谢!
 
 

微信公众号

声明:本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。

网友评论:

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
SEM推广服务

Copyright©2005-2028 Sykv.com 可思数据 版权所有    京ICP备14056871号

关于我们   免责声明   广告合作   版权声明   联系我们   原创投稿   网站地图  

可思数据 数据标注

扫码入群
扫码关注

微信公众号

返回顶部