主动学习(最优实验设计)

一、什么是机器学习

机器学习是人工智能的重要研究领域,也是一种较为复杂的信息处理手段,在图像处理、模式识别、数据挖掘等领域都有着重要的应用。 机器学习应该具有能够将数据库和信息系统中的信息自动提炼进而转换成知识,并自动存入知识库的能力。

实质上,机器学习就是关于让机器具有学习能力的一些算法。许多情况下这些算法能够对给出的一些数据进行归纳总结,并从这些数据属性中推出信息,对将来出现的新数据作出预测。

二、主动学习(Active Learning)背景

在机器学习(Machine learning)领域,监督学习(Supervised learning)、非监督学习(Unsupervised learning)以及半监督学习(Semi-supervised learning)是三类研究比较多,应用比较广的学习技术,wiki上对这三种学习的简单描述如下:

  • 监督学习:通过已有的一部分输入数据与输出数据之间的对应关系,生成一个函数,将输入映射到合适的输出,例如分类和回归。

  • 半监督学习:综合利用有类标的数据和没有类标的数据,来生成合适的分类函数。

  • 非监督学习:直接对输入数据集进行建模,例如聚类。

其实很多机器学习都是在解决类别归属的问题,即给定一些数据,判断每条数据属于哪些类,或者和其他哪些数据属于同一类等等。这样,如果我们上来就对这一堆数据进行某种划分(聚类),通过数据内在的一些属性和联系,将数据自动整理为某几类,这就属于非监督学习。如果我们一开始就知道了这些数据包含的类别,并且有一部分数据(训练数据)已经标上了类标,我们通过对这些已经标好类标的数据进行归纳总结,得出一个 “数据–>类别” 的映射函数,来对剩余的数据进行分类,这就属于监督学习。而半监督学习指的是在训练数据十分稀少的情况下,通过利用一些没有类标的数据,提高学习准确率的方法。

针对有监督学习和半监督学习,都需要一定数量的标注数据,也就是说在训练模型的时候,全部或者部分数据需要带上相应的标签才能进行模型的训练。我们使用一些传统的监督学习方法做分类的时候,往往是训练样本规模越大,分类的效果就越好。

但是在现实生活的很多场景中,标记样本的获取是比较困难的,这需要领域内的专家来进行人工标注,所花费的时间成本和经济成本都是很大的。而且,如果训练样本的规模过于庞大,训练的时间花费也会比较多

  • 工业界的图像标注领域,虽然有 ImageNet 这个学术界和工业界都在使用的图像数据库,但是在很多特殊的业务场景上,从业人员依旧需要想尽办法去获取业务标注数据。

  • 安全风控领域,黑产用户相对于正常用户是偏少的,因此,如何通过极少的黑产用户来建立模型则是值得思考的问题之一。

  • 业务运维领域,服务器,app 的故障时间相对于正常运行的时间也是偏少的,必然会出现样本不均衡的情况。

那么如何通过较少成本来获得较大价值的标注数据,进一步地提升算法的效果就是值得思考的问题了。

主动学习(Active Learning)为我们提供了这种可能。主动学习通过一定的算法查询最有用的未标记样本,并交由专家进行标记,然后用查询到的样本训练分类模型来提高模型的精确度。

在没有使用主动学习(Active Learning)的时候,通常来说系统会从样本中随机选择或者使用一些人工规则的方法来提供待标记的样本供人工进行标记。这样虽然也能够带来一定的效果提升,但是其标注成本总是相对大的。(用一个例子来比喻,一个高中生通过做高考的模拟试题以希望提升自己的考试成绩,那么在做题的过程中就有几种选择。一种是随机地从历年高考和模拟试卷中随机选择一批题目来做,以此来提升考试成绩。但是这样做的话所需要的时间也比较长,针对性也不够强;另一种方法是每个学生建立自己的错题本,用来记录自己容易做错的习题,反复地巩固自己做错的题目,通过多次复习自己做错的题目来巩固自己的易错知识点,逐步提升自己的考试成绩。其主动学习的思路就是选择一批容易被错分的样本数据,让人工进行标注,再让机器学习模型训练的过程。)
在这里插入图片描述

在人类的学习过程中,通常利用已有的经验来学习新的知识,又依靠获得的知识来总结和积累经验,经验与知识不断交互。同样,机器学习模拟人类学习的过程,利用已有的知识训练出模型去获取新的知识,并通过不断积累的信息去修正模型,以得到更加准确有用的**新模型。**不同于被动学习被动的接受知识,主动学习能够选择性地获取知识。

