EM算法及其推广
概述
EM算法是一种迭代算法,用于含有隐变量(hidden variable)的概率模型参数的极大似然估计,或极大后验概率估计。
EM算法的每次迭代由两步组成:E步,求期望(expectation);M步,求极大( maximization ),所以这一算法称为期望极大算法(expectation maximization algorithm),简称EM算法。
EM算法的引入
一般地,用Y表示观测随机变量的数据,Z表示隐随机变量的数据。Y和Z连在一起称为完全数据( complete-data ),观测数据Y又称为不完全数据(incomplete-data)。
假设给定观测数据Y,其概率分布是P(Y | theta),其中theta是需要估计的模型参数,那么不完全数据Y的似然函数是P(Y | theta),对数似然函数L(theta)=logP(Y | theta);假设Y和Z的联合概率分布是P(Y, Z),那么完全数据的对数似然函数是log P(Y, Z | theta)。
1、EM算法定义

2、Q函数定义
完全数据的对数似然函数log P(Y, Z | theta)关于在给定观测数据Y和当前参数theta(i)下对未观测数据Z的条件概率分布P(Z | Y,theta(i))的期望称为Q函数,即

3、EM算法说明
步骤(1) 参数的初值可以任意选择。但需注意EM算法对初值是敏感的。
步骤(2) E步求Q(theta, theta(i))。Q函数式中Z是未观测数据,Y是观测数据。注意,Q(theta, theta(i))的第1个变量theta表示要极大化的参数,第2个变量theta(i)表示参数的当前估计值。每次迭代实际在求Q函数及其极大。
步骤(3) M步求Q(theta, theta(i))的极大化,得到theta(i+1),完成一次迭代theta(i)更新至theta(i+1)。后面将证明每次迭代使似然函数增大或达到局部极值。
步骤(4) 给出停止迭代的条件,一般是对较小的正数,若满足
则停止迭代.
4、EM算法导出
通过近似求解观测数据的对数似然函数的极大化问题来导出EM算法,由此可以清楚地看出EM算法的作用。面对一个含有隐变量的概率模型,目标是极大化观测数据(不完全数据)Y关于参数theta的对数似然函数,即极大化:

这一极大化的主要困难是式中有未观测数据并有包含和(或积分)的对数。
(1)每次迭代需要满足:新估计值 theta能使L(theta)增加,并逐步达到极大值。i次迭代前后的差值为:

(2)利用jensen不等式可以得出下界:

令
则
且有
(3)选择theta(i+1)使B极大:

EM算法是通过不断求解下界的极大化逼近求解对数似然函数极大化的算法,简单图示如下:

(有其他的推导方式,见博客http://www.cnblogs.com/bigmoyan/p/4550375.html还有https://www.cnblogs.com/pinard/p/6912636.html)
5、EM算法在非监督学习中的应用
训练数据只有输入没有对应的输出(X,?),从这样的数据学习模型称为非监督学习问题。EM算法可以用于生成模型的非监督学习,生成模型由联合概率分布P(X, Y)表示,可以认为非监督学习训练数据是联合概率分布产生的数据。X为观测数据,Y为未观测数据。
EM算法的收敛性
定理9.1 设P(Y | theta)为观测数据的似然函数,theta(i) (i=1, 2,...)为EM算法得到的参数估计序列,P(Y | theta(i) )(i=1, 2,...))为对应的似然函数序列,则P(Y | theta(i) )是单调递增的,即
定理9.2 设P(Y | theta)为观测数据的似然函数,theta(i) (i=1, 2,...)为EM算法得到的参数估计序列,L(theta(i))=P(Y | theta(i) )(i=1, 2,...))为对应的似然函数序列,
(1)如果P(Y | theta)有上界,则L(theta(i))收敛到某一值L*;
(2)在函数Q与L满足一定条件下,由EM算法得到的参数估计序列theta(i)的收敛值theta*是L(theta)的稳定点。
EM算法的收敛性包含关于对数似然函数序列L的收敛性和关于参数估计序列theta的收敛性两层意思,前者并不蕴涵后者。
此外,定理只能保证参数估计序列收敛到对数似然函数序列的稳定点,不能保证收敛到极大值点。所以在应用中,初值的选择变得非常重要,常用的办法是选取几个不同的初值进行迭代,然后对得到的各个估计值加以比较,从中选择最好的。
EM算法在高斯混合模型学习中的应用
1、高斯混合模型

2、推导
假设观测数据由高斯混合模型生成,
,
(1)明确隐变量。写出完全数据的对数似然函数


完全数据的似然函数为:
其中,
对数似然函数为:

(2)EM算法的E步:确定Q函数

注意:第二行改错:

式中的那个期望计算如下:

这个期望是在当前模型参数下第j个观测数据来自第k个分模型的概率,称为分模型k对观测数据yj的响应度。
将
和
代回原式得:

(3)确定EM算法的M步
迭代的M步是求函数Q对theta的极大值,即求新一轮迭代的模型参数:


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

