PLSA的EM推导
本文作为em算法在图模型中的一个应用,推导plsa的em算法。
1 em算法
em算法是解决一类带有隐变量模型的参数估计问题。
1.1 模型的定义
输入样本为
,对应的隐变量为
。待估计的模型参数为
,目标为极大化似然函数

对于上式的优化,不能通过直接对
进行求导,因为一旦求导,就有如下的形式:

显然是不好求的。
1.2 em算法的迭代过程
a. 初始化:随机初始参数的
b. E step:
计算隐变量的后验分布

c. M step:
迭代参数

其中,Q函数为X,Z的对数联合分布在Z的后验分布下的期望
上面的式子,将样本和隐变量都表示成矩阵的形式,让人有些不太好套公式。
2 高斯混合模型
2.1 基本模型
混合高斯模型认为,变量
服从一个多峰的高斯分布,由数个高斯分布组合而成。所以我们首先引入隐变量
,并且我们认为变量
通过这样一个过程生成。引入隐变量的高斯混合模型用图模型表示:


因此该图模型表示的联合概率为:
2.2 em算法的推导
e step: 计算每一个样本的后验概率,遍历k等于1的各种情况

M step: 首先推导Q方程

对于每一对

由于N个样本独立,所以有

好了,我们开始极大化这个期望
求均值
解方程得

求方差比较复杂,直接给出结论:

其中:

最后求
,注意这里
的概率和为1,用拉格朗日乘子法解受限优化问题。有拉格朗日函数

对
求偏导有

有k个关于
的方程,对这些方程做累加有

其中,
是概率,对k的累加和为1
至此,混合高斯模型的em迭代方法推导完毕,总结如下
E step:

M step:



其中

好了,我们完成了混合高斯模型的推导。混合高斯模型是一般高斯模型的推广,使得概率密度估计的外延得到扩展。另外,我们搞清楚了em算法使用的细节,在e step,我们求每一对(zn,xn)的后验概率和联合概率,遍历zn的所有情况,然后求每一个对数似然函数的期望,并在N上求和,就得到了目标函数。
3 PLSA主题模型
PLSA主题模型是比较老的模型了,逐渐被LDA这种更bayesian的方法取代了。我们来看看图模型。

3.1 模型假设
对于一篇文档
,在每一个词的位置,首先选择一个topic,然后在topic的词分布中选择一个词作为当前位置的词
。输入样本为
,需要估计的参数为
在主题上的分布
,以及主题下词的分布
。
首先求联合概率。对于
这一Complete样本,
有联合概率

有后验概率
有一对样本的期望函数

这里,我们取
为常数。得到了整体的期望函数
这里,我们没有考虑词与词之间的相互顺序。接下来,我们要优化这个问题。
(1) 对于
,根据拉格朗日乘子法有代价函数:
对
求偏导,有

对K个主题方程求和,可得

可得

(2) 对于
,根据拉格朗日乘子法有代价函数:

对
求偏导,有

对M个词累加,可得

好的,我们可以总结一下过程了。
E step
计算后验概率

M step
迭代更新


