EM算法小结(对于GMM和pLSA)
2016-02-29 21:47
176 查看
EM算法,全称为Expectation-maximization algorithm,为期望最大算法,其基本思想是:首先随机选取一个值去初始化待估计的值
![](http://img.blog.csdn.net/20141119142305046)
,然后不断迭代寻找更优的
![](http://img.blog.csdn.net/20141119142335046)
使得其似然函数likelihood
![](http://img.blog.csdn.net/20141119142434921)
比原来的
![](http://img.blog.csdn.net/20141119142450410)
要大。换言之,假定现在得到了
![](http://img.blog.csdn.net/20141119142518131)
,想求
![](http://img.blog.csdn.net/20141119142539343)
,使得
![](http://img.blog.csdn.net/20141119142548109)
EM的关键便是要找到
![](http://img.blog.csdn.net/20141119152956312)
的一个下界
![](http://img.blog.csdn.net/20141119152550519)
(注:
![](http://img.blog.csdn.net/20141119145102518)
,其中,X表示已经观察到的随机变量),然后不断最大化这个下界,通过不断求解下界
![](http://img.blog.csdn.net/20141119152550519)
的极大化,从而逼近要求解的似然函数
![](http://img.blog.csdn.net/20141119152956312)
。
所以EM算法的一般步骤为:
1. 随机选取或者根据先验知识初始化
![](http://img.blog.csdn.net/20141119142305046)
;
2. 不断迭代下述两步
①给出当前的参数估计
![](http://img.blog.csdn.net/20141119142518131)
,计算似然函数
![](http://img.blog.csdn.net/20141119152956312)
的下界
![](http://img.blog.csdn.net/20141119152550519)
②重新估计参数θ,即求
![](http://img.blog.csdn.net/20141119142539343)
,使得
![](http://img.blog.csdn.net/20141119152555886)
3. 上述第二步后,如果
![](http://img.blog.csdn.net/20141119152956312)
收敛(即
![](http://img.blog.csdn.net/20141119152550519)
收敛)则退出算法,否则继续回到第二步。
上述过程好比在二维平面上,有两条不相交的曲线,一条曲线在上(简称上曲线
![](http://img.blog.csdn.net/20141213212154044)
),一条曲线在下(简称下曲线
![](http://img.blog.csdn.net/20141213212254984)
),下曲线为上曲线的下界。现在对上曲线未知,只已知下曲线,为了求解上曲线的最高点,我们试着不断增大下曲线,使得下曲线不断逼近上曲线,下曲线在某一个点达到局部最大值并与上曲线在这点的值相等,记录下这个值,然后继续增大下曲线,寻找下曲线上与上曲线上相等的值,迭代到
![](http://img.blog.csdn.net/20141119152956312)
收敛(即
![](http://img.blog.csdn.net/20141119152550519)
收敛)停止,从而利用当前下曲线上的局部最大值当作上曲线的全局最大值(换言之,EM算法不保证一定能找到全局最优值)。如下图所示:
![](http://img.blog.csdn.net/20141129191346265)
以下是详细介绍。
假定有训练集
![](http://img.blog.csdn.net/20141120010841491)
,包含m个独立样本,希望从中找到该组数据的模型p(x,z)的参数。
然后通过极大似然估计建立目标函数--对数似然函数:
![](http://img.blog.csdn.net/20141120010951176)
这里,z是隐随机变量,直接找到参数的估计是很困难的。我们的策略是建立
![](http://img.blog.csdn.net/20141120012432984)
的下界,并且求该下界的最大值;重复这个过程,直到收敛到局部最大值。
令Qi是z的某一个分布,Qi≥0,且结合Jensen不等式,有:
![](http://img.blog.csdn.net/20141120011131391)
为了寻找尽量紧的下界,我们可以让使上述等号成立,而若要让等号成立的条件则是:
![](http://img.blog.csdn.net/20141120011315802)
换言之,有以下式子成立:
![](http://img.blog.csdn.net/20141120011341074)
,且由于有:
![](http://img.blog.csdn.net/20141120011351609)
所以可得:
![](http://img.blog.csdn.net/20141120011352275)
最终得到EM算法的整体框架如下:
![](http://img.blog.csdn.net/20141120011357126)
评论:所以说,那个Qi(zi),实际上就是z的分布(z在给定x和theta的分布),说白了就是z的比例(比如对于xi=1.90这个样本,男的比例为0.9,女的比例为0.1) 也就是E步
M步,说是找最大化下界的theta,其实在GMM里面,就是根据极大似然估计(这个的确是最大化概率求参数的思想啊!)的思想,求theta值,作为更新。
在pLSA中:
由于
![](http://img.blog.csdn.net/20141119004850551)
和
![](http://img.blog.csdn.net/20141119004915308)
未知,所以我们用EM算法去估计
![](http://img.blog.csdn.net/20141119132914266)
这个参数的值。
而后,用
![](http://img.blog.csdn.net/20141119231428328)
表示词项
![](http://img.blog.csdn.net/20141119231439125)
出现在主题
![](http://img.blog.csdn.net/20141119231347433)
中的概率,即
![](http://img.my.csdn.net/uploads/201411/22/1416585670_2090.jpg)
,用
![](http://img.blog.csdn.net/20141119231757234)
表示主题
![](http://img.blog.csdn.net/20141119231347433)
出现在文档
![](http://img.blog.csdn.net/20141119231734648)
中的概率,即
![](http://img.my.csdn.net/uploads/201411/22/1416585677_1570.jpg)
,从而把
![](http://img.blog.csdn.net/20141119231257263)
转换成了“主题-词项”矩阵Φ(主题生成词),把
![](http://img.blog.csdn.net/20141119231307918)
转换成了“文档-主题”矩阵Θ(文档生成主题)。
最终求解出
![](http://img.blog.csdn.net/20141119231428328)
、
![](http://img.blog.csdn.net/20141119231757234)
。
,然后不断迭代寻找更优的
使得其似然函数likelihood
比原来的
要大。换言之,假定现在得到了
,想求
,使得
EM的关键便是要找到
的一个下界
(注:
,其中,X表示已经观察到的随机变量),然后不断最大化这个下界,通过不断求解下界
的极大化,从而逼近要求解的似然函数
。
所以EM算法的一般步骤为:
1. 随机选取或者根据先验知识初始化
;
2. 不断迭代下述两步
①给出当前的参数估计
,计算似然函数
的下界
②重新估计参数θ,即求
,使得
3. 上述第二步后,如果
收敛(即
收敛)则退出算法,否则继续回到第二步。
上述过程好比在二维平面上,有两条不相交的曲线,一条曲线在上(简称上曲线
),一条曲线在下(简称下曲线
),下曲线为上曲线的下界。现在对上曲线未知,只已知下曲线,为了求解上曲线的最高点,我们试着不断增大下曲线,使得下曲线不断逼近上曲线,下曲线在某一个点达到局部最大值并与上曲线在这点的值相等,记录下这个值,然后继续增大下曲线,寻找下曲线上与上曲线上相等的值,迭代到
收敛(即
收敛)停止,从而利用当前下曲线上的局部最大值当作上曲线的全局最大值(换言之,EM算法不保证一定能找到全局最优值)。如下图所示:
以下是详细介绍。
假定有训练集
,包含m个独立样本,希望从中找到该组数据的模型p(x,z)的参数。
然后通过极大似然估计建立目标函数--对数似然函数:
这里,z是隐随机变量,直接找到参数的估计是很困难的。我们的策略是建立
的下界,并且求该下界的最大值;重复这个过程,直到收敛到局部最大值。
令Qi是z的某一个分布,Qi≥0,且结合Jensen不等式,有:
为了寻找尽量紧的下界,我们可以让使上述等号成立,而若要让等号成立的条件则是:
换言之,有以下式子成立:
,且由于有:
所以可得:
最终得到EM算法的整体框架如下:
评论:所以说,那个Qi(zi),实际上就是z的分布(z在给定x和theta的分布),说白了就是z的比例(比如对于xi=1.90这个样本,男的比例为0.9,女的比例为0.1) 也就是E步
M步,说是找最大化下界的theta,其实在GMM里面,就是根据极大似然估计(这个的确是最大化概率求参数的思想啊!)的思想,求theta值,作为更新。
在pLSA中:
由于
和
未知,所以我们用EM算法去估计
这个参数的值。
而后,用
表示词项
出现在主题
中的概率,即
![](http://img.my.csdn.net/uploads/201411/22/1416585670_2090.jpg)
,用
表示主题
出现在文档
中的概率,即
![](http://img.my.csdn.net/uploads/201411/22/1416585677_1570.jpg)
,从而把
转换成了“主题-词项”矩阵Φ(主题生成词),把
转换成了“文档-主题”矩阵Θ(文档生成主题)。
最终求解出
、
。
相关文章推荐
- 百度2014笔试算法题
- servlet面试题(一)
- Cpp_继承
- 安卓通知的使用系列4:对话框通知的使用之列表对话框、单选列表对话框、多选列表对话框
- 软件工程第一步
- 100. Same Tree
- 第四天:css基础
- 动态规划(DP),压缩状态,插入字符构成回文字符串
- C#数据结构杂记
- 《构建之法》浏览笔记
- 算法代码实现之三向切分快速排序,Java实现
- Vijos P1097合并果子
- c语言编程规范和范例及写给自己的C++编程规范
- Java多线程之停止一个线程
- Android 之 zygote 与进程创建
- jQuery中通过ajax的get()函数读取页面的方法
- Linux System Programming读书笔记之进程调度算法CFS
- 通过java.net.URLConnection发送HTTP请求的方法
- 百度最新面试题集锦
- Windows安装Python、pip、easy_install