主动学习(Active Learning)

主动学习

1、定义

主动学习的主要目的是通过减少标注成本的情况下,得到模型的performance也不差。

在整个机器学习建模的过程中有人工参与的部分和环节,并且通过机器学习的方法筛选出合适的候选集给人工标注。其主要思路是:通过机器学习的方法获取那些比较‘难’分类的样本数据,交给人工进行标注,然后将人工标注的数据加入到训练集中重新训练机器学习的model,迭代进行下去,逐步提升模型的效果,将人工经验融入到机器学习的模型中。

在没有使用Active Learning的时候,通常来说系统会从样本中随机抽样一部分数据或者使用一些人工定义的规则来提供一些待标记的样本让人工进行标注。这样的做法或许会带来一定的效果提升,但其需要的标注数据量也会很大,标注的成本也是极高的。

2、步骤

在机器学习是建模过程中,通常包括样本选择,模型训练,模型预测,模型更新这几个步骤。在主动学习这个领域需要把标注候选集提取和人工标注这两个步骤加入整体的流程中。

1、机器学习模型:包括模型训练和预测两部分
2、待标注的数据候选集提取:依赖主动学习中的查询函数(Query Function)
3、人工标注:将标注候选集交给专家或者有业务经验的标注
4、获得标注后的数据:获得更有价值的样本数据
5、机器学习模型更新:将标注数据加入training data,更新模型,从而将人工标注的数据融入机器学习模型中,提升模型效果。

主动学习(Active Learning)
比较一下使用active learning的方式和random sample的方式所得到的模型
主动学习(Active Learning)
a是我们的两个类别的数据,b是随机选取30个样本数据做标注,并在训练逻辑回归模型,蓝色的线代表分类器的决策边界,其准确率为70%。c是利用active learning的方式选取的30个标注数据,然后再训练逻辑回归模型,其准确率达到90%。

所以可以看出,active learning具有的一定的优势,因为它在选取样本的时候,会优先选择分类器比较难分类的样本,将其作为标注数据的候选集,提高模型的性能。

3、分类

主动学习(Active Learning)

3.1 Membership Query Synthesis

学习者可以为输入空间中任何未标记实例请求标签,包括学习者从头生成的query,而不是从某些基本自然分布中采样的查询。

3.2 Stream-Based Selective Sampling

合成查询的替代方法是选择性抽样。关键的假设时获取为标记的实例是免费的(或便宜的),因此可以首先从实际分布中对其进行采样,然后学习者可以决定是否请求其标签。这种方法有时被称为基于流的顺序学习(stream-based or sequential active learning),因为通常每个未标记的实例通常一次从数据源中提取一个,学习者必须决定是查询还是放弃。如果输入分布是均匀的,则选择性采样可能表现的项membership query。但是如果分布是非均匀的并且(更重要的)未知的,我们可以保证查询仍然是合理的,因为它们来自真实的底层分布。

应用场景:词性标记、传感器调度、信息检索的学习排名函数

是否查询实例的决定可以通过以下几种方式确定:

一、使用“信息性度量”或“查询策略”评估样本,并作出有偏差的随机决策,这样信息量越大的实例越有可能被查询。
二、计算不确定性的明确区域。
即实例空间中对学习者仍不明确的部分,并且只查询属于该部分的实例。
这样做的一个简单方法是为定义区域的信息性度量设置一个最小阈值,然后查询其计算值高于阈值的实例
三、定义整个模型类仍然未知的区域。
例如相同模型类别(但不同参数设置)的任何两个模型所在的标记数据上一直,但在某些未标记实例上不一致,则该实例位于不确定性区域内。但是完全且显式地计算此区域比较昂贵,并且必须在每次新查询后对其进行维护。因此,在实践中使用近似值。

3.3 Pool-Based Sampling

对于许多实际的学习问题,可以一次性收集大量未标记的数据。这激发了pool-based的抽样,该抽样假设存在一组小的标记数据和一个大的未标记的数据池。查询是有选择性地从池中提取的,通常假设池是关闭的(静态的或者非更改的),尽管这并不是严格必要的。通常,根据用于评估池中所有实例(或者,如果未标记池非常大,可能是其中的一些子样本)的信息性度量,以贪婪的方式查询实例。

应用场景:text classification、information extraction,image classification and retrieval,video classification and retrieval,speech recognition, cancer diagnosis

基于流和基于池的主动学习的主要区别在于前者按顺序扫描数据并单独做出查询决策,而后者在选择最佳查询之前对整个集合进行评估和排序。
虽然基于池的场景在应用论文中似乎更为常见,但可以想象基于流的方法更为合适的设置。例如,当内存或处理能力可能受到限制时,如移动和嵌入式设备。

4、Query Strategy Frameworks

所有主动学习场景都涉及评估未标记实例的信息量,这些实例可以从头生成,也可以从给定分布中采样。

4.1 Uncertainty Sampling

