人在回路的机器学习:前言


本章主要内容如下:

  • 概述人在回路的机器学习的体系结构和主要组成;
  • 介绍注释;
  • 介绍主动学习;
  • 介绍人-机交互的介绍;
  • 介绍迁移学习。

与电影中的机器人不同,现有的大部分人工智能(AI)并不能仅依赖自己学习:它们学习依赖密集的人类反馈。大概有90%的机器学习应用是有监督机器学习驱动的。就用例子包括:一辆自主车辆能够安全地载着你安全的沿着街道行驶,这是因为人类耗费了成千上万个小时来告诉它什么时候传感器看到了行人、移动的车辆、车道标记以及其它所有相关的对象;你的室内设备在你说“把声音调大一点”的时候知道它该怎么做,这是因为人类已经花费成千上万个小时告就看看它如何理解不同的命令;你的机器翻译助手可以在不同语言之间进行翻译,正因为它已经接受了数千(甚至数百万)人工翻译文本的训练。

我们的智能设备很少是向基于硬编码规则的程序员学习的,多的是从无技术的人类提供的样本和反馈中学习。这些样本(训练的数据)被用来训练机器学习模型,并使得该模型能够更加精确的完成给定的任务。然而,程序员仍需要构造软件以使得允许接受无技术人类的反馈。这引出当今科技界最重要的问题之一:人类和机器学习算法交互解决问题时有效的方法是什么?读过本书后,你将找到以上问题的答案,并且应用在机器学习的许多方面。

标注与主动学习是人在回路的机器学习的基石。它们共同决定了你如何从人类那里获得数据,并在你没有所有数据的人类反馈(预算或时间)时向人类提供正确的数据。迁移学习可避免从零开始学习,将现有的机器学习模型自适应到新任务中。迁移学习是最近几年比较流行的一种学习方式,因此它是一个很高级的话题,文章最后将对该话题进行详细介绍。本章会对标注、主动学习以及迁移学习的概念进行介绍。

1. 人在回路的机器学习:基本概念

人在回路的机器学习是通过人与机器学习过程交互来解决以下一个或几个问题:

  • 让机器学习更加精确;
  • 使机器学习更快达到期望的精确度;
  • 让人类更加精确;
  • 让人类更加有效率。

图1显示了给数据添加label的过程示意图。该标注过程可是:在新闻报道中添加主题;根据正在播放的体育节目对体育照片进行分类;识别社交媒体评论的情绪;为视频内容的明确程度评分,等等。在所有情况下,您都可以使用机器学习来自动化一些标记过程,或者回事人工标注过程。最佳的实践意味着实现图1中的循环:选择要标记的正确数据;使用该数据训练模型;并部署/更新用于大规模标记数据的模型。
在这里插入图片描述

2. 标注

2.1 简单和更加复杂的标注策略

标注过程可以很简单。例如:假如你想要将社交媒体报道标记为积极、消极或者中立等,并以此来分析关于该产品的情绪的大从趋势,你可以用几小时构建一个HTML网页。这个简单的网页可以允许别人对每个社交媒体报道进行打分,每次打分都是对社交媒体报道进行标注,这也构成了机器学习算法的训练数据。

标注过程也可以很复杂。如果你想要利用一个简单的矩形框标注视频中每个对像,一个简单的HTML网页肯定是不够的:你需要的是一个图形交互界面,构建一个体验感好的图形交互界面可能需要几个月的工程时间。

2.2 填充数据科学知识体系的空白

本书将帮助你同时优化你的机器学习算法策略和你的数据策略。对于一个好的机器学习系统来说,算法与标注是同等重要的,并且是紧密交织在一起的组件。若将算法与标注结合,通常可以更快地使模型达到期望的精度。

每一个计算机科学系都会提供机器学习课程,但是却很少提供如何构造训练数据的课程。至多在数百节课的机器学习课程中插入一到两节课来介绍如何构造训练数据的内容。这种情况正在改善,但是很缓慢。历史原因,学术界中机器学习研究人员倾向于利用静态的数据集来评价他们构造的不同算法的性能。

与学术界不同,在工业界中通过标注更多的训练数据来提高模型的性能是非常普遍的做法。特别是当数据的性质是随着时间变化(这很普遍)时,那么只有少量的新标注数据可以比试图将现有的机器学习模型适应于新的数据域更有效。但是,更多的学术论文关注的是如何在没有新训练数据的情况下使算法适应新的领域,而不是如何有效地标注正确的新训练数据。

学术界的这种不平衡导致工业界犯同样的错误。我们经常看到工业界聘请十几名机器学习领域的聪明的博士,这些博士知道如何构建最先进的算法,但是不具备创建训练数据或思考正确标注接口的经验。例如,我最近在世界上最大的汽车制造商之一看到了这一现象,他们雇拥了大量刚毕业的机器学习毕业生,但由于无法扩展他们的数据标注策略,他们无法操作他们的自主车辆技术。最终,这个制造商不得不解散这个团队。我作为该制造商的顾问,指出为什么他们需要重建他们的策略:算法与标注作为同等重要的部件,相互交织在一起共同构造出好的机器学习。

