MLAPP————第十一章 混合模型和EM算法

第十一章 混合模型和EM算法

11.1 隐变量模型

在第十章中,我们展示了如何用一个概率图模型去表示一个高维的联合概率分布。基本思想是通过在图中添加两个变量之间的边来建立两个变量之间的依赖关系。

另一种方法假设我们的观察到的变量是相关的,就是假设它们都受到某个隐藏的变量影响。这样的模型我们就叫做潜在变量模型(latent variable models, LVMs),我觉得在这里要说明一下,之前因为也讲到隐变量,隐变量就是我们观测不到的变量,所以我觉得这里用latent这个词非常好,因为这里不仅仅是隐藏的变量,更是我们都不知道存不存在或者我们假想的潜在的变量。正如我们将在本章中看到的,这种模型比没有潜在变量的模型更难拟合。然而,它们可以有显著的优势,主要有两个原因。首先,LVMs的参数通常比直接表示可见空间中的相关性的模型少。如下图所示。如果所有节点(包括H)都是二进制的,所有CPD都是表格的,那么左边的模型有17个自由参数,而右边的模型有59个自由参数。在图中叶子代表了医学症状。根系代表主要原因,如吸烟、饮食和锻炼。隐藏的变量可以表示中介因素,例如心脏病,这些因素可能不是直接可见的。

其次,LVM中的隐藏变量可以作为瓶颈,计算数据的压缩表示。这就形成了无监督学习的基础。就类似于上面这张图,不通过隐变量得不到后面的推理结果。这其实就是形成非监督学习的基础,我们后面将看到。下图说明了一些可用于此目的的通用LVM结构。

(a)是many-to-many (b)是one-to-many (c)是many-to-one (d)是one-to-one

一般来说,会有L个隐变量:,D个可见变量,一般来说。如果我们有,每个观察都有许多潜在的因素,所以我们有many-to-many映射。如果,我们只有一个潜在变量,在这种情况下,z_i通常是离散的,我们有one-to-many映射。我们也可以有many-to-one的映射,为每个观察到的变量表示不同的竞争因素或原因。最后,我们可以得到一个one-to-one的映射,它可以表示为。根据似然和先验的形式,我们可以生成各种不同的模型,如下表所示:

11.2 混合模型

LVM最简单的形式就是,也就是是有K个状态的离散的隐变量。所以我们假设先验就是。对于似然函数来说,我们使用,其中就是对于观测的第k个基分布(base distribution),这个可以是任何形式的。但是整个模型就是我们所谓的混合模型,因为我们把K个基本分布混合在一起:

其实上面每个分布的是不太一样的,这是关于所有的的一个线性组合,也可以叫做凸组合,其中我们有以及。下面我们举一些具体的例子:

11.2.1 混合高斯模型

使用最广泛的混合模型就是混合高斯模型(mixture of Gaussian MOG),也叫做高斯混合模型(Gaussian mixture model GMM)。在这个模型中,混合分布中的每个基分布都是多元高斯分布,其中均值为,协方差矩阵为。因此模型具有如下的形式:

下图显示了二维中3个高斯函数的混合。每一种混合的分量都由一组不同的等高线表示。GMM可以用来近似上定义的任何密度,只要这个数目够多。

11.2.2 multinoullis 的混合

我们可以使用混合模型来定义各种数据的密度模型。例如,假设我们的数据是D维的0-1的向量。在这样的情况下,近似的条件分布就是若干个伯努利分布乘起来:

潜变量(latent variables)没有任何意义,我们可以简单地引入潜变量,以使模型更强大。例如,可以证明混合分布的均值和协方差为:

其中,所以虽然分量分布是可以因式分解的,但联合分布并不是这样。因此,混合分布可以捕获变量之间的相关性,并不是伯努利分布的这样一个简单的乘积。上面的具体证明过程如下:

11.2.3 对于聚类使用混合模型

对于混合模型来说,有两个主要的应用。第一个就是把他们当成是黑盒的密度模型。这对于各种任务都很有用,例如数据压缩、离群值检测和生成分类器的创建,在这些任务中,我们通过混合分布对每个类条件密度p(x|y = c)建模。第二,也是更常见的,混合模型的应用是将它们用于聚类。我们将在第25章详细讨论这个主题,但基本思想很简单。我们先去拟合这个混合模型,然后去计算,这个后验概率分布表明了这个数据点属于k这个类别的概率。可以按照如下的贝叶斯规则计算:

这个过程称为软聚类,与使用生成分类器时执行的计算相同。两种模型的区别只出现在训练时:在混合的情况下,我们从不观察zi,而在生成分类器中,我们观察yi(扮演zi的角色)。

我们可以使用表示聚类的这样一个不确定性。假设如果这个不确定性是很小的话,那么我们就可以采用硬判决,叫hard clustering,使用MAP估计,即:

使用GMM进行硬聚类如下图所示,其中我们对一些表示人的身高和体重的数据进行聚类。颜色代表了硬性的分类。请注意,所使用的标签(颜色)的标识是不重要的;我们可以自由地重命名所有集群,而不会影响数据的分区;这叫做标签交换。

