人工智能未来的数据标注将会是自我标注

2017 年 7 月,最后一届 ImageNet 挑战赛落幕。

为何对计算机视觉领域有着重要贡献的 ImageNet 挑战赛,会在 8 年后宣告终结?

毕竟计算机系统在图像识别等任务上的准确率已经超过人类水平,每年一次突破性进展的时代也已经过去。

近日,FAIR(Facebook AI Research) 的 Ross Girshick 、何恺明等大神联手,在 ImageNet-1k 图像分类数据集上取得了 85.4% 的准确率,超越了目前的最好成绩,而且没有使用专门为训练深度学习标记的图像作为训练数据。

然而,这不能怪大家不努力,只怪 Facebook 实在太土豪。10 亿张带有 hashtag(类似于微博里面的话题标签)的图片,以及 336 块 GPU,敢问谁能有这种壕气?

Facebook 表示,实验的成功证明了弱监督学习也能有良好表现,当然,只要数据足够多。

话不多说,我们一起来看看 Facebook 是怎样用数据和金钱砸出这个成果的。

以下内容来自 Facebook 官方博客,人工智能头条 编译:

图像识别是人工智能研究的重要领域之一,同时也是 Facebook 的一大重点关注领域。我们的研究人员和工程师希望尽最大的努力打破计算机视觉系统的边界,然后将我们的研究成功应用到现实世界的问题中。为了改进计算机视觉系统的性能,使其能够高效地识别和分类各种物体,我们需要拥有至少数十亿张图像的数据集来作为基础,而不仅仅是百万量级。

目前比较主流的模型通常是利用人工注释的单独标记的数据进行训练,然而在这种情况下,增强系统的识别能力并不是往里面“扔”更多的图片那样简单。监督学习是劳动密集型的,但是它通常能够达到最佳的效果,然而手动标记数据集的大小已经接近极限。尽管 Facebook 正在利用 5000 万幅图像对一些模型进行训练,然而在数据全部需要人工标记的前提下,将训练集扩大到数十亿张是不可能实现。

我们的研究人员和工程师想出了一个解决办法:利用大量带有“hashtag”的公共图像集来训练图像识别网络,其中最大的数据集包括 35 亿张图像以及 17000 种 hashtag。这种方法的关键是使用现有的、公开的、用户提供的 hashtag 作为标签,而不是手动对每张图片进行分类。

这种方法在我们的测试中运行十分良好。我们利用具有数十亿张图像的数据集来训练我们的计算机视觉系统,然后在 ImageNet 上获得了创纪录的高分(准确率达到了 85.4%)。除了在图像识别性能方面实现突破之外,本研究还为如何从监督学习转向弱监督学习转变提供了深刻的洞见:通过使用现有标签——在本文这种情况下指的是 hashtag——而不是专门的标签来训练 AI 模型。我们计划在不久的将来会进行开源,让整个 AI 社区受益。

▌大规模使用 hashtag

由于人们经常用 hashtag 来对照片进行标注,因此我们认为这些图片是模型训练数据的理想来源。人们在使用 hashtag 的主要目的是让其他人发现相关内容,让自己的图片更容易被找到,这种意图正好可以为我们所用。

但是 hashtag 经常涉及非可视化的概念,例如 “#tbt” 代表“throwback Thursday”;有些时候,它们的语义也含糊不清,比如 “#party”,它既可以描述一个活动,也可以描述一个背景,或者两者皆可。为了更好地识别图像,这些标签可以作为弱监督数据,而模糊的或者不相关的 hashtag 则是不相干的标签噪声,可能会混淆深度学习模型。

由于这些充满噪声的标签对我们的大规模训练工作至关重要,我们开发了新的方法:把 hashtag 当作标签来进行图像识别实验,其中包括处理每张图像的多个标签(因为用户往往不会只添加一个 hashtag),对 hashtag 同义词进行排序,以及平衡常见的 hashtag 和少见的 hashtag 的影响。

