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算法
- 初始化参数
,其中
可以随机选择两个
取样本的方差:
。混合比例
取0.5。
- 期望步:计算响应度:
表征数据属于
的概率。
3. 极大化步:计算加权均值和方差:
和混合概率,表示数据属于
的概率总和。
4. 重复步骤2,3直到收敛。
2.2 多分量混合高斯的EM算法
多分量高斯的EM算法 |
其中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步的计算很费时)
EM算法[转]的更多相关文章
- 学习笔记——EM算法
EM算法是一种迭代算法,用于含有隐变量(hidden variable)的概率模型参数的极大似然估计,或极大后验概率估计.EM算法的每次迭代由两步组成:E步,求期望(expectation):M步,求 ...
- K-Means聚类和EM算法复习总结
摘要: 1.算法概述 2.算法推导 3.算法特性及优缺点 4.注意事项 5.实现和具体例子 6.适用场合 内容: 1.算法概述 k-means算法是一种得到最广泛使用的聚类算法. 它是将各个聚类子集内 ...
- EM算法总结
EM算法总结 - The EM Algorithm EM是我一直想深入学习的算法之一,第一次听说是在NLP课中的HMM那一节,为了解决HMM的参数估计问题,使用了EM算法.在之后的MT中的词对齐中也用 ...
- GMM的EM算法实现
转自:http://blog.csdn.net/abcjennifer/article/details/8198352 在聚类算法K-Means, K-Medoids, GMM, Spectral c ...
- EM算法(4):EM算法证明
目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法运用 EM算法(4):EM算法证明 EM算法(4):EM算法证明 1. 概述 上一篇博客我们已经讲过 ...
- EM算法(3):EM算法运用
目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法运用 EM算法(4):EM算法证明 EM算法(3):EM算法运用 1. 内容 EM算法全称为 Exp ...
- EM算法(2):GMM训练算法
目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法运用 EM算法(4):EM算法证明 EM算法(2):GMM训练算法 1. 简介 GMM模型全称为Ga ...
- EM算法(1):K-means 算法
目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法运用 EM算法(4):EM算法证明 EM算法(1) : K-means算法 1. 简介 K-mean ...
- [MCSM]随机搜索和EM算法
1. 概述 本节将介绍两类问题的不同解决方案.其一是通过随机的搜索算法对某一函数的取值进行比较,求取最大/最小值的过程:其二则和积分类似,是使得某一函数被最优化,这一部分内容的代表算法是EM算法.(书 ...
- EM算法
EM算法的推导
随机推荐
- 20155236 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
20155236 <Java程序设计>实验一(Java开发环境的熟悉)实验报告 一.实验内容及步骤 (一)使用JDK编译.运行简单的java程序 命令行下的程序开发 因为我用的是windo ...
- 20155307 2017-2018-2 《Java程序设计》第2周学习总结
20155307 2017-2018-2 <Java程序设计>第2周学习总结 教材学习内容总结 整数:short(2 byte).int(4 byte).long(8 byte) 字节(b ...
- 学号 2016-2017-20155329《Java程序设计》课程总结
学号 2016-2017-20155329<Java程序设计>课程总结 (按顺序)每周作业链接汇总 预备作业1:想象中的师生关系 预备作业2:C语言水平调查以及认为自己最强的一项技能和毕业 ...
- JS的发布订阅模式
JS的发布订阅模式 这里要说明一下什么是发布-订阅模式 发布-订阅模式里面包含了三个模块,发布者,订阅者和处理中心.这里处理中心相当于报刊办事大厅.发布者相当与某个杂志负责人,他来中心这注册一个的杂志 ...
- bzoj1854 [Scoi2010]游戏 ([SCOI2010]连续攻击游戏)
bzoj1854 [Scoi2010]游戏 ([SCOI2010]连续攻击游戏) 据说正解是并查集???我不会 这不是一道匈♂牙利好题吗??? 一个装备的两个属性都向它连边,然后跑一遍匈♂牙利 注意: ...
- Shell if 判断语句参数
[ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真. [ ...
- golang 单元测试
单元测试是质量保证十分重要的一环,好的单元测试不仅能及时地发现问题,更能够方便地调试,提高生产效率.所以很多人认为写单元测试是需要额外的时间,会降低生产效率,是对单元测试最大的偏见和误解. go 语言 ...
- selenium自动化之元素定位方法
在使用selenium webdriver进行元素定位时,有8种基本元素定位方法(注意:并非只有8种,总共来说,有16种). 分别介绍如下: 1.name定位 (注意:必须确保name属性值在当前ht ...
- POJ 2251 Dungeon Master (三维BFS)
题目链接:http://poj.org/problem?id=2251 Dungeon Master Time Limit: 1000MS Memory Limit: 65536K Total S ...
- fastdfs+nginx+image_filter安装与生成缩略图
fastdfs简介 类似google FS的一个轻量级分布式文件系统,纯C实现,支持linux.FreeBSD等UNIX系统: 只能通过API访问,不支持POXIS: 文件不分块存储,上传的文件和OS ...