全面超越BN/GN/LN/IN!归一化新方法BGN,解决因Batch Size大小带来的训练不稳定问题

2020 年 12 月 9 日 极市平台
↑ 点击 蓝字  关注极市平台

作者丨ChaucerG
来源丨AI人工智能初学者
编辑丨极市平台

极市导读

 

本文介绍了一篇在不增加新训练参数和引入额外计算的情况下,通过引入通道、高度和宽度维度来补偿,解决批量标准化(BGN)在小/超大Batch下BN的噪声/混淆统计计算问题的文章,作者详细分析了BGN的方法以及实验过程及结果。 >>12月10日(周四)极市直播|汤凯华:利用因果分析解决通用的长尾分布问题


1 简介

深度卷积神经网络(DCNNs)训练起来既困难又耗时。规范化是一种有效的解决方案。在以往的归一化方法中,批处理归一化(BN)在大、中批量处理中表现良好,对多个视觉任务具有很好的通用性,但在小批量处理中,其性能下降明显。

作者实验发现在超大Batch下BN会出现饱和(比如,Batch为128),并提出在小/超大Batch下BN的退化/饱和是由噪声/混淆的统计计算引起的。因此,在不增加新训练参数和引入额外计算的情况下,通过引入通道、高度和宽度维度来补偿,解决了批量标准化(BGN)在小/超大Batch下BN的噪声/混淆统计计算问题。

利用GN中的组方法和超参数G来控制统计计算所使用的特征实例的数量,从而对不同批量提供既无噪声也不混淆的统计量。实验结果证明BGN优于BN、IN、LN、GN以及PN;

该方法在图像分类、神经结构搜索(NAS),对抗的学习,小样本学习以及无监督学习领域适应(UDA)都有很好的性能、鲁棒性。例如,在ImageNet上训练设置Batch=2进行训练ResNet-50,BN的Top1准确率为66.512%,BGN的Top1准确率为76.096%,精度有显著的提高。


2 相关工作总结

批处理归一化(BN)是早期提出的一种归一化方法,也是应用最为广泛的方法。BN利用计算出的均值和方差对特征图进行归一化,再对归一化后的特征图进行重新缩放和移位,以保证DCNN的表征能力。同时,在BN的基础上,提出了许多其他任务的归一化方法。

  • 层归一化-LN:用于计算递归神经网络沿通道的统计量;

  • 权值归一化-WN:来参数化权值向量,用于监督图像识别、生成建模和深度强化学习;

  • 切分归一化-DN:提出包含BN和LN层的归一化层,作为图像分类、语言建模和超分辨率的特例;

  • 实例归一化-IN:为了进一步快速风格化,提出了IN层,主要用于图像分割迁移,其中统计量由高度和宽度维度计算得到;

  • 组归一化-GN:对通道进行分组,统计每个分组通道的高度和宽度,增强对批量大小的稳定性;

  • 位置归一化-PN:提出了位置归一化算法来计算生成网络沿信道维数的统计量;

其他相关归一化的改进比如:
EvalNorm
Moving Average BN
Adaptive Normalization
Square LN
Decorrelated BN
Spectral Normalization
BatchInstance Normalization(BIN)
Switchable Normalization(SN)
Meta Normalization
Kalman Normalization(KN)

等等,
这里不再赘述,感兴趣的朋友可以寻找相关论文进行研究。

在这些归一化方法中,BN通常可以在中、大批量中取得良好的性能。然而,在小批量它的性能便会下降比较多;GN在不同的Batch Size下具有较大的稳定性,而GN在中、大Batch Size下的性能略差于BN。其他归一化方法,包括INLNPN在特定任务中表现良好,但在其他视觉任务中泛化性比较差。

批处理组标准化(BGN)是参数和计算效率高。我们都知道Mini-Batch训练通常可以执行比Single Batch和All Batch训练效果要好,Single Batch训练可以表输出嘈杂的梯度,而All Batch梯度训练可能不行(每个图像梯度和不同的方向,因此,添加都表明梯度混淆)。

受此启发,作者认为归一化统计计算中的特征实例数量也应该适中,即BN在小批/超大批上的性能下降/饱和是由于统计计算的噪声/混乱造成的。因此,BGN被提出,通过Group技术来提升Batch Size在BN在小/极端大的性能。这里BGN将通道、高度和宽度三个维度合并为一个新维度,将新维度划分为特征组,计算整个小批和特征组的统计量。


3 BGN方法

在DCNN的L层中,对于一个输入特征图 ,有4个维度 ,其中N,C,H,W分别是BS,通道维度,高度维度和宽度维度。为简化起见 为对应的批次、通道、高度和宽度,第 层的特征图计算为:
其中 是卷积层中的权值和偏置, 分别是归一化层中可训练的re-scale和re-shift参数, 是激活函数。 是归一化函数。 是卷积函数。
对于典型的归一化层包括4个步骤:
  • 1)、将特征图划分为特征组;
  • 2)、计算各特征组的均值和方差统计量;
  • 3)、利用计算出的统计量对各特征组进行归一化;
  • 4)、对归一化特征图进行重新缩放和移位,保持DCNN的表示能力。
就BN而言,Feature map是沿着通道维度划分的,均值 和方差 是沿着Batch, H和W维度计算得到的:

