期望极大值算法(expectation maximizition algorithm,EM)。是一种迭代算法,1977年由Dempster总结提出,用于含有隐变量(hidden variable)的概率模型参数的极大似然估计或极大后验估计。EM算法分为两步,E步:求期望,M步:求极大值

1 EM算法的引入

概率模型有时既含有观测变量(observable variable),又含有隐变量或潜在变量(latent variable),如果仅有观测变量,那么给定数据就能用极大似然估计或贝叶斯估计来估计model参数;但是当模型含有隐变量时,需要一种含有隐变量的概率模型参数估计的极大似然方法估计——EM算法

1.1 EM算法

这里有一个三硬币模型,三个硬币A,B,C。正面出现的概率是π,p,q;只有当A硬币掷出后得到正面才会掷硬币B,否则C,但是独立n次后,只能观察到最后的结果,却看不到执行过程中A是什么情况,最后的结果是B还是C的。因此,



各个参数含义



观测数据的极大似然估计是:



这个问题没有解析解,只能使用EM方法迭代求解。



E步B的概率是一个条件概率,y取值为1,0.

M步:模型参数估计值



EM算法受初值影响较大。

一般地,Y表示观测数据,Z表示隐变量,Y+Z表示完全数据(complete data),Y叫做不完全数据(incomplete data)。假设给定观测数据Y其概率分布为,不完全数据Y的似然函数为,对数似然函数为,假设Y,Z联合概率分布为,对数似然函数,EM算法就是通过迭代求L的极大似然估计。

EM算法:





Q函数:EM算法的核心,是完全观测数据对数似然函数关于给定观测数据Y和当前参数θi对未观测数据Z的条件概率分布的期望:

步骤1:参数的 初值可以任意选择,但是EM算法对参数初值十分敏感;

步骤2:求Q(θ,θi)第一个变元表示极大化的参数,第二个变元表示参数的当前估计值。每次迭代实际上再求Q函数及其极大。

步骤3:M步求Q的极大化,得到θi+1,完成一次迭代。

步骤4:给出停止条件,对较小的整数,满足入校条件则停止迭代。

1.2 EM算法的导出

通过近似求解观测数据的对数似然函数的极大化问题来推导出EM算法的正确性。

问题是含有隐变量的概率模型,目标是极大化观测数据(不完全数据)Y关于θ的对数似然函数,即极大化,

困难点在于未观测数据和积分(求和)。

其实,EM算法是通过迭代逐步近似极大化L(θ)的。每次都希望最新的估计上跟上次的估计值大,来逐步达到极大值。



利用Jensen不等式得到下界:







,得到L的一个下界B函数,且可以发现,

任何可以让B增大的θ也可以使得L增大,因此,具体表达式化简(省略与θ无关的项):



因此EM算法是通过不断求解下界的极大化来求解对数似然函数极大化的算法


EM算法因为能够求解包含隐变量的概率模型,因此可用于生成模型的非监督学习,认为联合概率密度为P(X,Y),X为观测数据,Y为未观测数据。


2 EM算法的收敛性

EM算法能否收敛,是否能收敛到全局最优?

两个定理:







注意:定理只能保证参数估计序列收敛到对数似然函数序列的稳定点,不能保证收敛到极大值点,所以初值选择十分重要。通常的做法是选取几个不同的初值进行迭代,然后对得到的各个估计值加以比较,从中选择最好的。

3 EM算法在高斯混合模型的应用

3.1 高斯混合模型Gaussian misture model

GMM的形式

,其中

即,称为第k个分模型。

3.2 GMM中参数估计的EM算法

假设观测数据y1,y2,y3,…,yN由GMM生成

其中,

用EM算法估计参数θ。

  1. 明确隐变量,写出完全数据的对数似然函数

    观测数据的产生:依照概率αk选择第k个高斯分布模型;然后依照第k个分模型概率分布生成观测数据yj。这是观测数据是已知的,而反映观测数据yj的第k个分模型的数据是未知的,以隐变量γjk表示,定义如下:

    j=1,2,…,N;k=1,2,…,K,γ是0-1随机变量

    那么完全数据是:

    完全数据似然函数是

    其中,k的连乘不是很理解

对数化:

  1. EM算法的E步:确定Q函数

  2. 确定M步



    求偏导为0推出:



    算法:

4 EM推广

EM算法可以解释为F函数(F function)的极大—极大算法(maximization maximization algorithm),基于这个解释有若干变形,如,广义期望极大(generalized expectation maximization,GEM)算法。

4.1 F函数的极大—极大算法

F函数定义:



引理1:



引理2:



。。。未完待续。。。

推荐链接:http://blog.csdn.net/qq_20602929/article/details/51424292

总结:

EM算法是一种求解含有隐变量的概率模型参数的算法,这里主要根据《统计学习方法》介绍了EM算法及其推广和应用,主要的是理解,EM算法的E,M步,以及Q函数的构造方法,这是本质的东西。

 