2.3 为什么很难获得高质量的人类标注

对于真正研究它的人来说,标注是一门与机器学习紧密关联的科学。最明显的例子是人类提供的标签可能会造成错误,然而解决这些错误需要大量的复杂统计学知识。

人类在标记训练数据时犯的错误可以有很严重的影响,也可以被忽略,这主要依赖于应用背景。如果一个机器学习模型仅仅被用来识别消费者情绪的总体趋势,对于仅占1%错误率的训练数据对最终的效果影响并不大。

但是,如果一个机器学习模型被用来驱动一辆自主汽车的话,1%的行人漏检率将会造成灾难性的后果。一些算法可以处理存在小噪声的训练数据。事实上,随机噪声甚至有助于减轻模型的过拟合问题,从而提高模型的精确度。但是,人类的错误并不趋向于随机噪声,因此会给训练数据引入不可恢复的偏置。任何算法都不可能在包含此类错误的训练数据上学到好的模型。

对于像二值标签的客观任务,统计学可以直接从不一致的标注中确定哪个才是“正确”的标签。但是,对于一个主观的任务,或者一个数据连续的客观任务,并没有简单的启发式来确定什么才是正确的标签。想想这样一个重要的任务:通过将矩形框框住行人来为无人驾驶汽车构造训练数据。如果两个标注者对于同一帧图片的同一行人标注的矩形框略有不同怎么办?哪一个才是正确的?这个“真值”不一定是两者中的一个,或者两者的平均值。实事上,最好的解决该问题的方法就是运用机器学习它自身。

我希望本书的读者会因注释能作为一门科学而兴奋,以及能够意识到注释不仅仅是为人与机器一起工作时出现的更加复杂的问题创建高质量的训练数据。

3. 主动学习:提升收敛速度并减少训练数据的成本

主动学习有很多策略,也存在许多算法能实现它们。但是,能够在大部分情况都能很好的工作的基础性的方法有三种:不确定性采样、多样性采样和随机采样。

随机抽样是听起来最简单的,但实际上它可能是最棘手的:如果你的数据已经经过预处理,当你的数据随着时间变化,或者你因某些其他原因知道随机抽样不能代表你正在解决的问题。我们将在以下小节更加详细的讨论这些问题。不管最终采取的标注策略是什么,都应该对数据采用一定量的随机采样进行标注,以便评估模型的准确性,并将你提出的主动学习策略与基于随机采样的基准结果作对比。

不确定性采样和多样性采样在不同的文献中有不同的名称。它们通常被称为“Exploitation”与"Exploration",也即“利用”与“探索”。这种叫法的确很押韵,但是并没有把这两种采样策略的意思表达明白。

不确定性采样是一种用于识别当前机器学习模型中靠近决策边界的未标记项的一种策略。对于一个二元分类任务,这些边界未标记项是指那些接近50%的概率属于两标签之一的数据。如果不对这些数据进行标注,那么得到的模型将是“Uncertain”或"Confused",也即"不确定的"或"混乱的"。正因为这些数据在边界上,是最有可能出现预测值与“真实”标签不一致的情况。我们对那些“不一致”的数据进行标注,然后用再标注的数据对模型行重新训练。【不确定性采样:利用模型对数据预测的不确定性来采样用于标注的数据

多样性采样是用来识别对于当前机器学习模型来说未知的,并且未标记的数据。这通常意味该数据的特征值很少在训练数据中出现,或根本看不到。多样性采样的目标就是将这些新的、不常见的或离群的数据作为待标注的目标,以使机器学习算法更加完整地描述问题空间。【多样性采样:通过对不常见的数据进行标注以增加数据的多样性

“不确性采样”是一个广泛使用的术语,然而“多样性采样”在不同的领域却有不同的名称,但通常都只处理问题的一部分。除“多样性采样”外,还有称“野值检测”和“异常检测”。一些应用例子如:识别天文数据库中的新现象或检奇怪的网络活动以确保安全,该任务的目这次是识别异常值 /异常,但是本文将它指定为主动学习的采策略。

其它类型的多样性采样,如代表性采样,便试图找到最像未标记数据的未标记项。例如,代表性采样可能会在文本文档中找到未标记的项,这些未标记的项包含的单词在未标记的数据中很常见,但是却很出现在训练数据中。因此,当你知道数据随时间变化时,代表性采样将是一个很好的标注策略。

多样性采样意味着使用数据集的内在属性,如标签的分布。例如,即使某些标签比其他标签要稀有得多,你可能也会有意为每类标签获取相等数量的人工注释(也即,各类标签的数据量相等)。多样性采样还可以意味着确保数据能代表它的重要外部属性,例如确保数据包含各种各样的人的人口统计数据,以克服数据中存在的现实世界偏见。我们将在多样性采样一章深入讲解所有相关内容。