将Feature map归一化为:

为除法稳定性增加的小数。为了保持DCNN的表示能力,每个特征通道都增加了额外的可训练参数:
通过实验,BN在大中Batch size中具有良好的性能,并且对多个视觉任务(如,NAS)具有良好的可泛化性。然而,在ImageNet实验中,它的性能在小批量下显著下降了10%。为了改善这一不足,作者将GN通道分组的思想引入到统计计算中:
其中 为超参数-Group号, ,//为floor division。GN对于不同批次大小具有良好的稳定性,但在中、大批次时性能略低于BN,对其他视觉任务的泛化性低于BN。但是实验表明,BN在Batch-size极端大的时候会出现饱和。
BN在Batch-Size很小或很大时的降解/饱和是由噪声/混淆的统计计算引起的。在Mini Batch训练中也存在类似的迹象,Single Batch和All Batch训练通常比Mini Batch的训练差,因为计算的梯度是有噪声的/混淆的。为了促进这一点,作者提出了BGN,其中使用GN中的Group方法来控制用于统计计算的特征实例的数量。首先合并通道、高度和宽度维度到一个新的维度 ,其中 。均值 和方差 沿着Batch和新维度 计算为:
其中G为划分新维数组数的超参数, 为每个划分的特征组内的实例数。当BS很小,使用较小的G是用来把全新的维度统计计算,以避免噪声统计;当BS很大,使用较大的G用于分割新维度成小块计算统计数据,以避免混淆统计数据。 的使用方式与BN相同。在BN中,测试使用的均值 和方差 是训练阶段得到的。


4. 实验

4.1、ImageNet上使用ResNet-50进行图像分类

通过以上可以看到,所提出的BGN在不同批处理规模下的性能优于之前所有的方法,包括BN、IN、LN、GN、PN和GBGN。

具体来说,BN在大批量下接近BGN的性能,然而,它的性能在小批量下迅速下降。GBGN是针对小批量尺寸提出的,但在批量尺寸为2时,其性能比BGN低4.24%,说明引入整个通道、高度和宽度尺寸来补偿噪声统计计算的重要性。在ImageNet分类上总体表现不佳。

LN、GN和PN的平均Top1精度分别为75.191%、76.073%和74.167%,而提出的BGN的平均Top1精度更高,为76.594%。

4.2、利用NAS对CIFAR-10进行图像分类

通过上表可以看到IN和LN不收敛,而BGN显著优于GN和PN,同时也优于BN。

通过上表可以看到IN、LN和PN的收敛性不强,而BGN的性能明显优于GN,BGN的性能略逊于BN。

因此,在神经结构搜索阶段使用BN作为归一化层比较具有优势

4.3、对抗性训练

在对抗网络的训练中,Robust精度比Clean精度更重要。PN存在收敛困难,不能收敛。BGN在一定范围内优于BN和IN,显著优于LN和GN。

4.4、少样本学习

可以看到,BGN略优于BN,但显著优于IN、LN、GN和PN,说明BGN在标签数据非常有限的情况下具有普遍性。

4.5、Office-31无监督领域适应实验

可以看到,BGN在大多数适应任务中优于其他归一化层,特别是wa,准确率提高了1.6%。

参考

[1].Batch Group Normalization


推荐阅读



    添加极市小助手微信(ID : cvmart2),备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳),即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群:每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企视觉开发者互动交流~

    △长按添加极市小助手

    △长按关注极市平台,获取 最新CV干货

    觉得有用麻烦给个在看啦~   
    登录查看更多
    0

    相关内容

    专知会员服务
    47+阅读 · 2021年2月2日
    专知会员服务
    114+阅读 · 2020年8月22日
    深度学习批归一化及其相关算法研究进展
    专知会员服务
    51+阅读 · 2020年7月17日
    【伯克利】再思考 Transformer中的Batch Normalization
    专知会员服务
    40+阅读 · 2020年3月21日
    专知会员服务
    44+阅读 · 2020年3月6日
    【NeurIPS 2019】7篇自动化神经网络搜索(NAS)论文简读
    中国人工智能学会
    15+阅读 · 2019年9月13日
    如何区分并记住常见的几种 Normalization 算法
    极市平台
    19+阅读 · 2019年7月24日
    如何训练你的ResNet(三):正则化
    论智
    5+阅读 · 2018年11月13日
    【动态】何恺明团队最新力作:群组归一化(Group Normalization)
    深度学习中的五大正则化方法和七大优化策略
    全球人工智能
    11+阅读 · 2017年12月25日
    Arxiv
    3+阅读 · 2019年3月15日
    Arxiv
    3+阅读 · 2018年10月25日
    Arxiv
    7+阅读 · 2018年3月22日
    VIP会员
    相关VIP内容
    专知会员服务
    47+阅读 · 2021年2月2日
    专知会员服务
    114+阅读 · 2020年8月22日
    深度学习批归一化及其相关算法研究进展
    专知会员服务
    51+阅读 · 2020年7月17日
    【伯克利】再思考 Transformer中的Batch Normalization
    专知会员服务
    40+阅读 · 2020年3月21日
    专知会员服务
    44+阅读 · 2020年3月6日
    相关资讯
    Top
    微信扫码咨询专知VIP会员