Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

魔王、维度编辑

如何使ResNet优于EfficientNet?改进训练方法和扩展策略就可以

架构变化、训练方法和扩展策略是影响模型性能的不可或缺的重要因素,而当前的研究只侧重架构的变化。谷歌大脑和 UC 伯克利的一项最新研究重新审视了 ResNet 架构,发现对于提升模型性能而言,改进训练和扩展策略或许比架构变化更重要。他们提出了 ResNet 的变体架构 ResNet-RS,其使用的内存不仅更少,在 TPU 和 GPU 上的训练速度也数倍于 EfficientNet。

视觉模型的性能是架构、训练方法和扩展策略的综合结果。但是,研究往往只强调架构的变化。新架构是促成诸多进展的基础,但与新架构同时出现的通常还有训练方法和参数变化——一些关键但很少公开的细节。此外,通过现代训练方法改进的新架构有时需要与使用过时训练方法的旧架构进行对比,例如 ImageNet 数据集上 Top-1 准确率为 76.5% 的 ResNet-50 架构。

训练方法和扩展策略对流行的 ResNet 架构有哪些影响呢?近日,谷歌大脑和 UC 伯克利的研究者给出了他们的答案。


论文链接:https://arxiv.org/pdf/2103.07579.pdf

研究者调查了现今广泛使用的现代训练和正则化方法,并将其应用于 ResNet,如下图 1 所示。在这一过程中,他们观察到训练方法之间的交互,并展示了与其他正则化方法一同使用时减少权重衰减值的益处。此外,下表 1 中的训练方法试验也揭示了这些策略的重大影响:仅通过改进训练方法,典型 ResNet 架构的 ImageNet Top-1 准确率由 79.0% 提升至 82.2% (+3.2%)。通过两个微小且常用的架构改进:ResNetD 和 Squeeze-and-Excitation,准确率更是提升至 83.4%。图 1 通过速度 - 准确率帕累托曲线描述了 ResNet 架构的优化过程:



研究者还提供了扩展视觉架构的新思路和实用建议。相较于以往研究从小模型或者从少量 epoch 的训练中推断扩展策略,该研究基于对不同规模的模型执行完整的训练来设计扩展策略(如选择 350 个 epoch,而不是 10 个 epoch),进而发现最佳扩展策略与训练机制(epoch 数量、模型大小和数据集大小)之间的强依赖性。这些依赖性在小型训练系统中被忽略了,从而导致次优的扩展决策。研究者将他们的扩展策略总结如下:1)在过拟合可发生的训练设置下扩展模型深度(否则扩展宽度更可取);2)以更慢的速度扩展图像分辨率。

使用这种改进的训练和扩展策略,研究者设计了 re-scaled ResNet(ResNet-RS),它基于不同规模的模型进行训练,其速度准确率帕累托曲线如图 1 所示。ResNet-RS 模型在训练中使用了更少的内存,但在 TPU 上的速度是 EfficientNets 的 1.7-2.7 倍,GPU 上的速度是 EfficientNets 的 2.1-3.3 倍。在大规模监督学习设置下,使用 ImageNet 和额外 1.3 亿伪标注图像进行联合训练时,ResNet-RS 在 TPU 上的训练速度是 EfficienrtNet-B5 的 4.7 倍,GPU 上的速度是 EfficientNet-B5 的 5.5 倍。


最后,研究者通过一系列实验验证了这些改进训练和扩展策略的泛化性。他们首先使用该扩展策略设计了 EfficientNet 的速度更快版本 EfficientNet-RS,它的速度准确率帕累托曲线表现优于原版 EfficientNet。接着,研究者展示了改进训练策略的性能表现在一系列下游任务上媲美甚至优于自监督算法 SimCLR 和 SimCLRv2 的表现。改进训练策略还可以泛化至视频分类任务。在 Kinetics-400 数据集上将该训练策略应用于 3D-ResNets,可以将准确率从 73.4% 提升至 77.4%(+4%)。

通过将微小的架构变化与这种改进训练和扩展策略结合起来,研究者发现 ResNet 架构为视觉研究设置了 SOTA 基线。这一发现强调了梳理区分这些因素的重要性,以便了解哪些架构表现更优。

方法

研究者介绍了基础的 ResNet 架构和使用到的训练方法。


架构

研究者介绍了 ResNet 架构以及两种广泛使用的架构变化策略:ResNet-D 修改和所有瓶颈块中的 Squeeze-and Excitation (SE)。TResNet、ResNeSt 和 EfficientNets 等多个架构使用了这两种架构变化策略。


