EM算法 学习笔记
转载请注明出处: http://www.cnblogs.com/gufeiyang
首先考虑这么一个问题。操场东边有100个男生,他们的身高符合高斯分布。操场西边有100个女生,她们的身高也符合高斯分布。 如果告诉了男生的身高,我们很容易用极大似然估计求出正态分布的参数。 同理,给出了女生的身高,我们也很容易得到高斯分布的参数。 接下来事情发生了, 男生跑入女生队伍中, 然后统计了200个人的身高,但是却不知道每个身高是男的还是女生的。 这样的话就很纠结了。 如果我们要是知道了每个人的性别改多好啊, 知道了性别就可以用极大似然得到两个高斯分布的参数了。 如果我们知道了高斯分布的参数,那么我就可以估计出来每个身高属于男女的概率。 忽然间我们发现这是一个“先有鸡还是先有蛋” 的问题。
EM算法基本思想:假设我们想估计的参数为A,B。 开始的时候A和B都未知, 但是如果我们知道了A,就能得到B。 我们得到了B就可以得到A。 EM会给A一个初始值,然后得到B,再由B得到A, 再得到B,一直迭代到收敛为止。
说完了EM算法的基本思想, 下面我讲详细介绍EM算法的公式推导。
现在有样本集 X1,X2......Xm, 一共m个样本, 每个样本都有一个隐变量Zi,但是这个变量却不知道(隐变量嘛)。 我们需要估计的概率模型为P(X|Z)的参数θ。针对上一个例子,X为身高,Z给男女,θ为高斯分布的参数。
由于函数 f(x)=log(x)是一个凹函数,所有(2)式到(3)式可以利用jeson不等式。 其实l(θ)使我们的目标函数(如果Zi确定的话).我们这个时间找到了l(θ)的下界。 我们可以调整θ,然后再极大化下界,再调整θ......一直迭代到收敛为止。
这个时候我们不禁会想两个问题。 (a)上边 的推导中用了不等号,什么时间可以取等号呢? (b)真的一定会收敛吗?
我们先讨论第一个问题,由于 ,( Q(Zi)是Zi的概率密度函数),当为常数时, 不等式就变成了等式。我们令这个常数为,那么
我们在给定了参数θ后,使下界拉升的Q(Zi)就能计算了。 给定了Q(Zi)后,又能调整θ,接着极大化新θ的下界......
因此EM算法的步骤为:
E步骤:根据参数初始值或上一次迭代的模型参数计算隐变量的后验概率:
M步骤:将似然函数极大化,以获得新的参数值:
一直重复这两个步骤。
接着讨论第二个问题:这样的迭代会收敛吗?
从上边的推到来看,EM算法是收敛的。具体推导参看 Andrew Ng《The EM algorithm》。
至此EM算法就介绍完了。 需要指出EM算法不能保证全局最优。不同的初始值, 得到最后的结果可能不一样。
参考资料:
《统计学习方法》 李航著
zouxy09博客 http://blog.csdn.net/zouxy09/article/details/8537620
EM算法 学习笔记的更多相关文章
- C / C++算法学习笔记(8)-SHELL排序
原始地址:C / C++算法学习笔记(8)-SHELL排序 基本思想 先取一个小于n的整数d1作为第一个增量(gap),把文件的全部记录分成d1个组.所有距离为dl的倍数的记录放在同一个组中.先在各组 ...
- Manacher算法学习笔记 | LeetCode#5
Manacher算法学习笔记 DECLARATION 引用来源:https://www.cnblogs.com/grandyang/p/4475985.html CONTENT 用途:寻找一个字符串的 ...
- Johnson算法学习笔记
\(Johnson\)算法学习笔记. 在最短路的学习中,我们曾学习了三种最短路的算法,\(Bellman-Ford\)算法及其队列优化\(SPFA\)算法,\(Dijkstra\)算法.这些算法可以快 ...
- 某科学的PID算法学习笔记
最近,在某社团的要求下,自学了PID算法.学完后,深切地感受到PID算法之强大.PID算法应用广泛,比如加热器.平衡车.无人机等等,是自动控制理论中比较容易理解但十分重要的算法. 下面是博主学习过程中 ...
- Johnson 全源最短路径算法学习笔记
Johnson 全源最短路径算法学习笔记 如果你希望得到带互动的极简文字体验,请点这里 我们来学习johnson Johnson 算法是一种在边加权有向图中找到所有顶点对之间最短路径的方法.它允许一些 ...
- EM算法学习资料备忘
将学习EM算法过程中看到的好的资料汇总在这里,供以后查询.也供大家參考. 1. 这是我学习EM算法最先看的优秀的入门文章,讲的比較通俗易懂,并且举了样例来说明当中的原理.不错! http://blog ...
- 算法学习笔记——sort 和 qsort 提供的快速排序
这里存放的是笔者在学习算法和数据结构时相关的学习笔记,记录了笔者通过网络和书籍资料中学习到的知识点和技巧,在供自己学习和反思的同时为有需要的人提供一定的思路和帮助. 从排序开始 基本的排序算法包括冒泡 ...
- Expectation maximization - EM算法学习总结
原创博客,转载请注明出处 Leavingseason http://www.cnblogs.com/sylvanas2012/p/5053798.html EM框架是一种求解最大似然概率估计的方法.往 ...
- R语言实现关联规则与推荐算法(学习笔记)
R语言实现关联规则 笔者前言:以前在网上遇到很多很好的关联规则的案例,最近看到一个更好的,于是便学习一下,写个学习笔记. 1 1 0 0 2 1 1 0 0 3 1 1 0 1 4 0 0 0 0 5 ...
随机推荐
- CSS是什么
css是层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言. CSS不 ...
- iOS数组遍历
对于一个数组 NSArray *array = @[@"111",@"222",@"333",@"444",@" ...
- 转 Python3 ssl模块不可用的问题
编译安装完Python3之后,使用pip来安装python库,发现了如下报错: $ pip install numpy pip is configured with locations tha ...
- 小程序canvas绘制倒计时
如果本文对你有用,请爱心点个赞,提高排名,帮助更多的人.谢谢大家!❤ 如果解决不了,可以在文末进群交流. 效果展示: //广告倒计时 advTimeCountDown:function(advTime ...
- Python——迭代器&可迭代对象
可迭代对象 什么是对象: Python中,一切皆对象.一个变量,一个列表,一个字符串,文件句柄,函数等等都可称为一个对象.一个对象就是一个实例,就是实实在在的东西. 什么是迭代 迭代就是一个重复的过程 ...
- [bluez] linux下蓝牙鼠标的延迟问题
引言 现在的便携设备,接口越来越少了.所以我们没有理由不用蓝牙鼠标.高大上也不贵. 蓝牙4.0之前,蓝牙设备的问题是特别费电.蓝牙4.0之后省电的要命,我的上一个鼠标Microsoft Designe ...
- [dev][nginx] 在阅读nginx代码之前都需要准备什么
前言 以前,我读过nginx的源码,甚至还改过.但是,现在回想起来几乎回想不起任何东西, 只记得到处都是回调和异步,我的vim+ctags索引起来十分吃力. 几乎没有任何收获,都是因为当时打开代码就看 ...
- orm字段类型使用
IntegerField:整数类型,映射到数据库中会变成11位的int类型 num是整型字典 object中的5是第五行还是id是5? 整型字符串型都可以传到整数字段 FloatField:浮点数类 ...
- ISCC之Re1
IDA打开,调试选ELF,跟踪main函数 发现有一个not_the_flag函数,跟进去 这里判断了一下a1的值是否为42,大致判断引号里面的有可能是flag,直接放到Linux下运行 提交不要有任 ...
- Python语言之requests库
发送请求.传递URL参数.定制headers.接受数据,处理数据等 在Java中用httpclient jar包,在Python中用requests库,即使没有事先下载,在Pycharm开发工具中,出 ...