机器学习系列—14.半监督学习

Contents

  1. 1. 生成式方法
  2. 2. 半监督SVM
  3. 3. 基于分歧的方法
  4. 4. 半监督聚类

当训练样本不足时,学得模型的泛化能力也往往不佳。因此可以采用主动学习的方法,即引入额外的专家知识,通过与外界的交互来将部分未标记样本转变为有标记样本。但若不与专家交互,没有获得额外信息,还能利用未标记样本来提高泛化性能吗?回答是可以的。让学习器不依赖外界交互、自动地利用未标记样本来提升学习性能,就是半监督学习(semi-supervised)。要利用未标记样本,要做一些将未标记样本所揭示的数据分布信息与类别标记相联系的假设。最常见的是“聚类假设”(cluster assumption),即假设数据存在簇结构,同一个簇的样本属于同一个类别。另一种常见的假设是“流形假设”(manifold assumption),即假设数据分布在一个流形结构上,邻近的样本拥有相似的输出值。“邻近”程度常用“相似”程度来刻画,因此,流形假设可看作聚类假设的推广,但流形假设对输出值没有限制,比聚类假设的适用范围更广,但是二者的本质都是“相似的样本拥有相似的输出”这个基本假设。

半监督学习可进一步划分为纯(pure)半监督学习直推学习(transductive learning)。前者假定训练数据中的未标记样本并非待预测的数据,而后者则假定学习过程中所考虑的未标记样本恰是待预测数据。纯半监督学习是基于“开放世界”假设,希望学得模型能适用于训练过程中未观察到的数据,而直推学习是基于“封闭世界”假设,仅试图对学习过程中观察到的未标记数据进行预测。下图直观的表现出主动学习纯半监督学习直推学习的区别:

接下来介绍几种半监督方法

生成式方法

生成式方法(generative methods)是直接基于生成式模型的方法,此类方法假设所有数据(无论是否有标记)都是由同一个潜在的模型“生成”的。因此我们可以通过潜在模型的参数将未标记数据与学习目标联系起来,而未标记数据的标记则可看作模型的缺失参数,通常可基于EM算法进行极大似然估计求解。此类方法的区别主要在于生成式模型的假设,不同的模型假设将产生不同的方法。
假设样本由高斯混合模型生成,且每个类别对应一个高斯混合成分,换言之,数据样本是基于如下概率密度生成

由最大化后验概率可知

其中p(y=j|θ=i,x)为x由第i个高斯混合成分生成且类别为j的概率,需知道样本的标记,因此仅能使用有标记数据:

是样本x有第i个高斯混合成分生成的后验概率,不涉及样本标记,已标记数据与未标记均可。
以上公式用极大似然法来估计高斯混合模型的参数的对数似然是:

上式有两项组成:基于有标记数据的有监督项和基于未标记数据的无监督项。可用EM算法求解。首先是E步:根据当前模型参数计算未标记样本属于各高斯混合成分的后验概率,即上面的公式(13.3);然后是M步:基于求得的后验概率更新模型参数。具体推导过程可参考前面博文曾讲过的EM算法。
若将上述过程中的高斯混合模型换成混合专家模型、朴素贝叶斯模型即可推导出其他的生成式半监督学习方法。此类方法简单,易于实现,在有标记数据极少的情形往往比其他方法性能更好,但有一个关键:模型假设必须准确,即假设的生成式模型必须与真实数据分布吻合;否则利用未标记数据反倒会较低泛化性能。

半监督SVM

半监督支持向量机(Semi-Supervised Support Vector Machine,S3VM)是支持向量机在半监督学习上的推广。半监督支持向量机中最著名的是TSVM(Transductive Support Vector Machine),TSVM针对二分类问题,其试图考虑对未标记样本进行各种可能的标记指标(label assignment),即尝试将每个未标记样本分别作为正例或反例,然后在所有这些结果中,寻求一个在所有样本上间隔最大化的划分超平面。一旦划分超平面得以确定,未标记样本的最终标记指派就是其预测结果。
TSVM的学习目标是

