新智元报道
来源:arxiv
新智元编辑部
ImageNet 有用吗?
当然有用。
但 ImageNet 预训练却并非必须!
刚刚,何恺明等人在arxiv贴出一篇重磅论文,题为《重新思考“ImageNet预训练”》,让似乎本已经平静的ImageNet湖面,再掀波澜!
Facebook 人工智能研究所何恺明、Ross Cirshick 和 Piotr Dollar 三人在arxiv上贴出最新论文:重新思考ImageNet预训练
过去几年来,使用ImageNet这套大规模数据集进行预训练的视觉模型,对于执行计算机视觉任务而言都是必不可少的存在。虽然并没用多少时间,但人们似乎都默认,计算机视觉任务需要使用ImageNet预训练模型。
然而,何恺明等人却站出来说——
不!
ImageNet 预训练模型并非必须,ImageNet 能做的只是加速收敛,对最终物体检测的精度或实例分割的性能并无帮助。
他们使用随机初始化的模型,不借助外部数据,取得了不逊于COCO 2017冠军的结果。
大神不愧为大神——此前我们预训练ImageNet模型再辛辛苦苦微调,都是为了什么?!
何恺明等人研究表明,在COCO数据集上进行随机初始化训练,其效果能做到不次于在ImageNet上进行预训练。
而且,即使只用COCO中10%的训练数据进行训练,依然有可能实现上述结果。
他们还发现,可以在相当于ImageNet规模4倍大的数据集上,使用随机初始化训练,而结果不发生过拟合。
图1:我们在COCO train2017数据集上使用ResNet-50 FPN[26]和GroupNorm[48]训练Mask R-CNN[13],并在val2017数据集上评估边界框AP,通过随机权重或ImageNet预训练初始化模型。我们通过改变学习率降低(准确率提高)的迭代来探索不同的训练计划。从随机初始化训练出来的模型需要更多的迭代来收敛,但是只收敛到一个与finetuning相似的解决方案。
实验表明,ImageNet的预训练在训练的早期加速了收敛,但并不一定提供正则化或提高最终目标任务的精度。
具体说,何恺明等人通过实验观察到以下情况:
1、ImageNet预训练方式加快了收敛速度,特别是在训练早期,但随机初始化训练可以在训练一段时间后赶上来。考虑到前者还要进行模型的微调,训练总时间二者大体相当。由于在研究目标任务时经常忽略ImageNet预训练的成本,因此采用短期训练进行的“对照”比较可能会掩盖随机初始化训练的真实表现。
2、ImageNet预训练不能自动提供性能更优的正则化。在使用较少的图像(不到COCO数据集的10%)进行训练时,我们发现必须选择新的超参数进行微调(来自预训练)以避免过度拟合。当用这些同样的超参数进行随机初始化训练时,该模型精度可以达到预训练模型的水平,无需任何额外的正则化处理。
3、当目标任务或指标对空间定位预测更敏感时,ImageNet预训练模型没有表现出任何优势。我们观察到,采用随机初始化训练时,预测性能出现明显改善。我们还发现,采用随机初始化训练的收敛速度也较预训练模型快。直观地说,基于分类任务的类ImageNet的预训练方式,与本地化的敏感目标任务之间的任务间存在鸿沟,这可能会限制预训练模型的优势。
作者在论文中写道,他们的结果挑战了ImageNet对依赖任务进行预训练的传统思想,他们的发现将鼓励人们重新思考当前计算机视觉中“预训练和微调”的“范式”。
那么,完全从零开始训练,与使用ImageNet预训练相比,最大的不同在哪里呢?
答案是“时间”。
使用ImageNet做预训练的模型已经具备了边缘、纹理等低级表征,而完全从零开始训练的模型需要迭代更久,因此需要更多的训练时间。
但是,从所需要的训练样本的像素(而非实例数)来看,随机初始化与使用ImageNet预训练,两者其实相差不太多。
图2:在所有训练迭代中看到的图像、实例和像素的总数,分别表示预训练+微调(绿色条)vs.随机初始化(紫色条)。我们考虑到ImageNet预训练需要100 epochs,fine-tuning采用2× schedule (∼24 epochs over COCO),随机初始化采用6× schedule (∼72 epochs over COCO)。我们计算ImageNet实例为1 per image (COCO是∼7),和ImageNet像素为224×224,COCO为800×1333。
下图展示了另一个例子,使用随机初始化(深红和深绿)和ImageNet预训练(浅红和浅绿),在多种情况下,两者的结果都是可比的。
区别大吗?
真的没有那么大!
图5:使用Mask R-CNN对不同系统进行随机初始化与预训练的比较,包括:(i)使用FPN和GN的baseline,(ii)使用训练时间多尺度增强的baseline,(iii)使用Cascade RCNN[3]和训练时间增强的baseline,以及(iv)加上测试时间多尺度增强的baseline。上图:R50;下图R101。
此论文实验部分写得非常漂亮,了解详情推荐阅读原文(地址见文末)。
何恺明等人在这篇论文中,探讨了以下几点:
无需更改架构,就能对目标任务进行从头开始的训练。
从头开始训练需要更多的迭代,以充分收敛。
在许多情况下,从头开始的训练并不比ImageNet预训练的同个模型差,甚至在只有10k COCO图像的情况下也是如此。
ImageNet预训练加速了目标任务的收敛。
ImageNet预训练不一定有助于减少过拟合,除非数据量真的非常小。
如果目标任务对定位比对分类更敏感,那么ImageNet预训练的帮助较小。
从目前的文献来看,这些结果是令人惊讶的,并对当前凡是计算机视觉任务就先拿ImageNet来预训练的做法不啻一记当头棒喝。
这些结果表明,当没有足够的目标数据或计算资源来对目标任务进行训练时,ImageNet预训练方式是一种基于“历史”的解决方法(并且可能会持续一段时间)。
现在看,ImageNet标注方便、应用广泛,似乎是“免费”资源,拿来用即可。
但不是的,抛开构建ImageNet花费了多少人力物力和时间不说,对于某些任务而言,如果目标数据与ImageNet相差太大,用在微调ImageNet预训练模型上的时间和精力,还不如直接从头开始训练。
这项工作也并非要我们彻底抛弃预训练模型,而是表明(至少视觉检测任务)除了用 ImageNet 预训练之外,还存在另一种训练方式,从零开始训练也完全可以。
这篇论文贴出来没多久,知乎上便出现了讨论“如何评价何恺明等 arxiv 新作 Rethinking ImageNet Pre-training?”
截止发稿前,点赞最高的回答来自中科院计算所博士“王晋东不在家”:
我不是排斥使用ImageNet pretrained network,我只是觉得,应该找一些领域,让ImageNet真正有用。不妨试试用这些预训练好的网络去进行医学图像分类、极端图像(低分辨率、逆光、精细图像、卫星)分类,这才是ImageNet的正确价值。
不过,欣喜的是,也有一批采用了浅层网络,或者是加入对抗机制的浅层网络,在最近的顶会上有所突破。
不能一直随大流,是时候重新思考了。
另一位计算机视觉从业者mileistone也表示:
深度学习领域理论发展慢于应用,像“train from scratch”类似的common practice很多,这些common practice很多没有理论支撑,我们也没法判断有没有道理,我们只知道大家都这么用。因为可质疑的地方太多了,我们很容易失去独立思考的能力。
希望更多的“rethink”文章出来,这些文章像鲶鱼一样,持续激发深度学习领域的活力。
何恺明等人认为,他们的论文和实验表明,随机初始化也有可能生成媲美COCO冠军的结果,正因如此,计算机视觉从业者才更应该慎待预训练特征。
计算机视觉的通用表征,仍然值得我们去追求。
论文地址:https://arxiv.org/pdf/1811.08883.pdf
知乎讨论:https://www.zhihu.com/question/303234604/answer/536820942
【加入社群】
新智元 AI 技术 + 产业社群招募中,欢迎对 AI 技术 + 产业落地感兴趣的同学,加小助手微信号:aiera2015_2 入群;通过审核后我们将邀请进群,加入社群后务必修改群备注(姓名 - 公司 - 职位;专业群审核较严,敬请谅解)。