Revisiting ResNets: Improved Training and Scaling Strategies - 1 - 论文学习
Abstract
新的计算机视觉体系结构独占鳌头,但模型体系结构的影响往往与训练方法和扩展策略的同时变化合并在一起。我们的工作重新审视了典型ResNet (He et al., 2015),并对这三个方面(模型体系结构、训练方法和扩展策略)进行了研究,试图理清它们。令人惊讶的是,我们发现训练和扩展策略可能比架构更改更重要,而且,最终的ResNets与最新的最先进的模型相匹配。我们说明了最佳的缩放策略取决于训练机制,并提供了两种新的缩放策略:(1)在可能发生过拟合的区域缩放模型深度(否则缩放宽度);(2)提高图像分辨率的速度比之前推荐的(Tan & Le, 2019)要慢。使用改进的训练和扩展策略,我们设计了一系列的ResNet架构,即ResNet-RS,它比TPUs上的EfficientNets快1.7 - 2.7倍,同时在ImageNet上实现了类似的精度。在大规模的半监督学习设置中,ResNet-RS达到了86.2% 的top-1 ImageNet精度,同时比EfficientNet-NoisyStudent快4.7倍。训练技术在一套downstream任务(与最先进的自我监督算法竞争)上改进transfer性能,并扩展到Kinetics-400上的视频分类。我们建议从业者使用这些简单修订后的ResNets作为未来研究的基线。
1. Introduction
视觉模型的性能是架构、训练方法和扩展策略的共同产物。然而,研究往往强调架构的变化。新的体系结构是许多进步的基础,但经常同时引入其他关键的-较少公开的-训练方法和超参数的细节变化。此外,通过现代训练方法增强的新架构有时会与使用过时训练方法的旧架构进行比较(例如,使用ImageNet Top-1精度为76.5%的ResNet-50 (He et al., 2015))。我们的工作解决了这些问题,并实证研究了训练方法和扩展策略对流行的ResNet架构的影响(He et al., 2015)。
我们回顾了目前广泛使用的现代训练和正则化技术,并将它们应用到ResNets中(图1)。在这个过程中,我们遇到了训练方法之间的交互作用,并展示了与其他正则化技术一起使用时减少权重衰减值的好处。表1中对训练方法的额外研究揭示了这些决策的显著影响:仅通过改进的训练方法,一个具有79.0% top-1 ImageNet准确性的典型ResNet将提高到82.2%(+3.2%)。通过两个小型且常用的架构改进,这一比例进一步提高至83.4%:ResNet-D (He et al.,2018)和squeeze -and-励磁(Hu et al.,2018)。图1以speed-accuracy Pareto曲线的形式在ResNet上追踪了这种改进。
我们为scaling视觉架构提供了新的视角和实用的建议。之前工作是从小型模型(Tan &Le, 2019)或从少量的训练epochs(Radosavovic et al ., 2020) 中推断scaling规则, 我们则是通过在整个训练时期中(有350个epochs而不是10个epochs)用各种尺度去详尽地训练模型,以此来设计scaling策略。在这样做的过程中,我们发现了有着最佳表现的scaling策略和训练机制(例如,epochs的数量、模型大小、数据集大小)之间的强烈依赖关系。这些依赖关系在任何一个较小的机制中都被忽略了,导致了次优的规模决策。我们的分析产生了新的scaling策略,总结为:(1)在可能发生过拟合时缩放模型深度(否则缩放宽度)和(2)缩放图像分辨率比之前的工作(Tan & Le, 2019)更慢。
使用改进的训练和scaling策略,我们设计了re-scaled ResNets (ResNet-RS),它经过了不同的模型大小的训练,如图1所示。ResNet-RS模型在训练过程中使用更少的内存,在TPUs上比流行的EfficientNets在speed-accuracy Pareto曲线上快1.7 - 2.7倍(在gpu上快2.1 - 3.3倍)。在一个大规模的半监督学习设置中,当在ImageNet和额外的1.3亿个伪标记图像上联合训练时,ResNet-RS在TPUs上获得4.7倍的训练加速(在gpu上获得5.5倍的训练加速)。
最后,我们以一套实验来检验改进的训练和scaling策略的通用性。我们首先设计了一个使用我们的scaling策略的更快的EfficientNets,即EfficientNets-RS,它在speed-accuracy Pareto曲线上优于原始版本。接下来,我们证明了改进的训练策略在一组downstream任务上产生了与自监督算法(SimCLR (Chen et al., 2020a)和SimCLRv2 (Chen et al., 2020b))可相比较或更好的表现效果。改进的训练策略也适用于视频分类。将训练策略应用到Kinetics-400数据集上的3D-ResNets上,效果从73.4%提高到77.4%(+4.0%)。
通过结合小的架构变化(自2018年以来使用)和改进的训练和scaling策略,我们发现ResNet架构为视觉研究设置了最先进的基线。这一发现强调了区分这些因素的重要性,以便理解哪些架构比其他架构性能更好。
我们总结了我们的贡献:
- 对正则化技术及其相互作用的实证研究得到了一种在不改变模型架构的情况下能获得强大的性能(+3% top-1精度)的正则化策略,。
- 一个简单的scaling策略:(1)当过度拟合可能发生时缩放深度(或缩放宽度)和(2)缩放图像分辨率比之前的工作(Tan & Le, 2019)更慢。该scaling策略提高了ResNets和EfficientNets的speed-accuracy Pareto曲线。
- ResNet-RS:通过应用训练和scaling策略,ResNet架构的Pareto曲线比TPUs上的EfficientNets (gpu上的快2.1x - 3.3倍)快1.7x - 2.7倍。
- 利用额外的1.3亿张伪标记图像进行ResNet-RS半监督训练,可以达到86.2%的top1 ImageNet精度,且比在TPUs上相应的EfficientNet-NoisyStudent(Xie et al., 2020)快4.7倍(在gpu上快5.5倍)。
- 当对一组不同的计算机视觉任务进行调整时,ResNet的checkpoints与SimCLR (Chen et al., 2020a)和SimCLRv2 (Chen et al., 2020b)的最先进的自我监督表征相匹敌或更好。
- 3D ResNet-RS通过扩展我们的训练方法和架构变化去做视频分类。得到的模型提高了top-1 Kinetics-400的准确性,比基线提高了4.8%。
2. Characterizing Improvements on ImageNet
自AlexNet (Krizhevsky et al., 2012)在ImageNet (Russakovsky et al., 2015)上取得突破以来,为了进一步提高图像识别性能,人们提出了各种各样的改进方案。这些改进广泛出现在四个正交轴上:架构、训练/正规化方法、扩展策略和使用额外的训练数据。
Architecture. 最受关注的作品可能是新颖的结构。自AlexNet (Krizhevsky et al.,2012)以来,值得注意的proposals包括VGG (Simonyan & Zisserman, 2014)、ResNet (He et al.,2015)、Inception (Szegedy et al.,2015)和ResNeXt (Xie et al.,2017)。用于设计结构的自动搜索策略进一步推动了最先进的技术,特别是NasNet-A (Zoph et al.,2018)、AmoebaNet-A (Real et al.,2019)和EfficientNet (Tan & Le, 2019)。通过将自注意机制(Vaswani et al., 2017)调整到视觉域(Bello et al., 2019;Ramachandran et al.,2019;Hu et al.,2019;Shen et al.,2020;Dosovitskiy et al.,2020)或使用替代方案,如lambda层(Bello, 2021),这些努力使得图像分类的效果超过了标准ConvNets。
Training and Regularization Methods. ImageNet的进步得益于训练和正则化方法的创新。当训练模型为更多epochs时,正则化方法如dropout (Srivastava et al.,2014)、标签平滑(Szegedy et al.,2016)、随机深度(Huang et al.,2016)、dropblock (Ghiasi et al.,2018)和数据增强(Zhang et al.,2017;Yun et al.,2019;Cubuk et al.,2018;2019)显著提高了泛化程度。改进的学习率方案(Loshchilov & Hutter, 2016;Goyal et al.,2017)进一步提高了最终的准确性。虽然在短时间的非正则化训练设置中对架构进行基准测试有助于与之前的工作进行公平的比较,但目前还不清楚架构改进是否能在更大的规模和改进的训练设置中持续下去。例如,RegNet架构(Radosavovic et al.,2020)在短时间的非正则化训练设置中显示了较强的基线加速,但没有在最先进的ImageNet设置中进行测试(最好的top-1是79.9%)。
Scaling Strategies. 增加模型尺寸(例如宽度、深度和分辨率)是提高质量的另一个成功途径(Rosenfeld et al.,2019;hesterness et al.,2017)。研究充分证明了sheer scale可以提高神经语言模型的性能(Kaplan et al.,2020),这激发了更大模型的设计,包括GPT-3 (Brown et al.,2020)和 Switch Transformer(Fedus et al.,2021)。同样,计算机视觉的扩展也被证明是有用的。Huang et al.(2018)设计并训练了有5.57亿个参数的模型AmoebaNet,实现了84.4% 的top-1 ImageNet精度。通常,ResNet架构通过增加层数(深度)来扩大:以层数为后缀的ResNet已经从ResNet-18发展到ResNet-200,甚至更高(He et al., 2016;Zhang et al.,2020;Bello, 2021)。Wide ResNets (Zagoruyko & Komodakis, 2016)和MobileNets (Howard et al.,2017)对宽度进行缩放。提高图像分辨率也是一个可靠的进步来源。因此,随着训练预算的增加,图像分辨率也在增加:EfficientNet使用600大小的图像分辨率(Tan & Le, 2019),而ResNeSt (Zhang et al., 2020)和TResNet (Ridnik et al., 2020)在其最大的模型中使用448大小的图像分辨率。为了将这些启发式方法系统化,EfficientNet提出了复合scaling规则,该规则建议平衡网络深度、宽度和图像分辨率。然而,7.2节表明,这种scaling策略不仅对ResNets来说是次优的,对EfficientNets也是如此。
Additional Training Data. 进一步提高准确性的另一种流行方法是对其他数据源(有标记的、弱标记的或无标记的)进行训练。在大规模数据集上的预训练(Sun et al.,2017;Mahajan et al.,2018;Kolesnikov et al.,2019)显著推动了最先进的技术,ViT (Dosovitskiy et al.,2020)和NFNets (Brock et al.,2021)最近分别实现了88.6%和89.2%的ImageNet精度。Noisy Student是一种半监督学习方法,通过在额外的1.3亿张未标记的图像上使用伪标签,获得了88.4%的ImageNet top-1准确率(Xie et al.,2020)。Meta pseudo-labels(Pham et al.,2020),一种改进的半监督学习技术,目前拥有ImageNet最先进的技术(90.2%)。我们在表4中给出了半监督学习结果,并在第8节中讨论了我们的训练和scaling策略如何转移到大数据机制。
3. Related Work on Improving ResNets
结合ResNets架构变化的改进后的训练方法,常规地提高了ImageNet的性能(He et al.,2018;Lee et al.,2020;Ridnik et al.,2020;Zhang et al.,2020;Bello, 2021;Brock et al.,2021年)。He et al.(2018)通过修改骨干和下采样块,同时使用label smoothing和mixup方法,实现了79.2%的top-1 ImageNet精度(比他们的ResNet-50基线提高了3%)。Lee et al.(2020)进一步改进了ResNet-50模型,通过额外的架构修改,如Squeeze-and-Excitation(Hu et al., 2018)、 selective kernel(Li et al., 2019)和anti-alias downsampling (Zhang, 2019),同时还使用label smoothing、mixup和dropblock,实现了81.4%的精度。Ridniketal.(2020)对ResNet架构进行了几处架构修改,并改进了训练方法,从而在speed-accuracy Pareto曲线上超越了EfficientNet-B1到EfficientNet-B5模型。
然而,大多数研究很少强调强大的scaling策略的作用。相比之下,我们只考虑自2018年以来经常使用的轻量级架构更改,更专注于训练和scaling策略,以构建模型的Pareto曲线。我们改进的训练和scaling方法导致的ResNets速度比TPUs上的EfficientNets快了1.7 - 2.7倍。我们的scaling改进与上述方法是正交的,我们希望它们是可相互叠加的。
4. Methodology
我们描述了基本的ResNet体系结构和整个论文中使用的训练方法。
4.1. Architecture
我们的工作研究了有两种广泛使用的体系结构变化的ResNet体系结构,即ResNet-D(He et al., 2018)修改和在所有bottleneck blocks (Hu et al.,2018)中使用的Squeeze-and-Excitation(SE)。这些体系结构的变化在很多体系结构中被使用,包括TResNet, ResNeSt 和EfficientNets。
ResNet-D (He et al., 2018)对原有的ResNet架构进行了以下四项调整。首先,stem中的7×7卷积被三个较小的3×3卷积取代,这是在Inception-V3中首次提出的方案(Szegedy et al., 2016)。其次,在下采样块的残差路径中切换前两个卷积的步幅大小。第三,将下采样块的skip connection路径中的stride-2 1×1卷积替换为stride-2 2×2平均池化,然后再跟着non-stride 1×1卷积。第四,删除stride- 2 3×3 最大池化层,并在下一个bottleneck block的第一个3×3卷积中进行下采样。我们在图6中绘制了这些修改的图表。
Squeeze-and-Excitation (Hu et al., 2018)对整个特征图中的信号进行平均池化,通过cross-channel交互重新加权通道。根据前期实验,所有实验均采用0.25的Squeeze-and-Excitation比率。在我们的实验中,我们有时使用不带SE的原始ResNet实现(称为ResNet)来比较不同的训练方法。在这种情况下,明确标记将在表标题中显示。
4.2. Training Methods
我们研究正则化和数据增强方法,这些方法通常用于最先进的分类模型和半/自监督学习。
Matching the EfficientNet Setup. 我们的训练方法与我们训练350个epochs的EfficientNet非常接近,但有一些小的不同。(1)为了简单,我们使用cosine learning rate schedule (Loshchilov & Hutter, 2016)而不是exponential decay(没有额外的超参数)。(2)我们在所有模型中使用RandAugment (Cubuk et al., 2019),而EfficientNets最初使用AutoAugment训练(Cubuk et al., 2018)。我们使用RandAugment重新运行了EfficientNets B0-B4,发现它没有提供性能改进,并使用Cubuk等人(2019)的RandAugment结果报告了EfficientNet B5和B7。(3)为了简单起见,我们使用momentum优化器而不是RMSProp。我们的训练设置与EfficientNet的比较见附录C中的表10。
Regularization. 我们采用weight decay、label smoothing、 dropout和stochastic depth进行正则化。Dropout (Srivastava et al., 2014)是计算机视觉中常用的技术,我们将其应用于最后一层发生全局平均池化后的输出。stochastic depth(Huang et al., 2016)以特定的概率剔除网络中的每一层(其周围有残差连接),该概率是层深度的函数。
Data Augmentation. 我们使用RandAugment (Cubuk et al., 2019)数据增强作为额外的正则化。在训练期间,RandAugment独立地对每幅图像应用一系列随机图像变换方法(例如: translate, shear, color distortions)。如前所述,最初的EfficientNets使用了AutoAugment(Cubuk et al.,2018),这是一种可学习的增强程序,性能略低于RandAugment。
Hyperparameter Tuning. 为了为各种正则化和训练方法选择超参数,我们使用了一个包含2% ImageNet训练集的held-out验证集(20 shards out of 1024)。这被称为minival-set,而原始的ImageNet验证集(在大多数以前的工作中报告的)被称为validation-set。所有ResNet-RS模型的超参数见附录B的表8。
5. Improved Training Methods
5.1. Additive Study of Improvements
我们在表1中提出了一项关于训练、正则化方法和架构变化的附加研究。基线ResNet-200获得79.0%的top-1精度。我们通过使用改进的训练方法,在没有任何架构更改的情况下,将其性能提高到82.2%(+3.2%)。在添加了两个常见且简单的架构更改(Squeeze-and-Excitation和ResNet-D)之后,我们进一步将性能提升到了83.4%。仅训练方法就能带来总改进的3/4,这证明了它们对ImageNet性能的关键影响。
5.2. Importance of decreasing weight decay when combining regularization methods
表2强调了将正则化方法结合在一起时改变权重衰减的重要性。
当应用RandAugment和label smoothing时,不需要改变大小为1e-4的默认权值衰减值。但当我们进一步增加dropout和/或stochastic depth方法时,除非我们进一步减小权重衰减,否则性能会下降。直观的感觉是,由于权重衰减充当了一个正则化器,因此在结合多种技术时,必须降低它的值,以避免过度正则化模型。此外,Zoph等人(2020a)提出的证据表明,数据增强的添加缩小了权值的L2范数,这使得一些权值衰减的影响成为冗余。其他作品使用较小的权重衰减值,但没有指出使用更多正则化时的影响意义(Tan et al., 2019;Tan & Le, 2019)。
6. Improved Scaling Strategies
前一节展示了训练方法的显著影响,现在我们展示了scaling策略同样重要。为了建立scaling趋势,我们在ImageNet上对大小为[0.25,0.5,1.0,1.5,2.0]的宽度乘子、大小为[26,50,101,200,300,350,400]的深度和大小为[128,160,224,320,448]的分辨率进行了广泛的搜索。我们模拟最先进的ImageNet模型的训练设置,对这些架构训练350个epochs。我们随着模型尺寸的增加而增加正则化,以限制过拟合。请参阅附录E了解正则化和模型超参数。
FLOPs do not accurately predict performance in the bounded data regime. 先前关于scaling law的研究在无界数据体系中观察到error和FLOPs之间的power law(Kaplan et al.,2020;Henighan et al.,2020)。为了测试这在我们的场景中是否也适用,我们在图2中绘制了所有scaling配置的ImageNet error。对于较小的模型,我们观察到error和FLOPs之间的总体power law趋势,与scaling配置(即深度、宽度和图像分辨率)的依赖性较小。然而,这一趋势在尺寸较大的模特身上得到了突破。此外,我们观察到ImageNet的性能在固定数量的FLOPs中有很大的变化,特别是在较高的FLOP区域。因此,当控制在相同数量的FLOPs时,精确的scaling配置(即深度、宽度和图像分辨率)可能会对性能产生很大的影响。
The best performing scaling strategy depends on the training regime. 接下来,我们将直接研究相关硬件的延迟,以确定提高speed-accuracy Pareto曲线的scaling策略。图3展示了在四种图像分辨率和三种不同的训练模式(10,100和350个epochs)上按宽度或深度进行缩放的模型的准确性和延迟。我们观察到,表现最佳的scaling策略,特别是是否扩展深度和/或宽度,将高度依赖于训练机制。
6.1. Strategy #1 - Depth Scaling in Regimes Where Overfitting Can Occur
Depth scaling outperforms width scaling for longer epoch regimes. 在350个epochs设置中(图3,右图),我们观察到深度缩放在所有图像分辨率上的表现明显优于宽度缩放。缩放宽度会导致过度拟合,有时即使增加正则化,也会损害性能。我们假设这是由于缩放宽度时参数增加较大所致。ResNet体系结构在所有块组之间保持恒定的FLOPs,并通过4倍每个块组来增加参数数量。因此,与缩放宽度相比,缩放深度(特别是在较早的层中)引入的参数更少。
Width scaling outperforms depth scaling for shorter epoch regimes. 相比之下,当只训练10个epoch时,宽度缩放效果更好(图3,左图)。对于100个epochs(图3,中图),最佳表现的缩放策略在深度缩放和宽度缩放之间变化,这取决于图像分辨率。scaling策略对训练制度的依赖揭示了推断 scaling规则的缺陷。我们指出,先前的工作也选择在大规模数据集上训练少量的epochs(例如在300万张图像上训练40个epoch),这与我们的实验结果一致,即在较短的epoch体系中缩放宽度更可取。具体来说,Kolesnikov et al.(2019)用4x滤波器训练ResNet-152,而Brock et al.(2021)用1.5x滤波器来缩放宽度。
6.2. Strategy #2 - Slow Image Resolution Scaling
在图2中,我们还观察到较大的图像分辨率产生的收益递减。因此,我们建议比以前的作品更循序渐进地提高图像分辨率。这与由EfficientNet提出的复合scaling规则形成对比,该规则会产生非常大的图像(例如,EfficientNet-B7为600,EfficientNet-L2为800 (Xie et al.,2020))。其他作品如ResNeSt (Zhang et al., 2020)和TResNet(Ridnik et al., 2020))将图像分辨率提高到448。我们的实验表明,较慢的图像缩放不仅改善了ResNet架构,而且在speed-accuracy基础上提高了网络效率(第7.2节)。
6.3. Two Common Pitfalls in Designing Scaling Strategies
我们的scaling分析揭示了先前的scaling策略研究的两个常见缺陷:
(1) Extrapolating scaling strategies from small-scale regimes. 在小尺度区域(例如,在小模型上或很少的训练epochs上)中发现的scaling策略不能推广到更大的模型或更长的训练迭代中。先前的工作从小模型(Tan & Le, 2019)或较短的训练epochs(Radosavovic et al.,2020)推断scaling规则,忽略了最佳表现的scaling策略和训练制度之间的依赖关系。因此,我们不建议只在小的尺度范围内生成scaling规则,因为这些规则可能会被破坏。
(2)Extrapolating scaling strategies from a single and potentially sub-optimal initial architecture.从一个次优的初始架构开始可能会扭曲scaling结果。例如,复合scaling规则是通过使用固定的FLOPs预算和特定的图像分辨率进行架构搜索,从EfficientNet-B0周围的小网格搜索中得到的。然而,由于这种图像分辨率对于FLOPs预算来说可能是次优的,因此最终的scaling策略也可能是次优的。相比之下,我们的工作通过训练模型跨越各种宽度、深度和图像分辨率来设计scaling策略。
6.4. Summary of Improved Scaling Strategies
对于一个新任务,我们建议在不同的尺度上运行一小部分模型,对于完整的训练阶段,以获得在模型尺度上哪些维度最有用的直觉。虽然这种方法看起来成本更高,但我们指出,这种成本可以通过不搜索架构来抵消。
对于图像分类,scaling策略被总结为(1)在可能发生过拟合的区域缩放深度(否则缩放宽度更好)和(2)缓慢的对图像分辨率进行缩放(而不是一下子变得很大)。实验表明,将这些scaling策略应用到ResNets (ResNet-RS)和EfficientNets (EfficientNet-RS)上可以显著提高效率。我们注意到,在最近的研究中也采用了类似的scaling策略,这些策略在LambdaResNets (Bello, 2021)和NFNets (Brock et al., 2021)等EfficientNets上获得了较大的加速。
7. Experiments with Improved Training and Scaling Strategies
7.1. ResNet-RS on a Speed-Accuracy Basis
使用改进的训练和scaling策略,我们设计了ResNet-RS,这是一个跨越广泛模型尺度的re-scaled ResNets系列(实验和架构细节见附录B和D)。图4在speed-accuracy Pareto曲线上比较了EfficientNets和ResNet-RS。我们发现ResNet-RS与EfficientNets的性能相当,但在TPUs上要快1.7 - 2.7倍。这种在EfficientNet上的巨大加速可能不太直观,因为与ResNet相比,EfficientNets显著减少了参数量和FLOPs。接下来,我们将讨论为什么在训练过程中,具有较少参数和较少FLOPs的模型(EfficientNet)会更慢、内存更密集。
FLOPs vs Latency. 虽然FLOPs为评估计算需求提供了一个硬件不可知的度量标准,但它们可能不能说明训练和推理的实际延迟时间(Howard et al.,2017;2019;Radosavovic et al.,2020)。在定制硬件架构(如TPUs和GPUs)中,FLOPs是一种特别糟糕的代理,因为操作常常受到内存访问成本的限制,在现代矩阵乘法单元上有不同级别的优化(Jouppi et al.,2017)。与在较小激活上使用密集卷积的ResNet bottleneck blocks相比,在EfficientNets中使用的反向bottlenecks(Sandler et al., 2018)使用带有大激活的深度卷积,有一个小的compute to memory比例(操作强度)。这使得与ResNet相比,EfficientNets在现代加速器上的效率更低。表3说明了这一点:一个rResNet-RS模型比EfficientNet-B6多1.8倍的FLOPs,但在TPUv3硬件加速器上要快2.7倍。
Parameters vs Memory. 参数量不一定说明了训练期间的内存消耗,因为内存通常由激活的大小决定。与重新调整后的ResNets相比,在EfficientNets中使用的大规模激活也会导致更大的内存消耗,而使用大图像分辨率会加剧内存消耗。在ImageNet精度(表3)类似的情况下,ResNet-RS模型参数比EfficientNet-B6多3.8 倍,但是消耗2.3 倍更少的内存。我们强调,由于编译器优化操作如操作布局分配和内存padding,内存消耗和延迟与软件和硬件堆栈(TensorFlow TPUv3)是紧密耦合的。
7.2. Improving the Efficiency of EfficientNets
第6节的scaling分析表明,缩放图像分辨率会导致收益递减。这表明,EfficientNets所提倡的不依赖模型尺度而增加模型深度、宽度和分辨率的scaling规则是次优的。我们在不改变宽度和深度的情况下,将慢的图像分辨率scaling策略(Strategy #2)应用到EfficientNets,使用降低的图像分辨率去训练几个版本。当图像分辨率为224或更小时,RandAugment量级设置为10,当图像分辨率大于320时设置为20,否则设置为15。所有其他超参数保持与原始的EfficientNets相同。图5显示了在speed-accuracy Pareto曲线上EfficientNets(EfficientNet-RS)在原始EfficientNets上的显著改进。
7.3. Semi-Supervised Learning with ResNet-RS
我们在大规模半监督学习设置中扩展到更大的数据集,来衡量ResNet-RS的表现。我们将1.2M张有标记的ImageNet图像和1.3亿张伪标记的图像结合起来,以类似于Noisy Student(Xie et al.,2020)的方式训练ResNets-RS。我们使用相同的数据集,其中1.3亿张图像伪标签为Noisy Student,伪标签是由一个有效的EfficientNet-L2模型生成的,ImageNet精度为88.4%。在标记数据和伪标记数据上对模型进行联合训练,训练超参数保持一致。表4显示ResNet-RS模型在半监督学习设置中也非常强大。我们获得了最高的ImageNet精度为86.2%,同时在TPU上比相应的Noisy Student EfficientNet-B5模型快4.7倍(在GPU上快5.5倍)。
7.4. Transfer Learning of ResNet-RS
我们现在研究改进的监督训练策略是否为迁移学习产生更好的表征,并将它们与自监督学习算法进行比较。最近的自监督学习算法声称超越了监督学习的迁移学习性能,并创建了更普遍的表征(Chen et al.,2020a;b)。然而,自监督算法在训练方法上做了一些改变(例如训练更多的epochs,数据增强),使其与监督学习相比较变得困难。表5比较了改进的监督训练策略(即RS)与自监督SimCLR (Chen et al., 2020a)和SimCLRv2 (Chen et al., 2020b)的迁移性能。为了与SimCLR的训练设置紧密匹配并提供公平的比较,我们将RS训练策略限制在其原始方法的子集内。具体来说,我们使用数据增强(RandAugment)、 label smoothing、dropout、decreased weight decay和cosine learning rate decay训练400个epochs,但不使用stochastic depth或权重的exponential moving average (EMA)方法。我们选择这个子集来密切匹配SimCLR的训练设置:更长的训练、数据增强和一个用于contrastive损失的temperature参数。我们使用的是普通的ResNet体系结构,没有进行ResNet-D修改或Squeeze-and-Excite,与SimCLR和SimCLRv2体系结构相匹配。
我们评估了五个downstream任务的迁移性能:CIFAR-100分类(Krizhevsky et al., 2009)、Pascal检测和分割(Everingham et al., 2010)、ADE分割(Zhou et al., 2017)和NYU Depth(Silberman et al., 2012)。我们发现,即使局限于一个更小的子集,改进的训练策略也能提高迁移表现。改进的监督表征(RS)在5/10个downstream任务和8/10个任务上分别优于SimCLR和SimCLRv2。此外,改进的训练策略显著优于标准监督的ResNet表征,强调了与自监督学习相比,使用现代训练技术的必要性。虽然自监督学习可以用于未标记的数据,但我们的结果挑战了这样一种观念,即当标签可用时,认为自监督算法比监督学习导致更普遍的表征(实际上不是的)。
7.5. Revised 3D ResNet for Video Classification
最后,我们将训练策略应用到Kinetics-400视频分类任务中,使用3D ResNet作为基线架构(Qian et al., 2020)(实验细节见附录G)。表6给出了RS训练配方和架构改进的附加研究。
训练策略扩展到视频分类,将结果从73.4%综合提高到77.4%(+4.0%)。ResNet-D和Squeeze-and-Excitation架构的改变进一步将性能提高到78.2%(+0.8%)。类似于我们对图像分类的研究(表1),我们发现大部分改进可以在不改变架构的情况下获得。在没有模型scaling的情况下,3D ResNet-RS-50仅比Kinetics-400(Feichtenhofer, 2020)报告的最佳数据(80.4%)低2.2% 。
8. Discussion
Why is it important to tease apart improvements coming from training methods vs architectures? 训练方法可以比架构更有任务针对性(例如,数据增强在小数据集中更有帮助)。因此,来自训练方法的改进并不一定像架构改进那样具有通用性。将新提出的架构与训练改进打包在一起,使得架构之间的精确比较变得困难。如果不加以控制,来自训练策略的巨大改进可能会掩盖架构上的差异。
How should one compare different architectures? 因为训练方法和scale通常会提高性能(Lee et al., 2020;Kaplan et al.,2020),在比较不同的架构时,关键是要控制这两个方面。对scale的控制可以通过不同的度量来实现。虽然许多工作报告参数和FLOPs,但我们认为延迟通常和内存消耗更相关(Radosavovic et al.,2020)。我们的实验结果(第7.1节)再次强调,FLOPs和参数并不代表延迟或内存消耗(Radosavovic et al.,2020;Norrie et al.,2021)。
Do the improved training strategies transfer across tasks? 答案取决于可用的域和数据集大小。这里研究的许多训练和正则化方法没有用于大规模的预训练(例如300万张图像)(Kolesnikov et al., 2019;Dosovitskiy et al.,2020年)。数据增强对于小数据集或多个epochs的训练是有用的,但是增强方法的细节可能是与任务相关的(例如表6中的scale jittering用来代替RandAugment)。
Do the scaling strategies transfer across tasks? 如第6节所讨论的,最佳的性能scaling策略取决于训练机制以及是否存在过拟合问题。当在ImageNet上训练350个epoch时,我们发现缩放深度可以很好地工作,而当训练几个epoch时(例如10个epoch)缩放宽度更可取。这与在大规模数据集上训练几个epochs时使用宽度缩放的工作是一致的(Kolesnikov et al.,2019)。我们不确定我们的scaling策略如何应用于需要更大图像分辨率的任务(如检测和分割),并把这留给未来的工作。
Are architectural changes useful? 是的,但是训练方法和scaling策略可能会产生更大的影响。简单性通常会胜出,特别是考虑到定制硬件上出现的重要性能问题。降低速度和增加复杂性的架构变化,可以通过在可用硬件上优化的更快、更简单的架构(例如针对gpu / tpu使用卷积而不是深度卷积)来超越。我们设想,未来成功的架构将通过与硬件的协同设计而出现,特别是在资源紧张的情况下,如移动电话(Howard et al., 2019)。
How should one allocate a computational budget to produce the best vision models? 我们建议从一个简单的架构开始,它在可用的硬件上是有效的(例如 GPUs/TPUs上的ResNets),并训练几个模型去收敛,使用不同的图像分辨率、宽度和深度来构建Pareto曲线。请注意,这种策略与Tan & Le(2019)不同,后者分配了很大一部分计算预算来确定一个最优的初始架构。然后,他们做了一个小网格搜索,以找到所有模型尺度上使用的复合比例系数。RegNet (Radosavovic et al., 2020)的大部分研究都只训练10个epoch。
9. Conclusion
通过使用现代的训练方法和改进的scaling策略更新目前的视觉基线,我们揭示了ResNet架构非凡的耐用性。简单的架构为最先进的方法设置了强大的基线。我们希望我们的工作鼓励大家进行进一步的审查,以保持所提出的创新方法和基线的审查一致。