EM算法[转]

最大期望算法:EM算法。

在统计计算中,最大期望算法(EM)是在概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐藏变量。

最大期望算法经过两个步骤交替进行计算:

第一步是计算期望(E),利用对隐藏变量的现有估计,计算其最大似然估计值;

第二步是最大化(M),最大化在E步上求得的最大似然值来计算参数的值。

M步上找到的参数估计值被用于下一个E步计算中,这个过程不断交替进行。

总体来说,EM算法流程如下:

1、初始化分布参数

2、重复直到收敛:

E步:估未知参数的期望值,给出当前的参数估计。

M步:重新估计参数分布,以使得数据的似然性最大,给出未知变量的期望估计。
EM算法就是这样,假设我们估计知道A和B两个参数,在开始状态下二者都是未知的,并且知道了A的信息就可以得到B的信息,反过来知道了B也就得到了A。可以考虑首先赋予A某种初值,以此得到B的估计值,然后从B的当前值出发,重新估计A的取值,这个过程一直持续到收敛为止。

EM算法是一种求参数极大似然估计的方法,它可以从非完整数据集中对参数进行MLE估计,是一种非常简单实用的学习算法。

假定集合Z=(X,Y)由观测数据X和为观测数据Y组成,X和Z=(X,Y)分别称为不完整数据和完整数据。假定Z的联合概率密度被参数化地定义为P(X,Y|Θ),其中Θ表示要被估计的参数。Θ的最大似然估计是求不完整数据的对数似然函数L(X,Θ)的最大值而得到的:

L(Θ;X)=log p(X|Θ)=∫ log p(X,Y|Θ)dY;

EM算法包括两个步骤:由E步和M步组成,它是通过迭代地最大化完整数据的对数似然函数Lc(X;Θ)的期望来最大化不完整数据的对数似然函数,其中:Lc(X;Θ)=log p(X,Y|Θ)

假设在算法第t次迭代后Θ获得的估计记为Θ(t),则在(t+1)次迭代时,

E步:计算完整数据的对数似然函数的期望,记为Q(Θ|Θ(t))=E{Lc(Θ;Z)|X;Θ(t) };

M步:通过最大化Q(Θ |Θ(t) ) 来获得新的Θ 。

通过交替使用这两个步骤,EM算法逐步改进模型的参数,使参数和训练样本的似然概率逐渐增大,最后终止于一个极大点。直观地理解EM算法,它也可被看作为一个逐次逼近算法:

实现并不知道模型的参数,可以随机的选择一套参数或者事先粗略地给定某个初始参数λ0 ,确定出对应于这组参数的最可能的状态,计算每个训练样本的可能结果的概率,在当前的状态下再由样本对参数修正,重新估计参数λ,并在新的参数下重新确定模型的状态,这样,通过多次的迭代,循环直至某个收敛条件满足为止,就可以使得模型的参数逐渐逼近真实参数。

EM算法的主要目的是提供一个简单的迭代算法计算后验密度函数,它的最大优点是简单和稳定,但容易陷入局部最优

EM算法(expectation-maximization algorithm)

1、简介

EM算法的核心思想是:根据已有的数据,借助隐藏变量,通过期望值之间的迭代,估计似然函数。

2、混合高斯模型与EM算法

2.1、二分量混合高斯的EM算法

假设有数据Y,现在用两个高斯分布来对密度建模,参数为。则Y的密度为:

                 (1)

参数为:                               (2)

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

               (3)

由于需要求对数似然函数项的和,直接极大化似然函数很难。我们引入取值为0或1的潜变量,如果,则取自模型2,否则取自模型1。则对数似然函数可以写为:

(4)

那么的极大似然估计将是的那些数据的样本的均值和方差,的极大似然估计将是的那些数据的样本的均值和方差。

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

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

二分量高斯的EM算法

  1. 初始化参数,其中可以随机选择两个取样本的方差:。混合比例取0.5。
  2. 期望步:计算响应度:

表征数据属于的概率。

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

和混合概率,表示数据属于的概率总和。

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

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


多分量高斯的EM算法

  1. 初始化参数:均值,协方差矩阵和混合比例
  2. 期望步:计算响应度:

其中k = 1,2…N.

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

其中:

4. 计算log似然:

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

3、通用EM算法

假设一个完整的样本集D,其中的样本是,都服从某个特定的分布,假定其中的一部分数据丢失了。完整的数据和丢失的数据分布标书为:,并且。定义函数:   (6)

(6)式的左边是一个关于θ的函数,而θi假设已经取固定值;右边表示关于丢失的特征求对数似然函数的期望,其中假设θi是描述整个分布的参数。则通用EM算法可写为:

4. EM算法总结

(1)EM会收敛到局部极值,但不保证收敛到全局最优

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

如矩方法得到的结果

在GMM中,用K-means聚类

(3)适合的情况

缺失数据不太多时

数据维数不太高时(数据维数太高的话,E步的计算很费时)

