Happy · 2021年10月09日

Timm助力ResNet焕发“第二春”,无蒸馏且无额外数据,性能高达80.4%

image.png
arXiv:https://arxiv.org/abs/2110.00476
code: https://github.com/rwightman/pytorch-image-models

Abstract

自从恺明大神提出ResNet以来,ResNet就成为了各个领域的默认/基线架构。与此同时,更好的优化器、数据增广方法也得到研究并用于提升训练效率。

本文对ResNet50与这些新技术组合时的性能进行了重评估,并将相应的训练配置以及预训练模型进行了开源,希望能够为未来的研究提供更好的基线。比如,基于所提训练配置,ResNet50达到了80.4%的top-1精度 (无需任何额外数据或蒸馏)。

Background

image.png

在现有文献中,ResNet50的性能从75.2%-79.5%不等。尚不明确是否已进行了充分研究进一步推进基线模型的性能。本文则旨在填充该差距:以原生ResNet为基线,通过优化训练配置最大的提升提性能 。本文贡献包含以下几点:

  • 本文为ResNet50提出三种可作为强基线的训练方案;
  • 所提训练方案包含近期的一些进展以及新的建议,比如移除CE损失改用BCE损失;
  • 度量了模型精度关于不同种子的稳定性,通过比较ImageNet-val与ImageNetV2上的验证性能对过拟合问题进行了讨论;
  • 对主流架构进行了训练并重评估其性能。

Training Procedures

image.png

image.png

  • Procedure A1:旨在提供具有最佳精度的ResNet50,它采用了更长的训练周期,高达600epoch;
  • Procedure A2:旨在与DeiT等训练机制对标,但采用了更大的batch;
  • Procedure A3:旨在以更少的训练周期超越原生ResNet50训练机制;

接下来,我们对上述三种训练机制中用到的一些技术进行介绍:

Loss: multi-label classification objective  损失函数方面考虑了Mixup与Cutmix增广的内在机制,弃用CE损失而改用BCE损失。

Data-augmentation  在数据增广方面,类似DeiT采用了Random Resized Crop、Horizontal Flip、RandAugment、Mixup、Cutmix等组合(见timm库)。

Regularization  在正则技术方面,本文采用Repeated-Augmentation、Stochasti-Depth、Label Smoothing等等,不同长度的训练周期采用不同的正则技术。
Optimization  优化器方面弃用SGD而选用了LAMB。

image.png

上表给出了不同训练机制的相关超参信息对比,注:上表仅以原生ResNet50作为基线进行对比。此外,本文并未考虑其他更先进的训练机制,比如知识蒸馏、自监督预训练以及伪标签。

Experiments

在实验过程中,我们首先在不同架构上对比了所提训练机制与现有训练机制。通过以下两点因素讨论了所提方案的重要性:

  • 对性能对随机因素的敏感性进行了量化;
  • 通过不同测试集上上的度量过拟合问题进行了评估。

Comparison of training procedures for ResNet50

image.png

上表给出了所提训练机制+不同架构的性能,从中可以看到:在某些情形下,A2训练机制取得了比A1更高的精度,这说明:超参数不会针对更长训练周期进行自适应调整。与此同时,上表给出了A1训练机制与不同方案组合时的性能。

image.png

Significance of measurements: seed experiments

image.png

上图给出了A2训练机制+ResNet50在100次训练下的性能点图,从中可以看到:

  • ImageNet-val上的精度标准差约为0.1,见上图;
  • ImageNetV2上的精度标准差约为0.23,标准差更高;
  • 平均精度79.72%要比种子0时的精度高0.13%。

image.png
为防止验证集上过多高估模型性能,我们仅仅选择最后的checkpoint进行性能评估。上图给出了精度的直方图分布,最高精度接近80.0%。关于性能与epoch之间的关系曲线可详见下图。

image.png

Transfer Learning

image.png

上表给出了不同数据集上的模型迁移学习能力,可以看到:

  • 在特定数据集(如CIFAR、Standford Cars)上,微调会平滑性能差异;
  • 总体来说,A1训练机制会在下游任务上导致最佳性能;而A3则弱于基线性能(可能与训练时图像分辨率()小有关)。

Comparing architectures and training procedures: a show-case of contradictory conclusions

image.png

不同架构、不同训练机制组合的性能对比,从中可以看到:

  • ResNet50的最佳训练机制为A2,而DeiT-S的最佳训练机制则是T2;
  • 相比原生训练机制,新提出T2训练机制可以提升DeiT-S性能0.6%;
  • 网络架构与训练机制的相互影响导致很难在一个公平的情况下对模型性能进行对比。

Ablations

image.png

image.png

image.png

上表随机深度、标签平滑在不同训练机制中的影响,从中可以看到:

  • 对于A3来说,不用随机深度性能更佳,而对于A1与A2使用0.05的随机深度具有更高的性能;
  • 对于低于300epoch的训练机制,标签平滑反而失效;对于更长周期的训练,标签平滑可以取得正面性能提升。

image.png

上表对比了不同增广的作用,可以看到:不同的改动均会对性能产生影响,均低于平均精度79.72%。

image.png

上表给出了推理阶段不同crop-ratio的影响,0.95对于A1具有更高的平均精度。

image.png

上表比较了推理阶段分辨率对性能的影响,可以看到:在更高分辨率测试时,A1与A2训练的模型具有更高的性能。

个人反思

现在每天arxiv上都能看到大量的paper发出来,质量层次不齐,就连基线模型的精度都差别甚大,以ResNet这个深度学习领域最知名的网络来说,不同paper引用时的精度甚至差别高达近4个点,不得不说,这为灌水提供了天然的土壤。

知名timm库的作者Ross从训练配置角度出发,对ResNet的性能进行了深入的探索,使其焕发“第二春”,使其性能达到80.4%。为未来网络结构的改进提供了一个非常有价值的基线,也为后续“水文”设置了一个较强的门槛,赞!

ResNet的训练配置从早期到现在网络的训练配置发生了多次的迭代,优化器、损失函数、数据增广、正则技术等等涨点技术均发生了“天翻地覆”的变化,如果在这个年代还与原生ResNet性能对比,着实很难让人怀疑:改进带来的性能提升到底是训练配置导致的还是改进带来的,改进又真正带来了多大的提升。

笔者在平时的一些训练学习中也有类似的体会,也在想:既然已经有了那么多优秀的涨点技巧,我们为什么不通过这些技术把基线往上提升一下呢?一直跟原生的性能对比真的公平吗?基线模型的性能不应该是“与时俱进”吗?否则学术界的大佬们研究那么多新技术其价值几何?个人赞成:基线模型的性能也应该“与时俱进”,及时吸收最新的技术,为真正有价值的研究提供一个强有力的基线。

首发:AIWalker
作者: Happy

推荐阅读

本文章著作权归作者所有,任何形式的转载都请注明出处。更多动态滤波,图像质量,超分辨相关请关注我的专栏深度学习从入门到精通
推荐阅读
关注数
6194
内容数
191
夯实深度学习知识基础, 涵盖动态滤波,超分辨,轻量级框架等
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息