liyanbo的个人博客分享 http://blog.sciencenet.cn/u/liyanbo

博文

EM算法-1

已有 2407 次阅读 2015-10-28 10:27 |个人分类:ML|系统分类:科研笔记

    反复学习了EM算法,想从3个具体的EM算法来帮助理解这一方法,分别是K-means,GMM,Baum-Welch。其中K-means,GMM都是聚类算法,从聚类算法的角度,http://blog.csdn.net/abcjennifer/article/details/8170687这个博客做了很好的总结。简单从EM的角度说一下这三个算法。值得一提的是EM算法最后收敛的结果和初始点的选择有关,即只能得到局部最优解。

第一:K-means

样本(x1,x2...xn),聚类为S = {s1,s2...sk}

观察值:x1,x2...xn

隐藏变量:zij 表示xi是否属于sj

参数:k个聚类中心

目标函数:   $argmin_s \sum_{i=1}^{k}\sum_{x \in s_i} \left \| x -s_i \right \|^2$   

算法过程:随机选择k个点作为初始中心,将每个样本聚类到最近的中心, 更新每个类的中心,不断迭代到收敛。显然目标函数会随着迭代过程不断变小。



第二:GMM

关于EM算法最让我印象深刻的一句话是,它不仅适用于有隐藏变量(或缺失数据),而且适用于可以用于通过假设存在一个额外的隐藏变量使模型变得简单。上面的K-means,每个样本点是属于某一个类别,这是它的隐藏变量。而GMM,这个混合模型,并不存在每一个样本点属于某一个具体的高斯分布,但是可以通过假设,model简单。

公式部分,参考内容很详细。简单解释一下各个公式,某一个样本点出现的概率是各个高斯分布下该样本点出现的概率,由于每个高斯分布的比例所以要乘上 $\pi$ 。

由于样本点互相独立,所以似然函数


对于这样一个似然函数,用一般的方法很难进行参数估计。因此我们用EM算法,引入一个隐藏变量z,

$l(\theta ) = \sum_{i=1}^{N}log\{p(x;\theta)\}= \sum_{i=1}^{N}log\{\sum_{z}p(x,z;\theta )\}$

http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html

从这篇博客的角度可以看成不断优化似然函数下届的问题。也可以从相对熵(通常用来衡量参数估计前后概率分布的差异)的角度来看:

 

$F(\bar{\theta }|\theta ) = \sum_{z}p(x,z|\theta)log{p(x,z|\bar{\theta})}$


$F(\bar{\theta }|\theta ) - F(\theta |\theta ) \leq p(x|\bar{\theta }) - p(x|\theta)\\ \theta_{m+1} = Argmax_{\theta} F(\theta| \theta_{m}})$

这两种理解对应的是对下届求极大似然和对F函数求极大似然。对应的Estep是一个计算后验概率的过程,Mstep是极大似然求导为0的过程。

其实从整个问题来看,GMM并不像一个聚类问题,好像就是一个参数估计问题。但是如果最后隐藏类别是0,1变量,每一个样本点只属于一个分布。就可以将GMM看成 对于每个类假定一个分布模型,试图找到每个类最好的模型。比如说有班上男女生的身高,就可以将男生的身高和女生的身高看成两个正太分布。






参考内容:

http://blog.csdn.net/abcjennifer/article/details/8170687

https://en.wikipedia.org/wiki/Expectation%E2%80%93maximization_algorithm

http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html



https://blog.sciencenet.cn/blog-1515646-931596.html

上一篇:师姐代码心得-1解析命令行
下一篇:leetcode 回文判断
收藏 IP: 159.226.43.*| 热度|

1 陈南晖

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-7-18 03:37

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部