三、什么是active learning?

根据上面所述在真实的数据分析场景中,我们可以获取海量的数据,但是这些数据都是未标注数据,很多经典的分类算法并不能直接使用。那肯定会有人说,数据是没有标注的,那我们就标注数据喽!这样的想法很正常也很单纯,但是数据标注的代价是很大的,及时我们只标注几千或者几万训练数据,标注数据的时间和金钱成本也是巨大的。

在介绍active learning的概念之前,首先先谈一下样本信息的问题。

简单地来讲,样本信息就是说在训练数据集当中每个样本带给模型训练的信息是不同的,即每个样本为模型训练的贡献有大有小,它们之间是有差异的

因此,为了尽可能地减小训练集及标注成本,在机器学习领域中,提出主动学习(active learning)方法,优化分类模型。

主动学习为什么是有用的?下面通过一个直观的例子感受一下。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UkzuGCsI-1678104171916)(C:\Users\XueFeng Liu\AppData\Roaming\Typora\typora-user-images\image-20230305203940016.png)]

(a) 一个由400个实例组成的数据集,从两类高斯分布均匀采用。实例表示为二维特征空间中的点。(b) 从问题域中随机抽取30个标记实例,训练一个逻辑回归模型。这条蓝线代表了分类器的决策边界(70% 的准确率)。© 使用不确定性抽样对30个主动查询实例进行训练的逻辑回归模型(90%)。

由此说明,样本对模型的贡献并不是一样的,选择更有价值的样本具有实际意义。当然,如何确定和评估样本的价值也是主动学习研究的一个重点。

那么主动学习(Active Learning)的整体思路究竟是怎样的呢?

在机器学习的建模过程中,通常包括样本选择,模型训练,模型预测,模型更新这几个步骤。在主动学习这个领域则需要把标注候选集提取和人工标注这两个步骤加入整体流程。主动学习(active learning),指的是这样一种学习方法,主动学习的模型如下:
A = ( C , Q , S , L , U ) A=(C,Q,S,L,U) A=(C,Q,S,L,U)
其中

  • L是用于训练已标注的样本
  • C 为一组或者一个分类器
  • Q 是查询函数,用于从未标注样本池U中查询信息量大的信息
  • U是未标注样本池
  • S是督导者,可以为U中样本标注正确的标签。

学习者通过少量初始标记样本L开始学习,通过一定的查询函数Q选择出一个或一批最有用的样本,并向督导者S询问标签,然后利用获得的新知识来训练分类器和进行下一轮查询。主动学习是一个循环的过程,直至达到某一停止准则为止。

主动学习是机器学习的一个子领域,在统计学领域也叫查询学习或最优实验设计,旨在以尽可能少的标注样本达到目标性能。

样例选择算法

根据获得未标注样例的方式,可以将主动学习分为两种类型:基于流的和基于池的。

基于流(stream-based)的主动学习中,未标记的样例按先后顺序逐个提交给选择引擎,由选择引擎决定是否标注当前提交的样例,如果不标注,则将其丢弃。

基于池(pool-based)的主动学习中则维护一个未标注样例的集合,由选择引擎在该集合中选择当前要标注的样例。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lVB0I7U3-1678104171919)(C:\Users\XUEFEN~1\AppData\Local\Temp\WeChat Files\2a0eed79d29c8718255472309384820.jpg)]

而查询策略(Query Strategy Frameworks)就是主动学习的核心之处,通常可以选择以下几种查询策略:

  1. 不确定性采样的查询Uncertainty Sampling);
  2. 基于委员会的查询(Query-By-Committee);
  3. 基于模型变化期望的查询(Expected Model Change);
  4. 基于误差减少的查询(Expected Error Reduction);
  5. 基于方差减少的查询(Variance Reduction);
  6. 基于密度权重的查询(Density-Weighted Methods)。

不确定性采样(Uncertainty Sampling)

顾名思义,不确定性采样的查询方法就是将模型中难以区分的样本数据提取出来,提供给业务专家或者标注人员进行标注,从而达到以较快速度提升算法效果的能力。而不确定性采样方法的关键就是如何描述样本或者数据的不确定性,通常有以下几种思路:

  1. 置信度最低(Least Confident);
  2. 边缘采样(Margin Sampling);
  3. 熵方法(Entropy);

Least Confident(置信度最低)

