机器学习:半监督学习
半监督学习
半监督学习(Semi-supervised learning)的研究开始于二十世纪末期,随着人类社会的进步,每天都会产生大量的无标记数据,这些数据的涌现使得研究人员开始思考有没有办法对这些"廉价"的数据进行应用。对这些数据加以标记当然是最好的方法,但这一想法显然难以实现,在这种情况下,半监督学习也就顺利的诞生啦!接着从以下几个方面介绍下半监督学习。
1、未标记数据的作用
大量的未标记数据到底有什么用呢?来构想这样一种情景,当我们买了一些在不同地方产的苹果后,通过品尝发现有些地方生产的苹果口感更好,那下次购买的时候就会倾向于买相同产地的苹果。未标记数据也是一样,它们虽然没有直接包含容易被我们识别的信息,但是他们和有标记样本的"产地"是相同的,是同一条生产线出来的产品。用一个稍微专业一点的例子就是如果假设数据来源于一个高斯混合分布,根据最大后验概率规则就可以将它分解成有好多个函数乘积组合的形式,有些函数的参数是不依赖于标记的,那么大量的无标记样本就能帮助我们更加深入去了解这些函数。
要利用未标记样本,有一些对于其数据分布信息与类别标记相联系的假设必不可少,最为常见的就是聚类假设与流形假设。聚类假设要求模型中对于相同类的数据应当有相同类别的标记,而流形假设要求输入相似数据后应当可以得到相似的输出。大多数半监督学习方法都就建立在这种假设之上。
2、半监督学习方法
半监督学习可以分为四种大的类别,半监督分类,半监督回归,半监督聚类和半监督降维。每一类问题下又有很多种方法,归类如下。我们只选取其中一些方法进行介绍。
2.1 self-training(自训练算法)
假设我们有两个样本的集合,一个有标记而另一个没有标记。执行下面算法:
上面这一算法的思路就是不断地训练模型,且不断的更新L,使得最后通过无标记样本和有标记样本共同训练出一个模型F。
2.2生成模型
这类方法通常是把未标记样本属于每个类别的概率看成是一组却是参数,然后采用EM算法对生成式模型的参数进行极大似然估计,这一方法中可以选择不同的生成式模型作为基分类器,常见的就是混合高斯模型(GMM)。生成式模型非常简单直观,而且能在样本极少的时候取得很好的效果,但有一个关键的因素就是数据分布的假设,如果模型假设的分布与真实分布有很大偏差的话,得到的结果会非常糟糕,这就使得我们需要大量的相关领域知识来假设出更为合理的分布模型。
2.3半监督SVM
半监督支持向量机(S3VM)是支持向量机在半监督学习上的推广,在不考虑未标记样本时,支持向量机的工作在于找到最大间隔的划分超平面,而半监督支持向量机的工作在于找到能将两类标记样本区分,且穿过数据低密度区的划分超平面。最为流行的半监督支持向量机就是TSVM。在训练过程中TSVM算法首先利用有标记的数据训练一个SVM并估计未标记数据的标记,然后基于最大化间隔准则,迭代式地交换分类边界两侧样本的标记,使得间隔最大化,并以此更新当前预测模型,这样就使得产生的超平面会穿过数据低密度区。
2.4 协同训练(co-training)
There are a thousand Hamlets
in a thousand people's eyes.
协同训练就是让两个分类器站在不同的视角(设置不同参数)对于数据进行学习,我们首先让这两个分类器在有标记样本上进行学习,然后每个分类器都去在未标记样本集中选择自己最有把握的未标记样本并赋予标记,然后将这个样本给对方,作为新的已标记样本。