主动学习(Active Learning)

引言

Active Learning,即主动学习,通过一定的算法查询最有用的未标记样本,并交由专家进行标记,然后用查询到的样本训练分类模型来提高模型的精确度。

深度学习在各种各样的实际应用中取得巨大突破,其主要的推动力在于三个方面:数据,算法和算力。也就是说,在很多情况下,一个完整的解决方案,需要具备这样的条件:1)足够的符号要求的数据;2)强大机器保障;3)靠谱的算法。随着大数据和GPU技术的发展,很多问题已不在是局限,但取得大量标注准确的数据依然需要高昂的成本,模型的训练依然需要大量的时间和精力,这些也成为当前深度学习的局限。在监督学习方法中,获得有标注数据是异常困难的,主动学习通过对未标注数据进行筛选,可以利用较少的标注样本取得较高的模型学习准确率。

定义

主动学习通过“选择策略”主动从未标注样本集中挑选部分样本,交给相关领域专家进行标注,然后将标注样本增加到训练数据集给“学习模块”进行训练。当学习模块满足终止条件后停止,否则不断重复获得更多的标注样本进行训练。

步骤

主要分为二个部分:学习引擎和选择引擎。其中,学习引擎负责维护一个基准分类器,根据监督学习的方法来对已标注数据进行学习,从而使该分类器的性能提高,选择引擎负责运行样例选择算法来选择一个未标注的样例并交给人类专家来进行标注,然后再将标注后的样例加入已标注样本集中。二个引擎交替工作,经过多次循环,基准分类器的性能逐渐提高,满足某个预设的条件时,整个过程终止。

A=(C,L,S,Q,U):其中C为一个或一组分类器;L为一组已标注的训练样本集;Q为查询策略函数,用于在未标注的样本中查询信息量大的样本;U为整个未标注样本集;S为监督者,可以对未标注样本进行标注。

1)选取合适的模型M,主动选择策略,数据划分train(训练数据集,有标注label),validation(验证数据集,有标注label),active(未标注数据集),其中train初始可为空。

2)初始化:随机初始化or通过迁移学习初始化,如果train不为空,可以训练初始模型M;

3)使用当前模型M对U进行预测,得到每个样本的预测结果,通过Q查询信息量大的样本。

4)专家对n'进行标注,更新标注集合n=n+n’;

5)基于训练集n,训练更新模型M;

6)使用M在validation上验证,符合收敛条件则停止迭代,否则循环执行3-5;

其中,对于查询策略Q(选择策略,查询函数),在各种主动学习方法中,查询函数的设计最常用的策略是:不确定性准则(uncertainty)和差异性准则(diversity)。

(1)对于不确定性准则,我们可以借助信息熵的概念来进行理解。我们知道信息熵是衡量信息量的概念,也是衡量不确定性的概念。信息熵越大,就代表不确定性越大,包含的信息量也就越丰富。

(2)对于差异性准则,即样本之间具有一定的差异性。希望所查询的样本提供的信息是全面的,各个样本提供的信息不重复不冗余。

优点

能够很好的处理较大的样本,从中选择有辨识能力的样本点,减少人工标注成本,高效的训练模型。

参考:

主动学习的概述

主动学习(Active Learning)介绍

浅谈主动学习:如何高效的训练模型

猜你喜欢

转载自blog.csdn.net/Frank_LJiang/article/details/104440253