码迷,mamicode.com
首页 > 其他好文 > 详细

半监督学习(三)——混合模型

时间:2019-10-27 10:20:17      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:clu   重写   最大限度   展示   sed   str   文章   执行   lin   

Semi-Supervised Learning

半监督学习(三)

            方法介绍               

Mixture Models & EM

    无标签数据告诉我们所有类的实例混和在一起是如何分布的,如果我们知道每个类中的样本是如何分布的,我们就能把混合模型分解成独立的类,这就是mixture models背后的机制。今天,小编就带你学习半监督学习的混合模型方法。

 

混合模型 监督学习   

  首先,我们来学习概率模型的概念,先来看一个例子:

  • Example 1. Gaussian Mixture Model with Two Components

        训练数据来自两个一维的高斯分布,如下图展示了真实的分布以及一些训练样本,其中只有两个有标签数据,分别标记为正负。

    技术图片

         假如我们知道数据来自两个高斯分布,但是不知道参数(均值,方差,先验概率等),我们可以利用数据(有标签和无标签)对两个分布的参数进行估计。注意这个例子中,带标签的两个样本实际上带有误导性,因为它们都位于真实分布均值的右侧,而无标签数据可以帮助我们定义两个高斯分布的均值。参数估计就是选择能 最大限度提高模型生成此类训练数据概率 的参数。

        更规范化地解释:要预测样本x的标签y,我们希望预测值能最大化条件概率p(y|x),由条件概率的定义,可知对于所有可能的标签y,技术图片,且技术图片,如果我们想要最小化分类错误率,那么我们的目标函数就是技术图片,当然了,如果不同类型的误分类导致的损失不同(如,将良性肿瘤错误分类为恶性),那么上述的最小化期望误差可能不是最佳策略,我们将在下文中讨论最小化损失函数的内容。那么如何计算p(y|x)呢?一种方法就是使用生成模型(采用Bayes规则):技术图片其中,P(x|y):类条件概率;p(y):先验概率;P(x,y) = p(y)p(x|y) :联合分布。多元高斯分布常作为连续型随机变量的生成模型,它的类条件概率的形式如下:技术图片技术图片技术图片分别表示均值向量和协方差矩阵。以一个图像分类任务为例,x是一张图片的像素向量,每一种类别的图像都用高斯分布建模,那么整体的生成模型就叫做高斯混合模型(GMM)。

  • 多项式分布也常作为生成模型,他的形式如下:

    技术图片

    技术图片是一个概率向量。以一个文本分类的任务为例,x是一个文档的词向量,每一种类型的文档都用多项式分布来建模,那么整体的生成模型就叫做多项式混合模型。

    作为另一种生成模型的例子,隐马尔可夫模型(HMM)通常用来建模序列,序列中的每个实例都是从隐藏状态生成的,隐藏状态可以是高斯分布,也可以是多项式分布,而且HMMs 指定状态之间的转移概率来生成序列,学习HMMs模型包括估计条件概率分布的参数和转移概率。

        现在,我们知道如何根据p(x|y)和p(y)来做分类,问题仍然是如何从训练集中学习到这些分布。类条件概率p(x|y)由模型参数决定,比如高斯分布的均值和协方差矩阵,对于p(y),如果由C个类,那么需要估计C-1个参数:p(y=1),...,p(y=C-1),因为p(y=C)=1- (p(y=1)+...+p(y=C-1))。用θ表示我们要估计的参数集合,一个最常用的准则是最大似然估计

    (MLE),给定训练集D,技术图片

    (我们常常使用对数似然,因为log函数是单调的,它与使用原函数有相同的最优解,但是更容易处理)。

      在监督学习中,训练集为技术图片

    ,我们重写一些对数似然函数技术图片

    现在我们来定义在监督学习中如何使用MLE(参数估计)建模高斯混合模型(以2分类高斯混合模型为例):

    首先定义我们的约束优化问题:技术图片

    接着我们引入拉格朗日乘子:技术图片

    其中,技术图片分别是类先验,高斯分布的均值和协方差矩阵。我们计算所有参数的偏导,然后设每个偏导函数为0,得到MLE的闭式解:技术图片

    (显然,β拉格朗日乘数的作用是对类先验概率执行规范化约束) 以及技术图片

    从上面的式子中可以发现β=l,最后我们发现,类先验概率就是每个类样本占总样本的比例。我们接下来解决类均值的问题,我们仍对均值向量求偏导,通常让v代表一个向量,A是一个合适大小的方阵,有技术图片所以我们可以得到技术图片  我们发现每个类的均值就是类中样本的均值。最后,用MLE求协方差矩阵技术图片,也是一个类中样本的协方差。

 

  Mixture models for semi-supervised classification

      阅读完第一节,相信你们已经对混合模型及其参数估计有了理解,现在我们进入正题,如何将混合模型运用到半监督学习上去。

      因为训练集中包含有标签和无标签数据技术图片

    那么可以将似然函数定义为如下形式:

