雷锋网AI科技评论按:近日,FAIR 研究工程师吴育昕和研究科学家何恺明联名著作的一篇论文 Group Normalization 提到了一种新的训练神经网络的方法。该方法称为群组归一化(Group Normalization),试图以群组方式实现快速训练神经网络,这种方法对于硬件的需求大大降低,并在实验中超过了传统的批量归一化方法。
批量归一化和群组归一化
批量归一化(Batch Normalization,以下简称 BN)是深度学习发展中的一项里程碑式技术,可让各种网络并行训练。但是,批量维度进行归一化会带来一些问题——批量统计估算不准确导致批量变小时,BN 的误差会迅速增加。在训练大型网络和将特征转移到计算机视觉任务中(包括检测、分割和视频),内存消耗限制了只能使用小批量的BN。在这篇论文中,作者巧妙提出了群组归一化 Group Normalization (简称 GN) 作为 BN 的替代方案。
GN 将通道分成组,并在每组内计算归一化的均值和方差。GN 的计算与批量大小无关,并且其准确度在各种批量大小下都很稳定。在 ImageNet 上训练的 ResNet-50 上,GN 使用批量大小为 2 时的错误率比 BN 的错误率低 10.6%;当使用典型的批量时,GN 与 BN 相当,并且优于其他标归一化变体。而且,GN 可以自然地从预训练迁移到微调。在进行 COCO 中的目标检测和分割以及 Kinetics 中的视频分类比赛中,GN 可以胜过其竞争对手,表明 GN 可以在各种任务中有效地取代强大的 BN。在最新的代码库中,GN 可以通过几行代码轻松实现。
背景介绍
批量归一化已被证实为深度学习中非常有效的组成部分,在很大程度上推动了计算机视觉领域的发展。许多实践都证明了这一点,BN 使用(小)批计算的均值和方差对特征进行归一化,以简化优化使非常深的网络能够融合。批量统计的随机不确定性也可以作为一个正则化器,它可以适用于泛化。BN 一直是许多最先进的计算机视觉算法的基础。
尽管 BN 取得了巨大的成功,但其存在的弊端也是由于其独特的归一化行为造成的。
图1. ImageNet分类错误与批量大小的对比图,这是一个ResNet-50模型,使用8张GPU卡在ImageNet训练集中进行训练,并在验证集中进行评估。
特别是,BN 要求有足够大的批量才能工作。小批量会导致批量统计数据的估算不准确,并且减少 BN 的批量大小会显著增加模型误差(图 1)。因此,最近的许多模型都是用较大的批量来进行训练的,这些大批量都是很耗费内存的。反过来,训练模型时对 BN 有效性的高度依赖性阻碍了人们用有限内存探索更高容量的模型。
计算机视觉任务(包括检测、分割、视频识别和其他基于此的高级系统)对批量大小的限制要求更高。例如,Fast / er 和 Mask R-CNN 框架使用批量为 1 或 2 的图像,为了更高的分辨率,其中 BN 通过变换为线性层而被「固定」;在 3D 卷积视频分类中,时空特征的出现导致在时间长度和批大小之间需要作出权衡。BN 的使用通常要求这些系统在模型设计和批大小之间作出妥协。
本文提出群组归一化(GN)作为 BN 的替代方案。作者注意到像 SIFT 和 HOG 这样的许多经典特征是分组特征并且包括分组规范化。例如,HOG 矢量是几个空间单元的结果,其中每个单元由归一化方向直方图表示。同样,作者提出 GN 作为一个层,将通道划分为组,并对每个组内的特征进行归一化(图 2)。GN 不用批量维度,其计算与批量大小无关。
GN 在大范围的批量下运行都非常稳定(图 1)。在批量大小为 2 的样本中,GN 比 ImageNet 中的 ResNet-50 的 BN 对应的误差低 10.6%。对于常规的批量规格,GN 与 BN 表现相当(差距为 0.5%),并且优于其它归一化变体 。此外,尽管批量可能会发生变化,但 GN 可以自然地从预训练迁移到微调。在 COCO 目标检测和分割任务的 Mask R-CNN 上,以及在 Kinetics 视频分类任务的 3D 卷积网络上,相比于 BN 的对应变体,GN 都能获得提升或者超越的结果。GN 在 ImageNet、COCO 和 Kinetics 上的有效性表明 GN 是 BN 的有力竞争者,而 BN 在过去一直在这些任务上作为主导方法。
图2
已有的方法,如层次归一化(LN)和实例归一化(IN)(图 2),也避免了沿着批量维度进行归一化。这些方法对训练序列模型(RNN / LSTM )或生成模型(GANs)是有效的。但正如论文中通过实验表明的那样,LN 和 IN 在视觉识别方面取得的成功是有限的,GN 可以提供了更好的性能表现。甚至,GN 可以用来替代 LN 和 IN,来适用于有序或生成模型。这超出了本文的研究重点,但它对未来的研究提供了启示。
视觉表现的通道并不完全独立。SIFT ,HOG 和 GIST 的典型特征是按设计分组表示的,其中每组通道由某种直方图构成。这些功能通常通过每个直方图或每个方向上的分组归一化进行处理。VLAD 和 Fisher Vector(FV)等更高级的特征也是群组特征,其中一组可以被认为是相对于一个群集计算的子向量。
类似地,没有必要将深层神经网络特征看作非结构化向量。例如,对于网络的 conv1(第一卷积层),期望滤波器及其水平翻转在自然图像上呈现类似的滤波器响应分布是合理的。如果 conv1 碰巧近似学习这一对滤波器,或者如果通过设计将水平翻转(或其他变换)设计为架构 ,则可以将这些滤波器的相应通道一起归一化。
越高层的图层越抽象,它们的行为也不那么直观。然而,除了方向(SIFT ,HOG )之外,还有许多因素可能导致分组,例如频率,形状,光照度和质地,它们的系数可以相互依存。事实上,神经科学中广为接受的计算模型是在细胞反应中归一化 ,「具有各种感受野中心(包括视野)和各种时空频率音调;这不仅可以发生在初级视觉皮层,而且可以发生在「整个视觉系统」。受到这些研究的启发,我们提出了新的泛神经网络的泛型归一化。
图3
GN 可以通过 PyTorch 和 TensorFlow 中的几行代码轻松实现,图 3 显示了基于 TensorFlow 的代码。事实上,只需要指定如何计算均值和方差(「矩」),用归一化方法定义的适当的坐标轴。
实验部分
在三个不同类型的数据集上做了实验对比。分别是 ImageNet 中的图像分类,COCO 中的对象检测和分割,Kinetics 中的视频分类。具体的实验方法、实验步骤,以及实验结果,原论文中有详细描述。
GN 在检测,分割和视频分类方面的改进表明,GN 对于当前处于主导地位的 BN 技术而言是强有力的替代。
总结
论文中把 GN 作为一个有效的归一化层且不用开发批量维度,同时也评估了 GN 在各种应用中的行为表现。不过,论文作者也注意到,由于 BN 之前拥有很强的影响力,以至于许多先进的系统及其超参数已被设计出来。这对于基于 GN 的模型可能是不利的,不过也有可能重新设计系统或搜索 GN 的新超参数将会产生更好的结果。
此外,作者表明,GN 与 LN 和 IN 有关,LN 和 IN 两种归一化方法在训练循坏(RNN / LSTM)或生成(GAN)模型中特别成功。这表明将来 GN 也会研究这些领域。另外作者还将探索 GN 在强化学习(RL)任务学习表征方面的表现,其中 BN 在训练非常深的模型中起着重要作用 。
论文地址:https://arxiv.org/abs/1803.08494
雷锋网
雷锋网原创