0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

何恺明、Ross Girshick等大神深夜扔出“炸弹”:ImageNet预训练并非必须

DPVg_AI_era 来源:未知 作者:李倩 2018-11-24 10:09 次阅读

何恺明、Ross Girshick等大神深夜扔出“炸弹”:ImageNet预训练并非必须。大神们使用随机初始化变得到了媲美COCO冠军的结果,无情颠覆“预训练+微调”思维定式——再看此前预训练与此后微调所付出的种种,呜呼哀哉,好不苦矣!

ImageNet 有用吗?

当然有用。

但 ImageNet 预训练却并非必须!

刚刚,何恺明等人在arxiv贴出一篇重磅论文,题为《重新思考“ImageNet预训练”》,让似乎本已经平静的ImageNet湖面,再掀波澜!

Facebook 人工智能研究所何恺明、Ross Cirshick 和 Piotr Dollar 三人在arxiv上贴出最新论文:重新思考ImageNet预训练

过去几年来,使用ImageNet这套大规模数据集进行预训练的视觉模型,对于执行计算机视觉任务而言都是必不可少的存在。虽然并没用多少时间,但人们似乎都默认,计算机视觉任务需要使用ImageNet预训练模型。

然而,何恺明等人却站出来说——不!

ImageNet 预训练模型并非必须,ImageNet 能做的只是加速收敛,对最终物体检测的精度或实例分割的性能并无帮助。

他们使用随机初始化的模型,不借助外部数据,取得了不逊于COCO 2017冠军的结果。

大神不愧为大神——此前我们预训练ImageNet模型再辛辛苦苦微调,都是为了什么?!

不用ImageNet预训练,随机初始化就能媲美COCO冠军!

何恺明等人研究表明,在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做预训练的模型已经具备了边缘、纹理等低级表征,而完全从零开始训练的模型需要迭代更久,因此需要更多的训练时间。

但是,从所需要的训练样本的像素(而非实例数)来看,随机初始化与使用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时代完结”,从零开始训练完全可行

何恺明等人在这篇论文中,探讨了以下几点:

无需更改架构,就能对目标任务进行从头开始的训练。

从头开始训练需要更多的迭代,以充分收敛。

在许多情况下,从头开始的训练并不比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冠军的结果,正因如此,计算机视觉从业者才更应该慎待预训练特征。

计算机视觉的通用表征,仍然值得我们去追求。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机视觉
    +关注

    关注

    8

    文章

    1696

    浏览量

    45930
  • 数据集
    +关注

    关注

    4

    文章

    1205

    浏览量

    24649
  • 深度学习
    +关注

    关注

    73

    文章

    5493

    浏览量

    121003

