主动学习
在半监督学习的情况下(即部分数据有标签,部分数据无标签),算法可以主动选择数据,选择的数据是算法认为最重要的数据,这些数据由专家人为标注,再加入到数据集进行训练。
主动学习算法一般分为两个部分,学习训练部分和选择部分:
学习训练部分: 一个负责分类器更新的部分,学习算法对系统提供的已标注样例进行学习从而使该分类器的性能提高
选择部分: 选择算法选择一个未标注的样例并交给专家进行标注,再将标注后的样例加入到已标注样例集中。
对于选择算法,可分为基于流的和基于池的:
基于流(stream-based)的主动学习中,未标记的样例按先后顺序逐个提交给选择引擎,由选择引擎决定是否标注当前提交的样例,如果不标注,则将其丢弃。
基于池(pool-based)的主动学习中则维护一个未标注样例的集合,由选择引擎在该集合中选择当前要标注的样例。
基于池的选择算法
- 基于不确定度
选择那些当前基准分类器最不能确定其分类的样例进行标注。这类方法以信息熵作为衡量样例所含信息量大小的度量,而信息熵最大的样例正是当前分类器最不能确定其分类的样例。从几何角度看,这种方法优先选择靠近分类边界的样例。 - 基于版本缩减
这类方法选择那些训练后能够最大程度缩减版本空间的样例进行标注。在二值分类问题中,这类方法选择的样例总是差不多平分版本空间。如:QBC算法 - 基于泛化误差缩减
这类方法试图选择那些能够使未来泛化误差最大程度减小的样例。其一般过程为:首先选择一个损失函数用于估计未来错误率,然后将未标注样例集中的每一个样例都分别估计其能给基准分类器带来的误差缩减,选择估计值最大的那个样例进行标注。
这类方法直接针对分类器性能的最终评价指标,但是计算量较大,同时损失函数的精度对结果影响较大。