数据标注|主动学习
总会有人做的。
一、主动学习背景
1.1 概要
出处:机器学习主要研究计算机如何利用经验数据提高自身性能。在监督学习中,数据的质量和数量直接决定模型的性能高低,监督学习不仅要求数据全部是标记好的,并且需要大量的数据,然而人工标注大量数据需要耗费巨大的时间和精力,一个更合理的方案是挑选一部分数据进行标注,这就要提到机器学习中的主动学习。
主动学习目的: 是通过标记少量的数据训练处表现较好的模型。
核心任务:是制定选择样本的标准,从而选择尽可能少的样本进行标注来选出一个好的学习模型。
1.2 主动学习的基本思想
- A=(C,Q,S,L,U)
- C:为一组或者一个分类器。
- L:是用于训练已标注的样本。
- Q:是查询函数,用于从未标注样本池U中查询信息量大的信息。
- S:是督导者,可以为U中样本标注正确的标签。
- U:未标记的样本池。
学习者通过少量初始标记样本L开始学习,通过一定的查询函数Q选择出一个或一批最有用的样本,并向督导者询问标签,然后利用获得的新知识来训练分类器和进行下一轮查询。主动学习是一个循环的过程,直至达到某一停止准则为止。
1.3 主动学习的步骤:
1)首先在未标记的数据集中选取少量样本进行标注,构成训练集;
2)选取训练模型,使用少量标注样本的训练集对模型进行训练,此时模型的性能不高;
3)使用训练好的模型预测未标注的样本;
4)定义查询策略(包括度量预测的不确定度以及应用于请求标注的查询策略),根据策略返回未标注样本的优先级评分,选择出的需要标注的数据,进行人工标注;
5)将新选择的数据加入到训练集中更新训练集,使用更新后的训练集来训练模型;
6)判断模型是否达到停止准则,若未达到停止标准,则继续利用查询策略选择需要被标记的样本并进行人工标注,循环第4-5-6步,直到达到标准后停止。
1.4 主动学习VS半监督学习
半监督学习和直推学习(transductive learning)以及主动学习,都属于利用未标记数据的学习技术,但基本思想还是有区别的。主动学习的“主动”,指的是主动提出标注请求,也就是选出需要标注的数据,是需要交互进行的。而半监督学习,特指的是学习算法不需要人工的干预,基于自身对未标记数据加以利用,过程中是不依赖于人工标记的。
二、应用场景
1.基于数据池的主动学习
是最常见的一种场景,给定未标记的样本数据池,通过算法每次从未标记数据池中选择最具代表性的样本,交给标注者标注,然后向训练集中添加这些新的样本更新训练集,基于新训练集继续更新模型,进入下一次迭代。
2.基于数据流的主动学习
基于数据流的主动学习将未标记的数据逐一通过选择算法决定是否需要标注当前样本,若不选择则丢弃样本。该场景适用于数据量较大且数据源是流式而又无法保存下来所有数据的情况。
3.基于合成样本查询的主动学习
基于合成样本查询的主动学习并不是从已有的样本中选择来查询标记信息,而是直接从特征空间里合成出新的样本进行查询。这种方法可以解决标记数据难以获得的问题,但是由于新和成的样本可能是特征空间里任意取值组合产生的,因此在某些应用问题中可能导致人类专家也无法标注这些合成样本。例如在图像分类任务中,任意像素取值合成的图片可能并不能呈现清晰的语义,因此合成样本的质量和真实性可能会对算法的效果产生影响。 三种应用场景实际上对应着三种主动学习的基础策略。
三、主动学习策略
3.1常见算法
- 首先需要做的是需要手动标记该数据的一个非常小的子样本。
- 进行模型训练帮助我们了解参数空间的哪些领域需要首标记。
- 训练模型后,该模型用于预测每个剩余的未标记数据点的类别。
- 根据模型的预测,在每个未标记的数据点上选择分数一旦选择了对标签进行优先排序的最佳方法。
- 在基于优先级分数进行标记的新标签数据集上训练新模型。一旦在数据子集上训练完新模型,未标记的数据点就可以在模型中运行并更新优先级分值,继续标记。
- 通过这种方式,随着模型变得越来越好,我们可以不断优化标签策略。
四、常用查询策略
1.基于信息量的查询策略
最常见的一种,基本思想是选择那些能最大限度减小当前模型不确定性的样本进行查询。具体而言,信息量又可以通过模型预测的置信度、模型错误率下降期望、委员会投票等多种形式进行度量。这类方法选择样本时只基于现有的已标记样本,忽略了大量的未标记样本中蕴含的数据分部信息,可能导采样偏差问题。
2.基于代表性的查询策略
倾向于选择那些更能刻画数据整体分布的未标记数据进行标记查询。这些方法往往通过聚类或密度估计等无监督技术来评估样本的代表性,由于忽略了已标记样本因此整体性能也可能会依赖于聚类结果的好坏。
3.综合多种准则的查询策略
能够同时考虑选择样本的信息量和代表性,能够有效避免采样偏差和依赖聚类结果的问题。近年来已有研究者从不同角度提出综合多种查询准则的主动学习方法,并展示出较好的实验性能。
4.1.1不确定性度量的查询策略
(1)不确定性采样的查询
- 最小置信度(Least confidence)
选择那些最大概率最小的样本进行标注。即对于每个数据点的选择概率的最大值从小到大进行排序。(看最有可能被分类的情况下各样本被成功分类的概率最小即特征最不明显的)。
最小置信度方法考虑那些模型预测概率最大但是可信度较低的样本数据。是最简单,最常用的方法,它通过置信度排序以最低的置信度对其预测的样本进行采样。 - 边际抽样(Margin Sampling)
该方法与最小置信度法类似,不同在于该方法考虑最大概率和第二大概率的差异。边际抽样选择那些极容易被判定成两类的样本数据,这些数据被判定成两类的概率相差不大,即选择模型预测最大和第二大的概率差值最小的样本。
参考博客链接: - 熵
熵指的是系统的混乱程度或无序程度。熵越大反映系统不确定性越大。因此,选择熵大的样本进行标注有利于提升模型性能。
(2)基于委员会的查询(Query-By-Commitee)
不确定性采样的查询策略只使用单个模型,基于委员会的查询考虑多个模型。类似于集成学习。它通过多个模型进行投票的方式选择出较为难区分的数据。包括两个步骤:首先使用多个模型构成委员会;然后委员会中所有模型对所有未标记样本进行预测,筛选出投票最不一致的样本进行标注。
投票熵(Vote Entropy)
当多个模型将样本都投票为某一类,代表该样本容易区分,当多个模型对某个样本的投票结果都不一致时,代表带样本难以区分,需要重点关注。平均KL散度(Average KL Divergence)
KL散度可以衡量两个概率分布之间的“距离”,也就是两个概率分布之间的相似程度,因此可以使用KL散度计算出偏差较大的数据样本。模型变化期望(Expected Model Change)
模型错误率下降越多证明模型越好,让模型变化最大可以选择使得梯度变化最大的样本数据。基于误差减少的查询
选择那些通过增加一个样本就使得 loss函数减少最多的样本数据。基于方差减少的查询
选择方差降低最多的样本数据。基于密度权重减少的查询
当数据分布不均匀时,某个数据可能位于稀疏区或者是异常点,不太适合作为主动学习标注的样本,或者数据具有明显的聚类结构,即不同类别的数据点在特征空间中有较大的区分度时,使用密度权重可以更准确地反映数据点的重要性和捕捉聚类这样的结构。这时考虑那些稠密的较难区分的数据点价值更大。