不确定采样和多样性采样都存在各自的缺点。示例如图2所示。不确定性采样可能仅仅关注决策边界的一部分,而多样性采样可能只关注边界较远的离群值。因此,这两种策略经常被一起使用,以找到一个最大化不确定性和多样性的未标记数据。

  • 右下图展示了结合不确性采样与多样性采样的一种可能结果。通过结合两种策略,被选择的目标即满足多样性,又靠近决策边界。因此,我们正在查找可能更改决策边界的项的机会。
  • 左下图显示了多样性采亲的一个可能结果。这种主动学习策略可以有效地在问题空间的非常不同的部分选择未标记的项。然而,如果多样性的样本远离决策边界时,那么他们不太可能被模型错误的预测。因此,给不给这些数据打标签对模型的影响不大。
  • 右上图显示了不确定性采样的一个可能结果。这种主动学习策略能够有效的选择决策边界附近的未标记项。这些未标记项最有可能被模型错误预测,因此给这类打标签最有可能移动决策边界。然而,如果正好所有的不确性的项都集中在问题空间的某一部分(与某一类标签有关),那么给他们打标签并不会对模型产生很大的影响。
  • 左上角显示了例子中的所有数据点以及决策边界。这些项有一部分已经具有标签,被标记为“a”或"b"。
    在这里插入图片描述

值得注意的是,主动学习的过程是迭代的。在主动学习的每一次迭代中,都会有一个未标记的项被选择,并会收到关于该项的人类标注。 然后用新标注的项重新训练模型,并重复以上过程。如图3所示,经过两轮选择与标注,模型的决策边界依次变化如下图(右上、右下)所示。

理想情况是:我们采用的主动学习策略使得请求人类标注次数最少。这加快了得到精确模型的速度,并同时减少了人类标注的成本。
从左上到右下显示的是两个主动学习的迭代步。在每个迭代中,这些待标记项会在考虑多样性的同时在决策边界上选择。这些选择的项会使新的决策边界移动,以得到更加准确的机器学习模型。
在这里插入图片描述

迭代本身就是一种多样性采样的形式。想象一下,如果只采用不确定性采样,并且在问题空间的一部分进行一次迭代的采样。你会将该部分的所有不确定性项都找到并标注,因此,下一个迭代周期将会关注问题空间的其他部分。只要有足够多的迭代步数,你可能并不再需要多样性采样:不确性采样的每一个迭代步都关注问题空间的不同部分,所有迭代步一起肯定能够得到用于训练的多样性样本。一个好的主动学习应该具有这种自我校正功能:也即每次迭代都会发现数据中适合人类标注的新方面。然则,当你数据空间的一些部分本质上就模棱两可的话,那么每次迭代会持续将你带回到问题空间的同一部分。因此,综合考虑不确定性和多样性采样的主动学习策略通常都会有更好的效果。

图2与图3直观地给出了主动学习的过程。处理过高维数据或序列数据的都知道,识别数据的边界和度量数据的多样性并不总是那么简单。或者至少要比图2与图3所示的简单欧几里德距离更复杂。但是图2与图3蕴含的主动学习的根本目标:试图尽可能少的请求人类标注,并尽快的获得一个精确的模型。

任务决定了主动学习的迭代次数和每次迭代需要标记的项的数量。我在机器+人翻译任务时,一个人类的翻译键入就可以引导机器学习模型得到不同的预测,一个翻译的句子就足够用来更新模型了(理想情况下,这只需要几秒钟)。很容易从用户体验的角度看出原因:如果人工翻译更正了机器对某个单词的预测,机器却不能很快的适应,那么人类可能需要重复不断的纠正这个机器输出100次。当翻译文字是高度特定的上下文时,以上问题将会很常见。例如,你可能想在一篇新闻文章中逐字翻译一个人的名字,但是在翻译一部小说时,却要翻译成一个本地化的名字。如果软件在人类纠错后仍继续犯同样的错误,那翻译体验会非常糟糕,我们期望近期的修正可以使机器适应变化,而不是一直傻傻地犯同样的错误。当然,在技术层面,让模型快速的适应是相当困难的。例如,训练一个大型的机器翻译模型需要一个礼拜或更长的时间。从翻译人员的经验来看,一个能快速适应的软件系统采用的是持续学习的方式。在我研究的大多数案例中,比如识别社交媒体评论中情绪,我只需要每个月迭代一次,以适应新的数据。虽然,目前应用自适应机器学习的应用并不多,但越来越多的应用正朝着这个方向发展。

对于迭代频率的问题,以及在需要短迭代周期时的快速重新训练策略,我们将在后面主动学习和迁移学习章节中介绍。

3.2 什么是随机选择的评估数据

不用想,你应该总是从训练时留出的数据中随机选择测试数据对训练好的模型进行评估。然而,实际情况可能要复杂的多。如果你已经按关键字、时间或其他因素预先筛选了正在处理的数据,那么你就已经拥有一个非代表性样本。但是,该样本的准确度并不一定能表示在更广泛的数据选择上的准确度。