含隐变量模型求解——EM算法的更多相关文章

  1. 隐变量模型(latent variable model)

    连续隐变量模型(continuous latent model)也常常被称为降维(dimensionality reduction) PCA Factor Analysis ICA 连续的情形比离散的 ...

  2. 概率图模型之EM算法

    一.EM算法概述 EM算法(Expectation Maximization Algorithm,期望极大算法)是一种迭代算法,用于求解含有隐变量的概率模型参数的极大似然估计(MLE)或极大后验概率估 ...

  3. 机器学习五 EM 算法

    目录 引言 经典示例 EM算法 GMM 推导 参考文献: 引言 Expectation maximization (EM) 算法是一种非常神奇而强大的算法. EM算法于 1977年 由Dempster ...

  4. 文本主题模型之LDA(三) LDA求解之变分推断EM算法

    文本主题模型之LDA(一) LDA基础 文本主题模型之LDA(二) LDA求解之Gibbs采样算法 文本主题模型之LDA(三) LDA求解之变分推断EM算法 本文是LDA主题模型的第三篇,读这一篇之前 ...

  5. EM算法(Expectation Maximization Algorithm)初探

    1. 通过一个简单的例子直观上理解EM的核心思想 0x1: 问题背景 假设现在有两枚硬币Coin_a和Coin_b,随机抛掷后正面朝上/反面朝上的概率分别是 Coin_a:P1:-P1 Coin_b: ...

  6. EM算法浅析(二)-算法初探

    EM算法浅析,我准备写一个系列的文章: EM算法浅析(一)-问题引出 EM算法浅析(二)-算法初探 一.EM算法简介 在EM算法之一--问题引出中我们介绍了硬币的问题,给出了模型的目标函数,提到了这种 ...

  7. 梯度下降和EM算法,kmeans的em推导

    I. 牛顿迭代法给定一个复杂的非线性函数f(x),希望求它的最小值,我们一般可以这样做,假定它足够光滑,那么它的最小值也就是它的极小值点,满足f′(x0)=0,然后可以转化为求方程f′(x)=0的根了 ...

  8. EM算法——Expectation-Maximization

    最大似然估计 一个栗子:假如去赌场,但是不知道能不能赚钱,你就在门口堵着出来一个人就问一个赚了还是赔了,如果问了5个人都说赚了,那么你就会认为,赚钱的概率肯定是非常大的. 已知:(1)样本服从分部的模 ...

  9. EM 算法(一)-原理

    讲到 EM 算法就不得不提极大似然估计,我之前讲过,请参考我的博客 下面我用一张图解释极大似然估计和 EM 算法的区别 EM 算法引例1-抛3枚硬币 还是上图中抛硬币的例子,假设最后结果正面记为1,反 ...

随机推荐

  1. 数据与C

    //以十进制.八进制和十六进制输出100,加入#会显示前缀#include<stdio.h>int main(){ int x = 100; printf("dec = %d; ...

  2. intellij idea maven springmvc 环境搭建

    1.   新建maven 工程 intellij idea 默认已经集成了maven, 直接点击下一步 2.   配置文件修改 pom.xml 文件 <?xml version="1. ...

  3. YUM安装软件

    YUM:介绍.工作流程.本地yum.网络yum.yum的相关命令 一.What is YUM YUM是基于rpm但更胜于rpm的软件管理工具 YUM的优点: 1.更方便的管理rpm软件包 2.自动解决 ...

  4. Spring框架系列之AOP思想

    微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1.AOP概述 (1).什么是 AOP AOP 为 Aspect Oriented Progra ...

  5. spring 完成multipart数据上传

    spring中多媒体文件的上传,通过配置 MultipartResolver 实现. MultipartResolver 的实现类有两个:一.StandardServletMultipartResol ...

  6. Jquery那些坑

    今天写Jquery的时候突然发现在将$("<td><td/>").appendTo(someElement)的时候发现一下子多出来两个,甚是奇怪,检查后端和 ...

  7. 在web工程中设置首页的页面

    有些时候删除了系统自带的index.jsp删除后会出现如下图错误 解决办法,新创建一个以你自己命名的jsp文件,然后在对该web工程的WEB-INF 目录下的web.xml进行添加加上下面的注释所带的 ...

  8. CodeForces - 788B Weird journey 欧拉路

    题意:给定n个点,m条边,问能否找到多少条符合条件的路径.需要满足的条件:1.经过m-2条边两次,剩下两条边1次  2.任何两条路的终点和起点不能相同. 欧拉路的条件:存在两个或者0个奇度顶点. 思路 ...

  9. uva10003 区间DP

    很清晰的区间dp问题.d(i,j)表示断点i到断点j的最小费用,由于开头和结尾也是断点,所以应该加入断点数组,即 cut[0]=0; cut[n+1]=len; 边界就是d(i,i+1)=0; 转移方 ...

  10. R实战 第三篇:数据处理(基础)

    数据结构用于存储数据,不同的数据结构对应不同的操作方法,对应不同的分析目的,应选择合适的数据结构.在处理数据时,为了便于检查数据对象,可以通过函数attributes(x)来查看数据对象的属性,str ...