30.1 半监督学习 概论
未标记样本虽未直接包含标记信息,但++它们与有标记样本是从同样的数据源独立同分布采样而来++ ,则++++它们所包含的关于数据分布的信息对建立模型将大有裨益++++,如图一个直观示例:

若仅基于图中的一个正例和一个反例,待判别样本恰位于两者中间,那么大体上只能随机猜测。但是若能观察到图中的未标记样本,将很有把握地判别出为正例。
使学习器不依赖外界交互(专家知识)、自动利用未标记样本提升学习性能,就是半监督学习(semi-supervised learning)。半监督学习的现实需求非常强烈,因为在现实应用中往往容易收集到大量未标记样本,而获取其"标记"却需耗费大量人力、物力。
利用未标记样本,需要将未标记样本所揭示的数据分布信息与类别标记相联系的假设。最常见的是"++++聚类假设++++ "(cluster assumption),假设数据存在簇结构,同一个簇的样本属于同一个类别。如上图中就是基于聚类假设利用未标记样本,与相对分离的反例样本相比,待测样本更可能属于正类。另一种常见的假设是"++++流形假设++++"(manifold assumption),假设数据分布在一个流形结构上,邻近的样本拥有相似的输出值 ("邻近"程度常用"相似"程度来刻画)。无论聚类假设还是流形假设,其本质都是"相似的样本拥有相似的输出"这个基本假设。
半监督学习可进一步划分为++纯(pure)半监督学习++ 和++直推学习++(transductive learning)
-
纯半监督学习是基于"开放世界",学得的模型能适用于训练过程之外的从未见过的未标记数据的预测。
-
直推学习是基于"封闭世界",仅试图对学习过程中观察到的未标记数据进行预测。
30.2 生成式方法
生成式方法 (generative methods)是直接基于++生成式模型++ 的方法。++此类方法假设所有数据(无论是否有标记)都是由同一潜在模型"生成"的++ 。++这个假设通过有标记数据与未标记数据所包含的数据分布信息获得潜在模型的参数++ ,++并将未标记数据的预测分类与学习目标(模型参数)联系起来++ -- 通常可基于EM算法进行极大似然估计求解。此类方法的区别主要在于生成式模型的假设,不同的模型假设将产生不同的方法。
30.2.1 高斯混合概率模型如何预测分类
给定样本x,其真实类别标记为y∈Y,Y={1,2,...,N}为所有可能的类别。假设样本由高斯混合模型(GMM)生成,且每个类别对应一个高斯成分 (一个高斯成分可能包含多个类别),数据样本是基于如下概率密度生成:
p(x) = Σ(i=1,N)ai·p(x|μi, σi)
其中,混合系数 ai ≥ 0, Σ(i=1,n)ai = 1,p(x|μi, σi)是第i个高斯成分生成样本x的概率,ai、μi和σi为第i个高斯成分的参数。
令 f(x)∈Y 表示模型(GMM)对 x 的预测标记,Θ∈{1,2,...,N}表示样本 x 隶属的高斯成分。由最大化后验概率可知
f(x) = argmax(j∈Y) p(y=j | x)
<样本 x 属于某一类别 j 的概率为最大时所对应的类别,即为f(x) 模型对x的预测类别>
= argmax(j∈Y) Σ(i=1,N)p(y=j, Θ=i | x)
<样本 x 属于某一类别 j,且是由某一高斯成分 Θ=i 以某一概率生成;即每一类别都对应一个 Θ∈{1,2,...,N} 生成x的概率之和,概率之和为最大时所对应的类别即为f(x) 模型对x的预测类别>
= argmax(j∈Y) Σ(i=1,N)p(y=j | Θ=i, x)·p(Θ=i | x)
其中,
<p(Θ=i | x)为样本x由第i个高斯成分生成的后验概率 - 在x概率密度p(x)之中,第i个高斯成分生成x的概率占比。p(y=j | Θ=i, x)为x由第i个高斯成分生成且其类别为j的概率。>
由于假设每个类别对应一个高斯混合成分 -- 假设类别 i 对应高斯成分 i,则当且仅当i=j时,p(y=j | Θ=i, x)=1,否则 p(y=j | Θ=i, x)=0。因此 p(y=j | x) 可用 p(Θ=j | x) 代替。
p(y=j | x) 需知道样本的标记,因此仅能使用有标记数据;而 ++p(Θ=j | x) 不涉及样本标记++ (只与样本所包含的数据分布信息有关),++因此有标记和未标记的数据均可使用,并通过引入大量的未标记数据,这一项的估计可望更为准确++ 。++由此可清楚地看出未标记数据如何能辅助提高分类模型的性能++。
30.2.2 基于有标记数据和未标记数据的高斯混合概率模型 EM 算法
给定++有标记样本集 Dl={(x1,y1), (x2,y2), ..., (xl,yl)}++
和++未标记样本集 Du={xl+1, xl+2, ..., xl+u},l≪u,l+u=m++ ,假设所有样本独立同分布,且都是由同一个高斯混合分别模型(GMM)生成的。
用++极大似然法估计GMM参数 {(ai, μi, σi)++ | 1≤i≤n, Dl∪Du} 的++对数似然++ 是
LL(Dl∪Du) = Σ(xj,yj∈Dl)ln(Σ(i=1,n)ai·p(xj | μi, σi)·p(yj | Θ=i, xj))
- Σ(xj∈Du)ln(Σ(i=1,n)ai·p(xj | μi, σi))
<基于上述说明中"当且仅当i=j时,p(y=j | Θ=i, x)=1,否则 p(y=j | Θ=i, x)=0",
LL(Dl∪Du) 等价于 Σ(xj,yj∈Dl)ln(aj·p(xj | μj, σj))+ Σ(xj∈Du)ln(Σ(i=1,n)ai·p(xj | μi, σi))>
基于有标记数据 Dl (有监督项) 和未标记数据 Du (无监督项) 的高斯混合模型 EM 算法解读:
-
可通过有标记数据对模型参数 (ai, μi, σi) 进行初始化 (参照"3. M步"中的计算公式)
-
E步:根据当前模型参数计算未标记样本xj属于各高斯混合成分的概率 γji

-
M步:基于 γji 更新模型参数 (ai, μi, σi),其中li表示第i类的有标记样本数目

以上过程不断迭代直至收敛,即可获得最终确定的模型参数。
之后由 f(x) = argmax(j∈Y) p(y=j | x) = argmax(j∈Y) p(Θ=j | x) 可得模型对样本的预测分类。
将上述过程中的高斯混合模型换成混合专家模型[Miller and Uyar,1997]、朴素贝叶斯模型[Nigam et al.,2000]等即可推导出其他的++生成式半监督学习方法++ 。此类方法简单,易于实现,在有标记数据极少的情形下往往比其他方法性能更好。然而,++此类方法有一个关键:模型假设必须准确,假设的生成式模型必须与真实数据分布吻合;否则利用未标记数据反倒会降低泛化性能++[Cozman and Cohen,2002]。