时间: 2024-10-12 01:59:45

EM算法[转]的相关文章

EM算法(1):K-means 算法

目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法详解 EM算法(1) : K-means算法 1. 简介 K-means算法是一类无监督的聚类算法,目的是将没有标签的数据分成若干个类,每一个类都是由相似的数据组成.这个类的个数一般是认为给定的. 2. 原理 假设给定一个数据集$\mathbf{X} = \{\mathbf{x}_1, \mathbf{x}_2,...,\mathbf{x}_N \}$, 和类的个数K.我们的每个类都用一个中心点$

EM算法(3):EM算法详解

目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法详解

EM算法 大白话讲解

假设有一堆数据点,它是由两个线性模型产生的.公式如下: 模型参数为a,b,n:a为线性权值或斜率,b为常数偏置量,n为误差或者噪声. 一方面,假如我们被告知这两个模型的参数,则我们可以计算出损失. 对于第i个数据点,第k个模型会预测它的结果 则,与真实结果的差或者损失记为: 目标是最小化这个误差. 但是仍然不知道具体哪些数据由对应的哪个模型产生的. 另一方面,假设我们被告知这些数据对应具体哪个模型,则问题简化为求解约束条件下的线性方程解 (实际上可以计算出最小均分误差下的解,^-^). 这两个假

EM算法(2):GMM训练算法

目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法详解

EM算法的思考

参考文献1: http://blog.sina.com.cn/s/blog_6c7b434d01013zwe.html 参考文献2: http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html EM算法这个烦人的东西,之前看懂了,现在又忘的一塌糊涂,竟然短路.之前那篇博客写得乱七八糟.现在重新理一遍. 首先,用李航的证明方法(不推荐). 齐次,我们根据NG的: 例子参见文献1.

混合模型和EM算法

1. k-means算法 k-means算法的loss function 可写成 其中,为指示变量,代表数据n被指派到类k,为类k的均值.k-means算法的核心为找到和以最小化loss function.优化方法为交替优化,先基于优化J,保持不变.同样基于优化J,不变.这两个阶段分别被称作EM算法的E(expectation) 步和M(maximization)步. 具体步骤为: (1)数据指派到最近的聚类中心,确定,以最小化J: (2)对J基于求导,得到,即为指派到聚类k的数据点的均值. k

EM算法及其推广的要点

1.EM算法是含有隐变量的变量的概率模型极大似然估计或极大后验概率估计的迭代算法,含有隐变量的概率模型的数据表示为$P(Y,Z|\theta)$.这里,$Y$是观测变量的数据,$Z$是隐变量的数据,$\theta$是模型参数.EM算法通过迭代求解观测数据的对数似然函数$L(\theta)=logP(Y|\theta)$的极大化,实现极大似然估计.每次迭代包括两步:E步,求期望,即求$logP(Y|\theta)$关于$P(Y|\theta^{(i)})$的期望: $Q(\theta,\theta

【转载】(EM算法)The EM Algorithm

(EM算法)The EM Algorithm EM是我一直想深入学习的算法之一,第一次听说是在NLP课中的HMM那一节,为了解决HMM的参数估计问题,使用了EM算法.在之后的MT中的词对齐中也用到了.在Mitchell的书中也提到EM可以用于贝叶斯网络中. 下面主要介绍EM的整个推导过程. 1. Jensen不等式 回顾优化理论中的一些概念.设f是定义域为实数的函数,如果对于所有的实数x,,那么f是凸函数.当x是向量时,如果其hessian矩阵H是半正定的(),那么f是凸函数.如果或者,那么称f

EM算法求高斯混合模型参数估计——Python实现

EM算法一般表述: 当有部分数据缺失或者无法观察到时,EM算法提供了一个高效的迭代程序用来计算这些数据的最大似然估计.在每一步迭代分为两个步骤:期望(Expectation)步骤和最大化(Maximization)步骤,因此称为EM算法. 假设全部数据Z是由可观测到的样本X={X1, X2,--, Xn}和不可观测到的样本Z={Z1, Z2,--, Zn}组成的,则Y = X∪Z.EM算法通过搜寻使全部数据的似然函数Log(L(Z; h))的期望值最大来寻找极大似然估计,注意此处的h不是一个变量

【机器学习】K-means聚类算法与EM算法

初始目的 将样本分成K个类,其实说白了就是求一个样本例的隐含类别y,然后利用隐含类别将x归类.由于我们事先不知道类别y,那么我们首先可以对每个样例假定一个y吧,但是怎么知道假定的对不对呢?怎样评价假定的好不好呢? 我们使用样本的极大似然估计来度量,这里就是x和y的联合分布P(x,y)了.如果找到的y能够使P(x,y)最大,那么我们找到的y就是样例x的最佳类别了,x顺手就聚类了.但是我们第一次指定的y不一定会让P(x,y)最大,而且P(x,y)还依赖于其他未知参数,当然在给定y的情况下,我们可以调