为了使标签对图像识别训练更加有用,我们团队训练了一个大型的 hashtag 预测模型。这种方法显示了出色的迁移学习结果,这意味着该模型在图像分类上的表现可以广泛适用于其他人工智能系统。

▌在规模和性能上实现突破

如果只是用一台机器的话,将需要一年多的时间才能完成模型训练,因此我们设计了一种可以将该任务分配给 336 个 GPU 的方法,从而将总训练时间缩短至数周。随着模型规模越来越大——这项研究中最大的是 ResNeXt 101-32x48d,其参数超过了 8.61 亿个——这种分布式训练变得越来越重要。此外,我们还设计了一种删除重复值(副本)的方法,以确保训练集和测试集之间没有重叠。

尽管我们希望看到图像识别的性能得到一定提升,但试验结果远超我们的预期。在 ImageNet 图像识别基准测试中(该领域最常见的基准测试),我们的最佳模型通过 10 亿张图像的训练之后(其中包含 1,500 个 hashtag)达到了 85.4% 的准确率,这是迄今为止 ImageNet 基准测试中的最好成绩,比之前最先进的模型的准确度高了 2%。再考虑到卷积网络架构的影响后,我们所观察到的性能提升效果更为显著:在深度学习粒使用数十亿张带有 hashtag 的图像之后,其准确度相对提高了 22.5%。

在 COCO 目标检测挑战中,我们发现使用 hashtag 预训练可以将模型的平均精度(average precision)提高 2% 以上。

这些图像识别和物体检测领域的基础改进,代表了计算机视觉又向前迈出了一步。但是除此之外,该实验也揭示了与大规模训练和噪声标签相关的挑战和机遇。

例如,尽管增加训练数据集规模的大小是值得的,但选择与特定识别任务相匹配的一组 hashtag 也同样重要。我们选择了 10 亿张图像以及 1,500 个与 ImageNet 数据集中的类相匹配的 hashtag,相比同样的图像加上 17,000 个 hashtag,前者训练出来的模型取得了更好的成绩。另一方面,对于图像类别更多更广泛的任务,使用 17,000 个主 hashtag 训练出来模型性能改进的更加明显,这表明我们应该在未来的训练中增加 hashtag 的数量。

增加训练数据量通常对图像分类模型的表现是有益,但它同样也有可能会引发新的问题,如在图像内定位物体的能力明显下降。除此之外我们还观察到,实验中最大的模型仍然没有能够充分利用 35 亿张巨大图像集的优势,这表明我们应该构建更大的模型。

▌未来的图像识别:更大规模、自我标注

本次研究的一个重要结果,甚至比在图像识别方面的广泛收益还要重要,是确认了基于 hashtag 来训练计算机视觉模型是完全可行的。虽然我们使用了一些类似融合相似的 hashtag,降低其他 hashtag 权重的基本技术,但并不需要复杂的“清洗”程序来消除标签噪声。相反,我们能够使用 hashtag 来训练我们的模型,而且只需要对训练过程进行微小的调整。当训练集的规模达到十亿级时,我们的模型对标签噪音表现出了显著的抗干扰能力,因此数据集的规模在这里显然是一个优势。

在不久的将来,我们还会设想使用 hashtag 作为计算机视觉标签的其他方法。这些方法可能包括使用人工智能来更好地理解视频片段或更改图片在 Facebook 信息流中的排名方式。hashtag 还可以帮助系统更具体地识别图像是不是属于更细致的子类别,而不仅仅是宽泛的分类。一般情况下,图片的音频字幕都是仅宽泛地注释出物种名称,如“图片中有一些鸟类栖息”,但如果我们能够让注释更加精确(例如“一只红雀栖息在糖枫树上”),就可以为视障用户提供更加准确的描述。

此外,这项研究还可以改进新产品以及现有产品中的图像识别功能带来。例如,更准确的模型可能会促进我们改进在 Facebook 上呈现 Memories(与QQ的“日迹”相似)的方式。随着训练数据集越来越大,我们需要应用弱监督学习——而且从长远来看,无监督学习会变得越来越重要。