之前,当人们使用广为人知的ImageNet数据集,并将机器学习模型应用于广泛的数据选择时,我就清楚地看到了这一点。ImageNet数据集拥有1000个标签,每个标签描述图片的类别,如“篮球”、“出租车”、“游泳”以及其他主要类别。ImageNet挑战就是利用这个数据集中留出的数据来对训练好的模型进行性能评估,并在随机留出数据上达到接近人类水平的准确度。然而,如果你把这些模型应用到预测随机选择的发布在社交媒体平台上的图片,准确率会立马下除到10%左右。

就像我看到的几乎每一个机器学习应用一样,数据也会随着时间的推移而改变。如果你使用的是语言数据,那么人们谈论的话题会随着时间的推移而改变,语言本身也会在相当小的时间框架内被创新和发展。如果你使用的是计算机视觉数据,那么你所遇到的物体类型会随着时间的推移而改变,甚至图像本身也会随着照相技术的进步和变化而发生改变。

如果无法定义一个有意义的随机评估数据集,那么应该尝试定义具有代表性的评估数据集。如果你定义了一个代表性的数据集,那么你就承认了真正随机的样本是不可能有的,或者对你的数据集没有意义。由你自己来定义什么样的数据才是你当前的应用例子的代表,因为它是由你如何应用数据来决定的。你可能需要为关心的每个标签选择一些数据点,从每个时间段中选择特定数量的数据,或者从聚类算法的输出结果中选择特定数量的数据以确保数据集的多样性。(在后面的章节中对有更多的介绍)

你可能还希望拥有多个被不同准则收集得到的评估数据集。一个常见的策略是从训练数据所在的数据集中提取一个数据集,并且同时从其他数据集中提取一个或多个域外的评估数据集。域外数据集通常来看不同的类型的媒体或不同的时间段。对于大多数实际应用程序,建议使用域外评估数据集,因为这是一个可以显示模型对问题真正的概括程度的最佳指标,而不仅仅是某一数据集的过度拟合。这对于主动学习来说可能很棘手,因为一旦开始标记数据,它就不再是域外的。如果可能,建议你保留不应用于主动学习的域外数据集。然后,你可以看到你的主动学习策略是如何将问题泛化的,而不仅仅是对它遇到领域的过度适就与拟合。

3.3 什么时候用主动学习

当你只能注释一小部分数据,并且随机采样并不能覆盖数据的多样性时,就需要采用主动学习。这涵盖了大多数真实场景,由于数据的规模在使用主动学习的一个重要因素。

视频中的数据量便是一个很好的例子。如果你要在视频中的每一帧中的每个对象周围放置一个边界框来对视频数据进行标注,可以想象到这个过程是有多耗时。例如,对于一辆自动驾驶汽车,它的数据是一段包括一条街道上大约20个你关心的对象(10辆其它汽车,5名行人和5个其他相关对象)的视频。该视频每秒30帧,即存在30帧60秒20个对象。计算一下,你需要为一分钟视频数据创造36000个框!即使是速度最快的人类标注器,为这一分钟视频数据进行标注也至少需要12个小时之久。

如果我们查一下实际数据,就会发现这问题有多棘手。仅在美国,人们平均每天开车1小时,也就是每年开车总时间为95104400000小时。在不远的将来,每辆车的前部都会装有一个摄像头来驾驶或辅助驾驶。因此,仅在美国,一年的驾驶视频数据的时长就有6000000000(60万亿)小时。即使世界其他地方的人整天啥事也不干,全都来标注这些视频数据,那么也远远不够。不管一家自主汽车公司的注释预算是多少,它都将远远低于用于注释该庞大数据的成本。

因此,自主汽车公司的数据科学家需要对注释过程做一些改时:视频中的每N帧都是有必要的数据吗?我们能不能对这些视频进行采样,这样就不用对所有的帧进行注释了?有没有方法可以设计更加快的注释接口呢?

注释的难处理性在大多数情况下都是正确的:注释数据比把每个数据点放在人面的预算和时间成本还要多。这可能就是一个任务为什么首先选择采用机器学习来解决的原因:如果你能忍受手动注释的巨大预算和时间成本,那么你可能并不需要机器学习。

当然,也有不需要主动学习的情况(尽管与人在回路的学习仍相关)。如果你的数据集很小,并且拥有让一个人来标注所有数据的预算,那么你不需要主动学习。例如,法院命令的审计可能需要一个人查看公司内部的每个通信往来,以发现潜在的欺诈行为。即使在该应用案例上,主动学习仍可以帮助他们更快地找到“欺诈”的证据,并有助于确定最佳的用户界面供人们使用。事实上,这个过程就是今天进行了多少审计。

当然,在一些不常见的用例中,几乎不需要主动学习。例如,在一个照明一致的工厂中的监控设备,那么应该很容易实现一个计算机视觉模型,以通过机器上的类或开关来确定给定的机器是否“打开”或“关闭”了。由于机器和照明、相机等条件不会随着时间的推移而改变,因此在模型建立后,不需要使用主动学习获取新数据。不过,这些应用场景非常少,在我遇到的行业用例中只有不到1%的用例真正不需要数据集之外的额外的数据。

