BN,LN,IN,GN的比较

众所周知,Normalization会控制数据的尺度分布,有助于模型训练,常见的Normalization主要有BN(BatchNormalization),LN(LayerNormalization),IN(InstanceNormalization),GN(GroupNormalization)这4种。本文不讲述具体的原理,只对这四种方法进行简单的比较,有不足的地方希望大牛们指正。谢谢!

首先,在进行对比之前先讲一个问题------深度网络中的数据维度。深度网络中的数据维度一般是 ( N , C , H , W ) (N,C,H,W) (N,C,H,W)或者 ( N , H , W , C ) (N,H,W,C) (N,H,W,C)格式, N N N是batch size, H / W H/W H/W是feature的高/宽, C C C是feature的channel,压缩 H / W H/W H/W至一个维度。BN(BatchNormalization),LN(LayerNormalization),IN(InstanceNormalization),GN(GroupNormalization)的三维表示如下图:
在这里插入图片描述
将这四种方法的对比以表格的形式进行呈现,更为直观。具体如下所示:

名称操作维度优点缺点适用情况
BN ( N , H , W ) (N,H,W) (N,H,W)减轻对初始值的依赖,提高网络的训练效率。可以使用更高色学习速率依赖Batch的大小,当Batch太小计算的均值和方差不稳定深度固定的CNN/DNN等神经网络
LN ( C , H , W ) (C,H,W) (C,H,W)抛弃对Batch大小的依赖由于其根据不同的通道进行了归一化,因此对相似度较大的特征LN会降低模型的表达能力mini_Batch较小的场景、动态网络结构、RNN
IN ( H , W ) (H,W) (H,W)对于样式转换任务,IN在丢弃图像对比度信息方面优于BNIN还可以看作是将LN单独应用于每个通道,就像通道的数量为1的LN一样,其大部分实际用效果较差风格化类的图像应用
GNLN与IN的中间体由于GN可利用跨通道的依赖关系因此其优于IN;因为它允许对每一组通道学习不同的分布所以它也比LN好;当批大小较小时,GN始终优于BN当批处理大小非常大时,GN的伸缩性不如BN,可能无法匹配BN的性能Batch较小(本人实验batch的大小小于10可使用GN)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gz7seven

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值