您的位置:首页 > 编程语言 > Go语言

EM算法(expectation-maximization algorithm)

2012-12-28 15:31 295 查看
简介
EM算法的核心思想是:根据已有的数据,借助隐藏变量,通过期望值之间的迭代,估计似然函数。 

混合高斯模型与EM算法
2.1  二分量混合高斯的EM算法

假设有数据Y,现在用两个高斯分布

来对密度建模,参数为

。则Y的密度为:


(1)

参数为:


(2)

       基于N个训练数据的对数似然是:

                                                  

(3)

由于需要求对数似然函数项的和,直接极大化似然函数很难。我们引入取值为0或1的潜变量

,如果

,则

取自模型2,否则取自模型1。则对数似然函数可以写为:


(4)

那么



的极大似然估计将是

的那些数据的样本的均值和方差,



的极大似然估计将是

的那些数据的样本的均值和方差。

             由于诸

的值是实际上是未知的,所以用迭代的方式处理,用下式的期望代替(4)式中的每个

,即:


(5)

(5)式也称为模型2关于观测i的响应度。 

二分量高斯的EM算法

初始化参数

,其中

可以随机选择两个



取样本的方差:

。混合比例

取0.5。

期望步:计算响应度:



表征数据

属于

的概率。

     3.   
极大化步:计算加权均值和方差:
 


和混合概率

,表示数据属于

的概率总和。

  4.   重复步骤2,3直到收敛。

 
2.2  多分量混合高斯的EM算法

多分量高斯的EM算法

初始化参数:均值

,协方差矩阵

和混合比例


期望步:计算响应度:



其中k = 1,2…N.

    3.  
极大化步:计算加权均值和协方差:



其中: 



    4. 
计算log似然:  



检查参数和log似然是否已经收敛,如果没有收敛,重复步骤2.

 
3.通用EM算法
   假设一个完整的样本集D,其中的样本是

,都服从某个特定的分布,假设其中的一部分数据丢失了。完整的数据和丢失的数据分布表示为:



,并且

。定义函数:

                                             


(6)

(6)式的左边是一个关于

的函数,而

假设已经取固定值;右边表示关于丢失的特征求对数似然函数的期望,其中假设

是描述整个分布的参数。则通用EM算法可写为:

期望最大化算法(Expectation-Maximization
algorithm)



       
       "广义期望最大化"(Generalized
Expectation-Maximization ,GEM)算法比EM算法松一些。它只要求在"M步"选取一个有所改善的

,而不要求最优的那一个。所以GEM的收敛速度没有EM算法快。  
4. EM算法总结
(1)EM会收敛到局部极值,但不保证收敛到全局最优

(2)对初值很敏感:通常需要一个好的、快速的初始化过程

         如矩方法得到的结果

         在GMM中,用K-means聚类

(3)适合的情况
         缺失数据不太多时

         数据维数不太高时(数据维数太高的话,E步的计算很费时)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Algorithm EM算法