900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 混合高斯模型Gaussian Mixture Model(GMM)的EM(Expectation Maxium)求解代码

混合高斯模型Gaussian Mixture Model(GMM)的EM(Expectation Maxium)求解代码

时间:2022-01-19 08:34:53

相关推荐

混合高斯模型Gaussian Mixture Model(GMM)的EM(Expectation Maxium)求解代码

原帖请见://09/10218.html

与GMM有关的matlab和c代码可以参见:

(matlab+c)https://engineering.purdue.edu/~bouman/software/cluster/

(matlab toolbox)/gmmgui.html

(matlab)/?p=39

(matlab)/cfantaisie/archive//08/20/2147075.html

高斯分布有很多重要的性质,但是用它来描述现实中的数据的话,它还是有很多局限的。如果将这些简单的分布线性组合,就可以更好的描述实际数据的性质了,这样的模型便被称为混合模型。最常用和最流行的混合模型就是高斯混合模型GMM(Gaussian Mixture Model )。如果用足够多的高斯分布,调整其期望和协方差矩阵,以及线性组合的系数,就可以精确的表述任何连续分布。

1). 有K个高斯分布的高斯混合模型,可以表示为:

(1)

其中每个高斯分布被称为一个component,参数被称为混合系数,为了计算和分析的方便通常被正则化为:

(2)

如果把看做是能取到第k个component的先验概率,看做是第k个component中发生x的条件概率,那么根据贝叶斯定理,发生x之后,推断其属于第k个component的后验概率为:

(3)

2) 高斯混合模型的最大似然

想要确定中的参数,很容易想到用最大似然法。

(4)

但是这个log likelihood方程并不是很好解,因为需要在对数里面求和。于是一个优雅而强大的解决此问题的方法诞生了:期望最大化法EM(Expectation-Maximization)

3) 用EM法求高斯混合模型的参数

3.1)首先求解。把看做是的方程,令式(4)的导数等于0,可得:

(5)

两边同乘以,可得:

(6)

其中

3.2) 同理将看做是的方程,令式(4)的导数等于0

(7)

3.3) 求. 将看做是的方程,由于,在这里引入拉格朗日乘子,令

的导数等于0,可得

(8)

两边同乘以,且令,可得

(9)

然后有了式(6)(7)(9),并不能直接求出这些参数,因为中同时包含这些未知量,这就引导我们通过一种迭代的方式来求解,这就是期望最大法。首先设定一些的初始值,然后通过迭代不断的更新这些值,直到收敛。

高斯混合模型的的最大期望法

1. 选择期望,协方差矩阵,混合系数的初始值,可以任意,但是通常可以先经过k-means得到一个较为理想的初始值,可以有效的减少迭代次数。

2. E step。计算每个变量属于哪个component的后验概率。

(10)

3. M step。根据计算的后验概率,计算每个component的参数:

(11)

(12)

(13)

4. 检查似然函数

(14)

是否收敛,如果不是重复第二步。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。