无标签数据告诉咱们全部类的实例混和在一块儿是如何分布的,若是咱们知道每一个类中的样本是如何分布的,咱们就能把混合模型分解成独立的类,这就是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)。spa
多项式分布也常做为生成模型,他的形式以下:3d
是一个几率向量。以一个文本分类的任务为例,x是一个文档的词向量,每一种类型的文档都用多项式分布来建模,那么总体的生成模型就叫作多项式混合模型。code
做为另外一种生成模型的例子,隐马尔可夫模型(HMM)一般用来建模序列,序列中的每一个实例都是从隐藏状态生成的,隐藏状态能够是高斯分布,也能够是多项式分布,并且HMMs 指定状态之间的转移几率来生成序列,学习HMMs模型包括估计条件几率分布的参数和转移几率。blog
如今,咱们知道如何根据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,敬请期待~
但愿你们多多支持个人公众号,扫码关注,咱们一块儿学习,一块儿进步~