预训练的机器学习模型与从头开始训练的模型

本文灵感来自 FAIR 的论文《Rethinking ImageNet Pre-training》

博客地址:https://heartbeat.fritz.ai/pre-trained-machine-learning-models-vs-models-trained-from-scratch-63e079ed648f

来自摘要:我们使用从随机初始化训练的标准模型在 COCO 数据集上报告对象检测和实例分割的竞争结果。结果并不比他们的 ImageNet 预训练对应物差,唯一的例外是增加训练迭代次数所以随机初始化的模型可能会收敛。随机初始化的训练非常稳健;即使在以下情况下,我们的结果也成立:(i) 仅使用 10% 的训练数据,(ii) 用于更深入和更广泛的模型,以及 (iii) 用于多个任务和指标。

目录

  • ImageNet 预训练和微调范式

  • 不同的训练模式

  • 特征表示和随机初始化相关工作

  • 归一化和收敛比较

  • 实验设置和结果

  • 增强的基线

  • 用较少的数据进行实验

  • 总结

迁移学习——预训练和微调范式

近年来,深度学习取得了很大进展。很难想象一个不使用深度学习的行业。大量数据的可用性以及计算资源的增加推动了这一进展。有许多众所周知的新颖方法促进了深度学习的发展。

其中之一是迁移学习,这是一种将一个训练模型学习到的表征/信息用于另一个需要针对不同数据和相似/不同任务进行训练的模型的方法。迁移学习使用预先训练的模型(即模型已经在一些更大的基准数据集上训练,比如 ImageNet)。

训练神经网络可能需要几分钟到几个月的时间,具体取决于数据和目标任务。直到几年前,由于计算限制,这仅适用于研究机构和技术组织。

但是随着预先训练的模型随时可用(以及其他一些因素),这种情况发生了变化。使用迁移学习,我们现在可以构建深度学习应用程序,以更快地解决与视觉相关的任务。

随着过去一年的最新发展,迁移学习现在也可以用于与语言相关的任务。所有这些都证明 Andrew Ng 几年前所说的话是正确的——迁移学习将成为商业 ML 成功的下一个驱动力。

不同的训练模式

在博客使用很少的数据构建强大的图像分类模型中, Francois Chollet 介绍了使用有限数据训练模型的过程。他从头开始训练一个模型 50 个 epochs,并在狗与猫分类上获得了 80% 的准确率。使用预训练模型的瓶颈特征,使用相同数据的准确率跃升至 90%。作为最后一步,在微调网络的顶层时,报告的准确率为 94%。

在这里很明显,与从头开始训练的模型相比,使用迁移学习和预训练模型可以提高准确性,而无需花费太多时间来收敛。这是否意味着预训练和微调范式明显优于从头开始训练?

上图有助于在训练模型时可视化一些可能性。右边的图像代表一个模型,其中训练模型的卷积基被冻结,从中获得的瓶颈特征用于重新训练进一步的层。这是使用预训练模型的典型场景。中间的图像代表一个模型,其中除了少数初始层外,网络的其余部分都经过训练。左边的最终模型代表从头开始训练模型——这就是我们将在本博客中研究的方法。

在预训练和微调范式中,模型训练从一些来自预训练模型的学习权重开始。这已经变得更加标准,尤其是在与视觉相关的任务(如对象检测图像分割)方面

在 ImageNet 上预训练的模型擅长检测边缘、模式等高级特征。这些模型理解某些特征表示,可以重用。这有助于更快地收敛,并用于对象检测、分割和活动识别等任务的最先进方法。但是这些表示有多好?

特征表示和随机初始化

预训练模型学习的特征表示是领域相关的。他们从他们接受过训练的基准数据集中学习。我们可以通过构建更大的数据集来实现通用特征表示吗?在这方面已经做了一些工作,其中注释了几乎是 ImageNet 大小的 3000 倍的数据集。

然而,随着用于预训练的数据集的大小,目标任务的改进效果不佳。它表明,简单地构建更大的数据集并不总是能在目标任务上获得更好的结果。另一种选择是使用随机权重初始化从头开始训练模型。

为了从头开始训练模型,网络中的所有参数或权重都是随机初始化的。论文Rethinking ImageNet Pre-training 中进行的实验使用 Mask R-CNN 作为基线。该基线模型在 COCO 数据集上进行了预训练和未预训练,并对结果进行了比较。

获得的结果证明,通过对模型进行足够次数的迭代训练并使用适当的技术,从头开始训练的模型也提供了与微调模型的比较和接近的结果。

相关工作

如果您习惯于使用预先训练的模型,那么从头开始训练可能听起来既费时又费力。为了质疑这个假设,我们可以从头开始查看先前对训练模型所做的研究,而不是使用预先训练的模型。

DetNet 和 CornerNet 使用专门的模型架构从头开始适应训练模型。但是没有证据表明这些特殊的架构与预训练和微调范式的结果有任何比较。

在这项工作中,作者考虑使用现有的基线架构进行一些更改。一种是训练模型进行更多迭代,另一种是使用批量标准化替代方案,如组标准化和同步批量标准化。有了这个,作者能够产生接近于微调方法的结果。

归一化和收敛比较

如果模型在没有适当标准化的情况下从头开始训练,则可能会产生误导性的结果,这可能意味着从头开始的训练根本不是最佳的。

