首页 > 代码库 > 又看了一次EM 算法,还有高斯混合模型,最大似然估计

又看了一次EM 算法,还有高斯混合模型,最大似然估计

先列明材料:

高斯混合模型的推导计算(英文版):

http://www.seanborman.com/publications/EM_algorithm.pdf

这位翻译写成中文版:

http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html

高斯混合模型的流程:

http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006924.html

最大似然估计:

http://blog.csdn.net/yanqingan/article/details/6125812

 

   一个高斯混合模型(GMM) 包含多个一维的高斯分布(GM),按例子来说,如果班级上同学的性别是知道的,身高也是知道的,那么对班级同学构建的GMM 可以这样,GM 的个数取2,分别表示男生身高高斯分布和女生的身高高斯分布,首先通过男生女生来划分 单个 GM 的权重,即男生\女生占班的比重,然后 男生的身高数据 计算出高斯分布,女生的也是,这样 就构建好一个GMM 了。

    

    当然上面的例子是理想化的计算,假如对一组样本 n-by-d 进行聚类,n 表示样本数,d 表示样本的维

    对一个GMM 的训练通过EM 和最大似然估计计算,需要确定的是 GMM 中各GM 的权重w,和各GM 里面样本均值 u 和 协方差矩阵 ∑ (d-by-d matrix),即GM 分布的两个参数。同属一个GM 的样本就是同一个类,所以多少类变有多少个GM.

  通过最大似然估计作为GMM 训练的结束判断,最大似然估计根据 X 在GMM 分布中的期望作为判断(这句话不准确,看上面GMM推导).

m-step:

     进入M-step,将Q 看作已知(固定了Q),即固定了样本属于哪个GM,间接获取到了w,然后通过更新 各GM 中的 u、∑。

e-step

  M-step 结束后通过新的u、∑,更新样本的归宿,例如i-th 样本,计算他再属于 各个GM 的概率,取最高值的index,这样更新了类标号,将[]看左常量(固定了部分的参数),则该期望主要影响是Q,那么判断上一步与当前步的loglikelihood 便可以做出结束判断(小于一个阀值  收敛),这就是EM 中的E-step.

 

算法流程:

初始化:

    可以随机初始化样本点的类标号(多少类k值需要指明),也可以指派类标号。

 

Maximization:

    最大化步骤,对于已经有的类标号(初始化得到后者迭代更新得到),构建或更新 k 个GM,对于每个GM 有各自的权重w,样本均值u 协方差矩阵∑。

计算公式:

   权重公式如下,j 表示 j-th 个GM,m 为样本个数,即上面的n,之所以这里出现了φ 与w,是固定一部分更新另一部分的,w 位e-step 的更新值。

 样本平均:

 

协方差:

 

Expectation:

    利用M-step 更新的各GM,计算样本分配到各GM 的概率,即p(x|z),选取最大的作为其分配的结果,然后计算下面的l,作为收敛判断,挑出失败重复M-step

 

公式中的p(x|z):   N(x|pMiu,pSigma) = 1/((2pi)^(D/2))*(1/(abs(sigma))^0.5)*exp(-1/2*(x-pMiu)‘pSigma^(-1)*(x-pMiu))

           p(z):    这个是更新了类标号后个GM 的权重。

 

又看了一次EM 算法,还有高斯混合模型,最大似然估计