作为聚类二进制数据的一个例子,考虑一个MNIST手写数字数据集的二值化版本(只有0-1)如下图,其中我们忽略了类标签(我们最终只是把数据分为10类,并不标注哪一个是9或者0等)。我们可以使用混合的multinoullis模型来拟合它。其中我们的K=10,我们的数据是256的0-1向量,参数也是256的向量。

这里从之前聚类的问题看出,我们首先是给出了若干幅手写数字图片,希望系统最终能够使得0-9分为十类,但是从上图我们看出有很多误分类的情况,比如有有两个9被分到了不同的类别中,以及1和0也是一样的情况,所以这个聚类的效果并不是很好。产生这样的误分类的主要原因有如下几种:

该模型非常简单,没有捕捉到数字的相关视觉特征。例如,每个像素都是独立处理的,没有形状或笔触的概念。

因为手写字体有很多的书写习惯,所以可能我们需要更多的类别,K可能要很大,但是很大的K又不能将这些看上去有些区别但是实际是一个数字的字体分到一起,这样就达不到我们的目的,所以其实很难做。(这么看,这个方法做手写识别还是太不靠谱了)

似然函数是非凸的,可能收敛不到全局最优解。

11.2.4 专家的混合(Mixtures of experts)

在后面14.7.3我们将会讲到如何在生成分类器的背景下使用混合模型。但是在这里我们要讲的就是混合模型也可以很好应用到关于分类和回归的判别模型中。例如,我们看下图:

图(a)中,我们可以看到这个数据用三个线性回归函数来拟合更好,而且每一个线性回归函数对应一个输入空间,我们可以假设模型是这样的:

具体的图模型如下:

这个模型就称之为Mixtures of experts(MoE)。其思想是每个子模型都被认为是输入空间某一区域的专家。被称之为门函数(gating function),决定了我们要去用哪一个领域的专家。在上图的(b)中,我们可以看到门函数的具体的样子,输入小于-0.5就是红色的虚线,大于0.5就是蓝色点虚线,中间则是黑线。(c)则是展示了模型最终的估计,即:

我们刚刚讲的例子是比较简单的,其实我们的专家可以更加的复杂,我们的门函数也可以改成神经网络中的gate function。甚至我们还可以用多层的混合专家模型,这在后面都会提到。

11.2.4.1 逆问题的应用

关于逆问题,首先我们先举个例子,比如机器手,末端执行器(手)的位置是唯一由电机的关节角决定的,但是如果我们已知末端执行手的位置,其实电机的关节角可以有多种选择。这就是所谓的many-to-one的逆问题,因为你是许多个情况对应一个情况,所以很多时候用mixtures of experts来解决问题。

举一个简单的例子具体如下图:

关于图(a)的逆问题就是图(b),我们可以看到的是,对于一个固定的y可能会有两个x与其对应,所以此时我们就用三条线来拟合,最后估计的结果就是图(c),利用的是书上的11.10公式。但是我觉得这样的估计其实是一个折中的结果,得到的解其实并不是很好的,只是比较折中,不会很差。

11.3 混合模型的参数估计

前面我们可以看到,利用贝叶斯的生成公式,如果我们的参数都已知的话,可以得到隐变量的生成公式:

这个公式我们上面已经提到过,这里在重现一下。在这一小结中,我们将讨论怎么去估计参数。

10.4.2说明了,如果我们有完整的数据(没有丢失的数据以及没有隐变量)以及factored先验,那么关于参数的后验也是factored,所以使得计算会非常简单。很不幸的是,如果我们有隐变量或者有缺失的数据的话,上面的结论就不再正确了。我们先看下图:

被观测到的情况下,那么利用贝叶斯球的规则,我们很容易得到,那么关于参数的后验分布也是factored。但是在LVM中,是隐变量,是没有被观测到的,此时参数就不再关于观测是条件独立的,就不能factored,这就导致计算变得复杂很多。这也使MAP和ML估计的计算变得复杂,下面我们将对此进行讨论。

11.3.1 不可识别(unidentifiability)

在LVM模型下进行参数的估计一个主要的问题就是它是有好几个峰的。那么为什么会这样呢,我们下面考虑GMM模型。如果隐变量都被观测到了,那么我们关于参数的后验就是单峰的:

那么我们很容易利用MAP(或者MLE)得到全局的最优解。

但是现在我们考虑我们的隐变量是没有被观测到的,那么对于每一个可能的隐变量的取值形式,我们就会得到一个峰值,那么这样如果我们对于隐变量进行积分的话,就会得到一个多峰的后验分布(这样的多峰的原因就类似于做聚类问题时这个标签顺序置换了)。进一步说明,我们来看一个例子,我们看下图是一个K=2的例子:

在图(b)中,这是一个似然函数的图,数据的采集是图(a),图(b)中其余的参数我们取得是真实值(,当然这里由于这个值是0.5,所以标签的互换就是一样,即估计结果

  • 8
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值