技术图片

  P(x|θ)叫做边缘概率,

技术图片

  它代表的是我们知道这些未标记样本的存在,但是不知道它们属于哪个类。半监督的技术图片需要同时适用标签数据和无标签数据。我们把未观察到的标签叫做隐变量,不  幸的是,这些隐变量会导致log似然函数非凸而难以优化。但是,很多优化方法可以找到局部最优的θ,最有名的就是EM(expectation maximization)算法。

 

  OPTIMIZATION WITH THE EM ALGORITHM

 

技术图片

    技术图片是隐藏标签的分布,可以认为是根据当前的模型参数为无标签数据预测的“软标签”。可以证明的是,EM每一轮迭代提高了log似然函数,但是EM只能求局部最优解(θ可能不是全局最优)。EM收敛的局部最优解依赖于θ的初始值,常用的初始值是有标签样本的MLE。注意,EM算法需要针对特定的生成模型,以GMM为例。

 

  • EM for GMM

    技术图片

    其中,E-step相当于给每个样例计算一个标签概率向量,M-step更新模型参数,算法会在log似然函数收敛的时候停止,混合高斯模型的log似然函数是:

    技术图片

    有的同学会发现,EM算法和我们之前提到过的self-training相似,EM算法可以看作self-training的特殊形式,其中当前的分类器θ将利用所有有标签数据给无标签数据打上标签,但是每个分类器的权重是技术图片,然后这些增强的无标签数据被用来更新分类器。

 

  • The Assumptions of Mixture Models

    混合模型提供了半监督学习的框架,事实上,如果使用正确的生成模型,这种框架的效果是很好的,所以我们有必要在这里提以下模型假设:

    Mixture Model Assumption:数据来自混合模型且模型个数,先验概率p(y)和条件概率p(x|y)是正确的。

    然而,这一假设很难成立,因为有标签数据很少,很多时候我们都是根据领域知识去选择生成模型,但是模型一旦选错了,半监督学习会使模型表现变差,在这种场景下,最好只使用在有标签数据上进行监督学习。

 

  • Cluster-than-Label Method

    我们已经用EM算法来给无标签数据打标签,其实无监督聚类算法同样可以从无标签数据中定义出类:

    技术图片

    第一步,聚类算法A是无监督的,第二步,我们利用每个聚类中的有标签数据学习一个分类器,然后使用这个预测器对这个聚类中的无标签数据进行预测。

    举一个使用层次聚类的Cluster-than-Label实例:

    我们首先用层次聚类(距离方程用欧式距离,聚类之间的距离用single linkage决定)

    下图展示了数据的原始分布(两个类),以及最终的标签预测结果,在这个例子中,由于两个有标签实例恰好是正确的,我们正确分类了所有的数据。

    技术图片

    其实使用single linkage方法在这里非常重要(真实的聚类又细又长),如果使用complete linkage 聚类,聚类结果会偏向球形,结果会像这样:

技术图片

 

 

    上面的实验并不是想说明complete linkage 不如 single linkage,而是为了强调假设对半监督学习的重要性。

 

总结:

    这篇文章混合模型和EM算法在半监督学习上的应用,随后也介绍了一种非概率的,先聚类后标记的方法,它们背后都隐含这相同的思想:无标签数据可以帮助定义输入空间的聚类,下一篇文章中,我们会介绍另一种半监督学习方法 co-training,敬请期待~

 

    希望大家多多支持我的公众号,扫码关注,我们一起学习,一起进步~

 

技术图片

 

半监督学习(三)——混合模型

标签:clu   重写   最大限度   展示   sed   str   文章   执行   lin   

原文地址:https://www.cnblogs.com/PJQOOO/p/11743409.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!