【译】Group Normalization(组归一化)

原作:吴育昕 何恺明(FAIR)

摘要

批量归一化(BN)是深度学习发展的里程碑技术,使各种网络能够进行训练。然而,随着批处理的大小变得越来越小,当批处理的大小变得更小时,由于批量统计估计的不准确,导致了问题的错误增加。这限制了BN的使用,用于训练更大的模型,并将特性转移到计算机视觉任务,包括检测、分割和视频,这些任务需要小批量的内存消耗。在本文中,我们将群组归一化(GN)作为BN的简单替代品。GN将通道划分为群组,并在每个群组中计算归一化的均值和方差。GN的计算独立于批处理大小,其精度在广泛的批处理大小上是稳定的。在ImageNet上的ResNet-50训练中,当使用2的批量大小时,它的误差比BN要低10.6%;当使用典型的批处理大小时,GN与BN一样好,并且优于其他的归一化变体。此外,GN可以很自然地从预训练转移到微调。在COCO的目标检测和分割方面, GN可以比它的基于BN的对手做得更好,在Kinetics的视频分类方面,在各种任务中,GN可以有效地取代强大的BN。在现代的数据库中,可以通过几行代码轻松地实现GN。

1.介绍

批量归一化(批处理规范或BN)已经被确立为深度学习的一个非常有效的组成部分,很大程度上帮助推动了计算机视觉的前沿发展。BN在一个(小)批处理中计算平均值和方差。许多实践已经证明了这一点,BN可以简化优化并使非常深的网络能够收敛。批处理统计数据的随机不确定性也可以作为一种优化泛化的正则项。BN已经成为了许多最先进的计算机视觉算法的基础。

【译】Group Normalization(组归一化)_第1张图片

图1. ImageNet分类错误与批处理大小。这是一个ResNet-50模型,使用8个GPU在ImageNet训练集中训练,在验证集中进行评估。

尽管BN取得了巨大的成功,但它也表现出了一些缺点,是其沿批量维度的归一化的独特行为导致的。特别是,BN需要一个足够大的批量大小。一个小的批量大小会导致对批统计数据的不准确估计,并且减小BN的批量大小会显著地增加模型的错误率(如图1)。因此,许多最新的模型都采用了非常重要的消耗内存的批量大小。严重依赖BN的有效性去训练模型反过来会阻碍人们探索更有潜力的模型,因为这些模型会受到内存的限制。

对批量大小的限制在计算机视觉任务中要求更高,包括检测、分割、视频识别60、6和其他高级别系统。例如,快速/er和掩模R-CNN框架12、47,181使用一个批大小的1或2个图像,因为分辨率更高,其中BN被“冻结”转换为线性层201;在3D卷积的视频分类中,空间时间特征的存在引入了时间长度和批处理大小之间的权衡。BN的使用经常会使这些系统在模型符号和批量大小之间做出妥协。

这篇论文将群体规范化(GN)作为BN的简单替代品。我们注意到,许多经典的特性,如SIFT和HOG,都是群体智慧的特征,并且涉及到群体的归一化。例如,一个HOG矢量是几个空间单元的结果,每个单元格都由一个标准化的方向直方图表示。类似地,我们将GN作为一个层,将通道分成组,并使每个组中的特征规范化(图2).GN不利用批处理的维度,它的计算独立于批量大小。

在很宽的批处理大小(图1)中,GN的表现非常稳定。在一个2个样本的批量大小的情况下,在ImageNet的ResNet-50中,GN的错误比BN要低10.6%。使用常规的批处理大小,GN的性能与BN相当(有0.5%的差距),并且优于其他的标准化变体。此外,虽然批量大小可能会改变,但GN可以自然地从预训练转移到微调。在Mask R-CNN用于COCO的对象检测和分割,以及用于Kinetics视频分类的3D卷积网络上,与BN相比,GN显示的结果有所改善。在ImageNet、COCO和Kinetics方面,GN的有效性表明,在这些任务中,GN是一种有竞争力的替代方法。

已有的方法,例如层标准化(LN)和实例标准化(IN)(图2),也避免了沿批量维度的标准化。这些方法对于训练序列模型(RNN / LSTM)或生成模型(GAN)是有效的。但正如我们将通过实验证明的那样,LN和IN在视觉识别方面的成功有限,GN为此提供了更好的结果。相反,GN可用于代替LN和IN,因此适用于序列或生成模型。这脱离了本文的重点,但它暗示了未来的研究方向。