类似地,在一些用例中,如果你的基准模型对于你的任务来说已经足够精确,或者更多的培训数据所需要成本超过了更精确模型带来的价值,主动学习便可以停止了。

4. 机器学习与人-机交互

几十年来,很多聪明的人都没能在机器翻译的帮助下使人工翻译更快、更准确。直觉上看,人类翻译与机器翻译的结合是可能的。 然而,机器翻译只需要人工翻译从中纠正一个句中的一到两个错误时,那么机器翻译将会很快的从头到尾将整个句子翻译出来。而人工翻译使有机器翻译辅助时,速度上基本没有怎么提升。除非人工翻译人员格外小心,否则机器在翻译中存的错误会持续存在人工翻译的结果中,使最终结果不太准确。

以上问题的最终解决方案并不是提高机器翻译的准确性,而是在用户界面上。现代翻译系统不再编辑整句话,而是让人类翻译人员使用同一种预测性文本,这种文本在手机和(越来越多的)电子邮件和文档撰写工具中已经很常见。这使得翻译人员可以像往常一样输入译文,并快速按enter或tab键接受预测译文中的下一个单词,在每次机器翻译预测正确时提高整体翻译的速度。因此,最大的突破是人机交互而不是底层的机器学习。

人机交互是计算机科学中的一个成熟领域,近年来,它在机器学习中变得尤为重要。当你为人类建立界面来创建训练数据时,你涉及的是由认知科学、社会科学、心理学、用户体验设计和其他几个领域构成的交叉领域。

4.1 用户界面:怎样构建你的训练数据

通常,一个简单的web表单就足以收集训练数据。它背后的人机交互原理同样简单:因为人们每天都能看到web表单,所以人们习惯使用它。表单是直观的,有很多非常聪明的人都在处理和改进HTML表单。因此,你是在这些约定的基础上构建的:人们知道一个简单的HTML表单是如何工作的,你不需要对他们进行相关的培训。另一方面,如果你打破这些惯例,则会让人们迷惑不清。所以,你不得不限制你的期望行。例如,你可能对动态文本如何加快某些任务有一些想法,但它可能会使更多的人感到困惑,而不是起正面作用。

最简单的接口也是质量控制的最佳接口:二进制响应。 如果你可以将注释项目简化或分解为二进制任务,那么设计一个直观的界面就容易得多,实现注释质量控制特性也会容易得多,我们将在下一章中介绍这些特性。

但是,当处理更复杂的接口时,约定会变得更复杂。假设你要求人们在图像中的某些对象周围放置多边形(这是自主汽车公司的常见用例)。注释者会期望什么样的方式呢?他们会期待无需手操作的、线条、画笔、按颜色/区域进行智能选择,以及其他选择工具吗?如果人们习惯于在像Adobe PhotoShop这样的程序中处理图像,那么他们可能会期待同样的功能来为机器学习的图像添加标注。正如你建立在人们对web表单的期望之上并受其约束一样,你也受到他们选择和编辑图像的期望的约束。不幸的是,功能齐全的接口可能需要100个小时的编码来构建。

对于任何正在进行重复性任务(如创建训练数据)的人来说,移动鼠标是很效的,应尽可能避免。如果整个注释过程(包括注释本身和任何表单提交或导航)可以在键盘上进行,那么注释的效率将大大提高。如果必须包含鼠标,则应该获得丰富的注释来弥补较慢的输入。

一些注释任务有专门的输入设备。例如,将语音转换为文本的人经常使用脚踏板在录音过程中及时的向前和向后导航。这使得他们的手可以留在键盘上输入他们所听到的文本,用脚导航要比把手离开键盘用鼠标或热键导航要高效得多。

除了抄写以外,键盘仍然是王道:大多数注释任务没有抄写那么受欢迎,因此并没有开发专门的输入设备。对于大多数任务,笔记本电脑或个人电脑上的键盘比平板电脑或手机的屏幕输入更快。当你盯着输入的时候,在平面上打字并不容易,所以除非是一个非常简单的二进制选择任务或者类似的任务,否则手机和平板电脑不适合大批量的数据注释。

4.2 启动:什么能影响人类的感知

要获得准确的训练数据,你必须要考虑人类注释者的焦点、注意广度以及可能导致他们出错或改变其行为的上下文效果。语言学研究者有一个很好的例子,他们要求人们区分澳大利亚口音和新西兰口音,海伊和德拉格称之为“填充玩具和语音感知”。研究人员将填充玩具猕猴桃和袋鼠(每个国家的标志性动物)放在参与研究的房间的架子上。但是,负责这项研究的人并没有向参与者提及填充玩具——玩具融合在房间的背景中。令人难以置信的是,这仍然足以让人们在看到猕猴桃时觉得口音听起更像新西兰口音,在看到袋鼠时,会觉得口音更像澳大利亚口音。鉴于此,如果你正在一个具有尽可能多口音的智能家庭设备上工作以建立一个机器学习模型来检测口音,那么你需要在收集训练数据时考虑上下文。

