【主动学习】主动学习简介



Labeling faster vs. labeling smarter

为了解决对高质量注释的爆炸性需求,一种人工智能方法(Human-in-the-Loop AI approach),即人工注释者验证机器学习算法的输出(human annotator validates the output of a machine learning algorithm),似乎是一种很有前途的方法。它不仅能加快处理速度,还能提高质量,因为人工干预有助于弥补算法的不准确性。尽管这种暴力方法有时是最好的方法,但另一种方法正在ML领域中慢慢获得更多的吸引力:只标记最重要的数据样本。作为数据科学家,我们被训练认为更多的数据等同于高模型精度,尽管这是正确的,但并非所有数据都是平等的,因为并非所有样本都携带相同数量的信息。

在这里插入图片描述


1. 什么是主动学习?

主动学习(Active learning)是一种机器学习框架,在这种框架中,学习算法可以交互式地查询用户以用真实标签标记新的数据点。主动学习的过程也被称为最优实验设计(optimal experimental design)。

在主动学习中,学习算法被允许从尚未标记的样本池中主动选择下一个要标记的可用样本子集。其基本思想是:如果允许机器学习算法选择它想要学习的数据,它可以在使用更少的训练标签的同时实现更高的精度。这种算法被称为主动学习器(active learner)。在训练过程中,主动学习器可以动态地提出查询,通常是以未标记数据样本的形式,由 oracle(通常是人工标注员)进行标记。因此,主动学习是人在回路中(Human-in-the-Loop)模式成功的最有力的例子之一。
在这里插入图片描述
无论是否使用主动学习方法,用于训练模型的数据越多,精确度越高。然而,使用主动学习,可以用少得多的数据达到给定的精度;在上图中,只用45%的数据就达到80%的准确率,而常规监督学习的则需要70%的数据。

主动学习适用于有大量未标记数据的场景。考虑训练一个图像分类模型来区分猫狗的问题。每张照片都有数百万张,但并不是所有的照片都是训练一个好模型所需要的。一些图像可能比其他图像提供更多的清晰度和信息。另一个类似的应用是对Youtube视频的内容进行分类,那里的数据本来就很密集,而且有很多。

被动学习(Passive learning)是一种标准的框架,在这种框架中,大量标记的数据被传递给算法,需要在标记整个数据集方面付出巨大的努力。
在这里插入图片描述

Passive Machine Learning

通过使用主动学习,我们可以选择性地利用像众包(crowd-sourcing)这样的服务,让人类专家选择性地标记数据集中的一些样本,而不必标记整个数据集。该算法基于一些值度量反复选择信息最丰富的样本,并将这些未标记的样本发送给标记oracle,后者将这些查询样本的真实标签返回给该算法。

在这里插入图片描述

Active Machine Learning. Credit: Inspired by Yi Zhang’s active learning slides

在一些情况下,主动学习比随机抽样表现更好。下图显示了主动学习优于随机选择的例子。整个数据集(红色三角形和绿色圆圈集合的并集)是线性不可分的。
在这里插入图片描述

Credit: Image from Burr Settles’ active learning slides.

主动学习的动机是理解并非所有被标注的样本都同等重要。由于对所有的样本进行了统一的随机抽样,所学习的模型并不完全代表类之间的划分。然而,主动学习选择类边界附近的样本,并且能够找到更有代表性的分类器。先前的研究还表明,对于多类图像分类等任务,主动学习比标准随机选择有所改进。

主动学习框架将数据的选择简化为一个问题,即确定集合中哪些数据点最具信息性。在主动学习中,信息量最大的数据点通常是模型最不确定的数据点。这需要各种度量来量化和比较样本的不确定性。


2. 主动学习如何运行?

主动学习被认为是一种半监督学习(semi-supervised learning)方法,介于无监督使用0%的学习样本和完全监督使用100%的样本之间。通过迭代增加标记的训练集的大小,可以获得更高的性能,接近完全监督的性能,使用所有数据进行训练的时间只有一小部分。

主动学习可以通过不同的场景来实现。本质上,决定是否查询一个特定的标签可以归结为决定获取标签的收益是否抵消了收集该信息的成本。总体而言,有三种不同类型的主动学习:

2.1 Stream-based Active Learning

在基于流的主动学习中,所有训练样本的集合作为流呈现给算法。每个样本都单独发送给算法进行考虑。算法必须立即决定是否标记这个样本。从该池中选择的训练样本由oracle标记,并且在显示下一个样本供考虑之前,算法立即接收到该标记。

2.2 Pool-based Active Learning

在基于池的采样中,从大量未标记的数据中选择训练样本。从该池中选择的训练样本由oracle标记。

2.3 Membership Query Synthesis

成员资格查询合成场景可能不适用于所有情况,因为它意味着合成数据的生成。在这种情况下,学习器可以构建自己的标签样本。当生成数据样本很容易时,这种方法有望解决冷启动问题(cold-start problems),如搜索。


3. 主动学习与强化学习的不同?

虽然强化和主动学习都可以减少模型所需标签的数量,但它们是非常不同的概念。强化学习是一种受行为心理学启发的面向目标的学习方法,它允许从环境中获取输入。因此,强化学习意味着代理在使用中会变得更好:它在使用中学习。当人类从错误中学习时,实际上是通过强化学习方法发挥作用的,没有实际的训练阶段;取而代之的是,代理使用预定的奖励函数,通过反复试验来学习,该函数将反馈关于它所采取的特定行动的最优程度的输入。从技术上来说,强化学习不需要输入数据,而是随着时间的推移产生自己的数据。另一方面,主动学习更接近传统的监督学习。事实上,这是一种半监督学习(使用标记和未标记的数据),其背后的思想是:并非所有数据都是平等的,仅标记一小部分数据样本可能会获得相同的准确性,唯一的挑战是识别该样本是什么。主动学习是指在训练阶段对数据进行增量和动态的标记,以使算法能够识别哪种标记最能提供信息,从而更快地学习。