2.相关工作

归一化。众所周知,对输入数据进行归一化可以使训练更快。为了归一化隐藏特征,已经基于特征分布的强假设导出了初始化方法,这些假设在训练演化时可能变得无效。

深度网络中的归一化层在BN发展之前已被广泛使用。局部响应归一化(LRN)是AlexNet和之后模型中的一个组件。与最近的方法不同,LRN计算每个像素的小邻域中的统计数据。

批量归一化沿批量维度执行更多全局归一化(并且重要的是,它建议对所有层执行此操作)。 但“批处理”的概念并不总是存在,或者可能会不时发生变化。例如,批量标准化在推理时间时不合理,因此均值和方差通常是通过运行均值从训练集中预先计算的; 因此,测试时没有进行归一化。当目标数据分布改变时,预先计算的统计数据也可能改变。这些问题导致训练,迁移和测试时间不一致。 此外,如前所述,减小批量大小会对估计的批次统计产生巨大影响。

至今已经提出了几种避免利用批量维度的归一化方法。层归一化(LN)沿通道维度操作,实例归一化(IN)执行类似BN的计算,但仅针对每个样本(图2)。 权重归一化(WN)[51]建议对滤波器权重进行归一化,而不是对特征进行操作。这些方法不会受到批量维度引起的问题的影响,但是它们无法在许多视觉识别任务中接近BN的准确性。我们在其余部分的内容中提供了与这些方法的比较。

【译】Group Normalization(组归一化)_第2张图片

图2.归一化方法。 每个子图显示特征图张量,其中N为批轴,C为通道轴,(H,W)为空间轴。 蓝色像素通过相同的均值和方差归一化,通过聚合这些像素的值来计算。

解决小批量问题。 Ioffe提出了批量重整化(BR),它可以减轻BN涉及小批量的问题。BR引入了两个额外的参数,这些参数限制了BN在一定范围内的估计平均值和方差,减小了批量小时的漂移。在小批量体系中,BR比BN具有更好的准确性。但BR也是依赖于批次的,当批量大小减小时,其准确度仍会降低。

还有人试图避免使用小批量。对象检测器执行同步BN,其均值和方差在多个GPU上计算。但是,这种方法不能解决小批量的问题; 相反,它使用与BN要求成比例的多个GPU将算法问题迁移到工程和硬件需求。此外,同步BN计算防止使用异步求解器(ASGD),这是工业中广泛使用的大规模训练的实用解决方案。这些问题可能会限制使用同步BN的范围。

我们的规范化方法不是解决批量统计计算,而是内在地避免了这种计算。

分组计算。 AlexNet已经提出了用于将模型分发到两个GPU中的组卷积。最近,群体作为模型设计维度的概念得到了更广泛的研究。ResNeXt的工作研究了深度,宽度和群体之间的权衡,并且它表明,在类似的计算成本下,更多的群体可以提高准确性。MobileNet和Xception利用通道方式(也称为“深度方向”)卷积,这些卷积是具有等于通道数的组数的群组卷积。ShuffleNet提出了一种通道混洗操作,它可以置换分组特征的轴。这些方法都涉及将通道维度划分为组。 尽管与这些方法有关,但GN不需要组卷积。GN是一个通用层,正如我们在标准ResNets中评估的那样。

3.组归一化

视觉表征的通道并不完全独立。 SIFT,HOG和GIST的经典特征是按组设计的分组表示,其中每组信道由某种直方图构成。 这些特征通常通过每个直方图或每个方向上的分组归一化来处理。 诸如VLAD和Fisher矢量(FV)之类的更高级特征也是分组特征,其中组可以被认为是关于聚类计算的子矢量。

类似地,没有必要将深度神经网络特征视为非结构化向量。例如,对于网络的conv1(第一卷积层),期望滤波器及其水平翻转在自然图像上表现出类似的滤波器响应分布是合理的。如果conv1碰巧大约学习这对滤波器,或者如果通过设计将水平翻转(或其他变换)设置到架构中,则可以将这些滤波器的相应信道一起归一化。

