编译 | 阿司匹林
AI科技大本营按:近日,FAIR 团队的吴育昕和何恺明提出了组归一化(Group Normalization,简称 GN)的方法。其中,GN 将信号通道分成一个个组别,并在每个组别内计算归一化的均值和方差,以进行归一化处理。此外,GN 的计算与批量大小无关,而且在批次大小大幅变化时,精度依然稳定。实验结果证明,GN 在多个任务中的表现均优于基于 BN 的同类算法,这表明 GN 能够在一系列任务中有效地替代 BN。
以下内容来自 Group Normalization 论文,AI科技大本营翻译:
批归一化(Batch Normalization,简称 BN )是深度学习发展中的一项里程碑技术,它让各种网络都能够进行训练。然而,沿着批次维度的归一化也带来了新问题:当统计不准确导致批次的大小越来越小时,BN 的错误会急剧增加。在训练更大的网络,以及执行将特征迁移至包括探测、分割、视频在内的计算机视觉任务时,BN 的使用就受到了限制,因为它们受限于内存消耗而只能使用小批次。
在该论文中,我们提出了一种简单的组归一化的方法。GN 将信号通道分成一个个组别,并在每个组别内计算归一化的均值和方差,以进行归一化处理。GN 的计算与批量大小无关,而且在批次大小大幅变化时,精度依然稳定。例如在 ImageNet 上训练的 ResNet-50 ,当批次大小为 2 时,GN 的误差比 BN 低 10.6 %;当使用典型的批次大小时,GN 与 BN 的表现相当,并且优于其他归一化变体。此外,GN 可以自然地从预训练迁移到微调阶段。在 COCO 的目标检测和 Kinetics 的视频分类任务中,GN 的表现均优于基于 BN 的同类算法,这表明 GN 能够在一系列任务中有效地替代 BN。重要的是,只需几行代码,就可以在现代库中实现 GN。
图1:ImageNet 分类误差与批次大小的关系。这是在 ImageNet 训练集中使用 8 块 GPU 训练的 ResNet-50 模型,并在验证集上进行了评估。
▌组归一化
视觉表征的通道并不是完全独立的。SIFT、HOG 和 GIST 的经典特征是符合分组特征的,其中每组信道由某种直方图(histogram)构成。这些特征通常通过在每个直方图或每个方向上执行分组归一化来处理。诸如 VLAD 和 Fisher Vectors (FV) 等高级特征也是分组特征,其中每一组可以被认为是关于集群计算的子向量。
类似地,我们不需要将深层神经网络特征视为非结构化向量。例如,对于网络的第一个卷基层 conv1 ,我们可以预期,滤波器(filter)及其水平翻转在自然图像上呈现类似的滤波器响应分布是合理的。如果 conv1 碰巧近似地学习到这对滤波器,或者通过将水平翻转设计到架构中,则这些滤波器的相应通道可以一起归一化。
神经网络中的更高层级更加抽象,它们的行为也不那么直观。然而,除了方向之外,还有许多因素可以导致分组,例如频率、形状、照明、纹理等,它们的系数可以是相互依赖的。事实上,神经科学中一个广为接受的计算模型就是对细胞反应进行归一化,“具有各种感受野(receptive-field)中心(覆盖视野)和各种时空频率调谐”,这不仅可以发生在初级视觉皮层,而且可以发生在“整个视觉系统”中。受此启发,我们提出了一种新的深度神经网络的泛组归一化(generic group-wise normalization)方法。
图2:归一化方法。每个子图显示一个特征图张量,其中 N 为批处理轴,C 为通道轴,( H; w )为空间轴。通过计算这些蓝色像素的和,它们被相同的平均值和方差归一化。
组归一化公式:
只需要几行代买,GN 就可以在 iPyTorch 和 TensorFlow 实现。
▌实验
1. 对 ImageNet 数据集进行图像分类
图4:批次大小为 32 幅图像/GPU 时的误差曲线。上图展示了 ImageNet 训练误差(左)和验证误差(右)与训练周期的关系。模型为 ResNet-50。
图5:对批次大小的敏感度:ResNet-50 对 BN (左)和 GN(右)的验证误差,分别使用 32、16、8、4 和 2 幅图像/GPU 进行训练。
表1:ImageNet 验证集中 ResNet-50 的误差(%)的比较,使用大小为 32 幅图像/GPU 的批次进行训练。误差曲线如图4所示。
表2:对批次大小的敏感度。该表展示了 ResNet-50 在 ImageNet 中的验证误差(%)。最后一行显示了 BN 和 GN 之间的差异。误差曲线如图 5 所示。
图6:VGG-16 中 conv5_3(5_3 为下标)输出(在归一化和 ReLU 之前)的特征分布的演变。右侧的表显示了 ImageNet 的验证误差(%)。模型使用 32 幅图像/ GPU 进行训练。
表3:组划分。该表展示了 ResNet-50 在 ImageNet 中的验证误差(%),该模型使用 32 幅图像/GPU 进行训练。(上):给定数量的组。(xia):每组给定数量的通道。每张表的最后一行显示了最佳结果之间的差异。
2. 对 COCO 数据集进行目标检测和分割
表4:使用 Mask R-CNN(ResNet-50 C4)在 COCO 中的检测和分割结果。BN* 表示 BN 被冻结。
表5:使用 Mask R-CNN( ResNet-50 FPN 和 4conv1fc 边界框)在 COCO 中的检测和分割结果。 BN* 表示 BN 被冻结。
3. 对 Kinetics 数据集进行视频分类
图7:Kinetics数据集中,输入长度为 32 帧的误差曲线。上图显示了 ResNet-50 I3D 对 BN(左)和 GN(右)的验证误差。
表6: 对 Kinetics 的视频分类结果:ResNe-50 I3D 基线的 top-1/top-5 精度( % )。
▌讨论以及未来的工作
我们证明了 GN 可以作为一个有效的归一化层,而不需要利用批量维度。我们已经评估了 GN 在各种应用中的表现。然而,我们也注意到,BN 的影响力如此之大,以至于许多最先进的系统及其超参数都是为它设计的,这写对于基于 GN 的模型来说可能不是最佳的。因此,针对 GN 重新设计系统或者寻找新的超参数,可能会得到更好的结果。
此外,我们已经证明 GN 与 LN 和 IN 是相关联的,这两种归一化方法在训练 RNN/LSTM 等递归模型或者 GAN 等生成模型方面特别成功。这也提示我们今后应在这些领域进行 GN 的研究。未来,我们还将测试 GN 在强化学习任务中学习表征方面的表现。
论文链接:https://arxiv.org/abs/1803.08494