1.Self-training algorithm(自训练算法)

这个是最早提出的一种研究半监督学习的算法,也是一种最简单的半监督学习算法.

2.Multi-view algorithm(多视角算法)

一般多用于可以进行自然特征分裂的数据集中.考虑特殊情况(每个数据点表征两个特征):每一个数据点看成是两个特征的集合,然后利用协同训练(Co-training algorithm)进行处理.协同训练(co-training)算法,此类算法隐含地利用了聚类假设或流形假设,它们使用两个或多个学习器,在学习过程中,这些学习器挑选若干个置信度高的未标记示例进行相互标记,从而使得模型得以更新。

 Balcan and Blum (2006) show that co-training can be quite effective, that in the extreme case only one labeled point is needed to learn the classifier. Zhou et al. (2007) give a co-training algorithm using Canonical Correlation Analysis which also need only one labeled point. Dasgupta et al. (Dasgupta et al., 2001) provide a PAC-style th-eoretical analysis.

3.Generative Models(生成模型)

以生成式模型为分类器,将未标记示例属于每个类别的概率视为一组缺失参数,然后采用EM算法来进行标记估计和模型参数估计,此类算法可以看成是在少量有标记示例周围进行聚类,是早期直接采用聚类假设的做法。EM算法的贪心本质使其容易陷入局部极值,因此算法对初始值的选择具有很强的依赖性.常用的解决方法是采用多组初值进行重复运算,并从中选择最好的一组解,或者通过复杂的优化算法(如分裂合并EM算法)获取参数的优化解.这些做法尽管降低了对初始值选择的敏感性,但却引入了过多的运算负担。

具体算法这里不说,我这里只说一下生成模型(Generative Models)和判别模型(Discriminative Models)的区别.

对于分类和聚类问题而言.①判别模型只关心类的决定边界在哪里;生成模型关心的是类本身而非决定边界.②判别模型只能判定数据点属于哪个类别,无法将过程描述出来;生成模型可以将过程描述.③生成模型可以得到判别模型;判别模型推不出生成模型.④判别模型估计的是条件概率分布(Conditional distribution);生成模型估计的是联合概率分布(Joint probability distribution).

常见的判别模型有:Linear discriminate analysis, Support vector machines, Boosting, Conditional random fields, Logistic regression.

常见的生成模型有:Gaussian distribution, Gaussian mixture model, Multinomial distribution, Hidden Markov model, Na?ve Bayes, Latent Dirichlet allocation.

4.Transductive SVM(转导SVM)

强调一点,根据Vapnik的Statistical Learning Theory中提出统计学习中考虑两种不同类型的推理:归纳推理(Inductive inference)和转导推理(Transductive inference).转导推理的目的是估计某一未知预测函数在给定兴趣点上的值(而不是在该函数的全部定义域上的值).关键是,通过求解要求较低的问题,可以得到更精确的解.

传统的推理方法是归纳-演绎方法,人们首先根据用已有的信息定义一个一般规则,然后用这个规则来推断所需要的答案.也就是说,首先从特殊到一般,然后从一般到特殊.但是在转导模式中,我们进行直接的从特殊到特殊的推理,避免了推理中的不适定部分.

5.Graph-Based Algorithms(基于图的算法)

是基于图正则化框架的半监督学习算法,此类算法直接或间接地利用了流形假设,它们通常先根据训练例及某种相似度度量建立一个图,图中结点对应了(有标记或未标记)示例,边为示例间的相似度,然后,定义所需优化的目标函数并使用决策函数在图上的光滑性作为正则化项来求取最优模型参数

Which method should I choose ?

This may be difficult in reality. Nonetheless we can try the following checklist: Do the classes producewell clustered data? If yes, EM with generative mixture models may be a good choice; Do the features naturally split into two sets? If yes, co-training may be appropriate; Is it true that two points with similar features tend to be in the same class? If yes, graph-based methods can be used; Already using SVM? Transductive SVM is a natural extension; Is the existing supervised classifier complicated and hard to modify? Self-training is a practical wrapper method.

Where can I learn more?

A: An existing survey can be found in (Seeger, 2001).