更高层次的层次更抽象,行为也不那么直观。 然而,除了取向(SIFT,HOG或[11,8])之外,还有许多因素可能导致分组,例如频率,形状,照明,纹理。 它们的系数可以相互依赖。事实上,神经科学中一个广为接受的计算模型是归一化细胞反应,“各种感受野中心(覆盖视野)和各种时空频率调谐”; 这不仅可以在初级视觉皮层中发生,也可以在“整个视觉系统”中发生。 在这些工作的推动下,我们为深度神经网络提出了新的通用层组归一化。

3.1.公式

我们首先描述特征归一化的一般公式,然后在该公式中呈现GN。一系列特征归一化方法(包括BN,LN,IN和GN)执行以下计算:          

 

  

这里x是由层计算的特征,i是索引。 在2D图像的情况下,i =(iN,iC,iH,iW)是以(N,C,H,W)顺序索引特征的4D矢量,其中N是批轴,C是通道轴, H和W是空间高度和宽度轴。

(1)中的μ和σ是由下式计算的平均值和标准差(std):

ε作为一个小常数。 Si是计算均值和标准差的像素集合,m是该集合的大小。许多类型的特征归一化方法主要在于如何定义集合Si(图2),如下所述。在Batch Norm中,集合Si定义为:

其中ic(和kc)表示沿C轴的i(和k)的子索引。这意味着共享相同信道索引的像素被一起归一化,即,对于每个信道,BN沿(N,H,W)轴计算μ和σ.在Layer Norm中,集合是:

意味着LN计算每个样品沿(C,H,W)轴的μ和σ。在Instance Norm中,该集合是:

意味着IN计算每个样本和每个通道沿(H,W)轴的μ和σ。BN,LN和IN之间的关系如图2所示。

如[26]中所述,BN,LN和IN的所有方法都学习了一个每通道线性变换,以补偿表示能力的可能丢失:

其中γ和β是可训练的比例和移位(在所有情况下由iC索引,我们省略了简化符号)。

组归一化。形式上,Group Norm层计算集合Si中的μ和σ,定义为:

这里G是组的数量,它是预定义的超参数(默认情况下G = 32)。 C / G是每组的通道数。∙是下截断,表示索引i和k在同一组通道中,假设每组通道沿C轴按顺序存储。 GN沿(H,W)轴和沿一组通道计算μ和σ。GN的计算在图2(最右边)中示出,这是2组(G = 2)的简单情况,每组具有3个信道。

在等式(7)中给出Si,GN层由等式(1),(2)和(6)定义。具体地,同一组中的像素通过相同的μ和σ一起归一化。GN还学习每个通道的γ和β。

与先前工作的关系。 LN,IN和GN都沿着批处理轴执行独立计算。GN的两个极端情况等同于LN和IN(图2)。

与层归一化的关系。如果我们将组号设置为G = 1,则GN变为LN .LN假设层中的所有通道都做出“类似的贡献”。与[3]中研究的全连通层的情况不同,如[3]中所讨论的,这种假设对于卷积的存在可能不太有效。GN比LN受限制更少,因为假设每组通道(而不是所有通道)都受共享均值和方差的影响; 该模型仍然具有为每个群体学习不同分布的灵活性。这导致GN相对于LN的代表能力提高,正如实验中较低的训练和验证误差所示(图4)。

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

3.2实现

GN可以通过PyTorch和TensorFlow中的几行代码轻松实现,其中支持自动区分。图3显示了基于TensorFlow的代码。实际上,我们只需要指定如何沿着归一化方法定义的适当轴,计算均值和方差(“矩”)。

 

