co-training和tri-training

Tri-training

半监督学习

之前提到的算法,多数都属于监督学习算法。其特点在于,构建一个包含标记数据的训练集,用来训练算法模型。

然而,获得标记数据是一个费时费力的高成本过程,实际工作中,更有可能的情况是:少量标记数据+大量未标记数据。

未标记数据的处理方式,一般有如下三种:

这里写图片描述

主动学习

1.根据标记数据生成一个简单的模型A。

2.挑出对改善模型性能帮助最大的样本数据B。

3.通过查询行业专家获得B的真实标记。

4.根据B的真实标记,更新模型A。

以SVM为例,对于改善模型性能帮助最大的样本往往是位于分类边界的样本,可将这些样本挑出来,查询它的标记。

纯半监督学习和推断学习

纯半监督学习和推断学习,都属于广义上的半监督学习。和主动学习不同,半监督学习无需专家提供的外部信息。

但标记数据总归不能无中生有,半监督学习的实现有赖于若干假设,其中主要有聚类假设和流形假设两种。其本质都是“相似的样本拥有相似的输出”。

纯半监督学习假定未标记数据为训练样本集,而推断学习则认为未标记数据为测试样本集。

虽然多数情况下,半监督学习能有效提升模型的泛化性能,然而这并不是绝对的。当半监督学习之后,模型的泛化性能反而下降时,我们首先需要检查数据是否满足算法所依赖的假设。

参考:

http://www.cnblogs.com/chaosimple/p/3147974.html

半监督学习

协同训练算法

协同训练(co-training)算法是一种多学习器的半监督学习算法。它是多视图(multi-view)学习的代表。

以电影为例,它拥有多个属性集:图像、声音、字幕等。每个属性集就构成了一个视图。

协同训练假设不同的视图具有“相容性”。所谓相容性是指,如果一个电影从图像判断,像是动作片,那么从声音判断,也有很大可能是动作片。

协同训练的算法流程:

1.在每个视图上,基于有标记数据,分别训练出一个分类器。

2.每个分类器挑选自己最有把握的未标记数据,赋予伪标记。

3.其他分类器利用伪标记,进一步训练模型,最终达到相互促进的目的。

理论上,如果不同视图之间具有完全相容性,则模型准确度可达到任意上限。而实际中,虽然很难满足完全相容性假设,但该算法仍能有效提升模型的准确度。

原始的协同训练算法的主要局限在于,构造视图在工程上是件很有难度的事情。后续的一些改进算法针对这点,在应用范围上做了不少改进。如基于不同学习算法、不同的数据采样、不同的参数设置的协同训练算法。

理论研究表明,只要弱学习器之间具有显著分歧(或差异),即可通过相互提供伪标记的方式提升泛化性能。因此,协同训练算法又被称为基于分歧的算法

Tri-training

2005年,周志华提出了Tri-training算法。该算法的流程如下:

1.首先对有标记示例集进行可重复取样(bootstrap sampling)以获得三个有标记训练集,然后从每个训练集产生一个分类器。

2.在协同训练过程中,各分类器所获得的新标记示例都由其余两个分类器协作提供,具体来说,如果两个分类器对同一个未标记示例的预测相同,则该示例就被认为具有较高的标记置信度,并在标记后被加入第三个分类器的有标记训练集。

参考:

http://www.cnblogs.com/liqizhou/archive/2012/05/11/2496162.html

Tri-training, 协同训练算法

Co-Forest & Co-Trade

Co-Forest & Co-Trade是周志华在Tri-training基础上的改进算法。

参考:

http://lamda.nju.edu.cn/huangsj/dm11/files/gaoy.pdf

半监督学习中的几种协同训练算法

猜你喜欢

转载自blog.csdn.net/Octal_H/article/details/89284600