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. ...
随机推荐
- QuantStart量化交易文集
Over the last seven years more than 200 quantitative finance articles have been written by members o ...
- 剑指Offer——字符串的排列
题目描述: 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 输入描述: ...
- VC++SDK编程——字体及位置示例
#include <Windows.h> #include <tchar.h> #include <math.h> #define PI 3.1415926 BOO ...
- MapReduce的核心编程思想
1.MapReduce的核心编程思想 2.yarn集群工作机制 3.maptask并行度与决定机制 4.maptask工作机制 5.MapReduce整体流程 6.shuffle机制 7.yarn架构
- JavaWeb-Servlet开发2
---恢复内容开始--- ServletConfig 配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servle ...
- LVS-DR 配置测试
LVS Lvs体系结构 Lvs工作模式(3种) NAT-网络地址转换模式 当用户请求到达调度器时,调度器将请求报文的目标地址(即虚拟IP地址)改写成选定的Real Server地址,同时报文的目标端口 ...
- Yii 2.x 和1.x区别以及yii2.0安装
知乎上有个类似的问题:http://www.zhihu.com/question/22924271/answer/23085751 大致思路不会变,开发流程变化也不是很大.有变化的是1.yii2带入的 ...
- contentSize、contentInset和contentOffset 是 scrollView三个基本的属性区别和使用
contentSize.contentInset和contentOffset 是 scrollView三个基本的属性. contentSize: 其实就是scrollview可以滚动的区域,比如fra ...
- Linux系统——Rsync数据同步工具
Rsync的优点及缺点 优点:类似cp命令.scp命令,但rsync为增量复制工具 缺点:针对大文件,效率非常高(打包再比对),针对小文件,效率非常低. Rsync作用 (1)可使本地和远程两台主机之 ...
- td中不包含汉字的字符串不换行,包含汉字的能换行的问题原因及解决方法
今天项目中遇到一个问题,一长串的字符串如:003403FF0014E54016030CC655BC3242,但是如:中国河北省石家庄市裕华区槐安路雅清街交口 这样的就可以换行. 原因是:英文字母之间如 ...