训练方法


研究者介绍了 SOTA 分类模型和半 / 监督学习中通常使用的正则化和数据增强方法。

研究者使用的训练方法与 EfficientNet 非常接近,训练了 350 个 epoch,但还是存在一些差异:

1)为简单起见,研究者使用了余弦学习率调度,而没有使用指数式衰减。
2)在所有模型中使用了 RandAugment,原版 EfficientNet 使用的是 AutoAugment。研究者使用 RandAugment 重新训练了 EfficientNets B0-B4,发现没有出现性能提升。
3)使用 Momentum 优化器,而没有使用 RMSProp。


研究者采用权重衰减、标签平滑、dropout 和随机深度这些正则化方法,并将 RandAugment 数据增强作为额外的正则化器。


改进训练方法

加性研究

下表 1 展示了对训练、正则化方法和架构变化的加性研究。基线 ResNet-200 获得了 79.0% 的 Top-1 准确率,研究者通过改进训练方法(未改变架构)将性能提升至 82.2% (+3.2%)。添加两个常见的架构更新后(Squeeze-and-Excitation 和 ResNet-D),模型性能进一步提升至 83.4%。其中训练方法带来的性能提升占 3/4,这说明训练方法的改进对 ImageNet 性能起到关键作用。



结合正则化方法时,降低权重衰减值的重要性

下表 2 展示了在结合多种正则化方法时,改变权重衰减值的重要性:


在应用 RandAugment (RA) 和标签平滑 (LS) 时,无需改变默认权重衰减 1e-4。但进一步添加 dropout (DO) 和随机深度 (SD) 之后,不降低权重衰减值会导致模型性能下降。


改进扩展策略

研究者在本节中展示了扩展策略同样重要。为了建立扩展趋势,研究者在 ImageNet 上对宽度乘法器 [0.25,0.5,1.0,1.5,2.0]、深度 [26,50,101,200,300,350,400] 、分辨率 [128,160,224,320,448] 进行广泛搜索。

该研究模仿 SOTA ImageNet 模型的训练设置,训练 epoch 为 350。随着模型尺寸的增加,研究者增加正则化以限制过度拟合。


策略 1:在过拟合发生的机制下进行深度扩展

对于较长的 epoch 机制,深度扩展优于宽度扩展。在 350 个 epoch 设置中(下图 3 右),研究者观察到,在所有图像分辨率中,深度扩展的效果明显优于宽度扩展。宽度扩展会导致过拟合,即使增加正则化,性能也会下降。他们假设这是由于扩展宽度时参数增加较大所致。因此,与扩展宽度相比,扩展深度(特别是在较早的层中)引入的参数更少。

在较短 epoch 的机制下,宽度扩展优于深度扩展。相比之下,当只训练 10 个 epoch 时,宽度扩展效果更好(图 3,最左边)。


策略 2:减少图像分辨率扩展

在下图 2 中,研究者还观察到较大的图像分辨率会导致性能衰减。因此,他们建议相比以往的工作,应逐渐增加图像分辨率。实验表明,较慢的图像扩展同时提升了 ResNet 和 EfficientNets 架构的性能。



设计扩展策略的两个常见错误

1. 在小规模设置下(如小模型或少量训练 epoch)推断扩展策略:这无法泛化至大模型或更长的训练迭代;
2. 在单个次优初始架构中推断扩展策略:次优初始架构会影响扩展结果。


小结

对于一项新任务,一般推荐将一组不同规模的模型运行完整的训练 epoch,以了解哪些维度最有用。但这一方法成本较高,该研究指出如果不搜索架构,则成本将得到显著降低。

对于图像分类,扩展策略可以总结为:在会发生过拟合的设置下扩展深度,缓慢的图像分辨率扩展。实验表明,对 ResNet 和 EfficientNet 应用这些扩展策略(得到 ResNetRS 和 EfficientNet-RS)会带来相比于 EfficientNet 的极大加速。近期研究如相比 EfficientNet 实现极大加速的 LambdaResNet 和 NFNet,也使用了类似的扩展策略。


实验

ResNet-RS 的速度 - 准确率

研究者使用改进后的训练和扩展策略,设计了 ResNet-RS。下图 4 对比了 EfficientNet 和 ResNet-RS 的速度 - 准确率帕累托曲线,从中可以看到 ResNet-RS 与 EfficientNet 具备类似性能时,在 TPU 上的速度是后者的 1.7-2.7 倍。


