13.半监督学习
13.1.主动学习与半监督学习
前面我们一直围绕的都是监督学习与无监督学习,监督学习指的是训练样本包含标记信息的学习任务,例如:常见的分类与回归算法;无监督学习则是训练样本不包含标记信息的学习任务,例如:聚类算法。
半监督学习(semi-supervised learning),即训练集同时包含有标记样本数据和未标记样本数据。
在实际生活中,常常会出现一部分样本有标记和较多样本无标记的情形,例如:做网页推荐时需要让用户标记出感兴趣的网页,但是少有用户愿意花时间来提供标记。若直接丢弃掉无标记样本集,使用传统的监督学习方法,常常会由于训练样本的不充足,使得其刻画总体分布的能力减弱,从而影响了学习器泛化性能。那如何利用未标记的样本数据呢?
一种简单的做法是通过专家知识对这些未标记的样本进行打标,但随之而来的就是巨大的人力耗费。
若我们先使用有标记的样本数据集训练出一个学习器,再基于该学习器对未标记的样本进行预测,从中挑选出不确定性高或分类置信度低的样本来咨询专家并进行打标,最后使用扩充后的训练集重新训练学习器,这样便能大幅度降低标记成本,这便是主动学习(active learning),其目标是使用尽量少的、有价值的咨询来获得更好的性能。
显然,主动学习需要与外界进行交互、查询、打标,其本质上仍然属于一种监督学习。事实上,无标记样本虽未包含标记信息,但它们与有标记样本一样都是从总体中独立同分布采样得到,因此它们所包含的数据分布信息对学习器的训练大有裨益。
让学习过程不依赖外界交互,自动利用未标记样本所包含的分布信息的方法便是半监督学习。
半监督学习可进一步划分为纯半监督学习和直推学习
*纯半监督学习:假定训练数据集中的未标记数据并非待预测数据
*直推学习:假定学习过程中的未标记数据就是待预测数据,学习的目的是在这些未标记样本上获得最优泛化性能
主动学习、纯半监督学习以及直推学习三者的概念如下图所示:
13.2.生成式方法
生成式方法(generative methods)是直接基于生成式模型的方法。此类方法假定样本数据服从一个潜在的分布,因此需要充分可靠的先验知识。
高斯混合模型生成方式
假设样本由高斯混合模型生成,即模型由多个高斯分布组合形成,从而一个子高斯分布就代表一个类簇(类别)。数据样本是基于如下概率密度生成:
令表示
个混合成分,相当于将高斯混合模型时的
,假设每个类别对应一个高斯混合成分,即
与类
对应。则
表示
由第
个高斯混合成分生成的,其类别为
的概率,则有
即第个高斯混合成分生成的数据
,其类别只能是
。
对于有标记样本,其类别是确定的,例如样本,其中
对应于
,因此
只可能由
的高斯混合成分生成,则
的生成概率可以写成
式(13.4)由两项组成:第一项为基于有标记数据的有监督项,第二项为基于未标记数据
的无监督项,因为未标记样本的类别不确定,即它可能来自
个高斯混合成分中的任何一个,即式(13.1)。
显然,高斯混合模型参数估计可用EM算法求解,迭代更新式如下:
上式即为的值,表示已知
,则它由第
个高斯混合成分生成的概率(后验概率),其中
可以通过有标记样本预先计算出来。即:
其中表示第
类样本的有标记样本数目,
为有标记样本集样本总数,
为“逻辑与”
对于式(13.6)推导:
首先对式(13.4)关于求偏导,即为
,可以将式(13.4)的两项分别记为
首先,考虑第一项,由于
的取值非0即1,且
与
对应时,才取1,所以
然后对
求偏导,此时,
中只有
的项起到作用,即
然后第二项对
求偏导得(此处参考9.33的推导)
综上,将两项合并得
上式中,可以作为常量提到求和号外面,得
而,即第
类样本的有标记样本数目,因此得
此式即为式(13.6),然后对于式(13.7)推导:
类似(13.6),首先对
求偏导,得
然后对
求偏导,得
综合得
令,两边同时右乘
并移项
两边同时左乘得
即
此式即为式(13.7),然后对于式(13.8)推导:
写出的拉格朗日形式
首先对
求偏导,类似式9.37推导过程
然后对
求偏导,过程类似13.6和13.7推导过程
综合得
令,并两边同乘
得
对所有混合成分求和,得
这里,,因此
,又根据
表达式得
再结合加法满足交换律,所以
上式中,形式与
等价,其中
为未标记样本集的样本个数;
,其中
为有标记样本集的样本个数;将这些结果代入
得
又因为,其中
为样本总个数,移项即得
,最后代入整理解得
此式即为式(13.8)。
以上过程不断迭代直至收敛,即可获得模型参数.
13.3.半监督SVM
半监督支持向量机(Semi-Supervised Support Vector Machine,简称S3VM)是支持向量机在半监督学习上的推广。
在不考虑未标记样本时,支持向量机试图找到最大间隔划分超平面,而在考虑未标记样本后,S3VM试图找到能将两类有标记样本分开,且穿过数据低密度区域的划分超平面,如图所示
注意对比 S3VM 划分超平面穿过的区域与 SVM 划分超平面穿过的区域的差别,明显S3VM划分超平面周围样本较少,也就是“数据低密度区域”,即“低密度分隔”。
半监督支持向量机中最著名的是TSVM(Transductive Support VectorMachine)[Joachims,1999].与标准SVM一样,TSVM也是针对二分类问题的学习方法。
TSVM试图考虑对未标记样本进行各种可能的标记指派(label assignment),即尝试将每个未标记样本分别作为正例或反例,然后在所有这些结果中,寻求一个在所有样本(包括有标记和标记指派的未标记样本)上间隔最大化的划分超平面。一旦划分超平面得以确定,未标记样本的最终标记指派就是其预测结果。
对比SVM软间隔的式(6.35)可以发现,二者几乎一模一样,区别在于此处多出了未标记样本的松弛变量,约束条件中未标记样本的标记使用的预测标记。
显然,尝试未标记样本的各种标记指派是一个穷举过程,需要次尝试,仅当未标记样本很少时才有可能直接求解。在一般情形下,必须考虑更高效的优化策略。
TSVM采用局部搜索来迭代地寻找式(13.9)的近似解。具体过程为:
(1)它先利用有标记样本学得一个SVM,然后利用这个SVM对未标记数据进行标记指派(label assignment),此时成为已知,将其代入式(13.9)即得到一个标准SVM问题,于是可求解出新的划分超平面和松弛向量。
(2)此时未标记样本的伪标记很可能不准确,因此要设置为比
小的值,使有标记样本所起作用更大,即未标记样本可以犯错的程度更高。接下来,TSVM找出两个标记指派为异类且很可能发生错误的未标记样本,交换它们的标记,再重新基于式(13.9)求解出更新后的划分超平面和松弛向量,然后再找出两个标记指派为异类且很可能发生错误的未标记样本……
(3)标记指派调整完成后,逐渐增大以提高未标记样本对优化目标的影响,进行下一轮标记指派调整,直至
为止。
交换过程如下图所示
此时求解得到的SVM即为最终的模型
13.4.图半监督学习
给定一个数据集,我们可将其映射为一个图,数据集中每个样本对应于图中一个结点,若两个样本之间的相似度很高,则对应的结点之间存在一条边,边的“强度”(strength)正比于样本之间的相似度。
我们可将有标记样本所对应的结点想象为染过色,而未标记样本所对应的结点尚未染色。于是,半监督学习就对应于“颜色”在图上扩散或传播的过程。
这里,当
和
不相等时,权重
与
和
的相似度成指数级关系,也就是当
和
的相似度很高时
会接近1,而
和
的相似度很低时
会接近0。
这里,当两个节点和
相邻时,我们希望他们是一类
和
尽量相似,即它们的差尽量小,也就是
越小越好;当两个节点
和
不相邻时,由于
接近0,则
也接近0,因为最终希望
越小越好。
所以,目标函数便是,只需对
求导即可得到未标注数据的预测结果。
图半监督学习方法的优缺点:
优点:在概念上相当清晰,且易于通过对所涉矩阵运算的分析来探索算法性质。
缺点:首先是在存储开销上,若样本数为,则算法中所涉及的矩阵规模为
,这使得此类算法很难直接处理大规模数据;另一方面,由于构图过程仅能考虑训练样本集,难以判知新样本在图中的位置。
因此,可以利用图半监督学习方法对原始数据集进行计算标注,然后将全部标注后的数据作为训练集,另外训练一个学习器例如支持向量机来对新样本进行预测。
13.5.基于分歧的方法
与前边介绍的只基于单学习器的方法不同,基于分歧的方法(disagreement-based methods)通过多个学习器之间的分歧(disagreement)/多样性(diversity)来利用未标记样本数据,类似于之前学习的集成学习。
协同训练就是其中的一种经典方法,它最初是针对于多视图(multi-view)数据而设计的,那么何为多视图?
在不少现实应用中,一个数据对象往往同时拥有多个“属性集”(attribute set),每个属性集就构成了一个“视图”(view)。例如对一部电影来说,它拥有多个属性集:图像画面属性集、声音属性集、字幕属性集、甚至网上的宣传讨论属性集等。每个属性集都可看作一个视图。
协同训练学习的基本逻辑如下:
(1)在每个视图上基于有标记样本分别训练出一个分类器
(2)让每个分类器分别挑选自己“最有把握”的未标记样本赋予伪标记
(3)将伪标记样本提供给另一个分类器作为新增的有标记样本用于训练更新
(4)重复(1)、(2)直到两个学习器不再变化或达到预设的迭代次数时停止
过程如下图所示:
协同训练算法本身是为多视图数据而设计的,但此后出现了一些能在单视图数据上使用的变体算法,也能有效地利用未标记数据提升性能。后续理论研究发现,此类算法事实上无需数据拥有多视图,仅需弱学习器之间有显著的分歧,即可通过互相提供伪标记样本的方式来提升泛化性能。
基于分歧的方法只需要采用合适的基学习器,就能较少受到模型假设,损失函数非凸性和数据规模问题的影响,学习方法简单有效、理论基础相对坚实、使用范围较为广泛。
13.6.半监督聚类
前面提到的几种方法都是在监督学习的基础上引入未标注数据来优化性能,半监督聚类则是在非监督学习的基础上引入监督信息来优化性能,这同样也是另一个角度的半监督学习。一般而言,监督信息大致有两种类型:
第一种类型是“必连”(must-link)与“勿连”(cannot-link)约束,必连是指样本必属于同一个簇,勿连是指样本必不属于同一个簇;
第二种类型的监督信息则是少量的有标记样本。
约束k均值(Constrained k-means)算法是利用第一类监督信息的代表,其在 k 均值算法的基础上考虑了“必连”和“勿连”约束。
具体逻辑如下:
(1)初始化个簇,随机选择
个样本作为
个簇的初始均值向量
(2)对每个样本,计算其与每个簇均值向量的距离
(3)找出距离样本最近的簇
,判断将
放进
是否违反“约束”
(4)如果不违反,则将簇作为
的簇标记,并将
放入该簇集合
中
(5)如果违反,则找次近的簇,以此类推直到找到满足约束的最近簇,将
放入该簇集合
中
(6)对所有的簇集合,根据本次迭代得到的簇集合计算新的均值向量
(7)重复迭代2-6步,直到均值向量均未更新时,退出迭代步骤
通过以上过程,我们获得了聚类计算的结果簇划分。
以西瓜数据集4.0为例的划分过程如下图所示
约束种子k均值(Constrained Seed k-means)算法是利用第一类监督信息,使用少量标记数据来辅助聚类计算。
与k均值算法一样,不同点在于利用有标记样本进行类中心的指定,同时在对样本进行划分时,不需要改变有标记样本的簇隶属关系,直接将其划分到对应类簇即可。
同样以西瓜数据集4.0为例的划分过程如下图所示