没有合适的资源?快使用搜索试试~ 我知道了~
181290增强您的批次:通过实例重复改善泛化能力0Elad Hoffer 1,Tal Ben-Nun 2,Itay Hubara 1,Niv Giladi 3,Torsten Hoe�er 2,Daniel Soudry 301 Habana-Labs,以色列Caesarea 2 ETHZurich计算机科学系,瑞士 3Technion电气工程系,以色列海法0{ elad.hoffer,daniel.soudry,itayhubara } @gmail.com0{ talbn,htor } @inf.ethz.ch0giladiniv@cs.technion.ac.il0摘要0大批量SGD对于深度神经网络的训练具有重要意义。然而,如果不进行优化超参数调度的微调,模型的泛化可能会受到阻碍。我们提出使用批量增强:在同一批次中复制样本实例,并进行不同的数据增强。批量增强作为正则化器和加速器,增加了泛化和性能扩展,同时保持固定的优化步骤预算。我们分析了批量增强对梯度方差的影响,并证明它在各种网络和数据集上经验性地改善了收敛性。我们的结果表明,批量增强减少了达到与最先进方法相同准确性所需的SGD更新次数。总体而言,这种简单而有效的方法通过同时使用更多的计算资源实现了更快的训练和更好的泛化能力。01. 引言0深度神经网络训练是一个计算密集型问题,其性能受到随机梯度下降(SGD)算法的顺序性的固有限制。在算法的常见变体中,每个步骤使用一批样本进行梯度计算,累积结果以计算下降方向。批量计算实现了数据并行性[2],这对于将训练扩展到大量处理单元是必要的。在减轻准确性降级的同时增加批量大小是ML和系统社区的研究重点[8,19,13,23,25,40]。[29]全面研究了批量大小和收敛之间的关系,而0其他工作侧重于增加特定设置或硬件的并行性。使用这些技术,可以将成功训练ResNet-50 [9]在ImageNet[5]数据集上的时间缩短到132秒[40],到达性能瓶颈报告为输入数据处理(I /O)时间的程度。支持大批量训练的关键通常涉及微调基础学习率(LR),每层LR[41],LR调度[8,41]或优化步骤[15,10,25]。这些方法通常使用更高的LR来解决大批量更新中较低梯度方差的问题。然而,如果不进行微调,大批量训练通常会导致泛化能力下降。有人提出[14],这是由于此类低方差更新趋向于收敛到“尖锐的极小值”。在这项工作中,我们提出了批量增强(BA),它可以在增加批量大小的同时控制梯度方差。使用更大的增强批次,我们可以更好地利用计算资源,而无需额外的I /O成本。事实上,甚至可以在采用现有的标准LR调度的情况下实现更好的泛化准确性。0我们的主要贡献是:0• 引入BA及其可能的用途。0• BA属性,资源利用和梯度方差的实证结果。0•在多GPU节点和拥有5,704个GPU的Cray超级计算机上的收敛结果。01.1. 神经网络的大批量训练0最近的研究[10],[8],[41]等表明,通过调整优化方案(即超参数调度),大批量训练可以达到同样好的效果。81300与使用小批量进行训练相比,大批量训练可以获得(有时甚至更好的)泛化性能。0[10]认为优化模型的质量源于SGD迭代的次数,而不是通过训练数据的循环次数(周期),并根据批量大小增加步骤的数量。然后,他们使用额外的周期训练ImageNet,适应降低学习率的点(Regime Adaptation),并在称为GhostBatchNormalization(GBN)的过程中对批次的子集进行归一化。这样做可以在不降低准确性的情况下训练ImageNet。0[8]使用批量大小为8192,并采用“渐进预热”方案,在5个周期后将学习率线性增加到基准学习率,之后再正常恢复。[41]通过使用层自适应速率缩放(LARS)将批量大小增加到32768,同时采用温化后的多项式学习率衰减,准确性有所降低。[40]采用分布式批量归一化和梯度累积,以每批32768个图像和1024个TPU设备的方式保持在ImageNet上的验证准确性。[13]使用16位浮点数(“半精度”)并进一步调整超参数(例如权重衰减)以减少通信并实现批量大小为65536的训练。0其他大批量方法在训练过程中利用二阶信息。Neumann优化器[15]使用Neumann级数的一阶逆Hessian近似,能够在不降低准确性的情况下训练高达32000个批次的样本,尽管当使用1600个批次时收敛最快。Kronecker分解(K-FAC)二阶逼近也用于加速深度神经网络训练的收敛[25],在1024个节点上,批量大小为32768,在45个周期后在ImageNet上实现了74.9%的验证准确率。0相反,[21]认为小批量更新可能仍然比大批量更新提供更好的结果,在多个任务上表现更好,并对超参数选择具有更高的鲁棒性。然而,这种情况下的训练过程是顺序的,不能在多个处理单元上进行分布式处理。[28]的一项广泛调查表明,能够扩展到大批量大小高度依赖于所使用的模型。还指出,训练的最佳值与批量大小之间没有一致的简单关系。具体而言,研究表明常见的学习率启发式方法在所有任务和批量大小上都不适用。0批量增强使得大批量训练的所有好处都能得到保留,同时保持输入示例数量不变,并最小化超参数的数量。此外,它还改善了泛化性能以及硬件利用率。我们现在继续讨论现有的数据增强技术,我们将在批量增强中使用这些技术。01.2. 数据增强入门0现代神经网络训练中的常见做法是使用数据增强——对每个输入样本应用不同的变换。例如,在图像分类任务中,对于任何输入图像,都会对其应用随机大小和比例的裁剪,可能还包括旋转、镜像甚至颜色抖动[17]。数据增强已被反复证明在提供有效和有用的正则化方面非常有效,即使在半监督设置中也是如此[39],通常占据最终泛化性能的相当大一部分[42,6]。有几种方法试图学习如何生成良好的数据增强。例如,基于训练集分布的贝叶斯方法[34],基于GAN的生成方法[1,31]和搜索方法旨在找到最佳的数据增强策略[4]。我们的方法与这些方法是正交的,通过将它们结合起来可以获得更好的结果。其他正则化方法,如Dropout[32]或ZoneOut[18],虽然没有明确被视为数据增强技术,但可以将它们视为对中间层输入的随机变换。这些方法在各种任务中也被证明对模型有益。另一种相关的正则化技术称为“Mixup”,由[43]引入。Mixup使用来自两个不同类别的单独样本的混合输入,并使用相同数量的标签混合它们作为目标。02. 批量增强0在这项工作中,我们建议通过在同一批次中使用多个样本的多个实例来利用数据增强和大批量训练的优点。我们考虑一个带有损失函数ℓ(w,xn,yn)的模型,其中{xn,yn}Nn= 1是一个包含N个数据样本-目标对的数据集,其中xn ∈X,T:X →X是应用于每个示例的数据增强变换,例如图像的随机裁剪。每个批次的常见训练过程包括以下更新规则(为了简单起见,这里使用带有学习率η和批量大小B的普通SGD):0wt + 1 = wt - η10B0n ∈B(k(t))�wℓ(wt,T(xn),yn)0其中k(t)从[N/B]中采样,B(t)是批次t中的样本集合,并且我们假设为简单起见,B可以整除N。我们建议通过应用变换Ti,这里用下标i ∈[M]表示它们彼此不同,来引入相同输入样本的M个多个实例。我们现在使用稍微修改后的规则:̸81310修改后的学习规则:0wt + 1 = wt - η10M ∙ B0M 0i = 10n ∈B(k(t))�wℓ(wt,Ti(xn),yn)0有效地使用由B个样本增强的M∙B组成的批量。我们注意到,这个更新规则可以通过在整个M∙B批次上进行计算,或者通过累积M个原始梯度计算的实例来计算。作为批量增强的一部分,可以将其用于转换中间层,而不仅仅是输入。例如,我们可以使用常见的Dropout正则化方法[32]在给定层中生成同一样本的多个实例,每个实例都有自己的Dropout掩码。批量增强可以在任何框架中轻松实现,包括参考PyTorch和TensorFlow实现1。为了进一步突出这些思想的易于整合性,我们注意到通过仅修改输入管道 -对馈送到模型的每个批次进行增强 -就可以将BA添加到任何训练代码中。02. 使用数据增强来对抗大批量问题0标准批量SGD将梯度平均化到不同的样本上,而BA还将梯度平均化到同一样本的多个变换实例T(xn)上。增强实例描述了相同的样本,通常只有微小的变化,并且在批次内产生相关的梯度。BA可以实现比1/B减少更低的方差减少,这可能会导致不相关的B个样本的和。为了实现这种减少的方差减少,我们必须对T做出某些必要的条件。具体来说,数据增强应该被设计成期望产生与原始样本更相关的梯度,而不是输入数据集中的其他样本。更正式地说,0n ∈ [N] � Corr � �(n)w,�wℓ(w,T(xn),yn)��0> n,m ∈ [N],n ≠ m � Corr ��(n)w,�(m)w ��0对于�(n)w ��wℓ(w,xn,yn)。稍后,在第3节中,我们将测量实际使用的数据增强的效果,并显示该属性对于标准图像分类数据集是保持的。因此,BA减少的方差较少,因为它01可在https://github.com/eladhoffer/convNet.pytorch上找到。0添加了与梯度平均高度相关的额外样本。这种减少方差的方法可能有助于缓解大批量训练问题,我们将在下面解释。之前的研究[14, 24,38]表明,大批量训练问题可能是由于SGD训练过程中的隐式偏差引起的:对于大批量大小,SGD选择了与小批量训练选择的原始极小值相比具有更差泛化性能的不同(“新”)极小值。可以通过将学习率增加到特定值[10,8]来部分缓解这个问题,这将使这些新的极小值再次无法访问,同时保持原始极小值的可访问性。然而,[28]观察到如何随着批量大小的变化来改变学习率并没有通用的有效规则-因为其与批量大小的最佳缩放可能会随着模型、数据集或其他超参数的变化而变化。此外,仅仅改变学习率可能对于非常大的批量大小来说是不够的,因为最终SGD可能无法区分新的和原始的极小值。在附录(第A节)中,我们对这些问题进行了正式处理,并解释了BA的减少方差减少性质可能有助于对抗这些问题的原因。因此,与标准的大批量训练相比,批量增强使模型能够在修改优化动态较少的情况下训练更多的增强样本。03. 描述批量增强0我们继续对批量增强的不同方面进行经验研究,包括梯度相关性和方差的测量,以及增强批次的性能和利用率分析。0数据增强为了分析BA的方差减少,我们经验性地表明数据增强T满足它们在期望中创建相关梯度的假设。表1列出了在Cifar10数据集上的ResNet-44的初始化、经过5个epoch和在93个epoch收敛后的验证准确率和中位数相关性(100个样本)之间的关系。从表中可以清楚地看到,增强产生的梯度比不同类别的图像甚至同一类别的图像之间的梯度更相关。此外,Cutout增强略微减小了增强图像和同一类别不同图像之间的差距。至于网络状态,当使用随机权重时,同一类别的所有梯度都与彼此相关。结果再次证实,增强产生的梯度比不同类别的图像甚至同一类别的图像之间的梯度更相关。此外,结果表明,首先,为了学习分类某一类别的图像,存在一个特定的期望下降方向,而与实际样本无关。随着训练的进行,相关性逐渐减小。Table 1:ResNet-44 Gradient correlation on Cifar10.We measure the Pearson correlation coefficient ρ be-tween random images and augmented versions thereofρ (x, T (x)), as well as for random images of the same classρ (x, y) and different classes ρ (z, w). Augmentation types:RC=Random Crop, F=flip, CO=Cutout.81320图1:基线(M=1)和批量增强(M∈{2,4,8,16,32})之间的梯度L2范数比较(ResNet44 +cutout,Cifar10,B=64)0表1:Cifar10上的ResNet-44梯度相关性。我们测量随机图像和增强图像之间的Pearson相关系数ρ(x, T(x)),以及同一类别的随机图像ρ(x, y)和不同类别的ρ(z,w)。增强类型:RC=随机裁剪,F=翻转,CO=Cutout。0方差减少为了经验性地评估BA中方差减少的效果,我们在第4.1节描述的设置中测量了训练过程中权重梯度的L2范数。我们使用L2范数作为方差减少的代理,因为每个梯度可以看作是一个随机变量。正如预期的那样,方差减少在范数值中得到了反映,如图1所示。0测量网络状态0初始 部分训练 完全训练0Epoch 0 5 93 验证准确率 9.63% 63.24% 95.43%0ρ(x, T(x)) (RC,F) 0.99 ± 0 0.56 ± 0.09 0.13 ± 0.13 ρ(x, T(x)) (RC,F,CO) 0.99 ± 0 0.51± 0.08 0.09 ± 0.08 ρ(x, y) 0.99 ± 0 0.42 ± 0.06 0.04 ± 0.03 ρ(z, w) -0.11 ± 0.01-0.04 ± 0.06 0 ± 0.020性能并行算法的理论理解可以从操作总数和它们之间的最长依赖路径中得出,这是一个衡量顺序部分对计算时间的基本限制的指标(即工作深度模型[3])。在BA和标准大批量训练中,操作总数(工作)与总批量大小即M∙B成比例增加。然而,顺序部分(深度)与SGD迭代次数成反比,因为计算速度更快。0在BA中,可以通过LR调度或标准大批量训练中的更短epoch来减少串行化。从本质上讲,可以通过增加更多的工作来减少串行化,从而增加平均并行性。考虑到I/O和通信,BA在标准大批量训练中也具有优势。BA减少了对外部数据的依赖,因为在每次迭代中,每个处理器都可以读取输入并在本地应用增强。这增加了在最先进的实现中的可扩展性,其中输入处理管道是当前的瓶颈[40]。另一方面,每次迭代的通信受参与处理元素的数量的控制,其中的成本与标准大批量训练相当。我们的实证结果(例如图4)表明,在BA中,随着M的增加,迭代次数确实可以减少。这表明,完成时间可以保持恒定,并具有更好的泛化性能。因此,BA与大批量结合,为神经网络训练的工作和深度之间的一个有趣的权衡空间打开了。04. 收敛分析0为了评估批量增强(BA)的影响,我们使用了几个常见的数据集和基于神经网络的模型。对于每个模型,除非明确说明,我们使用原始的训练方案和数据增强来测试我们的方法。为了支持我们的观点,我们对比了BA与两个单独的基线——一个具有相同数量的训练迭代次数,另一个额外具有相同数量的已见样本(通过增大使用的批量大小实现)。对于大批量情况,我们还使用了先前工作中建议的替代学习率进行测量[8,28]。04.1. Cifar10/1000我们首先使用了由[16]引入的流行的图像分类数据集Cifar10/100。对于这两个数据集,常见的数据增强技术由[9]描述。在这种方法中,输入图像在每个边缘、顶部和底部都填充了4个零值像素。然后从填充的图像中随机裁剪出一个32×32的部分,并以0.5的概率进行水平翻转。这种增强方法的可能变换空间相对较小(9×9×2=162),因此即使是M≈10的同时实例也很快耗尽。因此,我们推测使用更激进的增强技术,具有更大的选项空间,将在使用批量增强时产生更明显的差异。我们选择使用最近引入的“Cutout”[6]方法,据说可以显著提高模型在各种数据集上的泛化能力。Cutout在图像中使用随机位置的零值方块,从而将可能的变换数量增加了30^2倍。我们使用ResNet44[9]在Cifar10数据集[16]上使用Cutout增强[6]进行了批量增强的测试。我们使用了[9]的原始方案,批量大小为B=64。然后,我们将使用M∈{2,4,8,16,32}个不同的变换来进行批量增强训练,每个样本批量中的实际上创建了64∙M个样本。图2显示了改进的验证收敛速度(以epoch为单位),并且最终的验证分类错误率显著降低(图2b)。随着M的增加,这一趋势在很大程度上继续改善,与我们的预期一致。我们使用各种模型[30,9,42,20,26,12]进行了验证,根据我们的计算预算能够适应M∙B的不同值。结果列在表2中。我们在AmoebaNet最终的Cifar10模型[26]上取得了最好的结果。在所有的实验中,我们观察到了最终验证准确率的显著提高,以及每个epoch的准确率收敛速度更快。此外,我们成功地更快地实现了高验证准确率(b) Final Validation errormodels on various datasets considerably. Cutout uses ran-domly positioned zero-valued squares within images, thusincreasing the number of possible transforms by ×302.We tested batch augmentation using a ResNet44 [9] overthe Cifar10 dataset [16] together with cutout augmentation[6]. We used the original regime by [9] with a batch ofB = 64. We then compared the learning curve with train-ing using batch augmentation with M ∈ {2, 4, 8, 16, 32}different transforms for each sample in the batch, effectivelycreating a batch of 64 · M.Figure 2 shows an improved validation convergencespeed (in terms of epochs), with a significant reduction infinal validation classification error (Figure 2b). This trendlargely continues to improve as M is increased, consistentwith our expectation. We verified these results using a va-riety of models [30, 9, 42, 20, 26, 12] using various valuesof M, depending on our ability to fit the M · B within ourcompute budget. Results are listed in Table 2. Our best re-sult was achieved using the AmoebaNet final Cifar10 model[26].In all our experiments we have observed significant im-provements to the final validation accuracy, as well as fasterconvergence in terms of accuracy per epoch. Moreover, wemanaged to achieve high validation accuracy much quicker81330(a)验证错误0图2:批量增强的影响(ResNet44,Cifar10)。我们使用原始(红色)的训练方案,B=64,并与使用M∈{2,4,8,16,32}的批量增强进行比较。0使用批量增强。我们在Cifar10上训练了一个带有Cutout的ResNet44,只需要基线所需迭代次数的一半,使用批量增强、更大的学习率和更快的学习率衰减策略。我们仅在23个epoch内就实现了ResNet44的94.15%的准确率,而基线则需要超过四倍的迭代次数(100个epoch)才能达到93.07%的准确率。当基线使用相同的缩短训练方案进行训练时,准确率明显下降。这不仅表明了准确率的提高,还表明了在给定硬件条件下运行时间的改善。我们注意到,对于AmoebaNet的M=12,我们在14个epoch后就达到了94.46%的验证准确率,而没有对LR计划进行任何修改。我们还对使用BA获得的改进是否仅仅是因为训练过程中查看了更多样本实例进行了验证。为了明显区分这一点,我们与一个保证固定数量样本实例的训练方案进行了比较。在这种方法中,增加了epoch的数量,以便在使用更大的批量时(乘以相同的M因子),迭代次数保持不变。这种替代基线与BA在训练过程中每个样本实例看到的数量相当。使用相同的设置(ResNet44,Cifar10),我们发现与使用固定样本数基线得到的93.07%的结果相比,准确率提高了0.5%。图3显示了这些结果,表2中还有其他比较结果(使用固定样本数基线)。对于大批量方案(固定样本),我们试图验证BA与学习率修改一起的差距是否持续存在。我们将原始学习率乘以因子α,并使用对数尺度的4个额外值α∈{M0.25,M0.5,M,M2}进行网格搜索,其中M是批量缩放因子。这个选择是为了反映[8]和[10]建议的线性和sqrt学习率规则。这些实验没有改善基线结果,证实了在固定步骤预算下BA的显著结果。04.2. ImageNet0作为更大规模的评估,我们使用包含超过120万张图像和1000个不同类别的ImageNet数据集[5]。我们评估了三个模型-AlexNet[17],MobileNet[11]和ResNet50[9]。有关训练和超参数的详细信息,请参见附录(第B节)。为了符合我们的时间和计算预算限制,我们对ResNet和MobileNet使用了一个较小的M =4批量增强因子,对AlexNet使用了一个较大的M =8。我们再次观察到所有模型在最终验证准确率上的改进(表2)。使用线性学习率缩放,如[8,28]建议的那样,对于大批量训练并没有改善基线准确率的测量。81340表2:Cifar,ImageNet模型的验证准确率(Top1)结果。底部:Penn-Tree-Bank(PTB)和WMT数据集上的测试困惑度结果和BLEU分数。我们将BA与两个基线进行比较 - (1)“固定#步骤” -与BA相同数量的训练步骤的原始方案(2)“固定#样本” - 此外,观察与BA相同数量的样本(使用M∙B批量大小)。0网络 数据集 M 基线 BA0固定#步骤+固定#样本0ResNet44 Cifar10 40 93.70% 93.80% 95.43% VGG16 Cifar10 32 93.82% 94.49% 95.32%WResNet28-10 Cifar10 6 96.60% 96.60% 97.15% DARTS Cifar10 8 97.65% 97.63%97.85% AmoebaNet Cifar10 8 98.16% 98.10% 98.24%0ResNet44 Cifar100 40 72.97% 70.30% 74.13% VGG Cifar100 32 73.03% 67.20% 75.50%WResNet28-10 Cifar100 10 79.85% 80.12% 83.45% DenseNet100-12 Cifar100 477.73% 75.35% 78.80%0AlexNet ImageNet 8 58.25% 57.60% 62.31% MobileNet ImageNet 4 70.60% 69.50%71.40% ResNet50 ImageNet 4 76.30% 75.70% 76.86%0Word-level LSTM PTB 10 58.8 ppl 58.8 ppl 58.6 ppl0Transformer(基础)WMT En-De 4 26.88 BLEU 27.13 BLEU 27.49 BLEU0(a)训练(虚线)和验证误差0(b)训练(虚线)和验证最终误差0图3:基线(B =640,更多时期)与我们的批量增强(BA)方法(M =10)之间的比较。0AlexNet模型有最显著的改进0图4:批量增强(BA,每个样本四个增强)对ResNet-50和ImageNet的影响。描绘 -训练(虚线)和验证(实线)误差。使用相同的方案,BA将验证准确率从76.3%提高到76.86%0-相对于我们的基线,绝对验证准确率提高了超过4%,比之前发表的最佳结果[41]提高了超过2%。我们还强调了模型更快达到高验证准确率的事实。例如,ResNet50模型在没有修改的情况下,在第35个时期达到了75.7%的准确率,仅比基线模型在第90个时期达到的最终准确率低0.6%(图4)。在第30-60个时期之间的验证误差增加表明学习率或权重衰减值应该根据[42]的讨论进行修改,他们观察到类似的效果。这使我们相信,通过对训练的超参数进行仔细调整,可以缩短达到所需准确度所需的时期数量,并进一步改善准确度。ResNet44 [9]Cifar101094.60%95.55%WResNet28-10 [42]Cifar101097.30%97.80%WResNet28-10Cifar1001082.5%84.3%ResNet50 [9]ImageNet476.70%77.04%81350通过调整训练方案以适应BA的改进收敛特性,我们能够减少达到所需准确度所需的迭代次数。使用相同的基本LR(0.1),并在第30和35个时期后减少0.1倍,我们只需40个时期就能达到相同的改进准确度76.86%。更快的时间表是在第15、20和22个时期降低LR,以在第23个时期达到之前的75.7%。04.3. 中间数据增强的辍学0我们还测试了批量增强在没有对输入数据执行明确增强的任务中改善结果的能力。这种任务的一个例子是序列建模,其中输入以确定性方式提供,并且通过辍学[32],DropConnect[37]或其他形式的正则化[18,22]在中间层引入噪声。我们使用[35]的基础Transformer模型在WMT16en-de任务上,以及原始超参数。我们使用自己的实现,并将模型训练了100K次迭代。评估是在没有检查点平均和宽度为4的波束搜索的情况下进行的。我们使用M =4和批量大小为4096个令牌的BA。批量中使用多个样本实例导致每个实例使用不同的随机辍学掩码进行计算。使用M =4和批量大小为4096个令牌的BA,我们发现BLEU分数提高了0.36(见表2)。我们还测试了[22]描述的语言模型以及在Penn-Tree-Bank(PTB)数据集上的LSTM基于单词级别的语言模型的建议设置。我们使用宽度为1,150和嵌入大小为400的3层LSTM,输入(p = 0.4)和隐藏状态(p =0.25)都使用辍学正则化,没有进行微调。我们使用M =10,将有效批量大小从20增加到200。我们再次观察到了积极的效果,但与之前的实验相比更为适度,与基线相比,最终测试困惑度提高了0.2。04.4. 正则化对BA的影响0我们对BA与最近的正则化方法(如标签平滑[33]、mixup[43]和manifold-mixup[36])之间的结果进行了交互分析。我们测试了BA与mixup的组合,并发现在批量增强训练中,准确率的好处仍然存在,并且可以与正则化一起使用以进一步提高泛化性能(表3)。我们还观察到,使用测试时间增强(TTA)可以在使用BA训练的模型中获得更好的相对改进(表4)。我们推测这是因为BA优化了同一样本的多个变换。0表3:使用mixup正则化(α =0.2)的Cifar、ImageNet模型的验证准确率(Top1)结果。ResNet44的训练时间延长到了200个epoch,而不是之前的100个epoch。ImageNet模型训练了90个epoch。0网络 数据集 M 基线 BA0每个输入都是一种更适合TTA方案的情况,其中对同一样本的多个实例进行分类。04.5. 分布式批量增强0为了支持大规模集群,我们在TensorFlow和Horovod[27]上实现了分布式BA。我们在CSCS PizDaint上测试了我们的实现,这是一台CrayXC50超级计算机。每个XC50计算节点都包含一个12核的超线程启用的Intel Xeon E5-2690 CPU,64 GiBRAM和一个NVIDIA Tesla P100 GPU。节点之间使用CrayAries互连进行通信。在表5中,我们使用一个NVIDIA P100GPU和Cray超级计算机的并行文件系统,在所有可行的批量大小(受设备内存限制)上训练了ImageNet数据集上的ResNet-50。我们列出了每秒处理的图像的中位数值,以及标准差。如预期的那样,批量大小的增加开始时几乎呈线性缩放(在每批1至2个图像之间的1.8倍),但当达到设备容量时,缩放变慢,批量大小从64增加到128只增加了5.7%的利用率。这表明,在训练中使用数据并行时,应尽可能增加本地批量大小以最大程度地提高设备利用率。该实现使用去中心化(即无参数服务器)同步SGD,并使用Cray优化的消息传递接口(MPI)v7.7.2进行通信。我们使用每节点每批的最大图像数,因为它提供了最佳的利用率(见表5)。在图5中,我们绘制了使用ResNet-50对ImageNet进行40个epoch的两个实验的训练运行时间。我们测试了B = 256 M =4(16个节点)和M =10(40个节点),其中每个节点处理一个批次的64个图像。图表显示,M = 4和M =10的运行时间差异可以忽略不计,而更大的增强批次始终产生更高的验证准确率。训练过程使用了32个图像的GhostBatch Normalization[10]和一个标准但较短的方案(即,具有-ResNet44Cifar1093.41%95.03%94.33%96.00%13.96%19.52%DARTSCifar1097.63%97.85%97.73%98.13%4.22%13.02%AmoebaNet (width=128)Cifar1098.16%98.24%98.15%98.42%-0.54%10.23%Wide-Resnet28-10Cifar10079.85%83.45%80.29%84.88%2.18%8.64%ResNet50ImageNet76.30%77.85%77.10%77.9%3.38%4.49%129.90.07253.90.71487.80.318126.90.4816172.50.2932210.12.4064234.40.12128247.90.1281360表4:测试时间增强(TTA)与单一裁剪评估的验证准确率(Top1)改进。Cifar、ImageNet模型在10个样本的TTA下的结果。BA是使用M = 10进行训练的。0单一裁剪TTA改进 网络 数据集 基线 BA 基线 BA 基线 BA0表5:ImageNet上ResNet-50图像吞吐量0批量大小 吞吐量 标准 [图片/秒] 偏差0图5:使用 B = 256 和 M = 4 (红色)与 M = 10(蓝色)的ResNet50的训练(虚线)和验证错误随时间(以小时为单位)的差异。运行时间几乎没有差异,而更高的批量增强达到更低的错误率。基准( M = 1)的运行时间: 1 . 43 ± 0 . 13 步/秒, M = 4 : 1 . 47 ± 0 . 13 步/秒, M = 10 : 1 . 46 ± 0 . 14 步/秒。0在分布计算时,如果我们简单地在每个节点上复制一个小批次 M次,将会通过对多个增强图像进行归一化来降低批量归一化过程。相反,我们的实现确保每个 M个节点加载相同的批次,因此不同的图像一起进行归一化。我们通过在每个 M个节点上同步数据集采样器的随机种子来实现这个效果(但不同的数据增强种子)。这也允许系统一次从并行文件系统加载相同的文件,然后进行广播。0增强种子)。这也允许系统一次从并行文件系统加载相同的文件,然后进行广播。0补充材料中的结果显示,BA在更多节点上产生了更高的验证准确性,成功地扩展到40个节点的有效批次大小为2,560,而不需要调整LR计划,如[ 8],并且由于I/O优化而减少了通信成本。当使用大批次LR计划[ 8 ]和 B = 8192,在128个节点上运行的准确性为75.86%,而 M = 4和512个节点的准确性为76.51%。05. 结论0在这项工作中,我们引入了“批量增强”(BA),这是一种简单而有效的方法,通过使用每个样本的多个变换来改善深度网络的泛化性能。我们在各种数据集和模型上都取得了显著的改进,每个时期的收敛速度更快,最终的验证准确性更好。0我们提出了一种理论分析,解释了BA相对于传统大批量方法的优势。我们还展示了BA导致了整个训练过程中梯度方差的减小,这在每个优化步骤中体现为梯度的 ℓ 2范数。这可以在未来用于搜索和调整更合适的训练超参数,实现更快的收敛和更好的性能。0近期硬件的发展使得社区能够在不增加墙上时间的情况下使用更大的批次,无论是使用数据并行还是利用更先进的硬件。然而,一些论文声称使用大批次会导致准确性下降[ 21 ,7]。在这里,我们认为通过使用同一样本的多个实例,我们可以利用更大的批次能力来提高准确性。这些发现给出了另一个理由,以前的训练设置中使用显著更大的批次。[1] Antreas Antoniou, Amos Storkey, and Harrison Edwards.Data augmentation generative adversarial networks. arXivpreprint arXiv:1711.04340, 2017. 2[2] Tal Ben-Nun and Torsten Hoefler. Demystifying parallel anddistributed deep learning: An in-depth concurrency analysis.ACM Comput. Surv., 52(4), Aug. 2019. 1[3] R. D. Blumofe and C. E. Leiserson.Scheduling multi-threaded computations by work stealing.Journal of theACM, 46(5):720–748, 1999. 4[4] Ekin D Cubuk, Barret Zoph, Dandelion Mane, Vijay Vasude-van, and Quoc V Le. Autoaugment: Learning augmentationpolicies from data. arXiv preprint arXiv:1805.09501, 2018.2[5] J. Deng, W. Dong, R. Socher, L.-J. Li, K. Li, and L. Fei-Fei.ImageNet: A Large-Scale Hierarchical Image Database. InCVPR09, 2009. 1, 581370参考文献0[6] Terrance DeVries和Graham W Taylor.使用Cutout改进卷积神经网络的正则化.arXiv预印本arXiv:1708.04552, 2017年2月4日5日0[7] Noah Golmant, Nikit
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功