首先先认识下什么是co-training:
在计算机视觉中,我们都知道训练一个分类器的时候,我们需要两类样本,分别是正样本和负样本。监督训练又可以成为off-line training,就是提前准备好已经标注过样本,然后对分类器进行训练,最后将训练好的分类器对需要进行分类的东西进行分类。而另一个是online training. 刚开始的时候我们用一些标注过的样本对分类器进行初始化训练。这样分类器就有一定的效果,然后在这之后对未标注的样本进行分类,之后利用相关的方法识别出正样本和负样本,然后再过程中不断改进分类器,从这个过程中不断提高分类器的分类效果。
co-training最早是有Blum he Mitchell在1998年提出的Combining labeled and unlabeled data with co-training
早期主要用于1:Web-page classification (Page text Hyperlink text))
2:bilmetric recognition systems(appearance and voice)
在物体检测中,co-training主要应用于监控中车辆检测和移动物体的识别。
Co-training是目前很流行的一种半指导机器学习的方法,它的基本思想是:构造两个不同的分类器,利用小规模的标注语料,对大规模的未标注语料进行标注的方法.Co-training方法最大的优点是不用人工干涉,能够从未标注的语料中自动学习到知识。Co-training方法,是有指导和无指导机器学习两者的一个折中办法,它的原则是:在不牺牲性能的前提下,尽量多的使用未带标数据,它从一个小规模的带标的语料库开始,同时使用大规模的未带标语料来进行学习。Co-training算法应用于属性存在天然可分割性的数据集,即数据集的某些属性能够在某种角度上描绘数据的某种特征,而这些属性不是唯一的,有许多不同的属性能够将同样的特征从不同的角度描绘出来,这样的数据属性集就具有天然可分割性,忽视了数据集特性的可分割性.Co-training算法则利用两个不同学习器在数据集的/分割的特性集上独立学习,并结合两个学习器的学习结果作出最后学习结论,这样来达到降低错误率的目的.
Co-training的描述如下:
- 从两个view是看一个分类问题;
- 根据不同的角度分别建立一个模型,在标注集下训练每个模型;
- 标注未标注的句子,然后找出每个模型都比较高自信度标注的句子;
- 以不同的方式挑出这些高自信度的句子;
- 把这些句子加入到训练集中,迭代这个过程,直到未标注数据耗尽;