EM算法是一种迭代算法,传说中的上帝算法,俗人可望不可及。用以含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计

EM算法定义

输入:观测变量数据X,隐变量数据Z,联合分布\(P(X,Z|\theta)\)

输出:模型参数\(\theta\)

(1)选择初始模型参数\(\theta^{(0)}\),开始迭代

(2)E步:记\(\theta^{i}\)为第i次迭代参数\(\theta\)的估计值,计算在第i次迭代的期望\[Q(\theta,\theta^{(i)}) = E(logP(x,z|\theta)|x,\theta^{(i)}))=\int_zlogp(x,z|\theta)p(z|\theta^{(i)})\]
(3)M步:求使\(\theta^{(i+1)} = Q(\theta,\theta^{(i)})的最大值\)

(4)重复第(2)步和第(3)步

EM算法几点说明

(1)参数的初值可以任意选择,但需注意EM算法初始是敏感的

(2)E步求\(Q(\theta,\theta^{(i)})\),Q函数种的Z是为观测数据,X是观测数据,\(Q(\theta,\theta^{(i)})\)中的第一个变元表示要极大化的参数,第二个变元表示参数的当前估计值,每次迭代实际在求Q的极大值

(3)给出停止迭代的条件,一般是对较小的正数\(\xi_i,\xi_2\),若满足\(||\theta^{(i+1)} - \theta^{(i)} < \xi_i||或||Q(\theta^{(i+1)},\theta^{(i)})-Q(\theta^{(i)},\theta^{(i)})|| < \xi_2\)

EM算法推导

\[L(\theta)= argmaxlogP(x|\theta) = argmaxlog\int_zp(x,z|\theta)dz\]

\[L(\theta) = argmaxlog\int_z\frac{p(x,z|\theta)}{p(z|\theta^{(i)})}p(z|\theta^{(i)})dz\]

由于log函数为凹函数,则\[L(\theta) \geq \int_zlog\frac{p(x,z|\theta)}{p(z|\theta^{(i)})}p(z|\theta^{(i)})dz\]

\[L(\theta) \geq \int_zlogp(x,z|\theta)p(z|\theta^{(i)})dz - \int_zlog(p(z|\theta^{(i)}))p(z|\theta^{(i)})dz\]

由于减式后面与模型参数\(\theta\)无关,\(P(z|\theta^{(i)})是已知的\),所以只需关注减式前面的式自,令\[Q(\theta,\theta^{(i)})=\int_zlogp(x,z|\theta)p(z|\theta^{(i)})\]

和算法定义中的步骤(2)相同,将原L的优化问题转换为求原问题下界\(Q(\theta,\theta^{(i)})\)的最大值

因此,任何可以使\(Q(\theta,\theta^{(i)})\)增大的\(\theta\)都可以使\(L(\theta)\)增大,为了使\(L(\theta)\)有尽可能的增长,选择使\(Q(\theta,\theta^{(i)})\)达到最大,即\[\theta^{(i+1)} = argmaxQ(\theta,\theta^{(i)})\]

EM算法收敛性

定理1:\(设P(x|\theta)为观测数据的似然函数,\theta^{(i)}为EM算法得到的参数估计序列,P(x|\theta^{(i)})为对应的似然函数序列,则P(x|\theta^{(i)})单调递增\)

定理2:\(设L(\theta) = logP(x|\theta)为观测数据的似然函数,\theta^{(i)}为EM算法得到的参数估计序列,L(\theta^{(i)})为对应的似然函数序列\)

(1)\(如果P(x|\theta)有上界,则L(\theta^{(i)})收敛到某一值L^*\)
(2)\(在函数Q(\theta,\theta^{(i)})与L(\theta)满足一定条件下,由EM算法得到的参数估计序列\theta^{(i)}的收敛值\theta^*是L(\theta)的稳定值\)

