Active Learning 主动学习

Active Learning主动学习

机器学习的任务中,主要包含以下几类:监督学习(supervised learning)、无监督学习(unsupervised learning)、半监督学习(semi-supervised learning)、强化学习(reinforcement learning)。其中监督学习和半监督学习都需要对原始图像进行标注成为训练数据,然而对原始图像进行标注往往依赖于特定领域的专家的经验知识,需要耗费人工,较为繁琐和昂贵。鉴于此,能不能设计模型,在原始数据中选择“值得”训练的数据进行训练呢?换句话说,标注数量和工作量大致相同的情况下,这其实是一个标注图像的边际收益如何最大化的问题。

  • 何为边际收益最大化?
    试想这么一个问题,对于一个目标识别任务A,假设人工标注每张图像需要花费相同时间t。假设有两张图片a和b,a是水杯和汽车,b是汽车和卡车。那么识别水杯和汽车相较于识别汽车和卡车要更为容易区分,识别汽车和卡车相对更难区分。在对机器学习模型进行训练的过程中,显然使用b作为训练数据学习到的知识要更加高效一些。也就是标注单位数量的b图像获得的对模型的提升比标注单位数量的a图像要多,这就是边际收益最大化。
  • 主动学习的种类
    主动学习可分为流式的主动学习(Sequential Active Learning)和离线批量的主动学习(Pool-based Active Learning)
    以下列举出了主动学习的三种情景:

pool-based sampling,顾名思义,即所有的数据均存在于一个池子中。我们的工作就是在该池子中选出一些样本进行标记。在这样的设定下,所有样本都提供给模型,模型来选择一部分样本进行标记。在实际中,pool-based sampling 在三种方法中所使用的最多。
membership query synthesis,是指模型可以生成新的样本,即模型可以操控样本的生成。这类似于人在学习的过程中进行举一反三,自己生成一些新的问题,然后通过更深入的研究新问题来提高自己的认知。
sequential selective sampling,是指样本不在池子中,而是按一定次序被模型看到,而模型需要决定是否对每个新看到的样本进行标记。这一过程类似于人每天都在接受新的概念和定义并从中选择出需要的内容进行专门学习,不需要的则抛弃或忘记。
Active Learning 主动学习

  • 主动学习的查询策略(query strategy framework)
    主动学习主要有以下查询策略:
  1. 不确定性采样的查询(Uncertainty Sampling);
  2. 基于委员会的查询(Query-By-Committee);
  3. 基于模型变化期望的查询(Expected Model Change);
  4. 基于误差减少的查询(Expected Error Reduction);
  5. 基于方差减少的查询(Variance Reduction);
  6. 基于密度权重的查询(Density-Weighted Methods)。

不确定性采样

所谓不确定性采样就是对于原数据中不确定性高的数据进行采样标注,即很难进行分类,容易误判的数据进行标注。
其中有三种主要的方法:置信度最低(Least Confidence)、边缘采样(Edge Sampling)、熵(Entropy)方法。

置信度最低

对于分类器模型而言,不管是二分类还是多分类,通常它们都能够对每一个数据进行打分(计算概率表示),判断它究竟更有可能是哪一类。例如,在二分类的场景下,有两个数据分别被某一个分类器预测,其对两个类别的预测概率分别是:(0.99,0.01) 和 (0.51, 0.49)。在此情况下,第一个数据被判定为第一类的概率是 0.99,第二个数据被判定为第一类的概率是 0.51,于是第二个数据明显更“难”被区分,因此更有被继续标注的价值。所谓 Least Confident 方法就是选择那些最大概率最小的样本进行标注,用数学公式描述就是:
Active Learning 主动学习
其中 P P P θ \theta θ ( y ^ ∣ x ) {(\hat{y}|x)} (y^​∣x)指的是最大概率的类别对应的概率。Least Confident 方法考虑那些模型预测概率最大但是可信度较低的样本数据。

边缘采样

边缘采样和置信度最低类似,但是其考虑的是将概率最大的类别与第二大的类别进行比较,即比较分类是否具有较大的优势,优势较小的数据将用以进行标注。边缘采样法和置信度最低法在二分类问题上是等价的。
公式表示为:
Active Learning 主动学习

基于熵的方法

熵(Entropy)反映的是一个环境中的无序程度。熵越大反映系统不确定性越大。
ML/DL问题中我们常使用交叉熵计算损失,衡量系统的不确定性。使用基于熵的方法作为查询策略,用公式可以表示为:
Active Learning 主动学习
选取熵最大的数据进行标注作为训练数据对于模型的提升更有指导性。
相较于 least confident 和 margin sample 而言,entropy 的方法考虑了该模型对某个 x x x 的所有类别判定结果。而 least confident 只考虑了最大的概率,margin sample 考虑了最大的和次大的两个概率。

基于委员会的查询(QBC)

待补充

基于模型变化期望的查询

模型变化最大其实可以选择那些使得梯度变化最大的样本数据。

基于误差减少的查询

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

基于方差减少的查询

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

基于密度权重的查询

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

![密度权重] ,](https://www.icode9.com/i/ll/?i=320803447f9949bfa287ba1990ebee9a.png)

在这里, ϕ \phi ϕA ( x ) (x) (x)表示某个不确定性采样方法或者 QBC 方法, β \beta β表示指数参数, x x x(u) 表示第 u 类的代表元, U 表示类别的个数。加上权重表示会选择那些与代表元相似度较高的元素作为标注候选集。
待补充
参考:
主动学习

上一篇:Active Directory LDAP DingDing


下一篇:【SpringCloud】nacos服务配置之命名空间namespace