EM算法
2016-05-08 18:20
344 查看
EM算法
用X表示观测随机变量,Z表示隐随机变量。X和Z连在一起称为完全数据(complete-data),Y为不完全数据(incomplete-data)。给定训练样本X={x1,x2,⋯,xn},样例间独立,EM算法通过迭代求样本的极大似然估计L(θ)来估计模型参数:L(θ)=∑i=1nlogp(xi|θ)=∑i=1nlog∑zp(xi,z|θ)
对于每一个样例xi,Qi表示该样例隐变量z的某种分布,Qi满足如下条件:
∑zQi(z)=1,Qi(z)≥0(1)
如果z是连续性的,那么Qi是概率密度函数,需要将求和符号换成积分符号。比如,要讲班上的学生聚类,假设隐藏变量z是身高,那么Q_i就是连续的高斯分布,如果隐藏变量是男女,那么就是伯努利分布。不同样例的隐藏变量可能属于不同的分布。
构造极大似然函数L(θ)的下界:
L(θ)=∑i=1nlog∑zp(xi,z|θ)(2)
=∑i=1nlog∑zQi(z)p(xi,z|θ)Qi(z)(3)
≥∑i=1n∑zQi(z)logp(xi,z|θ)Qi(z)(4)
式(3),式(4)可以理解为:
f(Ez∼Qi[p(xi,z|θ)Qi(z)])≥Ez∼Qi[f(p(xi,z|θ)Qi(z))]
根据式(4),L(θ)的下界和θ,p(xi,z|θ),Qi(z)有关。
于是我们可以先固定θ,调整p(xi,z|θ),Qi(z)的值来使下界不断提升,以逼近L(θ)的真实值。根据Jensen不等式,当随机变量p(xi,z|θ)Qi(z)为常数时,等式成立。即当
p(xi,z|θ)Qi(z)=c(5)
时,下界和L(θ)相等。
由式(5),式(1)可知,
Qi(z)=p(xi,z|θ)∑zp(xi,z|θ)=p(xi,z|θ)p(xi|θ)=p(z|xi,θ)
所以,只要Qi(z)为后验概率,L(θ)的形式转换成(4),由于(4)的log中没有求和,这样的式子求导比较原来直接求L(θ)的导容易。此外,在θ固定为θ∗时,只要Qi(z)为后验概率,L(θ∗)与下界值相等。由于L(θ∗)一直大于等于下界,所以变换θ的值,使下界变大,L(θ)也变大。
于是迭代过程为:第t次迭代的结果为θt,在接下来第t+1次迭代中,E步:当Qi(z)为p(z|xi,θt)时,下界最大,L(θ)近似为下界;M步:对θ求导,使L(θ)增大。
根据个人理解,EM算法适用于包含隐变量,即样本可能含有多个分布的情况,迭代求出不同分布模型的参数θ,参见混合高斯模型的应用。
本文参考自李航的统计学习分析以及JerryLead的博客,是本人的学习笔记,如有侵权,请告知,并感谢所有无私奉献的博主。
相关文章推荐
- IO:存储到数组里 需求:演示Reader中的read(char[]);读取方法。
- Mysql数据库修复
- Memcache 的安装
- 学习进度条 第十周
- Linux系统编程:基本I/O系统调用
- 匹配字符类
- Java之------单机版书店管理系统(设计思想和设计模式系列一)概述
- 20145201《Java程序设计》第十周学习总结
- System and Device Programming------device
- mysql插入时防止重复记录
- Git 基础(五)
- 蒙地卡罗树搜索
- IO里的输入
- IO里的输入
- couldn't load cocos2dcpp from loader dalvik.system.pathclassloader
- [JAVA修炼之路十二]- session管理
- spark开发环境
- 【Java故事系列】J2EE前五年: 从起源到目的
- UVA 10891 Game of Sum
- Unity跑酷游戏的无尽关卡是如何生成的?