何恺明等研究者:真的需要减少ImageNet预训练吗?

选自arXiv

作者:Kaiming He、Ross Girshick、Piotr Dollar

机器之心编辑部

我们真的需要减少使用 ImageNet 预训练模型了吗?在检测和分割任务上,何恺明等研究者最近「Rethink」了一下 ImageNet 预训练模型。如果你的数据和计算力足够多,那么 ImageNet 预训练只能加快收敛而不提升准确率;如果数据太少,那么还是老老实实使用预训练模型吧。

ImageNet 图像预训练在各种视觉任务中一直都极为常见,我们会假定预训练模型的前面层级能抽取到足够的一般图像信息。因此保留预训练模型前面层级的权重就相当于迁移了一般的图像知识,并可以用于各种下游任务。但是在 ImageNet 上的预训练模型通过千类图像识别任务也只能学习到近似的一般图像知识。所以离千类图像识别任务越近,下游任务迁移的知识就越多。如果离千类图像识别任务非常远,说不定预训练也就起个初始化的作用。

不过近来很多视觉任务都会使用 ImageNet 预训练模型,因为这种方法简单方便啊。我们可以从各种模型库中下载各式各样的预训练卷积网络及权重,把它们作为整体模型的某个组件后就可以重训练部分权重了,这样至少比随机初始化好吧。在何恺明等研究者的这篇「Rethink」论文中,他主要关注预训练模型在目标检测与图像分割等应用下的性能,这种位置敏感型的任务和千类图像识别任务还是有一些差别的。

为此,何恺明等研究者表示这种利用预训练模型抽取「通用」特征,并借此解决大多数视觉任务的方法是值得质疑的。因为即使在比 ImageNet 还大 3000 倍的数据集上进行预训练,它们对目标检测任务的性能提升仍然不是很大。

这篇论文通过探索随机初始化进一步质疑了预训练的范式,他们表示当随机初始化的模型在 COCO 数据集上进行训练,它不需要任何预训练也能在目标检测和实例分割上获得最好的性能。更令人惊奇的是,在从头训练的条件下,他们可以使用基线系统和专门为预训练模型优化过的超参数实现相近的性能。

这篇论文主要表示 COCO 数据集(目标检测与实例分割)上的随机初始化模型最后可以获得很好的性能,且能与基于 ImageNet 预训练的模型相媲美。此外,研究者发现即使在训练数据只有 COCO 的 10%,预训练获得的准确率都与从头训练差距不大。最后研究者主要得出以下发现:

  • ImageNet 预训练可以加速收敛,特别是在训练前期。但如果加上事先预训练和微调的时间,两者差不多。
  • ImageNet 预训练并不会自动给出更好的正则化,在小数据集上还是需要微调超参数。
  • 当下游任务是空间位置敏感的定位预测,ImageNet 预训练并不会获得显著的优势。因此,基于分类任务的 ImageNet-like 预训练方式,与位置敏感型目标任务之间的存在显著差异,这可能会限制预训练模型的优势。

当然,已经有很多研究者在关注检测与分割任务不能利用 ImageNet 预训练的优势,例如缓解图像分类与目标检测任务之间差距的 DetNet。我们在使用 ImageNet 预训练模型之前应该先要考虑下游任务与分类之间的差异,也许「Rethink」的意义在于不要盲从任何范式,说不定以后会出现更接近于目标检测或实例分割下游任务的预训练方法。

这篇论文在知乎也有非常广泛的讨论,感兴趣的读者可以查看不同开发者的观点:

知乎问答地址:https://www.zhihu.com/question/303234604

论文:Rethinking ImageNet Pre-training

论文地址:https://arxiv.org/pdf/1811.08883.pdf

摘要:我们使用从随机初始化开始训练的标准模型在 COCO 数据集上取得了目标检测和实例分割的有力结果。这些结果可以媲美那些在 ImageNet 上进行预训练的模型的结果,即使使用为微调预训练模型而优化的基线系统(Mask R-CNN)的超参数也是如此,唯一的例外是增加训练迭代次数,以便随机初始化的模型可以收敛。从随机初始化开始训练的模型的鲁棒性出人意料;我们的结果在以下情况下得以保持:(i)仅用 10% 的训练数据;(2)针对较深、较广泛的模型;(3)用于多个任务及矩阵。实验表明,ImageNet 预训练可以在训练早期加速收敛,但未必会提供正则化或提高最终目标任务的准确率。为挑战极限,我们在 COCO 目标检测数据集上在不使用任何外部数据的前提下得到了 50.9 AP,该结果可以媲美 COCO 2017 挑战赛冠军使用 ImageNet 预训练得到的结果。这些观察挑战了独立任务中关于 ImageNet 预训练的常识,我们希望这些发现可以激励大家重新思考计算机视觉中预训练和微调的当下实际范式。

