【机器学习基础】系列博客为参考周志华老师的《机器学习》一书,自己所做的读书笔记。
本文为原创文章,未经本人允许,禁止转载。转载请注明出处。
1.生成式方法
本章节没太理解,在此仅作记录,相关公式的详细推导可参考南瓜书PumpkinBook。
生成式方法(generative methods)是直接基于生成式模型的方法。此类方法假设所有数据(无论是否有标记)都是由同一个潜在的模型“生成”的。这个假设使得我们能通过潜在模型的参数将未标记数据与学习目标联系起来,而未标记数据的标记则可看作模型的缺失参数,通常可基于EM算法进行极大似然估计求解。此类方法的区别主要在于生成式模型的假设,不同的模型假设将产生不同的方法。
给定样本x,其真实类别标记为y∈Y,其中Y={1,2,…,N}为所有可能的类别。假设样本由高斯混合模型生成,且每个类别对应一个高斯混合成分。换言之,数据样本是基于如下概率密度生成:
p(x)=N∑i=1αi⋅p(x∣μi,Σi)这个假设意味着混合成分与类别之间一一对应。
其中,混合系数αi⩾0,∑Ni=1αi=1;p(x∣μi,Σi)是样本x属于第i个高斯混合成分的概率;μi和Σi为该高斯混合成分的参数。
令f(x)∈Y表示模型f对x的预测标记,Θ∈{1,2,…,N}表示样本x隶属的高斯混合成分。由最大化后验概率可知:
f(x)=argmaxj∈Yp(y=j∣x)=argmaxj∈YN∑i=1p(y=j,Θ=i∣x)=argmaxj∈YN∑i=1p(y=j∣Θ=i,x)⋅p(Θ=i∣x)其中
p(Θ=i∣x)=αi⋅p(x∣μi,Σi)∑Ni=1αi⋅p(x∣μi,Σi)为样本x由第i个高斯混合成分生成的后验概率,p(y=j∣Θ=i,x)为x由第i个高斯混合成分生成且其类别为j的概率。由于假设每个类别对应一个高斯混合成分,因此p(y=j∣Θ=i,x)仅与样本x所属的高斯混合成分Θ有关,可用p(y=j∣Θ=i)代替。不失一般性,假定第i个类别对应于第i个高斯混合成分,即p(y=j∣Θ=i)=1当且仅当i=j,否则p(y=j∣Θ=i)=0。
不难发现,式(2)中估计p(y=j∣Θ=i,x)需知道样本的标记,因此仅能使用有标记数据;而p(Θ=i∣x)不涉及样本标记,因此有标记和未标记数据均可利用,通过引入大量的未标记数据,对这一项的估计可望由于数据量的增长而更为准确,于是式(2)整体的估计可能会更准确。由此可清楚地看出未标记数据何以能辅助提高分类模型的性能。
给定有标记样本集Dl={(x1,y1),(x2,y2),…,(xl,yl)}和未标记样本集Du={xl+1,xl+2,…,xl+u},l≪u,l+u=m。假设所有样本独立同分布,且都是由同一个高斯混合模型生成的。用极大似然法来估计高斯混合模型的参数{(αi,μi,Σi)∣1⩽i⩽N},Dl∪Du的对数似然是:
LL(Dl∪Du)=∑(xj,yj)∈Dlln(N∑i=1αi⋅p(xj∣μi,Σi)⋅p(yi∣Θ=i,xj))+∑xj∈Duln(N∑i=1αi⋅p(xj∣μi,Σi))半监督学习中通常假设未标记样本数远大于有标记样本数,虽然此假设实际并非必须。
式(4)由两项组成:基于有标记数据Dl的有监督项和基于未标记数据Du的无监督项。显然,高斯混合模型参数估计可用EM算法求解,迭代更新式如下:
-
E步:根据当前模型参数计算未标记样本xj属于各高斯混合成分的概率。可通过有标记数据对模型参数进行初始化。
γji=αi⋅p(xj∣μi,Σi)∑Ni=1αi⋅p(xj∣μi,Σi) -
M步:基于γji更新模型参数,其中li表示第i类的有标记样本数目。
μi=1∑xj∈Duγji+li(∑xj∈Duγjixj+∑(xj,yj)∈Dl∧yj=ixj)Σi=1∑xj∈Duγji+li(∑xj∈Duγji(xj−μi)(xj−μi)T+∑(xj,yj)∈Dl∧yj=i(xj−μi)(xj−μi)T)αi=1m(∑xj∈Duγji+li)
以上过程不断迭代直至收敛,即可获得模型参数。然后由式(3)和式(2)就能对样本进行分类。
将上述过程中的高斯混合模型换成混合专家模型、朴素贝叶斯模型等即可推导出其他的生成式半监督学习方法。此类方法简单、易于实现,在有标记数据极少的情形下往往比其他方法性能更好。然而,此类方法有一个关键:模型假设必须准确,即假设的生成式模型必须与真实数据分布吻合;否则利用未标记数据反倒会降低泛化性能。遗憾的是,在现实任务中往往很难事先做出准确的模型假设,除非拥有充分可靠的领域知识。