本文作为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推导的更多相关文章

  1. PLSA及EM算法

    前言:本文主要介绍PLSA及EM算法,首先给出LSA(隐性语义分析)的早期方法SVD,然后引入基于概率的PLSA模型,其参数学习采用EM算法.接着我们分析如何运用EM算法估计一个简单的mixture ...

  2. 梯度下降和EM算法,kmeans的em推导

    I. 牛顿迭代法给定一个复杂的非线性函数f(x),希望求它的最小值,我们一般可以这样做,假定它足够光滑,那么它的最小值也就是它的极小值点,满足f′(x0)=0,然后可以转化为求方程f′(x)=0的根了 ...

  3. NLP —— 图模型(三)pLSA(Probabilistic latent semantic analysis,概率隐性语义分析)模型

    LSA(Latent semantic analysis,隐性语义分析).pLSA(Probabilistic latent semantic analysis,概率隐性语义分析)和 LDA(Late ...

  4. [IR] Concept Search and PLSA

    [Topic Model]主题模型之概率潜在语义分析(Probabilistic Latent Semantic Analysis) 感觉LDA在实践中的优势其实不大,学好pLSA才是重点 阅读笔记 ...

  5. [Bayes] Concept Search and PLSA

    [Topic Model]主题模型之概率潜在语义分析(Probabilistic Latent Semantic Analysis) 感觉LDA在实践中的优势其实不大,学好pLSA才是重点 阅读笔记 ...

  6. EM算法笔记

    EM算法在很多地方都用使用到,比如简单的K-means算法,还有在隐马尔可夫里面,也涉及到了EM算法,可见EM算法在机器学习领域的重要地位.在这里就写一下我对于EM算法的一些理解笔记.后续有新的理解也 ...

  7. 混合高斯模型的EM求解(Mixtures of Gaussians)及Python实现源代码

    今天为大家带来混合高斯模型的EM推导求解过程. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHVhbnl1YW5zZW4=/font/5a6L5L2T/ ...

  8. LDA( Latent Dirichlet Allocation)主题模型 学习报告

    1     问题描述 LDA由Blei, David M..Ng, Andrew Y..Jordan于2003年提出,是一种主题模型,它可以将文档集中每篇文档的主题以概率分布的形式给出,从而通过分析一 ...

  9. AI人工智能顶级实战工程师 课程大纲

    课程名称    内容    阶段一.人工智能基础 — 高等数学必知必会     1.数据分析    "a. 常数eb. 导数c. 梯度d. Taylore. gini系数f. 信息熵与组合数 ...

随机推荐

  1. Python--urllib3库

    Urllib3是一个功能强大,条理清晰,用于HTTP客户端的Python库,许多Python的原生系统已经开始使用urllib3.Urllib3提供了很多python标准库里所没有的重要特性:   1 ...

  2. 容器中跨主机的网络方案-Weave

    容器中的网络是建立docker集群的重要内容. 本文将介绍如何用Weave实现容器的多节点互通. Weave是一个开源的项目,其网站为: https://www.weave.works/ 其工作原理相 ...

  3. php redis 常用方法

    一些php redis 常用的方法: 1.hGet($key,$hashKey) Redis Hget 命令用于返回哈希表中指定字段的值. <?php $redis = new redis(); ...

  4. WCF 身份验证 通过检查客户端IP

    WCF 身份验证 功能描述: 服务运行的时候,通过配置文件获取所有可访问SOA端的服务IP.每次客户调用服务时获取IP对比判定通过. 以下是获取客户端IP的代码: /***************** ...

  5. python3+ros api

    官方文档:https://wiki.mikrotik.com/wiki/Manual:API_Python3 # !/usr/bin/env python# -*- coding:utf-8 -*-# ...

  6. AD芯片的基准参考电压问题

    基准参考电压的精度一般非常高的! AD芯片 : AD9226的基准参考电压  误差一般是  千分之一! 我之前用万用表测量AD9226的参考电压大概是1.89V(这款AD的正确参考电压应该是2V),所 ...

  7. 转摘:ashx+jquery-autocomplete文本框输入提示功能Asp.net

    引入所需文件 <script type="text/javascript" src="JS/jquery-1.8.2.min.js"></sc ...

  8. C# 读取文件中的sql语句 创建数据库以及表结构

    大概思路是: 读取文件 根据文件中行内容为GO 作为分割  一条条放到list中 然后在程序中逐条执行sql语句; 值得一提的是 创建数据库的语句是不允许放到程序事务中执行的 所以目前我是分了两个文本 ...

  9. 深入剖析SolrCloud(四)

    作者:洞庭散人 出处:http://phinecos.cnblogs.com/ 本博客遵从Creative Commons Attribution 3.0 License,若用于非商业目的,您可以自由 ...

  10. GCC笔记(警告.优化以及调试选项)

    GCC提供了大量的警告选项,对代码中可能存在的问题提出警告,通常可以使用-Wall来开启以下警告: -Waddress -Warray-bounds (only with -O2) -Wc++0x-c ...