原文标题:何恺明抛出重磅炸弹!ImageNet并非必要

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于不同量级训练数据的RoBERTa模型分析

    NLP领域的研究目前由像RoBERTa经过数十亿个字符的语料经过训练的模型汇主导。那么对于一个训练模型,对于不同量级下的
    发表于 03-03 11:21 1788次阅读

    【大语言模型:原理与工程实践】大语言模型的训练

    数据格式的转换、数据字段的匹配和整合。通过数据级净化,可以进一步提高数据的质量和可用性,为后续的数据分析和建模提供更有价值的数据支持。 在得到了大语言模型的数据之后,就是对其进行训练。大圆模型拥有
    发表于 05-07 17:10

    索尼发布新的方法,在ImageNet数据集上224秒内成功训练了ResNet-50

    近年来,许多研究人员提出了多种方案来解决这两个问题(见原文参考文献)。这些工作利用ImageNet/ResNet-50训练来衡量训练效果。ImageNet/ResNet-50分别是最流
    的头像 发表于 11-16 10:01 9794次阅读

    ResNet原始结果无法复现?大神受到了质疑

    但是,如果只是简单地将层堆叠在一起,增加网络的深度并不会起太大作用。这是由于难搞的梯度消失(vanishing gradient)问题,深层的网络很难训练。因为梯度反向传播到前一层,重复相乘可能使梯度无穷小。结果就是,随着网络的层数更深,其性能趋于饱和,甚至开始迅速下降。
    的头像 发表于 04-19 11:21 1.8w次阅读
    ResNet原始结果无法复现?<b class='flag-5'>大神</b><b class='flag-5'>何</b><b class='flag-5'>恺</b><b class='flag-5'>明</b>受到了质疑

    新的训练方法——MASS!MASS训练几大优势!

    专门针对序列到序列的自然语言生成任务,微软亚洲研究院提出了新的训练方法:屏蔽序列到序列训练(MASS: Masked Sequence to Sequence Pre-traini
    的头像 发表于 05-11 09:34 7062次阅读
    新的<b class='flag-5'>预</b><b class='flag-5'>训练</b>方法——MASS!MASS<b class='flag-5'>预</b><b class='flag-5'>训练</b>几大优势!

    腾讯开源首个3D医疗影像大数据训练模型

    自然图像领域中存在着许多海量数据集,如ImageNet,MSCOCO。基于这些数据集产生的训练模型推动了分类、检测、分割应用的进步。
    发表于 08-20 15:03 1962次阅读

    华为扔出一颗重磅炸弹:华为云手机,横空出世!

    山穷水尽疑无路,柳暗花又一春! 9月1日,华为突然扔出一颗重磅炸弹:华为云手机,横空出世! 看吧,华为首创全球首个 ARM 芯片的 云手机 , 今天正式公测了,在一个月公测期,价值 5950 元
    的头像 发表于 09-11 12:05 7063次阅读

    小米在训练模型的探索与优化

    导读:训练模型在NLP大放异彩,并开启了训练-微调的NLP范式时代。由于工业领域相关业务的复杂性,以及工业应用对推理性能的要求,大规模
    的头像 发表于 12-31 10:17 2565次阅读
    小米在<b class='flag-5'>预</b><b class='flag-5'>训练</b>模型的探索与优化

    如何实现更绿色、经济的NLP训练模型迁移

    NLP中,训练大模型Finetune是一种非常常见的解决问题的范式。利用在海量文本上训练得到的Bert、GPT模型,在下游不同任务上分
    的头像 发表于 03-21 15:33 2169次阅读

    利用视觉语言模型对检测器进行训练

    训练通常被用于自然语言处理以及计算机视觉领域,以增强主干网络的特征提取能力,达到加速训练和提高模型泛化性能的目的。该方法亦可以用于场景文本检测当中,如最早的使用ImageNet
    的头像 发表于 08-08 15:33 1363次阅读

    什么是训练 AI 模型?

    训练 AI 模型是为了完成特定任务而在大型数据集上训练的深度学习模型。这些模型既可以直接使用,也可以根据不同行业的应用需求进行自定义。 如果要教一个刚学会走路的孩子什么是独角兽,那么我们首先应
    的头像 发表于 04-04 01:45 1420次阅读

    什么是训练AI模型?

    训练 AI 模型是为了完成特定任务而在大型数据集上训练的深度学习模型。这些模型既可以直接使用,也可以根据不同行业的应用需求进行自定义。
    的头像 发表于 05-25 17:10 996次阅读

    PyTorch教程-15.9。训练 BERT 的数据集

    模型可能不适合医学特定领域的应用。因此,在自定义数据集上训练 BERT 变得越来越流行。为了便于演示 BERT 训练,我们使用较小的
    的头像 发表于 06-05 15:44 778次阅读

    训练模型的基本原理和应用

    训练模型(Pre-trained Model)是深度学习和机器学习领域中的一个重要概念,尤其是在自然语言处理(NLP)和计算机视觉(CV)领域中得到了广泛应用。
    的头像 发表于 07-03 18:20 2440次阅读

    大语言模型的训练

    能力,逐渐成为NLP领域的研究热点。大语言模型的训练是这一技术发展的关键步骤,它通过在海量无标签数据上进行训练,使模型学习到语言的通用知识,为后续的任务微调奠定基础。本文将深入探讨大语言模型
    的头像 发表于 07-11 10:11 391次阅读