Rethinking ImageNet Pre-training

何恺明、Ross Girshick等大神于2018-11-21日晚在arxiv贴出一篇重磅论文—Rethinking ImageNet Pre-training,让似乎本已经平静的ImageNet湖面再掀波澜。
论文地址:https://arxiv.org/abs/1811.08883

结论

  • 无需改变结构,可以从头开始训练目标任务
    Training from scratch on target tasks is possible without architectural changes.
  • 从头开始训练需要更多迭代来达到完全收敛
    Training from scratch requires more iterations to sufficiently converge.
  • 在大多数情况下,从头开始训练不比 ImageNet 预训练效果更差(少于10k COCO图像效果会降低)
    Training from scratch can be no worse than its ImageNet pre-training counterparts under many circumstances, down to as few as 10k COCO images.
  • ImageNet 预训练在目标任务上能加速收敛
    ImageNet pre-training speeds up convergence on the target task
  • ImageNet 预训练并不有助于减小过拟合,除非数据非常非常少
    ImageNet pre-training does not necessarily help reduce overfitting unless we enter a very small data regime.
  • 如果目标任务是比分类更敏感的定位任务,ImageNet 预训练作用很小
    ImageNet pre-training helps less if the target task is more sensitive to localization than classification

实验设置

  • 模型结构:研究ResNet/ ResNeXt+FPN主体结构 的Mask R-CNN,,采用端到端的方式来一起训练 RPN 和 Mask R-CNN。此外,GN/SyncBN 代替所有 frozen BN 层。为了公平比较,在研究过程中我们对预训练模型同样采用 GN 或 SyncBN 正则化策略进行微调。
  • 学习率方案:Detectron 中原始版本的 Mask R-CNN 模型进行了 90k 步的微调迭代过程(1×schedule)或 180k 步的迭代(2×schedule)。本文采用相似的术语,探究更长的训练过程。不论最终的迭代步数是多少,我们都遵循 2×schedule 策略,即在最后的 60k 和 20k 时将学习率分别降低 10倍。在实验中,我们发现对于第一个(大)学习率,训练更长的时间是有用的,但对于较小的学习率,训练太久往往会导致过拟合现象的发生。
  • 超参数:其他所有的超参数都遵循 Detectron 中的设置。特别指出,初始学习率设置为 0.02(采用 linear warm-up 策略),权重衰减率为 0.0001,动量参数设定为 0.9。所有模型采用 synchronized SGD在 8 个 GPU 上训练,每个 GPU 上 mini-batch 大小为 2。

结果与分析

Training from scratch to match accuracy

  • 实验发现,当只使用 COCO 数据集时,从头开始训练的模型可达到预训练+微调的精度。
  • 我们在 118k的COCO train2017 上训练模型,并在 5k的COCO val2017 上验证模型的性能。对于检测任务,我们评估了 bbox 和 AP(Aversage Precision)指标;对于实例分割,我们评估了mask AP 。

Baselines with GN and SyncBN

  • 下图 分别展示了 ResNet50+GN,ResNet101+GN 以及 ResNet50+SynaBN 在验证集上的 bbox 和 AP 性能曲线。 每张图上我们都对比随机初始化训练的模型和预训练+微调的模型之间的差异。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 从上图曲线上可以看出,在标准的 COCO 数据集上,从头开始训练的模型在 bbox 和 AP 上的表现,完全能达到预训练+微调的模型性能。而 ImageNet 数据集的预训练主要能够加速模型的收敛速度,但并没有证据表明能提高模型最终的检测精度。

Multiple detection metrics

  • 进一步比较了从头开始训练和预训练模型在不同的检测标准上的性能,包括bbox、AP, A P 50 AP_{50} (IOU>=0.5)、 A P 75 AP_{75} (IOU>=0.75),如下图所示。
    在这里插入图片描述
  • 从上表可看出,从头开始训练结果都不比预训练结果差,甚至更优,尤其是 A P 75 AP_{75} 优势更明显,达到1.0

Large models trained from scratch

  • 见原文。。。。。。

Models without BN/GN — VGG nets

  • 预训练模型训练 9× schedule后,bbox AP为35.6;从头开始训练 11× schedule 后,bbox Ap为35.2。(注:训练时间更长都会导致AP下降)

Training from scratch with less data

在这里插入图片描述

  • 上图最左图在更多次迭代后AP下降,表明ImageNet 预训练并不有助于减小更拟合
  • 35k(~1/3) COCO训练集上,从头开始训练与预训练都达到了36.3 AP (match)
  • 10K(~1/10)COCO训练集上,预训练在60k次迭代后AP为26.0,从头开始训练在220次迭代后AP为25.9 (match)
  • 1k(~1/100)COCO训练集上,在loss曲线上从头开始训练并没有比预训练并没有更差,但是收敛更慢。然而,在验证集上,预训练AP为9.9,从头开始训练为3.5。作者认为可能是数据缺乏导致了过拟合 (down)
  • 在VOC数据集上,预训练模型在迭代18k次后mAP为82.7,从头开始训练144k次迭代后mAP为77.6,作者怀疑VOC数据集上实例(类别)较少,与COCO小数据集一样,都是由于数据不够而产生的不好影响 (down)

几个关键问题

  • ImageNet 预训练是否必需?NO。如果我们有足够的目标数据和计算资源的话,也许我们可以不依赖 ImageNet 的预训练。我们的实验结果表明,ImageNet 预训练可以帮助模型加速收敛过程,但是并不一定能提高最终的准确性,除非数据集特别小(例如,<10k COCO images)。这表明,在未来的研究中,收集目标数据的标注信息(而不是预训练数据)对于改善目标任务的表现是更有帮助的。
  • ImageNet有用吗?Yes。ImageNet 预训练一直以来是计算机视觉领域许多任务性能辅助工具。它能够减少了训练的周期,更容易获得更好的结果,经预训练的模型能够多次使用,训练成本很低。此外,经预训练的模型能够有更快的收敛速度。我们相信 ImageNet 预训练仍然有助于计算机视觉研究。
  • 我们需要大数据吗?Yes。但如果我们考虑数据收集和清理的成本的话,一个通用的大规模分类的数据集并不是理想的选择。因为收集诸如 ImageNet 这样大数据集的成本被忽略掉了,而在数据集上进行预训练步骤的成本也是庞大的。如果在大规模的分类数据集上预训练的收益呈指数型下降减少,那么在目标域上收集数据将会是更有效的做法。
  • 我们应该追求通用的模型性能吗?Yes。我们的目标是模型能够学习到通用的特征表示。我们所取得的结果也没有偏离这一目标。其实,我们的研究表明在计算机视觉领域,我们应该更加注意评估预训练的特征(例如对于自监督过程的特征学习),就像现在我们学到的那样,即使是随机初始化过程也能得到出色的结果。

猜你喜欢

转载自blog.csdn.net/u013187057/article/details/84449502
今日推荐