图 1:我们在 COCO train2017 设定中利用 ResNet-50 FPN [26]+GN [48] 骨干网络训练 Mask R-CNN [13],在 val2017 设定中评估边界框 AP(bbox AP),通过随机权重或 ImageNet 预训练来初始化模型。我们通过改变迭代次数来探索不同的训练计划,临近迭代次数上的学习率会降低(准确率跃升)。从随机初始化开始训练的模型需要更多的迭代才能收敛,但会收敛到不亚于微调方案的性能。表 1 显示了具体的 AP 值。

方法

归一化

为了更好地理解 ImageNet 预训练会产生什么影响,我们希望能够在架构修改最少的情况下从头开始训练典型架构。我们描述了仅有的两个认为必要的修改,与模型归一化和训练长度有关,将在下一步讨论。

批量归一化(BN)[20] 是用来训练现代网络的常用归一化方法,但它也是让从零开始训练检测器变得困难的部分原因。与图像分类器不同,目标检测器通常用高分辨率输入来训练。这样做减少了受内存限制的批大小,而小批量严重降低了 BN[19, 34, 48] 的准确率。如果使用预训练,这个问题可以避免,因为微调可以采用预训练批量统计作为固定参数 [17];但是,在从头开始训练时固定 BN 是无效的。

我们探索了最近的研究提出的两种归一化策略,其有利于解决小批量问题:

  • 群组归一化(GN)[48]:GN 是最近提出的 BN 的一种替代,执行独立于批维度的计算,其准确率对批大小不敏感 [48]。
  • 同步批归一化(SyncBN)[34, 27]:BN 的一种实现 [20],批量统计在多个设备(GPU)上进行计算。使用多个 GPU 时,这样可以提高用于 BN 的有效批大小,从而避免小批量。

我们的实验表明,GN 和 SyncBN 都允许检测模型从头开始训练。

收敛

典型的 ImageNet 预训练涉及超过一百万张图像并迭代上百个 epoch。除了从这个大规模数据集中学习到的语义信息以外,预训练模型还学习到了在微调过程中不需要再学习的低级特征(例如,边缘、纹理等)。另一方面,从零开始训练模型时需要同时学习低级和高级特征,因此需要更多的迭代次数才能收敛。

基于此,我们认为从零开始训练模型必然比典型的微调方案需要更长的训练时间。这可以从模型在训练过程中见过的样本数量进行公平比较,如图 2 所示。

图 2:在所有训练迭代中模型所见到的图像、实例和像素数量,预训练(灰色)+微调(绿色)vs 随机初始化(紫色)。其中,紫色条带普遍比绿色条带更长,意味着需要更大的迭代次数才能收敛。

结果与分析

我们第一个惊奇的发现是,当仅使用 COCO 数据集时,从零开始训练的模型可以达到和微调模型相当的准确率。

图 1 和图 3 展示了当在 ResNet-50 (R50) 和 ResNet-101 (R101) 网络骨干上使用 GN 时的验证 bbox AP 曲线(目标检测平均精度),图 4 展示了在 R50 上使用 SyncBN 时的验证 bbox AP 曲线。其中灰色曲线为 ImageNet 预训练+微调的结果,紫色曲线为随机初始化训练的结果。

图 3:使用 Mask R-CNN 和 R101-FPN 以及 GN 在 COCO val2017 数据集上得到的 bbox AP 学习曲线。

图 4:使用 Mask R-CNN 和 R50-FPN 以及 SyncBN(在 GPU 上同步批量统计)在 COCO val2017 数据集上得到的 bbox AP 学习曲线。

以下总结了图 1、3、4 的相似现象:

  • 典型的微调方案(2x)结合预训练模型可以很好地收敛到近最优结果(参见表 1,「w/ pre-train」)。但是这样的迭代次数对于从零开始训练的模型并不足够。
  • 从零开始训练的模型在足够多的迭代次数(5× 或 6×)下可以达到和微调变体相当的性能。

表 1:在 COCO val2017 数据集上的目标检测性能对比。其中 2x 表示 180k 迭代数,6x 表示 540k 迭代数。

实际上,在很多种训练条件设置下,对于目标检测和实例分割任务,随机初始化方案都能和预训练+微调方案达到相似的性能,如图 5 所示。

图 5:随机初始化 vs 预训练+微调的性能对比,包括(1)使用 FPN 和 GN 的基线模型;(2)训练时间多尺度增强的基线模型;(3)使用 Cascade R-CNN 和训练时间增强的基线模型;(4)使用 Cascade R-CNN、训练时间增强以及测试时间多尺度增强的基线模型。顶部:R50,底部:R101。

用更少数据从零开始训练

我们第二个发现更令人惊讶,是当使用显著更少的数据训练时(例如,1/10 个 COCO),从零开始训练的模型并不比预训练+微调的模型更差。图 7 展示了两种方法用 35k 样本数和 10k 样本数的 COCO 数据集训练的结果对比。

