理解EM算法
来源:互联网 发布:js 方法重载 编辑:程序博客网 时间:2024/06/05 21:11
介绍EM算法的材料里,我目前看过且觉得比较好的就是NG老师的CS229讲义和李航老师的统计学习方法。
我也提不出什么新东西,就结合混合高斯分布,在这两位牛人的基础上,谈一点自己觉得看待EM算法很重要的2个必须弄清楚的问题:为什么要有EM算法,为什么叫E步和M步,还解释了一些介绍EM算法时免不了要提到的公式。如果不把这些问题和公式解释清楚真的能理解em吗?我想可能不能
1. 为什么要有EM算法
我把EM算法当做最大似然估计的拓展,解决难以给出解析解的最大似然估计(MLE)问题。
考虑高斯分布,它的最大似然估计是这样的:
其中,
但如果这是个含有隐量Y的模型比如混合高斯模型,
上面假设共有K个高斯模型混合.每个高斯模型的参数为
可以认为,混合高斯分布的观测值是这样产生的:先以概率
这时,令
据群众反映,求和、取对数、再求和,这种形式求偏导较为费劲(到底有多费劲。。。其实放在混合高斯这里也不是那么费劲,有的情形远比混合高斯复杂)要是能把\log 拿到求和的最里层就好了,直接对最里层的式子求偏导岂不快哉?于是就有了EM算法
2. 为什么要分E步和M步
为了解决这个问题,有人想到了Jensen(琴生)不等式. \log 是个凹函数,以隐变量Y的任一函数
根据琴生不等式的性质,当随机变量函数 f(Y) 为常数时,不等式取等号。上式中的期望换成条件期望,分布 P(Y) 换成条件分布也是一样的。
注意(3)中的联合分布
只有当
式(5)才能取等号,注意到Q是Y的某一分布,有
所以只需要把Q取为给定X下,Y的后验分布,就能使式(5)取等号,下一步只需要最大化就行了.这时(5)为
其中:
好吧,直接对
1)先根据式(10),由
2)再把
就只需要最大化联合分布
M步很显然,就是最大化那一步,E步又从何谈起呢?式(11)可以写成
其实,E步就是求给定X下的条件期望,也就是后验期望,使得式(5)的琴生不等式能够取等号,是对琴声不等式中,小的那一端进行放大,使其等于大的那一端,这是一次放大;M步最大化联合分布,通过0梯度,拉格朗日法等方法求极值点,又是一次放大。只要似然函数是有界的,只要M步中的0梯度点是极大值点,一直放大下去就能找到最终所求。
我的知乎回答
3.另一个EM算法的简单实现
Kmeans是一种原型聚类算法(prototype-based clustering), 需要给数据集指定类簇的数量k, 然后找到k个聚类中心(原型),样本被归类为距离最近的原型所代表的类簇。考虑数据集X, 每个样本所属的类簇为隐变量Y, 将k个原型看做模型的参数
- 实例理解EM算法
- EM算法主观理解
- EM算法粗浅理解
- EM 算法理解
- EM算法简单理解
- 理解EM算法
- 通俗理解EM算法
- EM算法理解
- EM算法的理解
- EM算法理解
- 理解EM算法
- EM算法理解
- 52nlp:理解EM算法
- EM算法的通俗理解
- EM 算法 的简单理解
- EM (Expectation Maximization) 算法理解
- EM算法的深入理解
- em算法的一些理解
- 用DirectX实现多视图渲染
- ArcEngine中实现axMapControl控件鼠标左击右击响应不同事件
- Glide二次封装库的使用
- Android源码分析之Handler消息机制
- 百度地图的基本应用和遇到的坑
- 理解EM算法
- 事物
- vue-cli webpack中引入jquery
- 自定义CrashHandler 处理Uncaught异常
- Hibernate之主键生成策略
- Annotation processing is not supported for module cycles解决方案
- java异常多级捕获
- linux命令记录
- 线性代数实用概念