半监督学习综述
引言
传统的机器学习技术一般都是只利用有标签样本集或者只利用无标签样本集合,只利用有标签样本的算法我们称为“有监督学习”,比如逻辑回归、朴素贝叶斯、支持向量机、随机森林、梯度提升树以及梯度提升树的增强版本Xgboost等;只利用无标签样本的算法我们称为“无监督学习”,比如聚类就是一种典型的无监督学习。而在实际问题中一般是有标签和无标签数据共存,但是标签数据集过少,无标签数据集大量存在,为了更好的利用无标签数据集以提升模型性能,从而带来了另外一种著名的学习:半监督学习。
半监督学习分类
无图无真相,先爆图,下面这张图能够很清晰的说明学习半监督的意义何在。
Paste_Image.png在不考虑无标签数据时,只有1和2两个有标签数据,此时的决策边界是图中的虚线,当我们将无标签数据考虑以后,两类样本所服从的分布发生改变,从而导致决策边界向右偏移,变成黑色实线。上述过程的直观理解就是随着我们能够拿到的样本集的增多,我们对于正负两类样本的信息掌握更加充分,从而使我们做出更好的决策。
传统意义上的半监督学习一般可以分为以下四类(想看详细材料的小伙伴请戳这里半监督学习综述):
semi_supervised_learning.png其中,生成式模型主要是将生成式模型如GMM和HMM等引入到半监督学习中;低密度划分算法就是要尽量让分类边界通过密度较低区域,是在传统支持向量机基础上了很多改进以更好利用无标签来提升模型性能,比如常见的半监督支持向量机S3VM、S4VM等等;不一致性算法是指在整个训练过程中建立两个或两个以上的分类器并让他们协同工作的范式;图正则化这类算法基于流型假设,假设所有的样本点(包括已标记与未标记)以及之间的关系可以表示为一个无向图的形式 g =<V,E >,其中图的结点为数据样本点,而边则体现了两个样本点之间的相似度关系,基于图的半监督算法的优化目标就是要保证在已标记点上的结果尽量符合而且要满足流型假设。
本文主要跟大家分享交流的是生成式模型中GMM和EM算法在半监督学习中的应用,其余模块后续和大家交流分享。主要从期望最大化算法、混合高斯模型以及混合高斯模型在半监督学习中的应用三个部分进行展开。
期望最大化EM算法
EM算法
EM算法本质是一种迭代算法,用于求解含有隐变量的概率模型参数的极大似然估计,概率模型有时既含有观测变量,同时含有隐含变量或者潜在变量,如果概率模型的变量都是观测变量,那么对于给定的数据,直接使用极大似然估计就可以求解得到对应的参数(可以在本文的混合高斯模型在有监督二分类学习中的应用 章节看到),但是当概率模型含有隐变量时,就没有办法直接使用极大似然估计方法,从而提出能够求解隐变量的EM算法(可以在本文的混合高斯模型在半监督二分类学习中的应用 章节看到)。
该部分参考资料主要来源于七月在线的机器学习班课程,详情请戳这里七月在线
具体来说,EM算法包含E步和M步,E步首先在随机给出参数θ的前提下,求得关于隐变量的后验概率;M步是在已知后验概率的前提下,通过已知观测样本的参与求得使得期望最大化时的参数,从而使得参数得以更新,然后重复E步和M步直至算法收敛。
em.png里面涉及到的两步:
- E步中为什么是关于隐变量的后验概率?
- M步中所谓期望最大化由何处来?
为了说明上述两个问题,我们首先引入目标函数(对数似然函数),并且为了方便求解隐含变量z,让其在目标函数中显性的表示出来:
Paste_Image.pngz是隐随机变量,不方便直接找到参数估计,所以我们的策略是利用Jensen不等式计算l(θ)下界,然后求该下界的最大值;重复该过程,直到收敛到局部最大值。具体地,令Qi是隐含变量z的某一个分布,Qi≥0,有
Paste_Image.png为了使Jensen不等式对于任何样本点而言都能取得等号,必须有
Paste_Image.png从而有下式存在,也证明了刚才提到的两个问题。
Paste_Image.pngEM算法与熟悉的K-means是什么关系
两者都可以看做迭代算法,对于K-means来说就是我们一开始不知道每个样例对应的隐含变量也就是最佳类别c(i),最开始可以随便指定一个类别c(i)给样例,然后为了让目标函数J最小化,我们求出在给定c(i)情况下,J最小时的质心参数u(j)(EM算法中第一步时需要初始化的未知参数),得到新质心参数u(j)以后发现可以有更好的类别c(i)指定给样例使得目标函数J 更小,那么c(i)得到重新调整,上述过程就开始重复了,直到没有更好的c(i)指定。这样从K-means里我们可以看出它其实就是EM的体现,E步是确定隐含类别变量,M步更新其他参数来使J最小化。这里的隐含类别变量指定方法比较特殊,属于硬指定,从k个类别中硬选出一个给样例,而不是对每个类别赋予不同的概率。总体思想还是一个迭代优化过程,有目标函数,也有参数变量,只是多了个隐含变量,确定其他参数估计隐含变量,再确定隐含变量估计其他参数,直至目标函数最优。
该部分的参考资料来源于JerryLead同学的博客,在此表示感谢!
注:K-means中的目标函数称为畸变函数(distortion function)(如下式所示),J目标函数表示每个样本点到其质心的距离平方和,所以K-means的目标是要将J函数调整到最小。
目标函数J.png混合高斯模型
问题背景
首先来个简单小栗子让大家找点感觉,比如说:
我们对1000名学生进行身高数据测量(PS:如老师所说,反正像我肯定是不会让你测试的,O(∩_∩)O哈哈~),假设样本中存在男性和女性(第三种性别不考虑在内),身高数据分别服从正态分布N(μ1,σ1)和和N(μ2,σ2),如何利用已观测到的身高数据估计对应参数μ1,σ1,μ2,σ2。
将上述例子抽象为数学表示:
观测到得随机变量X(对应于例子中的身高)是有K(对应于例子中的男性和女性,值为2)个高斯分布混合而成,取各个高斯分布的概率为φ1φ2... φK,第i个高斯分布的均值为μi,方差为Σi。若观测到随机变量X的一系列样本x1,x2,...,xn(对应于例子中已观测到的身高数据),试估计参数π,μ,Σ。
EM求解过程
对于所有的数据点,可以看作组份k生成了这些点。组份k是一个标准的高斯分布,具体的算法步骤会在本文最后讲解混合高斯模型在半监督分类中的应用 时给出,本质还是严格遵守了EM算法的两步来进行。
混合高斯模型在半监督中的应用
该部分的参考资料来源于Xiaojin Zhu and Andrew B. Goldberg的书籍:Introduction to Semi-Supervised Learning
一般的,对于二分类问题而言,混合高斯模型中高斯模型的个数此时就是确定的2,即正样本和负样本两类样本各自所服从的密度函数;对于一个示例(instance),我们想知道它可能的预测标签y是什么,我们通常会使用如下概率公式来计算哪一类对应的概率最大。
Paste_Image.png上述式子中,分母相当于归一化因子,重点在于如何求解分子的乘积项,其中,p(x|y)称为类的条件概率,其实就是正类和负类样本各自所服从的概率密度函数;p(y)是每一类的先验概率,如果全部是有标签的时候,p(y)直接通过计数求频率即可得到。
混合高斯模型在有监督二分类学习中的应用
有监督学习中,所有数据都是已知标签的,此时可以直接使用最大似然估计求解三组参数
Paste_Image.png然后对上式引入拉格朗日乘子beta,转化为如下式子:
拉格朗日函数.png直接对上式分别求偏导,就能得到每一类的先验概率、高斯分布的均值以及高斯分布的方差。
混合高斯模型在半监督分类中的应用
在半监督学习中,数据包含有标签和无标签数据两部分 ,对数似然函数变为
半监督中的似然函数.png该似然函数和前面有监督学习中似然函数相比,最大的不同点就在于针对无标签数据多出的第二项式子,我们通常称p(x|θ)为边缘概率,
Paste_Image.png边缘概率表示对于无标签数据我们已知其样本和特征信息,但是不知道每个样本归属的类别y是什么,无标签样本所对应的类别此时相当于隐含变量,该隐变量的存在会使得上述似然函数非凸和难求解,为此我们将刚才提到的期望最大化算法EM引入进来,来求解θ的局部最优值。
Paste_Image.png上面的算法步骤里面,首先初始化参数θ(0),θ(0)就是利用MLE在有标签数据上所求得值(注:在半监督算法里面,很多地方都会出现类似的身影,就是参数的初值都是现在有标签数据上求得,然后逐步将无标签数据引入进来,之后跟大家分享一篇利用牛顿法求解S3VM的算法,初值选取的手法类似),第E步就是得到关于隐变量(无标签数据对应的标签)的后验概率(所以γij取值为0和1,当第i个样本属于第j类时,γij=1,否则为0,这儿稍微和前面提到的混合高斯模型有所区别,前面提到的混合高斯模型中,γij可以理解为第j个成分对于观测到的第i个样本的贡献程度,是一个真正意义上的0-1之间的概率值,而此时的γij取值只能是0和1),得到隐变量的后验概率以后,求得期望最大化时对应的参数θ,然后将新的θ会带到E步中,求得新的γij,不断重复直至收敛。
好啦~上述就是今天要跟大家分享的所有内容,第一次以博客的形式跟大家交流,难免会有疏漏,有任何建议和意见随时都欢迎大家给我留言(本人QQ:1104409598)!
网友评论