---恢复内容开始---

今天学习LDA主题模型,看到Beta分布和Dirichlet分布一脸的茫然,这俩玩意怎么来的,再网上查阅了很多资料,当做读书笔记记下来:

先来几个名词:

共轭先验:

在贝叶斯统计理论中,如果某个随机变量Θ的后验概率 p(θ|x)和他的先验概率p(θ)属于同一个分布簇的,那么称p(θ|x)和p(θ)为共轭分布,同时,也称p(θ)为似然函数p(x|θ)的共轭先验。简言之,共轭就是我俩天生一对。我们后面会看到,多项分布的先验概率分布和其后验概率分布就是共轭的。

ok,下面我们来看看啥叫分布的分布:

还是抛硬币的实验,假设抛了5次硬币,出现了3次正面,你根据极大似然估计得出,抛一次硬币出现正面的概率是0.6。

但是这是绝对的吗?如果出现了2次正面呢?那得到的抛一次硬币出现正面的概率就是0.4了。

(下图是极大似然估计计算的过程)

然后你就会想到,哦,也许实际的概率是满足一定的分布的,我们实际实验的观测值得到的结果总是出自这个分布,一般都在最大值附近出现,比如0.5。

因此,人们引入了概率分布的先验概率:

比如说,在上述例子中,你觉得抛硬币出现正面的分布如下,他在0.8取得了最大值,也就是我们在抛硬币前认为这个硬币的若干组观测实验后计算的结果大部分在0.8附近。

好,假设你做了一组观测实验,我们可以通过上面定义的后验概率计算公式计算根据这组观测得到的后验概率,换言之,你调整了抛一次硬币出现正面的概率的分布,

或者说分布的分布。

好,下面问题来了,我怎么知道(假设)先验概率分布呢,这是个好问题,实际上可以任何种类的概率分布。你吐吐舌头,这和没说有啥区别。

别急,选择权在我们手中,既然可以选择任何种类的概率分布,我们干脆选一个性质好点的,容易计算的分布咯。

这个分布就是Beta分布:,其中,,x是[0 1]的随机变量。

Beta分布不同参数下的结果如下图所示,可以看出,Beta分布形态各异,可以是凹的、凸的、单调上升的、单调下降的;可以是曲线也可以是直线,而均匀分布也是特殊的Beta分布。由于Beta 分布能够拟合如此之多的形状,因此它在统计数据拟合中被广泛使用。

好,还是上面抛硬币的例子,可以得到:(其中X是5次抛硬币试验中出现三次的观测事件)

下面计算P(X):即X在先验概率下各种情况的条件概率和(或积分)

再计算后验概率就可以得到:

这里,2=5-3,也就是后验概率为,其中

从上面的公式我们看到,抛一次硬币出现正面的概率的 先验概率分布和其对应的后验概率分布是共轭的,这就会选择Beta分布的好处所在。

还是上面的例子,新的后验概率为:

即,新的最大值在实际观测得到的似然函数值0.6和先验概率中的0.8之间,这是根据先验概率和观测结果共同得到的更具肯定性的结论。

上面讨论了二维的情况,也就是只有两个参数(抛硬币出现正面的概率和抛硬币出现反面的概率),他们相加为1,如果有多个参数呢?(比如,掷一次骰子每个面出现的概率)。

这个时候使用同样的过程使用的就是Dirichlet Distribution。

假设有先验分布(比如,对应掷骰子的例子,k为6):

观测实验得到的似然函数为:(多项分布计算公式)

那么可以计算得到后验概率分布为:

下面给出Dirichlet分布的概率密度函数为:

,其中

比如三维的Dirichlet Distribution如下:

最后在概率论中,Dirichlet Distribution和Beta Distribution都叫做Conjugate Prior。根据不同的likelihood function,选择对应的conjugate prior作为对p(\theta)事先的估计(也就是先验概率分布)。

一个好的选择如下,可见二项分布使用的是Beta Distribution,多项分布使用的是Dirichlet Distribution。

可以看出,Beta分布是针对二项分布B(n,P)中参数P的分布的估计,其先验分布和后验分布是共轭的。而Dirichlet分布是针对多项分布中k各参数的估计,其先验分布和后验分布也是共轭的。这样,我们就可以用Beta分布去计算二项分布中的P,用Dirichlet分布去估计多项分布中的参数。

参考资料:

http://maider.blog.sohu.com/306392863.html

http://cos.name/2013/01/lda-math-beta-dirichlet/#more-6953

http://blog.163.com/zzz216@yeah/blog/static/162554684201381382117133/

etc...