这项研究在论文“Exploring the Limits of Weakly Supervised Pretraining”中有更详细的描述。


推荐文章

Calamari是一种新的开源OCR识别软件,它使用了最先进的Tensorflow实现的深度神经网络(DNN)。 提供了预训练模型和多模型投票技术。由卷积神经网络(CNNS)和长短时记忆(LSTM)层构成的可定制网络架构通过Graves等人的连接时间分类(CTC)算法进行训练。而GPU的使用大大减少了训练和预测的计算时间。我们使用两个不同的数据集来比较Calamari与OCRopy,OCRopus3和Tesseract 4的性能.Calamari在用现代英语写的UW3数据集上达到0.11%的字符错误率(CER),在用德语写的DTA19数据集上达到0.18% 错误率,其性能远远优于以上现有开源软件的结果。使用了目前OCR最先进的的技术,CNN+LSTM+CTC+voting。calamari OCR引擎,使用Python3编写,基于OCRopy和Kraken构建,它的设计使你既可以方便的使用命令行运行,也可以把它模块化嵌入到其他python脚本中。在UW3和DTA19上的识别结果错误率,与OCRopy、Tesseract4、OCropus3相比较:与其他软件相比的识别速度,有GPU加持当然很快:值得注意的事,该库主要是用来识别印刷体古籍文字,在自然场景图像上的识别并没有实验说明。文中识别所用的数据库图片示例:转载来源:《开源OCR文字识别软件Calamari》 

热门文章

