LDA学习之beta分布和Dirichlet分布
---恢复内容开始---
今天学习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分布的更多相关文章
- Beta分布和Dirichlet分布
在<Gamma函数是如何被发现的?>里证明了\begin{align*} B(m, n) = \int_0^1 x^{m-1} (1-x)^{n-1} \text{d} x = \frac ...
- 伯努利分布、二项分布、多项分布、Beta分布、Dirichlet分布
1. 伯努利分布 伯努利分布(Bernoulli distribution)又名两点分布或0-1分布,介绍伯努利分布前首先需要引入伯努利试验(Bernoulli trial). 伯努利试验是只有两种可 ...
- 伯努利分布、二项分布、Beta分布、多项分布和Dirichlet分布与他们之间的关系,以及在LDA中的应用
在看LDA的时候,遇到的数学公式分布有些多,因此在这里总结一下思路. 一.伯努利试验.伯努利过程与伯努利分布 先说一下什么是伯努利试验: 维基百科伯努利试验中: 伯努利试验(Bernoulli tri ...
- mahout系列----Dirichlet 分布
Dirichlet分布可以看做是分布之上的分布.如何理解这句话,我们可以先举个例子:假设我们有一个骰子,其有六面,分别为{1,2,3,4,5,6}.现在我们做了10000次投掷的实验,得到的实验结果是 ...
- Dirichlet分布深入理解
Dirichlet分布 我们把Beta分布推广到高维的场景,就是Dirichlet分布.Dirichlet分布定义如下 Dirichlet分布与多项式分布共轭.多项式分布定义如下 共轭关系表示如下 D ...
- LDA学习小记
看到一段对主题模型的总结,感觉很精辟: 如何找到文本隐含的主题呢?常用的方法一般都是基于统计学的生成方法.即假设以一定的概率选择了一个主题,然后以一定的概率选择当前主题的词.最后这些词组成了我们当前的 ...
- 关于Beta分布、二项分布与Dirichlet分布、多项分布的关系
在机器学习领域中,概率模型是一个常用的利器.用它来对问题进行建模,有几点好处:1)当给定参数分布的假设空间后,可以通过很严格的数学推导,得到模型的似然分布,这样模型可以有很好的概率解释:2)可以利用现 ...
- LDA-math-认识Beta/Dirichlet分布
http://cos.name/2013/01/lda-math-beta-dirichlet/#more-6953 2. 认识Beta/Dirichlet分布2.1 魔鬼的游戏—认识Beta 分布 ...
- (转)Gamma分布,Beta分布,Multinomial多项式分布,Dirichlet狄利克雷分布
1. Gamma函数 首先我们可以看一下Gamma函数的定义: Gamma的重要性质包括下面几条: 1. 递推公式: 2. 对于正整数n, 有 因此可以说Gamma函数是阶乘的推广. 3. 4. ...
随机推荐
- python基础-第六篇-6.2模块
python之强大,就是因为它其提供的模块全面,模块的知识点不仅多,而且零散---一个字!错综复杂 没办法,二八原则抓重点咯!只要抓住那些以后常用开发的方法就可以了,哪些是常用的?往下看--找答案~ ...
- Oracle扩容表空间
1.程序报错,无法进行修改操作,通过日志,看到如下错误 2.通过google查询,问题是表空间文件不够了 "表空间大小(M)",(a.bytes "已使用空间(M)&qu ...
- 细说PHP的FPM
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++基础概念++ C ...
- JVM内存分配原理
堆栈常量池等内存分配原理详解 存储的方式: 寄存器 栈(stack) 堆(heap) 静态域 常量池 非RAM存储 JAVA寄存器 最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. ...
- http超文本传输协议,get与post区别
一:什么是http? http:超文本传输协议(HTTP,HyperText Transfer Protocol),是一个客户端和服务器端传输的标准,是应用层通信协议.客户端是中端用户,服务器端是网站 ...
- Django restful Framework 之Requests and Response 方法
前言: 本章主要介绍REST framework 内置的必要的功能. Request objects Response objects Status codes Wrapping API views ...
- android系统和ios系统是如何实现推送的,ios为什么没有后台推送
ios系统为什么没有后台推送? iOS 为了真正地为用户体验负责,不允许应用在后台活动.有了这个限制,但是对于终端设备,应用又是有必要“通知”到达用户的,随时与用户主动沟通起来的(典型的如聊天应用). ...
- 解决Ubuntu sudo apt-get install遇到的E: Sub-process /usr/bin/dpkg returned an error code (1)问题
如题,本人在安装samba等软件的时候,在命令行敲入: sudo apt-get install samba4命令的时候,系统在下载之后报错,大致内容如下: ~$ sudo apt-get insta ...
- Winter-1-D Max Sum 解题报告及测试数据
Time Limit:1000MS Memory Limit:32768KB Description Given a sequence a[1],a[2],a[3]......a[n], your j ...
- 【android】activity、fragment传值例子
1:Activity篇 1.1向Activity传值 关键点在于putExtra.如果传递类的话,记得类实现Serializable接口 Intent intent = new Intent(Firs ...