一、隐含变量
高斯混合分布可以看做多个高斯分布的线性叠加,其形式如下:
在此我们要引入一个采用1-of-K表示法的K维二项随机变量Z,其特定的的k个元素为1,其他元素都为0。
比如z是5维的,其所有可能的取值为:
我们定义x,z的联合分布为,其可由z的边缘分布p(z)以及另一个条件分布得到。
另外,我们定义z的边缘分布为,即:
因为z使用的是1-of-K表示法,因此z的边缘分布可以写成
另外我们定义x关于z的条件分布为:
由于z采用了1-of-K表示法,上式也可以改写成:
x和z的联合分布,因此x的边缘分布可以由将所有可能z值的联合分布相加得到:
-
在这里,我们将z成为隐含变量,我们为高斯混合找到了一种等价的含有显式的隐含变量表示法。这种表示方法在后面会显示出极大的便捷性,我们将在EM算法中详细说明。
-
对于每一个观察值都有一个z与之对应
二、responsibility——每一个高斯分量对于观察值的贡献
另一个重要的量化标准是给定x时z的条件概率,我们用表示,根据贝叶斯理论:
表示了对于观察值x,K个分量中第k个分量分别对其的贡献。
1.responsibility含义的图形化说明:
为了说明responsibility的含义,即K个分量重第k个分量对观察值的后验概率的贡献,我们可以使用模拟数据来说明:
首先根据z的概率分布p(z)生成z的一个值,记作,然后根据条件概率分布生成x的一个值。
那么根据上述这种生成数据的方式,我们可以用图形化来表示联合分布以及边缘分布。
1. x和z的联合分布
对于x和z的联合分布,我们首先在图中画出x(用一个点表示),然后根据该x是由哪一个值所生成,将该点标记为相应的颜色。如图9-5(a)所示。
- 为了方便说明,可以假设z是一个3维的二项随机变量,那么z有三种不同的取值,根据z值的不同,x被标记为红、绿或者蓝色之一。(因为红绿蓝是三原色,根据不同的比例混合可以产生其他的颜色)。
2.x的边缘分布
对于x的边缘分布,直接在图中绘出x所表示的点,忽略z的影响即可,因此图中的点只有一种颜色。如图9-5(b)所示。
3.——responsibility
每一个生成的数据点x由我们根据不同的z值模拟
得到的,但是我们可以假设我们事先并不知道每一个数据点x是由哪一个z值生成的,我们来计算当观察到数据点x时它由各个z值所生成的概率,即z的后验概率,也就是。
同样地,我们在图中画出每一个数据点x,对于每一个点的颜色,要根据各个z值得后验概率综合得到。
即对于k=1,2,3,表示红绿蓝三种颜色的比例(某种颜色的三原色比例)。比如对于数据点,,那么这个点的颜色为红色。如果数据点,的数据点颜色为青色。
如图9-5(c)所示。
将9-5(c)与9-5(a)进行对比,可以看出哪些数据点由其被生成的真实分量进行标记。
就该图而论,每个数据点的颜色中的红蓝绿三个颜色分量表示了各个分量的responsibility。
三、最大似然
假设我们有一个观测的数据集(为D维向量),我们希望使用混合高斯模型来对数据进行建模。我们可以将这个数据集表示为一个N × D的矩阵,其中第n行为 。类似地,对应的隐含变量会被表示为一个N × K的矩阵,它的行为。
如果我们假定数据点独立地从概率分布中抽取,那么
在我们讨论如何最大化这个函数之前,有必要强调一下由于奇异性的存在,造成的应用于高斯混合模型的最大似然框架中的一个大问题。为了简化起见,我们考虑一个高斯混合模型,它的分量的协方差矩阵为,虽然其中I是一个单位矩阵,但是结论对于一般的协方差矩阵仍然成立。
假设混合模型的第j个分量的均值μj与某个数据点完全相同,即对于某 个n值,。这样,这个数据点会为似然函数贡献一项,形式为
1.最大似然的困难点
如果我们考虑极限 ,那么我们看到这一项趋于无穷大,因此对数似然函数也会趋于无穷 大。因此,对数似然函数的最大化不是一个具有良好定义的问题,因为这种奇异性总会出现, 会发生在任何一个“退化”到一个具体的数据点上的高斯分量上。
由于奇异点的存在导致的诸多问题请参考PRML9.2.1
四、高斯混合的参数求值
一种优雅的并且强大的寻找带有隐含变量
的模型的最大似然解的方法被称为期望最大化算法(expectation-maximization algorithm),或者EM算法。
我们要强调的时,EM算法具有广泛的适用性,实际上在本书中讨论的许多不 同模型中都会遇到它。
1.引申——有关高斯混合的各种偏导的计算
高斯混合的表达式,注意此处的符号记法与上述略有不同,主要是混合系数用而非
高斯混合由三个参数决定,即。其对于这三个参数的偏导如下:
首先,让我们写下似然函数的最大值必须满足的条件。
2.高斯分量的均值
令公式(9.14)中关于高斯分量的均值μk 的导数等于零,我们有
将上式左右乘以(假设矩阵是非奇异的),整理可得:
其中我们定义:
我们可以将第k个高斯分量的均值视为数据集中所有数据点的加权平均,每个数据点的权重由其后验概率(responsibility)——表示,而则可以视为这些权重之和。
进一步地:
我们可以将视为被分配到簇k的数据点的有效数量。
3.高斯分量的协方差
我们将关于求偏导并令其等于0:
这与一元高斯分布的对应的结果具有相同的函数形式(见2.3.4),但是与之前一样,每个数据点都有一个权值,权值等于对应的后验概率(responsibility)——
4.高斯分量的混合系数
最后,我们将关于混合系数求偏导并令其等于0。
这里我们必须考虑限制条件(9.9), 它要求混合系数的加和等于1,即。使用拉格朗日乘数法,最大化下面的量:
将上式左右两边乘以,凑出:
将进行回代,
因为
所以第k个分量的混合系数可以认为是该分量对所有数据点的responsibility的平均值。
5.高斯混合与responsibility的关系
从上面的推导可以看出,高斯混合与单个高斯分布的参数形式(均值与协方差)极其相似,只是高斯混合的参数是以为权重的加权。
值得强调的是,高斯混合的混合系数、均值,协方差矩阵等虽然可以由上述公式所述那样由得到,但并不能为这些参数得到一个解析解。因为本身也以一种复杂的方式依赖于这些参数:
五.EM算法
从上述与混合系数、均值、协方差矩阵的相互关系,我们可以用一种两步迭代方法来找到最大似然解。这里我们要用EM算法。
EM算法分为E步骤和M步骤:
-
在E步骤(expectation step,期望步骤)中,根据均值、协方差、混合系数来计算后验概率(responsibility——)
-
在M步骤(maximization step,最大化步骤)中,根据responsibility来计算均值、协方差、混合系数。注意在这一步中,我们先计算出均值,然后根据均值来计算协方差。
我们稍后会证明,每次通过E步 骤和接下来的M步骤对参数的更新确保了对数似然函数的增大。在实际应用中,当对数似然函 数的变化量或者参数的变化量低于某个阈值时,我们就认为算法收敛。
1.根据K-Means算法来为EM算法初始化
在运行EM算法之前,首先要为均值、协方差、混合系数设置一个初始值。
注意,与K均值算法相比,EM算法在达到(近似)收敛之前,经历了更多次的迭代,每次 迭代需要更多的计算量。因此,通常运行K均值算法找到高斯混合模型的一个合适的初始化 值,接下来使用EM算法进行调节。
1.协方差矩阵可以很方便地初始化为通过K 均值算法找到的聚 类的样本协方差
2.混合系数可以被设置为分配到对应类别中的数据点所占的比例。
2.EM算法的收敛性
该强调的是,通常对数似然函数会有多个局部极大值,EM不保证找到这些极大值中最大的一个
EM算法只能找到局部最优解,而不能找到全局最优解
3.EM算法的总结
1.初始化均值、协方差和混合系数,计算对数似然函数的初始值。
2.E步骤。使用当前参数值计算“responsibility”:
3.M步骤。使用当前的“responsibility”重新估计参数。
其中:
4.计算对数似然函数:
检查参数或者对数似然函数的收敛性。如果没有满足收敛的准则,则返回第2步。