超越ImageNet:谷歌内建300M图像数据集探索大规模数据的影响
选自Google Research
机器之心编译
参与:蒋思源、路雪
自残差网络以来,深度模型拥有了极大的容量,同时 GPU、TPU 等硬件为深度学习提供了巨大的计算力。但计算机视觉最主要的数据集还是仅拥有 1M 图片的 ImageNet,因此谷歌希望利用 300M 的大数据集进一步检验模型的能力和提升空间。
过去十年,计算视觉领域取得了巨大成就,其中许多成果应归功于深度学习模型在该领域的应用。自 2012 年起,这些系统的能力取得了极大的进步,这应归功于(a)模型复杂度更高,(b)持续增强的计算力,(c)拥有大量标注数据。但是,尽管计算能力和模型复杂度每年都在提升(从 7 层的 AlexNet 到 101 层的 ResNet),但可使用的数据集并未随之增加。101 层的 ResNet 比 AlexNet 的容量(神经网络深度)大得多,但是仍然只能使用从 ImageNet circa 2011 获取的 1M 图像。作为研究者,我们一直在思考:如果训练数据扩展到原来的 10 倍,正确率是否会大量提升?100 倍或者 300 倍呢?正确率停滞不前,还是更多的数据将带来更多的成果?
过去五年中,GPU 计算力和模型大小持续增加,但是最大训练数据集的大小却保持不变。
在论文「Revisiting Unreasonable Effectiveness of Data in Deep Learning Era」中,我们初步采取措施试图理解「巨量数据」和深度学习的关系。我们的目标是研究:(a)向现有算法提供更多带有噪声标注的图像是否可以改善视觉表征效果;(b)分类、目标检测和图像分割等标准视觉任务中,数据与效果之间的本质关系;(c)使用大规模学习方法找到适用于计算机视觉领域所有任务的最优模型。
当然,一个显而易见却往往被忽略的事情是我们从何处获取相当于 ImageNet 300 倍大小的数据集。在谷歌,我们一直致力于自动构建此类数据集以改善计算机视觉算法。具体来说,我们已经构建包含 300M 图像的内部数据集(JFT-300M),这些图像被标注为 18291 个类别。图像标注算法使用了原始网络信号的复杂混合体和网页与用户反馈之间的连接,这导致 300M 图像拥有 10 亿多标签(一个图像可具备多个标签)。10 亿图像标签中,谷歌通过将所选图像的标签精度最大化而获取了 375M 标注。然而,标签中仍然存在大量噪声:所选图像的标签中约有 20% 带有噪声。由于缺乏详细注释,我们无法评估标签的召回率。
我们的实验结果证实了部分假设,但是也产生了一些意想不到的结果:
表征学习有所帮助。我们的第一个观察是大量数据有助于表征学习,同时表征学习也帮助改善我们研究的每一个视觉任务的表现。我们发现协力构建可用于预训练的大规模数据集非常重要,这也说明非监督和半监督表征学习方法前景无限。看起来数据规模可以战胜标签噪声。
任务表现与训练数据数量级呈线性增长关系。或许最令人震惊的发现是视觉任务的表现和用于表征学习的训练数据量级(对数尺度)之间的关系竟然是线性的!即使拥有 300M 的大规模训练图像,我们也并未观察到训练数据对所研究任务产生任何平顶效应(plateauing effect)。
预训练模型在 JFT-300M 不同子数据集中的目标检测性能。其中 x 轴代表数据集的大小,y 轴代表在 mAP@[.5,.95] 中 COCO-minival 子数据集上的检测性能。
模型容量是关键。我们同样观察到为了完全开发 300M 图像,模型需要更高的容量,即更深的神经网络。例如,在 COCO 目标检测基准上使用 ResNet-50(1.87%)要比使用 ResNet-152(3%)更少一些。
新的最优结果。我们的论文展示了在 JFT-300M 上训练的模型,该模型在多个基准上获得了最佳的结果。例如,单模型(没有任何附加技巧)在 COCO 检测基准上获得了 37.4 AP(相对于原来的 34.3 AP)。
我们需要重点强调模型的训练机制,我们使用的学习计划和参数都是基于我们在 ImageNet 1M 图像中使用卷积网络训练的理解。因为我们在该项工作中并不会搜索最优超参数集(这需要相当大的计算量),所以在使用这种规模的数据下,可能模型的表现并不是最佳的,我们模型的性能还可以通过搜索超参数而达到更优。因此我们认为量化性能其实还低估了数据的实际影响。
该项研究工作并不会关注特定任务的数据集,例如探索更多的边界框是否会影响模型性能等。我们认为虽然获取大规模特定该项研究工作并不会关注特定任务的数据集,例如探索更多的边界框是否会影响模型性能等。我们认为虽然获取大规模特定任务的数据是很困难的,但它应该会成为未来研究的关注重点。此外构建300M图像的数据集不应该是我们的最终目标,作为机器视觉社区这样一个整体,只要模型的性能继续提升,我们就应该构建更大的数据集,即使是构建数十亿张图像的数据集也是值得的。
论文:Revisiting Unreasonable Effectiveness of Data in Deep Learning Era
论文地址:https://arxiv.org/abs/1707.02968
摘要:深度学习在机器视觉上的成功主要可以归功于三部分:(a)模型的复杂度足够高,(b)持续增强的计算力,(c)拥有大量标注数据。从 2012 年开始,模型表征数据的能力和 GPU 计算力都有显著的提升。但令人惊讶的是,是大数据集的规模却仍保持不变。如果我们将数据集的大小扩展到 10 倍、100 倍会发生什么?本论文主要论述和描述「巨量数据」和深度学习之间的关系。我们应用和探索拥有 300M 图像超过 375M 噪声标注(noisy label)的 JFT-300M 数据集,并探讨如果我们将该数据集应用于表征学习,那么目前的视觉任务表现将会有什么样的改变。
我们的论文提供了一些令人惊讶和一些期望中的结果。首先,我们发现视觉任务的表现随着训练数据规模的增长而成线性增长。其次我们发现表征学习(或预训练模型)仍然有很多提升余地。我们可以通过训练更好的基础模型而提升任何视觉任务的性能。最后如预期那样,我们展示了包含图像分类、目标检测、语义分割和人体姿态估计等不同视觉任务的最佳结果。我们真的希望机器视觉社区不要低估数据量的重要性,并期待通过集体的努力构建更大的数据集。
图 2:JFT-300M 数据集存在噪声,因为其存在很多混淆标注和错误标注。这是因为标注是通过复杂混合网页信息生成的,并不是由人工标注的。其中 X 轴代表数据到 K 均值中心的量化距离,该距离是基于视觉特征而计算的。
图 3:在 JFT-300M 数据集上的训练过程,其中蓝线代表随机初始化,黄线代表 ImageNet 初始化,x 轴代表迭代步数,y 轴代表在 FastEval14k 计算的 mAP@100 度量标准。
表 1:在 ImageNet「val」集上的 Top-1 和 top-5 分类精度。
表 2:在 COCO test-dev 中目标检测性能和基线法性能的比较。
图 5:COCO minival 上的目标检测性能(左)和不同深度的残差网络模型得分(右)。