def GroupNorm(x, gamma, beta, G, eps=1e − 5):
    # x: input features with shape [N,C,H,W]
    # gamma, beta: scale and offset, with shape [1,C,1,1]
    # G: number of groups for GN
    N, C, H, W = x.shape
    x = tf.reshape(x, [N, G, C // G, H, W])
    mean, var = tf.nn.moments(x, [2, 3, 4], keep dims=True)
    x = (x − mean) / tf.sqrt(var + eps)
    x = tf.reshape(x, [N, C, H, W])
    return x ∗ gamma + beta

                                                             图3.基于TensorFlow的Group Norm的Python代码

实验

4.1. ImageNet中的图像分类

我们在ImageNet分类数据集中进行了1000个类的实验。我们使用ResNet模型在大约1.28M训练图像上训练、在50,000个验证图像上评估。

实施细节。作为标准实践,我们使用8个GPU来训练所有模型,并且在每个GPU内计算BN的批量均值和方差。我们使用[19]的方法来初始化所有模型的所有卷积。我们使用1来初始化所有γ参数,除了每个残余块的最后归一化层,其中我们在[16]之后将γ初始化为0(使得残余块的初始状态具有同一性)。对于所有重量层,我们使用0.0001的重量衰减,包括γ和β(类似于[17],但与[20,16]不同)。我们为所有模型训练100个时期,并在30,60和90个时期将学习率降低10倍。在训练期间,我们采用[17]所实现的[58]的数据增加。我们评估验证集中224×224像素的中心作物的前1个分类错误。为了减少随机变化,我们报告了最后5个时期的中位误差率[16]。其他实现细节类似于[17]。

我们的基础网络是使用BN训练的ResNet [20]。为了与LN,IN和GN进行比较,我们将BN替换为特定变体。我们对所有模型使用相同的超参数。我们默认为GN设置G = 32。

特征归一化方法的比较。我们首先尝试使用常规批量大小的32个图像(每个GPU)。BN在这种制度下成功运作,因此这是一个强有力的用来比较的基准。图4显示了误差曲线,表1显示了最终结果。

图4显示所有这些归一化方法都能够收敛。与BN相比,LN的降解率为1.7%。这是一个令人鼓舞的结果,因为它表明卷积网络的所有通道(如LN所做的)的标准化是相当好的。 IN也使模型收敛,但比BN差4.8%。

【译】Group Normalization(组归一化)_第3张图片

图4.错误曲线与批量大小为32个图像/ GPU的比较。 我们展示了ImageNet训练错误(左)和验证错误(右)与训练时期的数量。 该模型是ResNet-50。

在BN运行良好的这种情况下,GN能够接近BN的准确度,在验证集中降低0.5%。 实际上,图4(左)显示GN的训练误差低于BN,表明GN对于简化优化是有效的。 GN的稍高验证误差意味着GN失去了BN的一些正则化能力。 这是可以理解的,因为BN的均值和方差计算引入了随机批量采样引起的不确定性,这有助于正则化[26]。 GN(和LN / IN)中缺少这种不确定性。 但GN可能与合适的正则化器相结合将改善结果。 这可能是未来的研究课题。

【译】Group Normalization(组归一化)_第4张图片

图5.对批量大小的敏感性:ResNet-50的BN(左)和GN(右)的验证错误用32,16,8,4和2图像/ GPU训练。

表1. ImageNet验证集中ResNet-50的错误率(%)的比较,使用批量大小为32的图像/ GPU进行训练。误差曲线如图4所示。

表2.批量大小的灵敏度。 我们在ImageNet中显示ResNet-50的验证错误(%)。 最后一行显示了BN和GN之间的差异。 误差曲线如图5所示。该表在图1中可视化。

小批量。 尽管BN在某些情况下受益于随机性,但当批量变小且不确定性变大时,其误差会增加。 我们在图1,图5和表2中显示了这一点。

我们评估每个GPU的批量大小为32,16,8,4,2个图像。 在所有情况下,BN均值和方差在每个GPU内计算并且不同步。 所有型号均采用8个GPU进行培训。 在这组实验中,我们采用线性学习速率缩放规则[31,4,16]来适应批量大小的变化 - 我们使用的学习率为0.1 [20],批量大小为32,并且0.1N / 32 对于批量大小为N.如果总批量大小发生变化(通过更改GPU的数量)但是perGPU批量大小不会改变,则此线性缩放规则适用于BN [16]。 对于所有情况,我们保持相同数量的训练时期(图5,x轴)。 所有其他超参数都保持不变。

【译】Group Normalization(组归一化)_第5张图片

图6.来自VGG-16的conv53输出(归一化和ReLU之前)的特征分布的演变,显示为响应的{1,20,80,99}百分位数。 右侧的表格显示了ImageNet验证错误(%)。 使用32个图像/ GPU训练模型。

表3.组划分。 我们在ImageNet中展示ResNet-50的验证错误(%),使用32个图像/ GPU进行训练。 (上):给定数量的群体。 (下):每组给定数量的频道。 最后一行显示最佳数字的差异。

【译】Group Normalization(组归一化)_第6张图片

图5(左)显示小批量大小时BN的误差会大大增加。 GN的行为更稳定,对批量大小不敏感。实际上,图5(右)显示GN具有非常相似的曲线(受随机变化影响),适用于从32到2的各种批量大小。在批量大小为2的情况下,GN的错误率比错误率低10.6%。其BN对应物(24.1%对34.7%)。

这些结果表明批量均值和方差估计可能过于随机且不准确,尤其是当它们在4或2个图像上计算时。然而,如果从1个图像计算统计量,则该随机性消失,在这种情况下,BN在训练时变得类似于IN。我们看到IN比BN具有更好的结果(28.4%),批量为2(34.7%)。

表2中GN的强大结果证明了GN的强度。它允许移除由BN施加的批量大小约束,这可以提供相当多的存储器(例如,16倍或更多)。这将有可能训练更高容量的模型,否则会受到内存限制的瓶颈。我们希望这将为建筑设计创造新的机会。

与批归一化(BR)的比较。 BR [25]引入了两个额外的参数([25]中的r和d),它们约束了BN的估计均值和方差。它们的值由rmax和dmax控制。为了将BR应用于ResNet-50,我们仔细选择了这些超参数,发现rmax = 1.5和dmax = 0.5对ResNet-50最有效。

批量为4,用BR培训的ResNet-50的错误率为26.3%。这比BN的27.3%好,但仍比GN​​的24.2%高出2.1%。

组划分。到目前为止,所有呈现的GN模型都使用G = 32的组编号进行训练。接下来,我们评估不同的分组方式。对于给定的固定组数,GN对我们研究的所有G值都表现得相当好(表3,上图)。在G = 1的极端情况下,GN等于LN,并且其错误率高于所研究的G> 1的所有情况。

我们还评估了每组固定通道的数量(表3,下图)。请注意,由于图层可以具有不同的通道编号,因此在此设置中,组编号G可以跨层更改。在每组1个通道的极端情况下,GN等同于IN。即使每组使用少至2个通道,GN的误差也远低于IN(25.6%对28.4%)。此结果显示执行规范化时分组通道的效果。

更深的模型。我们还将ResNet-101上的GN与BN进行了比较[20]。批量大小为32,我们的ResNet-101的BN基线有22.0%的验证错误,GN对应的22.4%,略差0.4%。批量大小为2时,GN ResNet-101的错误率为23.0%。考虑到非常小的批量,这仍然是一个相当稳定的结果,它比BN对应的31.9%好8.9%。

VGG模型的结果和分析。为了研究GN / BN与没有标准化相比,我们认为VGG-16 [56]可以在没有标准化层的情况下进行健康训练。我们在每个卷积层之后立即应用BN或GN。图6显示了conv53(最后一个卷积层)的特征分布的演变。 GN和BN在性质上相似,但与不使用标准化的变体显着不同;对于所有其他卷积层也观察到这种现象。这种比较表明,执行标准化对于控制特征的分布至关重要。

对于VGG-16,GN比BN好0.4%(图6,右)。 这可能意味着VGG-16受益于BN的正则化效应,而GN(导致较低的训练误差)在这种情况下优于BN。

4.2. COCO中的目标检测与分割

接下来,我们评估微调模型以转移到对象检测和分割。这些计算机视觉任务通常受益于更高分辨率的输入,因此在通常的实践中批量大小往往很小(1或2个图像/ GPU [12,47,18,36])。结果,BN变成线性层,其中μ和σ是从预训练模型预先计算并冻结的[20]。我们将其表示为BN *,实际上在微调期间不执行归一化。我们还尝试了一种微调BN(执行标准化而不是冻结)的变体,发现它工作效果很差(减少~6 AP,批量大小为2),因此我们忽略了这种变体。

我们在Mask R-CNN基线[18]上进行了实验,在公众可用的Detectron代码库[13]中实现。我们使用与[13]中相同的超参数的端到端变体。我们使用ImageNet预先培训的相应模型在微调期间用GN替换BN *。在微调期间,我们对γ和β参数使用0的权重衰减,这对于调整γ和β时的良好检测结果很重要。我们使用批量大小的1个图像/ GPU和8个GPU进行微调。

这些模型在COCO train2017中进行训练,并在COCO val2017组(a.k.a minival)中进行评估。我们报告了平均精度(AP),AP50和AP75的标准COCO指标,用于边界框检测(APbbox)和实例分割(APmask)。

C4骨干的结果。表4显示了使用conv4骨架(“C4”[18])在Mask R-CNN上GN与BN *的比较。这个C4变体使用ResNet的conv4层来提取特征图,而ResNet的conv5层作为感兴趣区域(RoI)的头部用于分类和回归。由于它们是从预先训练的模型继承的,因此骨架和头部都涉及归一化层。

在此基线上,GN通过1.1盒AP和0.8掩码AP改善了BN *。我们注意到预训练的GN模型比ImageNet中的BN略差(24.1%对比23.6%),但GN仍然优于BN *进行微调。 BN *在训练前和微调(冻结)之间产生不一致,这可能解释了退化。

我们还尝试了LN变体,发现它比GN差了1.9箱AP,比BN *差了0.8。虽然LN也与批量大小无关,但其代表性能力弱于GN。

FPN骨干的结果。接下来,我们使用特征金字塔网络(FPN)骨干[35]比较掩模R-CNN上的GN和BN *,这是COCO当前最先进的框架。与C4变体不同,FPN利用所有预先训练的层来构建金字塔,并将随机初始化的层作为头部附加。在[35]中,箱头由两个隐藏的完全连接层(2fc)组成。我们发现用4conv1fc替换2fc箱头(类似于[48])可以更好地利用GN。结果比较见表5。

作为基准,BN *使用4conv1fc头具有38.6盒AP,与使用相同预训练模型(38.5AP)的2fc对应物相当。通过将GN添加到箱头的所有卷积层(但仍然使用BN *主干),我们将箱AP增加0.9到39.5(第2行,表5)。这种消融表明GN检测的很大一部分来自头部的标准化(这也是由C4变体完成的)。相反,将BN应用于箱头(每个图像具有512个RoI)并不能提供令人满意的结果,并且~9 AP更差 - 在检测中,批量的RoI从同一图像中采样并且它们的分布不是iid,和非iid分配也是降低BN批量统计估计的一个问题[25]。 GN不会遇到这个问题。

接下来,我们用基于GN的对应物替换FPN骨干,即在微调期间使用GN预训练模型(第3行,表5)。将GN应用于骨干单独贡献0.5 AP增益(从39.5到40.0),这表明GN在传输特征时有帮助。

表4.使用具有ResNet-50 C4的掩模R-CNN在COCO中检测和分割消融结果。 BN *表示BN被冻结。

【译】Group Normalization(组归一化)_第7张图片

表5.使用具有ResNet-50 FPN的掩模R-CNN和4conv1fc边界框头的COCO中的检测和分割消融结果。 BN *表示BN被冻结。

 

【译】Group Normalization(组归一化)_第8张图片

表6.使用掩模R-CNN和FPN在COCO中的检测和分割结果。 这里BN *是默认的Detectron基线[13],GN应用于骨干,盒头和掩模头。

“长”意味着训练更多迭代。 这些结果的代码在https://github.com/facebookresearch/Detectron/blob/master/projects/GN中。

 

【译】Group Normalization(组归一化)_第9张图片

【译】Group Normalization(组归一化)_第10张图片

图7. Kinetics中的误差曲线,输入长度为32帧。 我们使用批量大小为8和4的剪辑/ GPU显示ResNet-50 I3D的BN(左)和GN(右)的验证错误。 监控的验证错误是与训练集相同的数据增强下的1-clip错误,而表8中的最终验证准确度是没有数据增强的10-clip测试。

表7.使用掩模R-CNN和FPN在COCO中从头开始训练的检测和分割结果。 这里的BN结果来自[34],并且BN在GPU之间同步[43]并且没有被冻结。 这些结果的代码在https://github.com/facebookresearch/Detectron/blob/master/projects/GN中。

【译】Group Normalization(组归一化)_第11张图片

表8. Kinetics中的视频分类结果:ResNet-50 I3D基线的前-1 /前5精度(%)。

【译】Group Normalization(组归一化)_第12张图片

表6显示了与基于BN *的标准Detectron基线[13]相比,GN(应用于骨干,盒头和掩模头)的完整结果。使用与[13]相同的超参数,GN比BN *增加了一个健康的边际。此外,我们发现GN没有完全按照[13]中的默认时间表进行训练,因此我们也尝试将迭代次数从180k增加到270k(BN *不会受益于更长的训练)。我们的最终ResNet-50 GN模型(“长”,表6)是2.2点盒AP和1.6点掩模AP比其BN *变体更好。

从头开始训练Mask R-CNN。 GN允许我们从头开始轻松调查训练对象探测器(无需任何预训练)。我们在表7中显示了结果,其中GN模型被训练为270k次迭代。据我们所知,我们的数据(41.0盒AP和36.4面罩AP)是迄今为止COCO报告中最好的从头开始;它们甚至可以与表6中的ImageNet预训练结果竞争。作为参考,使用同步BN [43],并发工作[34]使用R50(表7)和36.3实现了34.5箱AP的从头开始的结果使用专门的骨干。

表8. Kinetics中的视频分类结果:ResNet-50 I3D基线的前-1 /前5精度(%)。

4.3. Kinetics视频分类

最后,我们评估了Kinetics数据集中的视频分类[30]。许多视频分类模型[60,6]将特征扩展到3D时空维度。这对内存要求很高,并且对批量大小和模型设计施加了限制。

我们尝试使用Inflated 3D(I3D)卷积网络[6]。我们使用[62]中描述的ResNet-50 I3D基线。这些模型是从ImageNet预先培训的。对于BN和GN,我们将归一化从over(H,W)扩展到over(T,H,W),其中T是时间轴。我们在400级 Kinetics训练集中训练并在验证集中进行评估。我们报告了前1和前5的分类准确度,使用标准的10剪辑测试,平均定期采样的10个剪辑的softmax分数。

我们研究了两种不同的时间长度:32帧和64帧输入剪辑。从原始视频中定期采样帧间隔为2的32帧剪辑,并连续采样64帧剪辑。该模型在时空中是完全卷积的,因此64帧变体消耗大约2倍的内存。我们研究了32帧变体的8或4个剪辑/ GPU的批量大小,以及由于内存限制而针对64帧变体的4个剪辑/ GPU。

32帧输入的结果。表8(第1栏,第2列)显示了使用32帧剪辑的 Kinetics中的视频分类准确度。对于批量大小为8,GN略差

BN的前1精度为0.3%,前5精度为0.1%。这表明当BN运行良好时,GN与BN竞争。对于4的较小批量,GN的精度保持相似(72.8 / 90.6对73.0 / 90.6),但优于BN的72.1 / 90.0。当批量大小从8减少到4时,BN的准确度降低了1.2%。

图7显示了误差曲线。当批量大小从8减少到4时,BN的误差曲线(左)有明显的间隙,而GN的误差曲线(右)非常相似。

64帧输入的结果。表8(第3栏)显示了使用64帧剪辑的结果。在这种情况下,BN的结果为73.3 / 90.8。这些似乎是可接受的数字(相对于32帧的批量大小为73的73.3 / 90.7),但是时间长度(64对32)和批量大小(4对8)之间的权衡可能被忽略了。比较col。 3和col。在表8中的2中,我们发现时间长度实际上具有正面影响(+ 1.2%),但它受到BN对较小批量大小的负面影响的掩盖。

GN没有遭受这种权衡。 GN的64帧变体具有74.5 / 91.7的准确度,显示出其BN对应物和所有BN变体的健康增益。 GN帮助模型从时间长度中受益,并且较长的剪辑在相同批量大小的情况下将前1精度提高1.7%(前5个1.1%)。

GN在检测,分割和视频分类方面的改进表明GN在这些任务中是强大且当前占主导地位的BN技术的强有力替代品。

5.讨论和未来工作

我们已经将GN作为有效而不利用批量维度的归一化层。我们已经评估了GN在各种应用程序中的行为。然而,我们注意到BN已经如此有影响力,以至于已经为它设计了许多最先进的系统及其超参数,这对于基于GN的模型可能不是最佳的。重新设计系统或为GN搜索新的超参数可能会产生更好的结果。

此外,我们已经证明GN与LN和IN有关,这两种标准化方法在训练循环(RNN / LSTM)或生成(GAN)模型方面特别成功。这表明我们将来会在这些领域研究GN。我们还将研究GN在强化学习(RL)任务的学习表示方面的表现,例如[54],其中BN在训练非常深的模型中起着重要作用[20]。

致谢。我们要感谢Piotr Dollar和Ross Girshick的建设性的讨论。


注:四种归一化的理解

BatchNorm:batch方向做归一化,计算N*H*W的均值
LayerNorm:channel方向做归一化,计算C*H*W的均值
InstanceNorm:一个channel内做归一化,计算H*W的均值
GroupNorm:先将channel方向分group,然后每个group内做归一化,计算(C//G)*H*W的均值

你可能感兴趣的:(论文翻译)