4. 不确定性度量

如何确定要标记的原始数据?用于确定接下来标记哪个数据样本的方法被称为查询策略(querying strategy)。最常用和研究最多的方法是不确定性度量(不确定性度量)。

对于查询策略,模型首先在一个相当小的标记数据样本上训练;然后将该模型应用于数据集的(未标记的)剩余部分。算法基于通过该推理步骤获得的信息来选择在下一个主动学习循环中标记哪些样本。

选择信息量最大的数据点的决定取决于选择中使用的不确定性度量。在基于池的采样中,主动学习算法选择信息最丰富的样本添加到不断增长的训练集中。最有用的样本是分类器最不确定的样本。这里的直觉是,模型具有最少确定性的样本可能是最困难的样本,特别是位于分类边界附近的样本。学习算法将通过观察困难的样本获得关于分类边界的最多信息。

下面是四种常见的不确定性度量,用于主动学习,以选择最具信息性的样本。

1)Smallest Margin Uncertainty

Φ S M ( x ) = P θ ( y 1 ∗ ∣ x ) − P θ ( y 2 ∗ ∣ x ) \Phi_{SM}(x) = P_{\theta}(y^*_1|x) - P_{\theta}(y^*_2|x) ΦSM(x)=Pθ(y1x)Pθ(y2x)

最小的边际不确定性(smallest margin uncertainty)是最佳与次佳不确定性(best-versus-second-best uncertainty)的比较。最小边际不确定性(SMU)是最可能类别的分类概率减去第二可能类别的分类概率[1]。这个度量背后的直觉是,如果最有可能的类的概率明显大于第二可能的类的概率,那么分类器对该样本的类成员更加确定。同样,如果最有可能的类的概率不比第二个最有可能的类的概率大多少,那么分类器就不太确定该样本的类成员。主动学习算法将选择具有最小SMU值的样本。

2)Least Confidence Uncertainty

Φ L C ( x ) = 1 − P θ ( y 1 ∗ ∣ x ) \Phi_{LC}(x) = 1-P_{\theta}(y^*_1|x) ΦLC(x)=1Pθ(y1x)

最小置信不确定性(Least confidence uncertainty,LCU)是选择分类器对所选类别最不确定的样本。LCU选择只查看最可能的类,并选择具有分配给该类的最低概率的样本。

3)Entropy Reduction

Φ E N T ( x ) = − ∑ y   P θ ( y ∣ x ) l o g P θ ( y ∣ x ) \Phi_{ENT}(x) = - \sum_y\ P_{\theta}(y|x)log P_{\theta}(y|x) ΦENT(x)=y Pθ(yx)logPθ(yx)

熵是随机变量不确定性的度量。在这个实验中,我们使用香农熵(Shannon Entropy)。香农熵有几个基本性质:(1)均匀分布具有最大不确定性,(2)不确定性对于独立事件是可加的,(3)加一个概率为零的结果没有影响,(4)某个结果的事件没有影响。将类别预测视为结果,可以测量预测类别概率的香农熵。

熵值越高,表明概率分布的不确定性越大。在每个主动学习步骤中,对于训练集中的每个未标记的样本,主动学习算法计算预测的类概率的熵,并选择具有最高熵的样本。熵最高的样本是分类器对其类别成员最不确定的样本。

4)Largest Margin Uncertainty

最大的边际不确定性(largest margin uncertainty)是最佳与最差不确定性(best-versus-worst uncertainty)的比较。最大边际不确定性(LMU)是最可能类别的分类概率减去最不可能类别的分类概率。这个度量背后的直觉是,如果最可能的类的概率明显大于最不可能的类的概率,那么分类器对该示例的类成员关系更加确定。同样地,如果最可能的类的概率不比最不可能的类的概率大多少,那么分类器对样本的类成员关系就不那么确定了。主动学习算法将选择具有最小LMU值的样本。


5. Algorithm

下面的算法是一种基于池的主动学习[8]。基于流的主动学习可以类似地编写。
在这里插入图片描述
大规模分类任务中的一个主要瓶颈是训练分类器需要大量的训练样本。使用主动学习,可以通过有策略地选择特定的样本来减少分类器所需的训练样本的数量。

6. 优缺点

大部分尝试过主动学习的研究人员认为其效果符合预期。这非常令人鼓舞,但人们不禁想知道在其他情况下发生了什么。这里的真相是,主动学习仍然没有被很好地理解。例如,主动学习在NLP领域的NER(Named Entity Recognition)任务上有一些有希望的工作(Paper),但许多大问题仍然存在。例如,很少有人提前预测特定任务或数据集是否特别容易从主动学习方法中受益。最后,主动学习是半监督学习的一种特殊情况,半监督学习是一种已经被证明极易受到偏差影响的算法,特别是因为它们有可能沉溺于从在相当小的数据集上训练的模型所识别的模式中得出的初始信念。随着高效标注成为机器学习中一个越来越重要的组成部分,预计未来几年将会有更多关于该主题的研究发表。


参考:
Introduction to Active Learning
Introduction to Active Learning