图 7:使用更少的 COCO 数据集图像(左/中:35k;右:10k)进行训练。模型为带有 R50-FPN 和 GN 的 Mask R-CNN,在 val2017 上评估 bbox AP。左:使用 35k COCO 图像进行训练,用了为 118k train2017 选取的默认超参数。在学习率改变之前及之后表现出了过拟合。中:使用 35k COCO 图像进行训练,用了针对『w/ pre-train』进行优化的超参数(相同的超参数接下来会应用到从随机初始化开始训练的模型中)。右:用 10k COCO 图像进行训练,用了针对『w/ pre-training』进行优化的超参数。

但是样本数再少也有个极限,如图 8 所示,用 1k 样本数训练时,随机初始化模型会强烈地过拟合。

图 8:用 1k COCO 图像进行训练。模型是带有 R50-FPN 和 GN 的 Mask R-CNN。和之前一样,我们使用为预训练模型优化过的超参数,并把同样的超参数应用于随机初始化的模型。随机初始化的模型可以弥补训练损失,但验证准确率(3.4 AP)低于预训练模型(9.9 AP)。这是一个强烈过拟合的迹象,是由严重缺乏数据造成的。

我们还发现了另一个从零开始训练不如预训练+微调的案例:PASCAL VOC 数据集。我们在 trainval2007+train2012 数据集上进行训练,并在 val2012 上进行评估。利用 ImageNet 预训练,我们的 Faster R-CNN 基线(使用了 R101-FPN 和 GN,仅训练时间增加)在 18k 次迭代中达到了 82.7 mAP。相对的,在 VOC 上从头开始的训练在 144k 次迭代中达到了 77.6 mAP,并且继续增加训练时间也无法超越前者。

讨论

我们对实验中获得的主要观察结果进行了总结,如下所示:

  • 无需更改架构,就可以在目标任务上从头开始训练并取得不错的结果。
  • 从头开始训练需要更多的迭代才能充分收敛。
  • 在很多情况下,从头开始训练不会比 ImageNet 预训练差多少,且训练样本数最少可达 10k COCO 图像。
  • ImageNet 预训练加快了目标任务的收敛速度。
  • ImageNet 预训练不一定有助于减少过拟合,除非我们访问的是非常小的数据范围。
  • 如果目标任务对定位比分类更敏感,ImageNet 预训练的作用会减小。

ImageNet 预训练是必要的吗?——如果我们有足够的目标数据和计算资源,就不必要。

ImageNet 有用吗?是的,ImageNet 预训练对计算机视觉社区的发展来说是一项重要的辅助任务。

我们需要大数据吗?是的,但如果考虑收集和清理数据所需的额外努力,一个通用的大规模、分类级别的预训练集并不划算。

我们应该追求通用表征吗?是的。我们认为学习通用表征是一个不错的目标。我们的结果并没有偏离这个目标。

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2018-11-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据派THU

用这种方法实现无监督端到端图像分类!

FAIR 的研究者提出了一种为卷积网络进行大规模端到端训练的聚类方法。他们证明了用聚类框架获得有用的通用视觉特征是可实现的。

1421
来自专栏计算机视觉与深度学习基础

目标检测算法:RCNN、YOLO vs DPM

以下内容节选自我的研究报告。 1. 背景 目标检测(object detection)简单说就是框选出目标,并预测出类别的一个任务。它是一种基于目标几何和统计...

4596
来自专栏SIGAI学习与实践平台

深度卷积神经网络演化历史及结构改进脉络-40页长文全面解读

从1989年LeCun提出第一个真正意义上的卷积神经网络到今天为止,它已经走过了29个年头。自2012年AlexNet网络出现之后,最近6年以来,卷积神经网络得...

1481
来自专栏机器之心

深度 | 像玩乐高一样拆解Faster R-CNN:详解目标检测的实现过程

44312
来自专栏机器之心

学界 | FAIR提出用聚类方法结合卷积网络,实现无监督端到端图像分类

预训练的卷积神经网络,或称卷积网络,已经成为大多数计算机视觉应用的基础构建模块 [1,2,3,4]。它们能提取极好的通用特征,用来提高在有限数据上学习的模型的泛...

1671
来自专栏小石不识月

机器学习中分类与回归的差异

在分类(Classification)问题与回归(Regression)问题之间,有着一个重要的区别。

2139
来自专栏机器学习算法与Python学习

周志华最新论文挑战深度学习 | 深度森林:探索深度神经网络以外的方法

1新智元编译 来源: arXiv 译者:闻菲、刘小芹、张易 《机器学习》作者、南京大学周志华日前发表论文,提出了一种基于树的方法,挑战深度学习。在设置可类...

4115
来自专栏机器之心

从语义上理解卷积核行为,UCLA朱松纯等人使用决策树量化解释CNN

44510
来自专栏Android相关

机器学习介绍

设计和分析一些让计算机可以自动“学习“的算法。机器学习算法是一类从庞大的数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。

1731
来自专栏技术小站

吴恩达深度学习笔记 4.1~4.8 深层神经网络

深层神经网络与浅层神经网络的区别是:隐藏层比浅层神经网络多,从命名规则上来说,有1,2,5个隐藏层的神经网络可以称为1 hidden layer,2 hidde...

1691

扫码关注云+社区

领取腾讯云代金券