EM算法的推广
EM算法还可以解释为F函数(F function)的极大-极大算法(maximization-maximization algorithm),基于这个解释有若干变形与推广,如广义期望极大(generalized expectation maximization, GEM)算法。
。。。不好意思,还没看懂,我后续会补。
EM算法及其推广的更多相关文章
- 《统计学习方法》笔记九 EM算法及其推广
本系列笔记内容参考来源为李航<统计学习方法> EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计或极大后验概率估计.迭代由 (1)E步:求期望 (2)M步:求极大 组成,称 ...
- EM算法及其推广的要点
1.EM算法是含有隐变量的变量的概率模型极大似然估计或极大后验概率估计的迭代算法,含有隐变量的概率模型的数据表示为$P(Y,Z|\theta)$.这里,$Y$是观测变量的数据,$Z$是隐变量的数据,$ ...
- 高斯混合模型参数估计的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 ...
- 含隐变量模型求解——EM算法
1 EM算法的引入1.1 EM算法1.2 EM算法的导出2 EM算法的收敛性3EM算法在高斯混合模型的应用3.1 高斯混合模型Gaussian misture model3.2 GMM中参数估计的EM ...
- 机器学习——EM算法
1 数学基础 在实际中,最小化的函数有几个极值,所以最优化算法得出的极值不确实是否为全局的极值,对于一些特殊的函数,凸函数与凹函数,任何局部极值也是全局极致,因此如果目标函数是凸的或凹的,那么优化算法 ...
- 学习笔记——EM算法
EM算法是一种迭代算法,用于含有隐变量(hidden variable)的概率模型参数的极大似然估计,或极大后验概率估计.EM算法的每次迭代由两步组成:E步,求期望(expectation):M步,求 ...
- 斯坦福大学机器学习,EM算法求解高斯混合模型
斯坦福大学机器学习,EM算法求解高斯混合模型.一种高斯混合模型算法的改进方法---将聚类算法与传统高斯混合模型结合起来的建模方法, 并同时提出的运用距离加权的矢量量化方法获取初始值,并采用衡量相似度的 ...
- 机器学习笔记(十)EM算法及实践(以混合高斯模型(GMM)为例来次完整的EM)
今天要来讨论的是EM算法.第一眼看到EM我就想到了我大枫哥,EM Master,千里马.RUA!!!不知道看这个博客的人有没有懂这个梗的. 好的,言归正传.今天要讲的EM算法,全称是Expectati ...
- EM算法及其应用(一)
EM算法及其应用(一) EM算法及其应用(二): K-means 与 高斯混合模型 EM算法是期望最大化 (Expectation Maximization) 算法的简称,用于含有隐变量的情况下,概率 ...
随机推荐
- 7.10 Models -- Handling Metadata(处理元数据)
1. 随着从store中返回的records,你可能需要处理一些元数据.Metadata是伴随着特定model或者type的一种数据,而不是record. 2. 分页是使用元数据的一个常见的例子.想象 ...
- echarts2简单笔记
1.代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...
- 在liferay中如何使用Ajax的请求
1:首先在界面上写一个路径,这个路径就是要找后台中的哪一个操作比如:
- c# 日期函数[string.Format----GetDateTimeFormats]格式
DateTime dt = DateTime.Now;Label1.Text = dt.ToString();//2005-11-5 13:21:25Label2.Text = dt.ToFileTi ...
- Apache+php+mysql环境配置
Apache+PHP+MySQL环境搭建 标题格式 正文格式 阶段性完成格式 正文中强调格式 ————————————————————————————— 前语:本文是从我写过的doc文档迁移过来的,由 ...
- 电子地图/卫星地图下载并转存为jpg图片
1.下载水经注万能地图下载器破解版 http://download.csdn.net/download/hyb2012/8714725,此软件为绿色免安装且免注册 2.下载后解压缩后,运行sgwn.e ...
- python3 集合的常用方法
方法 意义 S.add(e) 在集合中添加一个新的元素e:如果元素已经存在,则不添加 S.remove(e) 从集合中删除一个元素,如果元素不存在于集合中,则会产生一个KeyError错误 S.dis ...
- 本地缓存之GUAVA
项目开发中,很多配置数据需要缓存,一般来说,开发人员都会手动写HashMap,HashSet或者ConcurrentHashMap,ConcurrentHashSet缓存数据,但是这样的缓存往往存在内 ...
- MySQL Crash Course #17# Chapter 25. 触发器(Trigger)
推荐看这篇mysql 利用触发器(Trigger)让代码更简单 以及 23.3.1 Trigger Syntax and Examples 感觉有点像 Spring 里的 AOP 我们为什么需要触发器 ...
- MySQL笔记(二)数据库对象的创建和管理
学校用 sqlserver ,记录数据移植到 mysql 过程中的一些问题(对应数据类型,主键外键等). 索引: 查看数据的物理路径 查看表相关的信息(SHOW CREATE TABLE.DESC) ...