LDA学习之beta分布和Dirichlet分布的更多相关文章

  1. Beta分布和Dirichlet分布

    在<Gamma函数是如何被发现的?>里证明了\begin{align*} B(m, n) = \int_0^1 x^{m-1} (1-x)^{n-1} \text{d} x = \frac ...

  2. 伯努利分布、二项分布、多项分布、Beta分布、Dirichlet分布

    1. 伯努利分布 伯努利分布(Bernoulli distribution)又名两点分布或0-1分布,介绍伯努利分布前首先需要引入伯努利试验(Bernoulli trial). 伯努利试验是只有两种可 ...

  3. 伯努利分布、二项分布、Beta分布、多项分布和Dirichlet分布与他们之间的关系,以及在LDA中的应用

    在看LDA的时候,遇到的数学公式分布有些多,因此在这里总结一下思路. 一.伯努利试验.伯努利过程与伯努利分布 先说一下什么是伯努利试验: 维基百科伯努利试验中: 伯努利试验(Bernoulli tri ...

  4. mahout系列----Dirichlet 分布

    Dirichlet分布可以看做是分布之上的分布.如何理解这句话,我们可以先举个例子:假设我们有一个骰子,其有六面,分别为{1,2,3,4,5,6}.现在我们做了10000次投掷的实验,得到的实验结果是 ...

  5. Dirichlet分布深入理解

    Dirichlet分布 我们把Beta分布推广到高维的场景,就是Dirichlet分布.Dirichlet分布定义如下 Dirichlet分布与多项式分布共轭.多项式分布定义如下 共轭关系表示如下 D ...

  6. LDA学习小记

    看到一段对主题模型的总结,感觉很精辟: 如何找到文本隐含的主题呢?常用的方法一般都是基于统计学的生成方法.即假设以一定的概率选择了一个主题,然后以一定的概率选择当前主题的词.最后这些词组成了我们当前的 ...

  7. 关于Beta分布、二项分布与Dirichlet分布、多项分布的关系

    在机器学习领域中,概率模型是一个常用的利器.用它来对问题进行建模,有几点好处:1)当给定参数分布的假设空间后,可以通过很严格的数学推导,得到模型的似然分布,这样模型可以有很好的概率解释:2)可以利用现 ...

  8. LDA-math-认识Beta/Dirichlet分布

    http://cos.name/2013/01/lda-math-beta-dirichlet/#more-6953 2. 认识Beta/Dirichlet分布2.1 魔鬼的游戏—认识Beta 分布 ...

  9. (转)Gamma分布,Beta分布,Multinomial多项式分布,Dirichlet狄利克雷分布

    1. Gamma函数 首先我们可以看一下Gamma函数的定义: Gamma的重要性质包括下面几条: 1. 递推公式: 2. 对于正整数n, 有 因此可以说Gamma函数是阶乘的推广. 3.  4.  ...

随机推荐

  1. C# 预定义语言

    官网: https://msdn.microsoft.com/zh-cn/library/88td0y52.aspx [Conditional("DEBUG")] 作为预处理中的一 ...

  2. 【spring-boot】spring-boot整合ehcache实现缓存机制

    EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. ehcache提供了多种缓存策略,主要分为内存和磁盘两级,所以无需担心 ...

  3. kubernetes清除状态为Evicted的pod

    kubectl get pods | grep Evicted | awk '{print $1}' | xargs kubectl delete pod 清除脚本 #!/bin/bash for p ...

  4. 模块讲解----json与pickle模块的区别

    1.在生产中,dumps和loads只进行一次,而且要用w把原来的数据冲掉,从而保证每次都是最新的. 2.虚拟机的快照,是每个快照都有一个文件,而不是全都不放在一起. 3.如果想生产好几个序列化,就生 ...

  5. 编辑器——sublime

    在这里只介绍自己经常使用的编辑器sublime 第一:安装node插件[出处:http://www.bubuko.com/infodetail-798008.html] 1.下载Nodejs插件,下载 ...

  6. 转:centos彻底删除文件夹、文件命令

    转自:http://www.cnblogs.com/kluan/p/4458296.html centos彻底删除文件夹.文件命令(centos 新建.删除.移动.复制等命令: 1.新建文件夹 mkd ...

  7. 如何使用iClap进行产品管理?

    iClap概述: iClap是DevStore的全新产品,于2015年8月29号上线,该款产品专注于为移动互联网企业提供企业规范化解决方案,颠覆传统的产品管理模式,实现产品管理场景化.APP.甚至原型 ...

  8. POJ - 3308 Paratroopers (最小点权覆盖)

    题意:N*M个格点,K个位置会有敌人.每行每列都有一门炮,能打掉这一行(列)上所有的敌人.每门炮都有其使用价值.总花费是所有使用炮的权值的乘积.求最小的总花费. 若每门炮的权值都是1,就是求最小点覆盖 ...

  9. django之路由(url)

    前言: Django大致工作流程 1.客户端发送请求(get/post)经过web服务器.Django中间件. 到达路由分配系统 2.路由分配系统根据提取 request中携带的的url路径(path ...

  10. Ubuntu 14.04.5 imx6 开发环境搭建

    1,下载VMware Workstation虚拟机 地址:http://1.xp510.com:801/xp2011/VMware10.7z 2,下载Ubuntu 14.04.5 LTS 32位Ubu ...