当事件的背景或顺序能够影响人类的感知时,它被称为启动。我们会在注释章节中讨论需要控制的启动类型。在建立训练数据时,最重要的是“重复启动”。重复启动是指任务的顺序可以影响某人的感知。例如,如果一个注释者正在给社交媒体帖子贴上情绪标签,并且他们连续遇到了99个负面情绪的贴子,那么他们很可能给第100个实际上是正面的贴子贴上负面标签,从而犯错。这有可是因为这篇文章本来就模棱两可,也可能是注释者由于重复性工作失去注意力而犯的一个简单错误。

4.3 通过评估机器学习的预测来创建标签的利弊

结合机器学习和确保质量注释的一种方法是使用简单的二进制输入形式让人们评估机器学习预测,并确认/拒绝该预测。这是将复杂的任务转换成二进制注释任务的好方法。例如,你可以将对象周围的边框作为一个简单的二进制问题来询问某人是否正确,该问题不需要复杂的编辑/选择界面。类似地,很容易向注释者询问某个单词是否是文本中的“位置”,然后提供一个接口来有效地注释位于自由文本中的短语。

但是,你很可能会因此将注意力集中在局部模型的不确定性上,并丢失问题空间的重要部分。因此,在使用人类评估机器学习模型的预测来简化注释接口的同时,你还需要一种多样性策略来进行采样,即使它只确保项目的随机选择也是可行的。

4.4 设计标注界面的基本原则

从我们目前所讨论的内容来看,此处给出一些设计注释接口的基本原则。当它们在注释章节中适用或不适用时,我们介时将更详细地讨论这些原则。

  • 尽可能将问题转换为二进制选择;
  • 确保预期的反应是多样的,避免引发启动;
  • 遵循现有的交互约定;
  • 允许键盘驱动的响应。

5. 机器学习辅助的人类VS人类辅助的机器学习

人在环路的机器学习有两个不同的目标:1)利用人类的输入使机器学习应用程序变得更精确;2)以及借助机器学习改进人类处理任务的能力。

有时两个目标是共同存在的,例如,机器翻译。人工翻译可以通过使用机器翻译来提示人们可以选择接受/拒绝的单词/短语来加快人工翻译速度,就像你的手机在打字时预测下一个单词一样。这是一个机器学习辅助的人类处理任务。不过,我也曾与客户合作,他们使用机器翻译来处理大量的待翻译内容,不然他们将需要支付人工翻译的费用。由于人工翻译的数据和机器翻译的数据的内容是相似的,从而,机器翻译系统可以从人工翻译的数据中获得更精确的信息。因此,这些系统同时达到了两个目标:即提高人类的效率和提高机器的精度。

搜索引擎是另一个很好的人在环机器学习的例子。人们常常忘记,无处不在的搜索引擎也是人工智能的一种形式,无论是对于一般搜索还是对于特定的用例,如在线商务网站(电子商务)和导航(在线地图)。当你在网上搜索一个页面,然后点击第四个链接而不是第一个链接时,你正在训练搜索引擎(信息检索系统)第四个链接可能是对你的搜索查询更好的顶部响应。人们普遍错误地认为,搜索引擎只接受来自最终用户反馈的训练。事实上,所有主流的搜索引擎都使用了数千个注释器来评估和调整它们的搜索引擎。这个用例-评估搜索相关性-是机器学习中人类注释的最大案例。虽然最近计算机视觉(如自动驾驶汽车)和语音(如家用设备和手机)的流行程度有所上升,但搜索相关性仍然是当今专业人员注释的最大案例。

然而乍一看,大多数人在回路中的机器学习任务都会有一些机器学习辅助人和人辅助机器学习的元素。所以,你需要同时为两种目标进行设计。

6. 利用迁移学习快速启动你的模型

在大多数情况下,并不需要从头开始构建训练数据。现实中通常会有接近你任务的已有数据集。例如,如果你正在为电影评论创建一个情绪分析模型,那么你可能有一个来自产品评论的情绪分析数据集,你可以利用它对模型进行预训练,然后在此基础上适应您的真实数据。这就是所谓的转移学习:从一个案例中获取一个模型并使其适应另一个案例。

最近,使通用的预先训练模型适应新的、特定的案例的流行程度有了很大的提高。换言之,人们针对许多不同的应用案例构建专门用于迁移学习的模型。这些模型通常被称为“预训练模型”。

历史上,迁移学习意味着将一个过程的输出输入到另一个过程。一个自然语言处理的例子如下:

通用词性标记 → \rightarrow 语法分析器 → \rightarrow 情感分析标记

如今,迁移学习更典型的意义是:
重新训练神经模型以适应新任务(预先训练的模型),或使用一个神经模型的参数作为另一个模型的输入(此处直译不甚明了,意译为:用以一个神经模型的参数初始化另一个模型的参数)。