简单讲:互联网数据标注员是借助电脑或者移动设备对一些原始的数据进行处理,生产出满足AI公司机器学习需要数据的一群人。按照数据处理对象的不同,工作内容也会有差别,标注员的工作内容可以分为:分类;框选;注释;标记。按照所处公司的不同,标注员的工作方式也会有差别:有的人工智能公司处于对数据安全性考虑会自建标注团队,在这些公司工作的标注员可以保证自己工作内容不会出现太大变动;但一些服务于人工智能公司非专业外包公司标注员的工作则是项目制的,一个项目忙完紧接着做另一个项目,这样工作内容连续性较差,对一种类型的项目经验也不会积累的太多。就目前来说,人工智能还处于人工增长阶段,机器依然需要大量的数据进行训练,测试。标注员在当下也会一直存在,而且从业群体会越来越多,所以暂时不用担心这份职业会不会短期消失。就标注员从业来说,建议选择人工智能公司和专业的数据公司,这样可以保证自己在一个方向上了解的足够深入。就职场晋升来说,以牛牛数据为例:标注员——项目经理——项目总监——数据运营总监。首先谈谈什么是数据标注。数据标注有许多类型,如分类、画框、注释、标记等等,我们会在下面详谈。要理解数据标注,得先理解AI其实是部分替代人的认知功能。回想一下我们是如何学习的,例如我们学习认识苹果,那么就需要有人拿着一个苹果到你面前告诉你,这是一个苹果。然后以后你遇到了苹果,你才知道这玩意儿叫做“苹果”。类比机器学习,我们要教他认识一个苹果,你直接给它一张苹果的图片,它是完全不知道这是个啥玩意的。我们得先有苹果的图片,上面标注着“苹果”两个字,然后机器通过学习了大量的图片中的特征,这时候再给机器任意一张苹果的图片,它就能认出来了。这边可以顺带提一下训练集和测试集的概念。训练集和测试集都是标注过的数据,还是以苹果为例子,假设我们有1000张标注着“苹果”的图片,那么我们可以拿900涨作为训练集,100张作为测试集。机器从900张苹果的图片中学习得到一个模型,然后我们将剩下的100张机器没有见过的图片去给它识别,然后我们就能够得到这个模型的准确率了。想想我们上学的时候,考试的内容总是不会和我们平时的作业一样,也只有这样才能测试出学习的真正效果,这样就不难理解为什么要划分一个测试集了。我们知道机器学习分为有监督学习和无监督学习。无监督学习的效果是不可控的,常常是被用来做探索性的实验。而在实际产品应用中,通常使用的是有监督学习。有监督的机器学习就需要有标注的数据来作为先验经验。在进行数据标注之前,我们首先要对数据进行清洗,得到符合我们要求的数据。数据的清洗包括去除无效的数据、整理成规整的格式等等。具体的数据要求可以和算法人员确认。二、常见的几种数据标注类型1.分类标注:分类标注,就是我们常见的打标签。一般是从既定的标签中选择数据对应的标签,是封闭集合。如下图,一张图就可以有很多分类/标签:成人、女、黄种人、长发等。对于文字,可以标注主语、谓语、宾语,名词动词等。<img src="https://pic2.zhimg.com/50/v2-df93dc0a7e8a5fe387dc3774748b5f05_hd.jpg" data-caption="" data-size="normal" data-rawwidth="700" data-rawheight="400" class="origin_image zh-lightbox-thumb" width="700" data-original="https://pic2.zhimg.com/v2-df93dc0a7e8a5fe387dc3774748b5f05_r.jpg">适用:文本、图像、语音、视频应用:脸龄识别,情绪识别,性别识别2.标框标注:机器视觉中的标框标注,很容易理解,就是框选要检测的对象。如人脸识别,首先要先把人脸的位置确定下来。行人识别,如下图。<img src="https://pic2.zhimg.com/50/v2-7824903d6d840e2bb08d96b5c2fa5874_hd.jpg" data-caption="" data-size="normal" data-rawwidth="591" data-rawheight="398" class="origin_image zh-lightbox-thumb" width="591" data-original="https://pic2.zhimg.com/v2-7824903d6d840e2bb08d96b5c2fa5874_r.jpg">适用:图像应用:人脸识别,物品识别3.区域标注:相比于标框标注,区域标注要求更加精确。边缘可以是柔性的。如自动驾驶中的道路识别。<img src="https://pic3.zhimg.com/50/v2-4bc1dd2278182acf94fc426d7e6f2dc1_hd.jpg" data-caption="" data-size="normal" data-rawwidth="601" data-rawheight="377" class="origin_image zh-lightbox-thumb" width="601" data-original="https://pic3.zhimg.com/v2-4bc1dd2278182acf94fc426d7e6f2dc1_r.jpg">适用:图像应用:自动驾驶4.描点标注:一些对于特征要求细致的应用中常常需要描点标注。人脸识别、骨骼识别等。<img src="https://pic4.zhimg.com/50/v2-5e24f394516c75e45942c37ba0da85c0_hd.jpg" data-caption="" data-size="normal" data-rawwidth="583" data-rawheight="387" class="origin_image zh-lightbox-thumb" width="583" data-original="https://pic4.zhimg.com/v2-5e24f394516c75e45942c37ba0da85c0_r.jpg">适用:图像应用:人脸识别、骨骼识别5.其他标注:标注的类型除了上面几种常见,还有很多个性化的。根据不同的需求则需要不同的标注。如自动摘要,就需要标注文章的主要观点,这时候的标注严格上就不属于上面的任何一种了。(或则你把它归为分类也是可以的,只是标注主要观点就没有这么客观的标准,如果是标注苹果估计大多数人标注的结果都差不多。)三、有什么发展前途?数据标注员可以说是AI消灭了一部分工作又创造出来的一种工作。在未来AI发展良好的前提下,数据的缺口一定是巨大的。可以预见3-5年内数据标注员的需求会一直存在。至于发展,其实所谓一些熟能生巧的工作,都是有被替代掉的风险的。深度学习解决的一件事情就是熟能生巧。在这个岗位上,其实你的一些想法就代表了AI的想法,AI会根据你标注的数据进行学习,想想还是有点成就感的。数据标注可以说是AI的入门级岗位,未来可转向其他AI岗位。如项目实施顾问等,这就要求更多的工作技能,需要再工作中积累。作者:跹尘链接:https://www.zhihu.com/question/30654399/answer/264828926来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。