半监督学习(semi-supervised learning)是一种介于无监督和监督学习之间的学习方式。
无监督学习只利用未标记的样本集,而监督学习则只利用标记的样本集进行学习。但在很多实际问题中,因为对数据进行标记的代价有时很高,所以我们通常只能拿到少量标记数据和大量的无标记数据。标记可能是类别的准确信息,也可能是聚类中的类簇信息(在同一类或不在同一类)。
一般来说,半监督学习侧重在有监督的分类算法中加入更多的无标记样本,来提高算法的效果。
比如下图,通过无标签的数据来改善决策边界。
用无标记的样本来改善决策边界
半监督有以下学习方法:
self-training
首先用有标记的数据训练一个分类器,再用分类器去预测无标记数据,选取可信度较高的样本扩充训练集规模,重新学习以得到新的分类器。
生成式方法
生成式方法(generative methods)考虑无标记的数据其实就是一种数据的缺失,计算出未标记样本的概率分布,使用EM算法来更新模型的参数。
S3VM
Semi-supervised support vector machine 简称 S3VM。它认为决策边界不应该通过未标记数据密集的区域。
S3VM试图在保持所有标注样本分类正确的情况下,建立一个穿过低密度区域的分类界面。
Co-training
首先从两个不同的特征集合(或视角)训练得到两个学习器,在每个循环中,每个学习器选择其预测置信度最高的未标注样本,将其预测作为样本的伪标签来训练另一个学习器。
最后,值得指出的是,尽管我们期望通过利用未标注数据来提升学习性能,但是在一些情况下,在经过半监督学习之后性能反而会下降。
与半监督学习类似的,还有 active learning 和 PU learning。
Active learning
一般来说,半监督学习是事先给定了标记样本和非标记样本的。而主动学习,假设我们在训练的过程中,还能不断向专家询问少量样本的标签。主动学习的目的,就是以一个比较少的人工标记次数来获得一个尽可能好的模型。
给定少量标注数据以及大量未标注数据,主动学习倾向于选择最有价值的未标注数据来查询其标签。其价值,有两个广泛使用的标准:信息量(informativeness)和代表性(representativeness)。
不确定抽样(uncertainty sampling)和投票询问(query-by-committee)是基于信息量的典型方法。前者训练单个学习器,选择学习器最不确信的样本向专家询问标签信息;后者生成多个学习器,选择各个学习器争议最大的样本向专家询问标签信息。
基于代表性的模型通常的目标是用聚类方法来挖掘未标注数据的集群结构。比如将数据聚成若干类,选取靠近类中心的、比较有代表性的样本。
PU learning
在实际问题中,我们可能会遇到,只有少量样本被标记为正,其余样本没有标记的问题(Positive-unlabeled learning)。比如说信用卡诈骗、盗用等现象的监测。
参考资料:
A brief introduction to weakly supervised learning. National Science Review