最简单和最常用的查询框架是不确定性抽样。在此框架中,主动学习者查询最不确定如何标记的实例。对于概率学习模型,这种方法通常很简单。例如,当使用概率模型进行二元分类时,不确定性抽样只是查询后验概率为正且最接近0.5的实例。
不确定性采样的方法的关键就是如何描述样本或者数据的不确定性,通常有以下几种思路:
1、置信度最低(Least Confident)
2、边缘采样(Margin Sampling)
3、熵方法(Entropy)

4.1.1 least confident

对于二分类或多分类的模型,通常它们能够对每一个数据进行打分,判断它究竟更像哪一类。例如,在二分类的场景下,有两个数据分别被某一个分类器预测,其对两个类别的预测概率分别为:(0.9,0.1),和(0.51,0.49)。在此情况下,第一个数据被判定为第一类的概率是0.9,第二个数据被判定为第一类的概率是0.51.于是第二个数据明显更“难”区分,因此更有被继续标注的价值。

所谓Least Confident就是选择那些最大概率最小的样本进行标注。

主动学习(Active Learning)
主动学习(Active Learning)

4.1.2 Margin Sampling

边缘采样指的是选择那些极容易被判定为两类的样本数据,或者说这些数据被判定为两类的概率相差不大。边缘采样就是选择模型预测最大和第二大的概率差值最小的样本。用数学公式来描述就是:
主动学习(Active Learning)

4.1.3 Entropy

在数学中,可以用熵(Entropy)来衡量一个系统的不确定性,熵越大表示系统的不确定性越大,熵越小表示系统的不确定性越小。因此,在二分类或者多分类的场景下,可以选择那些熵比较大的样本数据作为待定标注数据。用数学公式表示就是:
主动学习(Active Learning)
其中y_i是所有可能标签的范围。熵是一种信息论度量,表示对分布进行“编码”所需的信息量。因此,它通常被认为是机器学习中不确定性或杂质的度量。对于二元分类,基于熵的抽样减少到上述边缘和最小置信度策略。事实上,这三种方法都相当于使用最接近0.5的类查询实例。
下图可视化这些不确定性度量之间的隐含关系。在所有情况下,信息量最大的实例都位于三角形的中心,因为这表示标签分布最均匀的位置(因此在模型下最不确定)。类似的,信息量少的实例位于三个角,其中一个类的概率非常高(因此模型的不确定性很小)。
主动学习(Active Learning)
相较于least confident和margin sample而言,entropy的方法考虑了该模型对某个x的所有类别判定结果。而least confident只考虑了最大的概率,margin sample考虑了最大和次最大的两个概率。

4.2 Query-By-Committee

主动学习(Active Learning)
为了实现QBC算法,必须:
(1)能够构建代表版本空间不同区域的模型委员会;
(2)委员会成员之间存在一定程度的分歧。

为了衡量分歧程度,提出了两种主要方法:
1、投票熵(Vote Entropy):选择这些模型都无法区分的样本数据
2、平均KL散度(Average Kullback-Leibler Divergence):选择KL散度比较大的样本数据

4.2.1 Vote Entropy(投票熵)

主动学习(Active Learning)

4.2.2 Average KL Divergence(平均KL散度)

KL散度可以衡量两个概率之间的“距离”,因此,可以用KL散度计算出那些偏差较大的数据样本。用数学公式来描述就是:
主动学习(Active Learning)

5、期望模型改变(Expected Model Change)

模型变化最大其实可以选择那些使得梯度变化最大的样本数据
主动学习(Active Learning)
主动学习(Active Learning)
该框架背后的直觉是,它更喜欢那些可能对模型影响最大(即对其参数影响最大)的实例,而不管结果查询标签如何。这种方法在实证研究中表现良好,但如果特征空间和标签集都非常大,则计算成本可能会比较高。

6、期望误差减小(Expected Error Reduction)

选择那些通过增加一个样本就使得loss函数减少最多的样本数据

7、方差减小(Variance Reductin)

选择方差减少最多的样本数据

8、基于密度权重的选择方法(Density-Weighted Methods)

有的时候,某个数据点可能是异常点或者与大多数数据偏差较大,不太适合做样本选择或者区分,某些时候考虑那些稠密的,难以区分的数据反而价值更大。于是,可以在使用不确定性采样或者QBC方法的时候,将样本数据的稠密性考虑进去。用数学公式表示就是:

主动学习(Active Learning)
主动学习(Active Learning)

举例说明不确定性抽样何时可能是一种糟糕的分类策略。彩色为L中已经标记的实例,圆圈表示U中未标记的实例。A是在决策边界上,这将被认为是最不确定的。可是,查询B可能会得到更多关于整个数据分布的信息。

总结

在主动学习(Active Learning)领域,其关键在于如何选择出合适的标注候选集给人工进行标注,而选择的方法就是所谓的查询策略(Query Strategy)。查询策略基本上可以基于单个模型,也可以基于多个模型,在实际使用的时候可以根据情况来决定。主动学习的目标主要是在减少人工标注的成本的情况下,performance尽可能好。

上一篇:Unsupervised Learning | 对比学习——MoCo


下一篇:推荐问题中的去偏问题