均值归一化_深度学习之12——归一化(BN+LN+IN+GN)

GN,BN和LN都是在神经网络训练时的归一化方法,BN即Batch Normalization,LN即Layer Normalization,关于BN和LN的解释,可以参考之前写过的一篇文章《深度学习——逐层归一化(BN,LN)》。

Group Normalization(GN)

批量归一化BN是计算机视觉发展中很重要的组成部分,BN是在一个batch中计算均值和方差,BN可以简化并优化使得非常深的网络能够收敛。但是BN却很受batch大小的影响,通过实验证明:BN需要一个足够大的批量,小的批量大小会导致对批统计数据的不准确率提高,显著增加模型的错误率。比如在检测、分割、视频识别等任务中,比如在faster R-cnn或mask R-cnn框架中使用一个batchsize为1或2的图像,因为分辨率更高,其中BN被“冻结”转换为线性层;在3D卷积的视频分类中,空间时间特征的存在引入了时间长度和批处理大小之间的权衡。BN的使用经常会使这些系统在模型符号和批量大小之间做出妥协。

在很宽的批处理大小中,GN表现很稳定,在一个2个样本的批量大小情况下。ImageNet的ResNet-50中,GN的错误比BN要低10.6%。使用常规的批处理大小,GN性能yuBN相当,并优于其他标准化的变体。

a2015e7e-7c11-eb11-8da9-e4434bdf6706.png

上图为四种归一化方法,其中N为批量,C为通道,(H,W)表示feature map,蓝色像素代表相同的均值和方差归一化。

首先描述特征归一化的公式:

,x是由层计算的特征,在2d图像下,i=(IN,IC,IH,IW)。

计算均值和标准差:

,m是该集合的大小。

因不同的归一化方法而不同:

在BN中:

表示沿着C轴的索引,表示对于每个通道,BN沿着(N,H,W)轴计算

在LN中:

表示LN计算每个样本沿着(C,H,W)轴来计算

,和batch无关。

在IN中:

表示IN计算每个样本和每个通道沿着(H,W)轴计算

BN,LN和IN的所有方法都学习了一个每通道的线性变换,来补偿表示能力的丢失:

是可训练的比例和位移。

在GN中:

G是组的数量,是预定义的超参数(默认为G=32)。C/G是每组的通道数,GN沿着(C/G,H,W)来计算

如果我们将组号设置为G = 1,则GN变为LN 。LN假设层中的所有通道都做出“类似的贡献”。GN比LN受限制更少,因为假设每组通道(而不是所有通道)都受共享均值和方差的影响; 该模型仍然具有为每个群体学习不同分布的灵活性。这导致GN相对于LN的代表能力提高。

如果我们将组号设置为G = C(即每组一个通道),则GN变为IN。 但是IN只能依靠空间维度来计算均值和方差,并且错过了利用信道依赖的机会

注:四种归一化的理解

  • BatchNorm:batch方向做归一化,计算N*H*W的均值
  • LayerNorm:channel方向做归一化,计算C*H*W的均值
  • InstanceNorm:一个channel内做归一化,计算H*W的均值
  • GroupNorm:先将channel方向分group,然后每个group内做归一化,计算(C//G)*H*W的均值
  • GN与LN和IN有关,这两种标准化方法在训练循环(RNN / LSTM)或生成(GAN)模型方面特别成功。

参考链接:

https://blog.csdn.net/qq_21167623/article/details/82848996​blog.csdn.net
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值