对于与视觉相关的任务,训练数据由高分辨率图像组成。这意味着必须相应地调整批大小以满足内存限制。批量标准化适用于更大的批量。批量越大越好。但是由于高分辨率图像和内存限制,模型训练必须将其批量大小限制为较小的数字。这导致BN的不良结果。

为了避免这种情况,使用了组归一化和同步批量归一化。组标准化与批量大小无关。同步BN使用多个设备。这增加了有效批量大小并避免了小批量,从而可以从头开始训练模型。

微调模型取得了领先,因为预训练模型已经学习了高级特征。这意味着从头开始训练的模型无法像微调模型那样快速收敛。虽然这可以使微调模型更好,但还应该考虑在 ImageNet 等大型基准数据集上预训练模型所需的时间和资源。在 ImageNet 预训练期间,经过多次迭代训练了超过一百万张图像。所以为了让随机初始化训练赶上,模型需要多次训练迭代。

[图片上传中...(image-d29241-1628604915936-0)]

此处的图像总结了在两种情况下看到的训练样本数量 - 有和没有预训练。根据目标任务,样本可以是图像、实例或像素。对于分割任务,该模型在像素级别工作。对于对象检测,重要的是每个图像中对象的实例。我们看到,除了分割(像素级任务)之外,从头开始训练所需的训练图像数量要少得多。

实验设置和结果

以下是实验设置——使用的架构和超参数。实验使用具有 ResNet 和 ResNext 架构的 Mask R-CNN 作为基线。GN 或 SyncBN 用于归一化。该模型以 0.02的初始学习率进行训练,并在最后 60k 和 20k 次迭代中分别减少了 10 倍。训练数据水平翻转,基线模型没有测试时间增加。总共使用了 8 个 GPU 进行训练。

通过在 COCO 数据集上用 118K 训练和 5k 验证样本训练具有这些设置的模型,从头训练的模型能够赶上预训练模型的准确性。

在这种情况下,目标检测和图像分割是两个目标任务。边界框和掩码的平均精度是指标。正如我们在上图中所看到的,左边的一个是用 ResNet 101 和 GN 训练的,而右边的一个显示了带有 ResNet50 和 SyncBN 的 Mask RCNN 的结果。

我们看到,在微调时,预训练使模型领先一步,因为我们看到 AP 从接近 20 的值开始。而从头开始训练时,模型从接近 5 的 AP 值开始。但是需要注意的重要一点是,从头开始训练的模型继续给出接近的结果。这里的这些尖峰表示应用不同的时间表和学习率的结果,所有这些都合并到同一个图中。

增强的基线

作者还尝试对他们的基线模型进行改进。通过在训练期间添加规模增强,报告了更好的结果。同样,使用 Cascade RCNN 和测试时间增强也改善了结果。

我们看到,通过训练和测试时间的增加,从头训练的模型比预训练的模型给出了更好的结果。这些图显示了增强型基线模型的结果。

使用较少数据进行实验

最后的实验是尝试不同数量的训练数据。虽然这项工作的第一个有趣发现是,即使使用从头开始训练的模型,我们也可以获得可比较的结果,另一个令人惊讶的发现是,即使数据较少,从头开始训练仍然可以产生与微调模型接近的结果。

当仅使用整个 COCO 训练数据的 1/3,即接近 35K 图像时,实验表明微调方法在一些迭代后开始过度拟合。这表明 ImageNet 预训练不会自动帮助减少过拟合。但是尽管数据较少,从头开始的训练仍然赶上微调的结果。

当只使用十分之一的训练数据(接近 10k 个图像)进行训练时,会发现类似的趋势。我们可以在左图中看到——使用预训练和微调方法,模型在一些迭代后开始过度拟合。

我们在中间和右边的图中看到,从头开始训练的结果与微调模型的结果非常接近。如果我们尝试使用更少的数据怎么办?喜欢使用整个训练数据的百分之一?当仅使用 1k 图像时,从头开始训练仍然收敛得相当缓慢。但它会产生更糟糕的结果。虽然预训练模型的 AP 为 9.9,但所考虑的方法仅给出 3.5。这表明模型由于缺乏数据而过度拟合。

总结

  • 无需更改架构或专门的网络,就可以从头开始针对目标任务进行训练。

  • 从头开始训练需要更多的迭代才能充分收敛。

  • 在许多情况下,从头开始训练并不比其 ImageNet 预训练对手差,低至 10k COCO 图像。

  • ImageNet 预训练加快了目标任务的收敛速度,但不一定有助于减少过度拟合,除非我们进入非常小的数据范围。

  • 如果目标任务对定位比分类更敏感,则 ImageNet 预训练的帮助较小。

  • 预训练有助于学习通用表示,但在评估预训练特征时我们应该小心。

结论

该论文并未声称无论如何都不推荐预训练和微调方法。但包括的实验表明,对于某些场景,从头开始训练模型的结果比微调/预训练方法略好。这意味着如果计算不是约束,那么对于某些场景和配置设置,从头开始训练的模型比微调的模型给出更好的结果。 这是一项有趣的研究,特别是因为预训练和微调范式更多地被用作标准程序。考虑到深度学习的应用领域——包括汽车、健康、零售等的用例,在这些用例中,即使准确性的微小改进也会产生巨大的差异——研究不仅要瞄准新颖和创新的方法,而且要更详细地研究现有方法。这可能会带来更好的见解和新发现。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,519评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,842评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,544评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,742评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,646评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,027评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,169评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,324评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,268评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,299评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,996评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,591评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,911评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,288评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,871评论 2 341

推荐阅读更多精彩内容