主动学习(Active Learning)
- 介绍
- 实例详解
- 模型分类
- 基本查询策略
- 经典方法
- 应用
- 方向
- 引用
介绍
主动学习是一种通过主动选择最有价值的样本进行标注的机器学习或人工智能方法。其目的是使用尽可能少的、高质量的样本标注使模型达到尽可能好的性能。也就是说,主动学习方法能够提高样本及标注的增益,在有限标注预算的前提下,最大化模型的性能,是一种从样本的角度,提高数据效率的方案,因而被应用在标注成本高、标注难度大、标注难以大量获取等任务中,例如医疗图像、无人驾驶、异常检测、基于互联网大数据的相关问题。
实例详解
图1展示了基于池的主动学习循环。在每次的主动学习循环中,根据任务模型和无标签数据的信息,查询策略选择最有价值的样本交给专家进行标注并将其加入到有标签数据集中继续对任务模型进行训练。。
模型分类
主动学习的方法可以被分为membership query synthesis,stream-based and pool-based三种类型。
在membership query synthesis的场景中,算法可能挑选整个无标签数据中的任何一个交给oracle标注,典型的假设是包括算法自己生成的数据。
在stream-based的场景中,每次只给算法输入一个无标签样本,由算法决定到底是交给oracle标注还是直接拒绝。有点类似流水线上的次品检测员,过来一个产品就需要立刻判断是否为次品,而不能在开始就根据这一批产品的综合情况来考量。
在pool-based的场景中,每次给算法输入一个批量的无标签样本,然后算法根据策略挑选出一个或几个样本交给oracle进行标注。
基本查询策略
查询策略来判断样本的价值,即是否值得被oracle标注。
不确定性采样 (Uncertainty Sampling):也许是最简单直接也最常用的策略。算法只需要查询最不确定的样本给oracle标注,通常情况下,模型通过学习不确定性强的样本的标签能够迅速提升自己的性能。例如,学生在刷题的时候,只做自己爱出错的题肯定比随机选一些题来做提升得快。对于一些能预测概率的模型,例如神经网络,可以直接利用概率来表示不确定性。比如,直接用概率值,概率值排名第一和第二的差值,熵值等等。
多样性采样 (Diversity Sampling) :是从数据的分布考虑的常用策略。算法根据数据分布确保查询的样本能够覆盖整个数据分布以保证标注数据的多样性。例如,老师在出考试题的时候,会尽可能得出一些有代表性的题,同时尽可能保证每个章节都覆盖到,这样才能保证题目的多样性全面地考察学生的综合水平。同样地,在多样性采用的方法中,也主要分为以下几种方式:
基于模型的离群值——采用使模型低激活的离群样本,因为现有数据缺少这些信息;
代表性采样——选择一些最有代表性的样本,例如采用聚类等簇的方法获得代表性样本和根据不同域的差异找到代表性样本;
真实场景多样性——根据真实场景的多样性和样本分布,公平地采样。
预期模型改变(Expected Model Change) :EMC通常选择对当前模型改变最大、影响最大的样本给oracle标注,一般来说,需要根据样本的标签才能反向传播计算模型的改变量或梯度等。在实际应用中,为了弱化需要标签这个前提,一般根据模型的预测结果作为伪标签然后再计算预期模型改变。当然,这种做法存在一定的问题,伪标签和真实标签并不总是一致的,他与模型的预测性能有关。
委员会查询 (Query-By-Committee):QBC是利用多个模型组成的委员会对候选的数据进行投票,即分别作出决策,最终他们选择最有分歧的样本作为最有信息的数据给oracle标注。
经典方法
Entropy
可直接根据预测的概率分布计算熵值,选择熵值最大的样本来标注。
BALD
【Deep Bayesian Active Learning with Image Data】—
https://arxiv.org/abs/1703.02910
BGADL
【Bayesian Generative Active Deep Learning】—
https://arxiv.org/abs/1904.11643
Core-set
【Active Learning for Convolutional Neural Networks: A Core-Set Approach】—
https://openreview.net/forum%3Fid%3DH1aIuk-RW
LLAL
【Learning Loss for Active Learning】—
https://arxiv.org/abs/1905.03677%3Fcontext%3Dcs.CV
VAAL
【Variational Adversarial Active Learning】—
https://arxiv.org/abs/1904.00370
应用
主动学习应用的场景是针对有大量无标签数据(至少不缺),如何节省标注工作量使得模型达到满意的性能。
方向
- 从主动学习基本理论和问题出发,完善和改进;
- 与其他learning方法或概念结合,改进主动学习或该方法,例如半监督、域自适应、知识蒸馏和强化学习等等
- 应用到新的背景和任务(和主动学习结合的paper少的)中,例如点云分类分割、医疗图像、目标检测等等
。
引用
引用1
链接2