其中,(w,b)确定了一个划分超平面;ξ为松弛向量,ξi(i=1,2,…,l)对应于有标记样本,ξi(i=l+1,l+2,…,m)对应于未标记样本;Cl与Cu是由用户指定的用于平衡模型复杂度、有标记样本与未标记样本重要程度的折中参数。显然,尝试未标记样本的各种标记指派是一个穷举过程,必须考虑优化策略。因此TSVM采用局部搜索来迭代寻找式(13.9)的近似解,其具体算法步骤如下:

第6-9行的意思是TSVM找出两个标记指派为异类且很可能发生错误的未标记样本,交换它们的标记,再重新基于式(13.9)求解出更新后的划分超平面和松弛向量,然后再找可能发生错误的标记。。。标记指派调整完成后,逐渐增大Cu以提高未标记样本对优化目标的影响,进行下一轮标记指派调整,直至Cu=Cl为止。如何判断哪些样本极有可能发生错误呢?算法(第6行)中的判断是:若存在一对未标记样本Xi与Xj,其标记指派Yi与Yj不同,且对应的松弛变量满足两者相加大于2,则意味着Yi和Yj很可能是错误的。
搜寻标记指派可能出错的每一对未标记样本进行调整,是一个涉及巨大计算开销的大规模优化问题。基于图核函数梯度下降的LDS、基于标记均值估计的meanS3VM均是针对其的优化求解策略。

基于分歧的方法

与生成式方法、半监督SVM、图半监督学习等基于单学习器利用未标记数据不同,基于分歧的方法(disagreement-based methods)使用多学习器,而学习器之间的“分歧”对未标记数据的利用至关重要。
“协同训练”是此类方法的重要代表,其很好的利用了多视图的“相容互补性”。假设数据拥有两个充分(sufficient)且条件独立视图,首先在每个视图上基于有标记样本分别训练处一个分类器,然后让每个分类器分别去挑选自己“最有把握的”未标记样本用于训练更新。。。这个“互相学习、共同进步”的过程不断迭代进行,直到两个分类器都不再发生变化,或达到预先设定的迭代轮数为止。协同训练过程虽简单,但若两个视图充分且条件独立,则可利用未标记样本通过协同训练将弱分类器的泛化性能提升到任意高。不过,视图的条件独立性在现实任务中通常很难满足,因此性能提升幅度不会那么大。后来又出现了能在单视图数据上使用的变体算法,它们或是使用不同的学习算法,或使用不同的数据采样,或使用不同的参数设置来产生不同的学习器,也能有效地利用未标记数据来提升性能。无需数据拥有多视图,仅需弱学习器之间具有显著的分歧(或差异),即可通过相互提供未标记样本的方式来提升泛化性能。

半监督聚类

聚类是一种典型的无监督学习器任务,然而在现实聚类任务中我们往往能获得一些额外的监督信息,于是可通过半监督聚类(semi-supervised clustering)来利用监督信息以获得更好的聚类效果。
聚类任务中获得的监督信息大致有两种类型。第一种类型是“必连”(must-link)与“勿连”(cannot-link)约束,前者是指样本必属于同一个簇,后者是指样本必不属于同一个簇;第二种类型的监督信息则是少量的有标记样本。
约束k均值(Constrainedd k-means)算法是利用第一类监督信息的代表。该算法是k均值算法的扩展,它的聚类过程中要确保M(必连)与C(勿连)的约束得以满足,否则将返回错误提示。下图是约束k均值算法的算法流程图。

第二种监督信息是少量有标记样本,可以直接将它们作为“种子”,用它们初始化k均值算法的k个聚类中,并且在聚类簇迭代更新过程中不改变种子样本的簇隶属关系。这就是约束种子k均值算法,其算法描述如下