图1.4显示了一个迁移学习的例子。该例子先在一组标签上训练一个模型,并且,通过保持该模型的结构不变和冻结模型的一部分,在此基础上利用另一组标签数据重新训练最后一层。(结果表明,模型经过A\B\C\D标签相关数据的训练后,再面对W\X\Y\Z任务时,需要更少的标签数据就能达到较好的预测W\X\Y\Z的效果)。

在这里插入图片描述

6.1 机器视觉中的迁移学习

近年来,迁移学习是机器视觉领域发展最快的一种学习方式。一个比较流行的策略是从ImageNet数据集开始,也即利用包含数百万个样本的数据集构建一个模型,使得该模型能对1000个标签(运动、鸟类、人造物体等)进行分类。

在学习对不同类型的运动、动物和物体进行分类的时候,机器学习模型正在学习用于区分图像中1000种不同类型物体所需的纹理和边缘类型。这些学到的许多纹理和边缘比1000个标签更通用,它可以应用在其他基于图片的学习任务中。【说白点,就是神经网络中间层学到了图片的特征,这是机器学习模型中间层从图片数据中提取的最本质的信息。】因为纹理和边缘这些特征都是蕴含在网络的中间层,所以对于一组新标签,我们只需要重新训练最后一层。对于每个新标签,你只需要几百个或几千个样本,而不是数百万个。因为,你已经基于数百万张图片学习到了有效的图片纹理和边缘特征。对于利用较少新标签数据对ImageNet最后一层进行重新训练的应用已经取了巨大成功,如生物学中的细胞和卫星视图中的地理特征。

当然,也可以对神经网络的多层进行重新训练,而不仅仅是最后一层,还可以在要迁移的模型中添加更多层。在许多不同的架构和参数中,迁移学习可以被用来将模型适应到一个新的应用案例,但都遵循相同的目标:限制在新数据构建精确模型时所需的人类标注数量。

在图像识别之外的领域,机器视觉到目前为止还不太成功。对于像目标检测(在一张图片中检测目标),还没有系统的精度能在不同类型的目标之间显示像图像识别一样显著的提高。这是因为对象实际上被检测为纹理和边缘的集合,而不是作为整个对象。不管怎样,越来越多的人正在努力解决这个问题,我相信以后会有所突破。

6.2 自然语言处理中的迁移学习

自然语言处理(NLP)的模型预训练比机器视觉的发展更为迅速。只在过去的2-3年中,迁移学习这种形式才在NLP中流行起来。因此,它最本文所涉及的最前沿的技术之一,但是也是最快可能过时的技术之一。

类似ImageNet的自适应对语言数据不起作用。利用迁移学习将一个情绪分析数据集迁移到另一个情绪分析数据集上只提高了大约2-3%的准确性。不机器视觉不同,预测文档级标签的模型不能像机器视觉模型能捕捉那么多纹理和边缘特征一样,捕捉人类语言广度。

不过,你可以通过观察经常出现的上下文来学习单词有趣的特性。例如,像“医生”和“外科医生”可能会出现在相似的上下文中。假设你拥有10000个上下文,看看前后的单词,你会发现这些上下文包括任何一个英语单词。然后,你可看看“医生”分别在这10000个上下文中出现的可能性有多大。其中,一些内容与医学相关,因此“医生”在这些内容中得分很高。但这10000个上下文中大多数都与医学无关,因此“医生”在这些上下文中的得分很低。你可以把这10000个评分当作一个10000维的向量。“外科医生”相关的向量可能与“医生”相关的向量相近,这是因为“外医医生”与“医生”经常出现在相同的上下文中。用这样的向量表示一个单词被称为“词向量”或“词嵌入”,我们将在后面的章节中重新对它进行讲解。

根据上下文理解一个词的概念由来已久,这构成了语言学功能理论的基础:

You shall know a word by the company it keeps (Firth, J. R. 1957:11)

严格来说,我们需要在“单词”的下面找到最重要信息。英语是个异类,因为单词往往可作为机器学习的一个好的原子单位。英语允语便用复杂的词,比如“un-do-ing”,这也是为什么我们想对单词的各部分(语素)进行解释,但是他比典型的语言要难得多。英语用词序表达的东西,如主谓宾,也更频繁地用词缀来表示。英语利用词缀来表示事物的现在时/过去时和单/复数区别。因此,对于不偏向具有特权的语言(如英语)的机器学习,我们需要对子单词建模。

弗斯会对此表示感激。他在SOAS成立了英国的第一个语言学部。我在那里工作了两年,帮助记录和保存濒危语言。从我在那工作时就很清楚,语言普遍的多样性意味着我们需要比单词本身更精细的特征。如果我们要使现有的机器学习有能力尽可适应多达7000种语言,那么人在回路的机器学习是必要的。

最近,迁移学习有了突破性进展,它遵循了在语境中理解单词(或单词片段)的原则。如果我们从上下文中预测单词,我们可以免费为模型获取数百万个标签。

My ___ is cute. He ___ play-ing

