EM算法解决GMM问题

来源:互联网 发布:php implode 什么意思 编辑:程序博客网 时间:2024/06/05 23:05

Note:本篇博文1,2部分主要是对书籍Pattern Recognition and Mechine Learning 第九章9.2节的翻译

高斯混合模型

高斯混合模型是几个高斯成分的简单线性叠加,可以提供比单高斯更加丰富的密度模型。
高斯模型的形式:
这里写图片描述
这就表示此模型是由K个高斯分布线性叠加而成。

高斯混合模型公式的推导

引入一个K维的二进制随机变量z,其中只有一个元素zk为1,其他元素都为0。因此zk的值满足zk0,1并且kzk=1。通过哪个元素不为0,可以看出向量z有K种可能的状态。

p(zk=1)=πk

πk必须满足
0πk1
k=1Kπk=1

因为z是1-K维的表示,所以其分布可以写为
p(z)=k=1Kπzkk

同样的,在确定了z后x的条件概率是一个高斯分布
p(x|zk=1)=N(x|uk,k)

也可以写成:
这里写图片描述
由此得
这里写图片描述

后验概率

另外一个具有重要作用的度量是x确定时z的条件概率。我们可以使用 γ(zk) 来表示p(zk=1|x),其值可以用贝叶斯公式求得
这里写图片描述
我们可以把π看作zk=1的先验概率,γ(zk)看作已知x时的后验概率。

最大似然

假定一观测样本集x1,...,xN,我们希望用一个高斯混合模型来描述。我们用一个N*D的矩阵X来表示这个数据集,X的第n行为xTn。同样地,相应的隐含变量可以用N*K的矩阵Z表示,每一行是zTn。假定每个样本点是从概率分布中独立地抽取出来的,那么对数似然函数可以表示为
这里写图片描述

高斯分布的EM算法

更新参数

对上面的对数似然函数关于μk求偏导使之等于0,我们得到这里写图片描述
两侧乘k得到
这里写图片描述
对数似然函数关于k求导可得
这里写图片描述
最后,我们关于混合系数πk来最大化lnp(X|π,μ,)。考虑到约束条件z=1引入一个拉格朗日乘子:
这里写图片描述
πk求导得到
这里写图片描述
最终得到(这里我推导不出来)
这里写图片描述

算法步骤

给一个高斯混合模型,我们的目标是最大化与参数(高斯成分的均值,协方差和混合系数)相关的对数似然函数。

1 Initialization

舒适化均值μk,协方差矩阵k和混合系数πk,并且估计对数似然函数(log likelihood)的初始值。

2 E step

利用当前参数计算
这里写图片描述

3 M step

重新估计参数
这里写图片描述
其中:
这里写图片描述

4 计算log likelihood

这里写图片描述
检查参数或者对数似然函数的收敛性。如果不满足收敛准则,返回第二步。

算法实现

算法应用

1 0
原创粉丝点击