EM算法定义及推导的更多相关文章

  1. EM算法理论与推导

    EM算法(Expectation-maximization),又称最大期望算法,是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计(或极大后验概率估计) 从定义可知,该算法是用来估计参数的,这 ...

  2. Machine Learning系列--EM算法理解与推导

    EM算法,全称Expectation Maximization Algorithm,译作最大期望化算法或期望最大算法,是机器学习十大算法之一,吴军博士在<数学之美>书中称其为“上帝视角”算 ...

  3. 高斯混合模型参数估计的EM算法

    # coding:utf-8 import numpy as np def qq(y,alpha,mu,sigma,K,gama):#计算Q函数 gsum=[] n=len(y) for k in r ...

  4. EM算法及其推广

    概述 EM算法是一种迭代算法,用于含有隐变量(hidden variable)的概率模型参数的极大似然估计,或极大后验概率估计. EM算法的每次迭代由两步组成:E步,求期望(expectation): ...

  5. EM算法(Expectation Maximization Algorithm)

    EM算法(Expectation Maximization Algorithm) 1. 前言   这是本人写的第一篇博客(2013年4月5日发在cnblogs上,现在迁移过来),是学习李航老师的< ...

  6. EM算法 小结

    猴子吃果冻 博客园 首页 新随笔 联系 管理 订阅 随笔- 35  文章- 0  评论- 3  4-EM算法原理及利用EM求解GMM参数过程   1.极大似然估计 原理:假设在一个罐子中放着许多白球和 ...

  7. python机器学习笔记:EM算法

    EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域的基础,比如隐式马尔科夫算法(HMM),LDA主题模型的变分推断算法等等.本文对于E ...

  8. EM算法求高斯混合模型參数预计——Python实现

    EM算法一般表述:       当有部分数据缺失或者无法观察到时,EM算法提供了一个高效的迭代程序用来计算这些数据的最大似然预计.在每一步迭代分为两个步骤:期望(Expectation)步骤和最大化( ...

  9. 【机器学习】EM算法详细推导和讲解

    今天不太想学习,炒个冷饭,讲讲机器学习十大算法里有名的EM算法,文章里面有些个人理解,如有错漏,还请读者不吝赐教. 众所周知,极大似然估计是一种应用很广泛的参数估计方法.例如我手头有一些东北人的身高的 ...

随机推荐

  1. jmeter-负载

    主: remote_hosts=10.0.70.35:1099,10.0.70.47:1099 server.rmi.localport=1099 从:  remote_hosts=10.0.70.3 ...

  2. 关于在phpStudy环境下,windows cmd中 php不是内部命令问题

    首先查看system32是否加入系统变量 其次要把当前运行的php版本的路径加入到系统变量中去,path中, 一定要是这个样子的: D:\phpStudy\php\php-5.6.27-nts 不然没 ...

  3. sprites.png雪碧图

    长时间不用把精灵图怎么用给忘了... 一.PC端 给所用到精灵图的元素设置background:url(sprites.png路径);  background-position: -x -y; 其中: ...

  4. 三、nginx 编译参数

    命令 --prefix=/usr/share/nginx # nginx 帮助目录 --sbin-path=/usr/sbin/nginx # nginx 执行命令 --modules-path=/u ...

  5. Linux查看和剔除当前登录用户

    Linux查看和剔除当前登录用户 如何在linux下查看当前登录的用户,并且踢掉你认为应该踢掉的用户? 看了网络中的一些例子.在这里总结一下.主要用到的命令有,w,who,ps,kill,pkill ...

  6. 实例化后的list的默认值

    public class List默认值 { public static void main(String[] args) { List<String> arrayList = new A ...

  7. Hive 元数据库表信息

    Hive 的元数据信息通常存储在关系型数据库中,常用MySQL数据库作为元数据库管理. 1. 版本表 i) VERSION   -- 查询版本信息 2. 数据库.文件存储相关 i) DBS -- 存储 ...

  8. ArcMap加载在线地图

    SimpleGIS 小小的SimpleGIS除了提供6大地图让人喜爱之外,更有其他的能耐同样让你爱不释手. 功能1:作为出图底图地图提供商中Bing.天地图两家提供的地图是无偏移的地图,所以可直接应用 ...

  9. flask学习(三):flask入门(URL)

    一. flask简介 flask是一款非常流行的python web框架,出生于2010年,作者是Armin Ronacher,本来这个项目只是作者在愚人节的一个玩笑,后来由于非常受欢迎,进而成为一个 ...

  10. Metasploit没有db_autopwn命令的解决办法

    将附件db_autopwn.rp 拷贝到/opt/framework3/msf3/plugins/PS:db_autopwn.rp 下载地址:http://dl.vmall.com/c04w8czlc ...