这一加速让人意想不到,毕竟 EfficientNet 的参数量和 FLOPs 相比 ResNet 有显著减少。研究者分析了原因,并展示了 EfficientNet 和 ResNet-RS 的性能对比情况,从中可以看出参数量和 FLOPs 的影响:



提升 EfficientNet 的效率

上文的分析表明扩展图像分辨率会导致收益递减。这说明 EfficientNet 倡导的扩展规则(增加模型深度、宽度和分辨率)是次优的。

研究者将 Strategy #2 应用于 EfficientNet,训练出多个图像分辨率降低的版本,并且并未改变模型的深度或宽度。下图 5 展示了重扩展后的 EfficientNet (EfficientNetRS) 相比原版 EfficientNet 的性能提升:



监督学习

研究者在使用大型数据集的大规模监督学习设置下,衡量 ResNet-RS 的性能。具体而言,该研究在 1.2M ImageNet 标注图像和 130M 伪标注图像上进行模型训练,训练方式类似于 Noisy Student。

下表 4 展示了 ResNet-RS 模型在监督学习设置下性能依然强大。该模型在 ImageNet 数据集上获得了 86.2% 的 top-1 准确率,相比于对应的 Noisy Student EfficientNet-B5 模型其在 TPU 上速度快了 3.7 倍(GPU 上的速度快 4.5 倍)。


ResNet-RS 的迁移学习效果

下表 5 对比了改进版监督学习策略(RS)和自监督 SimCLR、SimCLRv2 的迁移性能,发现即使在小型数据集上,改进版训练策略也能提升模型的迁移性能。



针对视频分类设计的 3D ResNet

下表 6 展示了 RS 训练方法和架构改进的加性研究。将该训练策略扩展至视频分类任务,准确率从 73.4% 增至 77.4% (+4.0%)。ResNet-D 和 Squeeze-and-Excitation 架构变化更是进一步将性能提升到 78.2% (+0.8%)。与图像分类任务的情况类似(参加表 1),研究者发现大多数提升不需要架构变化。不需要模型扩展,3D ResNet-RS-50 的性能也只比 SOTA 模型的性能(80.4%)低了 2.2%。


理论EfficientNetUC Berkeley谷歌大脑ResNet
相关数据
半监督学习技术

半监督学习属于无监督学习(没有任何标记的训练数据)和监督学习(完全标记的训练数据)之间。许多机器学习研究人员发现,将未标记数据与少量标记数据结合使用可以显着提高学习准确性。对于学习问题的标记数据的获取通常需要熟练的人类代理(例如转录音频片段)或物理实验(例如,确定蛋白质的3D结构或确定在特定位置处是否存在油)。因此与标签处理相关的成本可能使得完全标注的训练集不可行,而获取未标记的数据相对便宜。在这种情况下,半监督学习可能具有很大的实用价值。半监督学习对机器学习也是理论上的兴趣,也是人类学习的典范。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

调度技术

调度在计算机中是分配工作所需资源的方法。资源可以指虚拟的计算资源,如线程、进程或数据流;也可以指硬件资源,如处理器、网络连接或扩展卡。 进行调度工作的程序叫做调度器。调度器通常的实现使得所有计算资源都处于忙碌状态,允许多位用户有效地同时共享系统资源,或达到指定的服务质量。 see planning for more details

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

学习率技术

在使用不同优化器(例如随机梯度下降,Adam)神经网络相关训练中,学习速率作为一个超参数控制了权重更新的幅度,以及训练的速度和精度。学习速率太大容易导致目标(代价)函数波动较大从而难以找到最优,而弱学习速率设置太小,则会导致收敛过慢耗时太长

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

正则化技术

当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合。进行最优模型的选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

自监督学习技术

一个例子中的内容特别多,而用一个例子做一个任务,就等于把其他的内容浪费了,因此我们需要从一个样本中找出多个任务。比如说遮挡图片的一个特定部分,用没遮挡部分来猜遮挡的部分是一个任务。那么通过遮挡不同的部分,就可以用一个样本完成不同任务。Yann Lecun描述的这个方法被业界称作「自监督学习」

迁移学习技术

迁移学习 是属于机器学习的一种研究领域。它专注于存储已有问题的解决模型,并将其利用在其他不同但相关问题上。比如说,用来辨识汽车的知识(或者是模型)也可以被用来提升识别卡车的能力。计算机领域的迁移学习和心理学常常提到的学习迁移在概念上有一定关系,但是两个领域在学术上的关系非常有限。

视频分类技术

视频分类指基于根据视频片段的语义内容(如人的动作或更复杂的活动)对视频片段进行自动标记。

推荐文章
暂无评论
暂无评论~