对于二分类或者多分类的模型,通常它们都能够对每一个数据进行打分,判断它究竟更像哪一类。例如,在二分类的场景下,有两个数据分别被某一个分类器预测,其对两个类别的预测概率分别是:(0.9,0.1) 和 (0.51, 0.49)。在此情况下,第一个数据被判定为第一类的概率是 0.9,第二个数据被判定为第一类的概率是 0.51,于是第二个数据明显更“难”被区分,因此更有被继续标注的价值。所谓 Least Confident 方法就是选择那些最大概率最小的样本进行标注,用数学公式描述就是:
x L C ∗ = argmax ⁡ x ( 1 − P θ ( y ^ ∣ x ) ) = argmin ⁡ x P θ ( y ^ ∣ x ) , x_{L C}^{*}=\operatorname{argmax}_{x}\left(1-P_{\theta}(\hat{y} \mid x)\right)\\ =\operatorname{argmin}_{x} P_{\theta}(\hat{y} \mid x), xLC=argmaxx(1Pθ(y^x))=argminxPθ(y^x),
其中 y ^ = argmax ⁡ y P θ ( y ∣ x ) \hat{y}=\operatorname{argmax}_{y} P_{\theta}(y \mid x) y^=argmaxyPθ(yx),这里的 θ \theta θ 表示一个已经训练好的机器学习模型参数集合。 y ^ \hat{y} y^ 对 于 x x x 而言是模型预则概率最大的类别。Least Confident 方法考虑那些模型预测概率最大但是可信 度较低的样本数据。

Margin Sampling(边缘采样)

边缘采样(margin sampling)指的是选择那些极容易被判定成两类的样本数据,或者说这些数据被判定成两类的概率相差不大。边缘采样就是选择模型预测最大和第二大的概率差值最小的样本,用数学公式来描述就是:(选择容易被判定为两类的样本数据,及模型预测的最高置信度与第二高置信度差异小的样本)
x M ∗ = argmin ⁡ x ( P θ ( y ^ 1 ∣ x ) − P θ ( y ^ 2 ∣ x ) ) x_{M}^{*}=\operatorname{argmin}_{x}\left(P_{\theta}\left(\hat{y}_{1} \mid x\right)-P_{\theta}\left(\hat{y}_{2} \mid x\right)\right) xM=argminx(Pθ(y^1x)Pθ(y^2x))
其中 y ^ 1 \hat{y}_{1} y^1 y ^ 2 \hat{y}_{2} y^2 分别表示对于 x x x 而言,模型预测为最大可能类和第二大可能类。
特别地,如果针对二分类问题,least confident 和 margin sampling 其实是等价的。

Entropy(熵)

在信息论中,可以使用熵(Entropy)来衡量一个系统的不确定性熵越大表示系统的不确定性越大,熵越小表示系统的不确定性越小。因此,在二分类或者多分类的场景下,可以选择那些熵比较大的样本数据作为待定标注数据。用数学公式表示就是:
x H ∗ = argmax ⁡ x − ∑ i P θ ( y i ∣ x ) ⋅ ln ⁡ P θ ( y i ∣ x ) , x_{H}^{*}=\operatorname{argmax}_{x}-\sum_{i} P_{\theta}\left(y_{i} \mid x\right) \cdot \ln P_{\theta}\left(y_{i} \mid x\right), xH=argmaxxiPθ(yix)lnPθ(yix),
相较于 least confident 和 margin sample 而言,entropy 的方法考虑了该模型对某个 x x x的所有类别判定结果。而 least confident 只考虑了最大的概率,margin sample 考虑了最大的和次大的两个概率。

应用

其应用的领域包括:

  1. 个性化的垃圾邮件,短信,内容分类:包括营销短信,订阅邮件,垃圾短信和邮件等等;

  2. 异常检测:包括但不限于安全数据异常检测,黑产账户识别,时间序列异常检测等等。

  3. 包括图像识别,自然语言处理,安全风控等诸多领域。

总结

主动学习(Active Learning)领域,其关键在于如何选择出合适的标注候选集给人工进行标注,而选择的方法就是所谓的查询策略(Query Strategy)。查询策略基本上可以基于单个机器学习模型,也可以基于多个机器学习模型,在实际使用的时候可以根据情况来决定。整体来看,主动学习都是为了降低标注成本,迅速提升模型效果而存在的。

猜你喜欢

转载自blog.csdn.net/weixin_48266700/article/details/129369637
今日推荐