好了,我们推导了一遍混合高斯模型,又自行推导了一遍plsa.EM算法的精华基本掌握了。
PLSA的EM推导的更多相关文章
- PLSA及EM算法
前言:本文主要介绍PLSA及EM算法,首先给出LSA(隐性语义分析)的早期方法SVD,然后引入基于概率的PLSA模型,其参数学习采用EM算法.接着我们分析如何运用EM算法估计一个简单的mixture ...
- 梯度下降和EM算法,kmeans的em推导
I. 牛顿迭代法给定一个复杂的非线性函数f(x),希望求它的最小值,我们一般可以这样做,假定它足够光滑,那么它的最小值也就是它的极小值点,满足f′(x0)=0,然后可以转化为求方程f′(x)=0的根了 ...
- NLP —— 图模型(三)pLSA(Probabilistic latent semantic analysis,概率隐性语义分析)模型
LSA(Latent semantic analysis,隐性语义分析).pLSA(Probabilistic latent semantic analysis,概率隐性语义分析)和 LDA(Late ...
- [IR] Concept Search and PLSA
[Topic Model]主题模型之概率潜在语义分析(Probabilistic Latent Semantic Analysis) 感觉LDA在实践中的优势其实不大,学好pLSA才是重点 阅读笔记 ...
- [Bayes] Concept Search and PLSA
[Topic Model]主题模型之概率潜在语义分析(Probabilistic Latent Semantic Analysis) 感觉LDA在实践中的优势其实不大,学好pLSA才是重点 阅读笔记 ...
- EM算法笔记
EM算法在很多地方都用使用到,比如简单的K-means算法,还有在隐马尔可夫里面,也涉及到了EM算法,可见EM算法在机器学习领域的重要地位.在这里就写一下我对于EM算法的一些理解笔记.后续有新的理解也 ...
- 混合高斯模型的EM求解(Mixtures of Gaussians)及Python实现源代码
今天为大家带来混合高斯模型的EM推导求解过程. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHVhbnl1YW5zZW4=/font/5a6L5L2T/ ...
- LDA( Latent Dirichlet Allocation)主题模型 学习报告
1 问题描述 LDA由Blei, David M..Ng, Andrew Y..Jordan于2003年提出,是一种主题模型,它可以将文档集中每篇文档的主题以概率分布的形式给出,从而通过分析一 ...
- AI人工智能顶级实战工程师 课程大纲
课程名称 内容 阶段一.人工智能基础 — 高等数学必知必会 1.数据分析 "a. 常数eb. 导数c. 梯度d. Taylore. gini系数f. 信息熵与组合数 ...
随机推荐
- 【转】使用JMeter 完成常用的压力测试(一)
本文介绍了 JMeter 相关的基本概念.并以 JMeter 为例,介绍了使用它来完成最常用的三种类型服务器,即 Web服务器.数据库服务器和消息中间件,压力测试的方法.步骤以及注意事项. 讲到测试, ...
- 【转】Jmeter测试结果分析
Jmeter测试结果分析这一篇,我打算分成上下两部分.上篇,主要讲述如何使用jmeter中Assertion对结果进行简单的分类:下篇,主要讲述的是当我们拿到测试结果后,我们应该如何去看待这些测试结果 ...
- java实例三维空间求点之间的距离。。。。
package com.b; public class Ponit { private double x; private double y; private double z; public Pon ...
- juc线程池原理(四): 线程池状态介绍
<Thread之一:线程生命周期及五种状态> <juc线程池原理(四): 线程池状态介绍> 线程有5种状态:新建状态,就绪状态,运行状态,阻塞状态,死亡状态.线程池也有5种状态 ...
- 2012_p2 寻宝 (treasure.cpp/c/pas)
2012_p2 寻宝 (treasure.cpp/c/pas) 时间限制: 1 Sec 内存限制: 128 MB提交: 23 解决: 9[提交][状态][讨论版][命题人:外部导入] 题目描述 2 ...
- 1056 Mice and Rice
题意:略 思路:利用queue来模拟一轮一轮的比赛.自己第一遍做的时候完全没有用queue做的意识,代码写的贼烦最后还只得了17分,非常郁闷.通过本题反映出对queue的应用场景季度不熟悉,STL里面 ...
- MyBatis 工具 pndao - 自动写 SQL
pndao的原理并不复杂,是基于MyBatis的方法命名约定来生成SQL,并且写入MyBatis需要的XML. 写之前会判断是否已经存在XML或者注解,如果已经存在则略过此方法,所以无论是注解还是XM ...
- Flask之自定义模型类
4.3自定义模型类 定义模型 模型表示程序使用的数据实体,在Flask-SQLAlchemy中,模型一般是Python类,继承自db.Model,db是SQLAlchemy类的实例,代表程序使用的数据 ...
- javascript原型继承中的两种方法对比
在实际的项目中,我们通常都是用构造函数来创建一个对象,再将一些常用的方法添加到其原型对象上.最后要么直接实例化该对象,要么将它作为父类,再申明一个对象,继承该父类. 而在继承的时候有两种常用方式,今天 ...
- How To Install Git on CentOS 7
Introduction Version control has become an indispensable tool in modern software development. Versio ...