不需要人工标注:我们可以按百分比删除原始文本中的单词,然后将其转换为尝试重新猜测这些词意的预测性机器学习任务。就拿上面的例子来说,你可以猜到,第一个空白词可能是"dog",“puppy"或者"kitten”,第二个空白处可能填“is”或"was"。就像上面的“外科医生”和“医生”一样,我们可以根据上下文预测单词。

与我们早期将学习从一种情绪转移到另一种情绪的失败例子不同,这类预先训练的模型已经取得了广泛的成功。将一个预测上下文中的一个单词的模型稍加调整,便可以应用于诸如“问答”、“情感分析”、“文本蕴涵”等任务和许多看起来非常不同的语言任务中构建具有少量人类标记的新系统。与机器视觉不同(迁移学习在简单的图像标记之外的应用不太成功),转移学习在包括摘要和翻译等复杂的自然语言处理任务中已经成为十分普遍的模型 。

预先训练的模型并不复杂:现在最复杂的模型也只是简单地训练预测上下文中的单词、句子中的单词顺序和句子顺序等任务。从以上数据中存在的三种固有的预测基准模型出发,我们几乎可以开始构建任何的NLP用例。由于单词顺序和句子顺序是文档的固有属性,因此预训练的模型不需要人工标记。它们仍然像有监督的机器学习任务一样构建,但是训练数据是免费生成的。例如,将十个单词拿掉一个,然后来预测这个单词,或者预测特定的句子在源文档中是否相互靠近。在任务第一次需要人类标签之前,这都将是一个非常强大的开始。

然而,预训练的模型显然受到可用未标记文本数量的限制。与其他语言相比,英语中有更多的未标记文本(即使考虑到不同语言的总体频率)。也存在文化偏见。上面的例子“我的狗很可爱”,经常会出现在在线文本中,这也是目前预训练模型的主要数据来源。但不是每个人都养狗当宠物。当我在亚马逊进行短暂的生活来学习猫人部落语言时,猴子是更受欢迎的宠物。“我的猴子很可爱”这个英文短语在网上很少见,而类似于“chuna bëdambo ikek”的猫人部落语言则根本不会出现。词向量和预先训练的系统中的上下文模型允许一个词表达多个意思,因此它们可以在这个上下文中获取“狗”和“猴子”,但它们仍然偏向于它们所训练的数据,“猴子”上下文不太可能在任何语言中大量出现。因此,我们需要意识到,经过培训的系统往往会放大文化偏见。

预训练的模型仍然需要额外的人类标签,以便在其任务上获得准确的结果,因此迁移学习并不会改变人在回路的机器学习的一般架构。然而,它可以让我们在标记方面有一个实质性的开始,这会影响我们选择怎样的主动学习策略(我们使用这些策略来采样额外的数据项供人类标注),甚至影响人类提供注释的接口。作为本文中使用的最新和最先进的机器学习方法,我们之后会将该主题回归到转移学习和后面的高级章节。

7. 本书中你能学到什么

想一想这篇文章的各个部分是如何结合在一起的。用一个知识象限来思考这些主题是很用的。图1.5就显示这样的知识象限。
在这里插入图片描述
四个象限分别是:

  • Known Knowns: 你的机器学习模型当前可以自信和准确的做什么。这是当前状态下的模型。
  • Known Unknowns: 你的机器学习模型当前还不能自信的做什么。你可以对这些项应用不确定性采样(主动学习策略)。
  • Unknown Knowns:可以用来适应你的任务的预训练模型中的知识。迁移学习允许你使用这些知识。
  • Unknown Unknowns:至今机器学习模型中的知识空白。你可以对这些项应用多样性采样(主动学习策略)。

图中的列和行都有意义,行捕获有关当前模型的知识,列捕获所需要的解决方案类型:

  • 最上面一行记录了你的模型知识;
  • 最下面一行捕获了模型之外的知识;
  • 左边的列可以用右边的算法来寻址;
  • 右栏可以通过人工交互来解决。这些文字(不确性采样,多样性采样)涵盖了广泛的技术,这样使我们一眼就清楚对应的内容所在的合适位置。

大多数章节未尾都包含了一个类似的“备忘录”,你可以通过它来对快速查阅所涉及的主要概念。

8. 小结

  • 更广泛的人在回路的机器学习体系结构是一个结合了人和机器组件的迭代过程。了解这些可以让我们知道这本书的所有部分是如何结合在一起的。
  • 有一些基本的注释技术可以用来创建训练数据。了解这些技术将确保你可以准确高效地获取注释。
  • 最常见的两种主动学习策略是不确性采样和多样性采样。了解每种策略背后的基本原则将有助于你为特定问题制定方法的正确组合策略。
  • 人机交互为设计人在回路的机器学习系统的用户体验组件提供了一个框架。
  • 迁移学习使我们能够从一个任务中训练好的模型自适应的调整到另一个任务。迁移学习允许我们使用更少的注释构建更精确的模型。

猜你喜欢

转载自blog.csdn.net/u013468614/article/details/104203603