伯努利分布、二项分布、Beta分布、多项分布和Dirichlet分布与他们之间的关系,以及在LDA中的应用
在看LDA的时候,遇到的数学公式分布有些多,因此在这里总结一下思路。
一、伯努利试验、伯努利过程与伯努利分布
先说一下什么是伯努利试验:
维基百科伯努利试验中:
伯努利试验(Bernoulli trial)是只有两种可能结果的单次随机试验。
即:对于一个随机变量而言,P(X=1)=p以及P(X=0)=1-p。一般用抛硬币来举例。另外,此处也描述了伯努利过程:
一个伯努利过程(Bernoulli process)是由重复出现独立但是相同分布的伯努利试验组成,例如抛硬币十次。
维基百科中,伯努利过程的描述如下:
换言之,伯努利过程是一列独立同分布的伯努利试验。
伯努利分布(the Bernoulli distribution,又名两点分布或者0-1分布,是一个离散型概率分布。
记其成功概率为p(0≤p≤1),失败概率为q=1-p。
注意:此处描述的是在“一次”抛硬币,而不是多次。
二、(还不知道名字的分布)【存疑:看到名字了再来修改】
与伯努利分布对应,如果在一次实验中,出现的结果不是2种而是k种可能,则成为是:(还不知道名字的分布)。
常见例子:掷骰子(有多个可能结果)。
可以认为:伯努利分布是此分布在k=2时的特殊情况。
三、二项分布
二项分布:
在概率论和统计学中,二项分布是n个独立的是/非试验中成功的次数的离散概率分布,其中每次试验的成功概率为p。这样的单次成功/失败试验又称为伯努利试验。实际上,当n = 1时,二项分布就是伯努利分布。
也就是说,单次抛硬币是伯努利分布,多次抛硬币是二项分布。二项分布中:
$P(X=x|n,p) = C_{n}^{x}p^{x}(1-p)^{n-x}$
即:抛硬币n次,得到x次为正面朝上的概率分布。(注意:虽然一般认为硬币是均匀的,这样硬币正面朝上的概率是0.5.但是,在抛硬币试验中,我们并不假设已经知道这种情况,而是假定对硬币正面朝上的概率完全未知)
四、多项分布
与二项分布之于伯努利分布相同,多项分布相当于进行n次(还不知道名字的分布)试验。假设k个实验结果的概率分别为:$p_{1}, p_{2},…, p_{k}$,得到的k个结果的次数分别是:$x_{1}, x_{2},…, x_{k}$,则:
$P(x_{1}, x_{2},…, x_{k}|n, p_{1}, p_{2},…, p_{k}) = \frac{n!}{Π_{i=1}^{k}x_{i}!} * p_{i}^{x_{i}}$
其中,$∑_{i}x_{i}=n$。
即:掷骰子n次,得到k个面朝上的次数分别为:$x_{1}, x_{2},…, x_{k}$的概率分布。
可以认为:多项分布是二项分布的推广,二项分布是多项分布在k=2时的特殊情况。根据多项式的公式,在k=2时,可以推出二项分布的公式。
五、Beta分布
我试着模仿下面的Dirichlet分布中的例子来解释Beta分布:
Beta分布可以看做是分布之上的分布。我们还是以抛硬币为例。不过,我们并不假设硬币是均匀的(也就是说:并不假设每次抛硬币,正面朝上的概率为0.5),所以抛硬币的正面朝上的概率p是未知的(只知道p∈[0,1])。如果进行一次二项分布试验,在这次二项分布试验中,抛硬币10000次,其中正面朝上7000次,反面朝上3000次,我们可以得到,正负面朝上的概率分别为{p,1-p}={0.7,0.3}。但是我们并不确信这个结果是正确的。我们想要做10000次二项分布试验,在每次二项分布试验中,均抛硬币10000次(说不定在其他二项分布实验中,得到的正负面朝上的概率是{0.2,0.8}或者{0.6,0.4},这些情况都有可能),那么,我们想要知道,在这样的多次重复二项分布实验中,抛硬币最后得到正负面朝上概率为{0.7,0.3}这样概率为多少?这就是在求抛硬币的概率分布之上的分布。这样的分布就叫做Beta分布。
正如二项分布可以看做多次进行伯努利试验所得到的分布一样,Beta分布也可以看做是多次进行二项分布的试验所得到的分布,是分布之上的分布。
Beta分布的公式如下:
$p(p|α,β) = \frac{1}{B(α,β)} * p^{α-1} * (1-p)^{β-1}$
其中,β∈[0,1],$B(α,β) = \frac{Γ(α+β)}{Γ(α)Γ(β)} ≈ C_{α-1}^{α+β-2}$ 。【存疑:此处的B(α,β)在有的出处为B(α,β)的倒数!】
注:在“LDA数学八卦”中,作者求得α=k, β=n-k-1。
此处涉及到了Gamma分布Γ(x),我们暂时不讲,只要知道:Γ(n) = (n-1)! 即可。
Beta分布是二项分布之上的分布(distribution over bionominals),也是二项分布的共轭先验分布(conjugate prior of bionominals)。对于什么是共轭先验分布,可以参看这里:PRML Chapter 2. Probability Distributions。【我现在还没看懂。。orz】
概率语言模型及其变形系列(2)-LDA及Gibbs Sampling中也提到了:
什么是共轭分布呢?在文本语言模型的参数估计-最大似然估计、MAP及贝叶斯估计一文中我们可以看到,当我们为二项分布的参数p选取的先验分布是Beta分布时,以p为参数的二项分布用贝叶斯估计得到的后验概率仍然服从Beta分布,由此我们说二项分布和Beta分布是共轭分布。这就是共轭分布要满足的性质。在LDA中,每个文档中词的Topic分布服从Multinomial分布,其先验选取共轭先验即Dirichlet分布;每个Topic下词的分布服从Multinomial分布,其先验也同样选取共轭先验即Dirichlet分布。
六、Dirichlet分布
在The Dirichlet Distribution 狄利克雷分布 (PRML 2.2.1)举了一个很通俗的例子:
Dirichlet分布可以看做是分布之上的分布。如何理解这句话,我们可以先举个例子:假设我们有一个骰子,其有六面,分别为{1,2,3,4,5,6}。现在我们做了10000次投掷的实验,得到的实验结果是六面分别出现了{2000,2000,2000,2000,1000,1000}次,如果用每一面出现的次数与试验总数的比值估计这个面出现的概率,则我们得到六面出现的概率,分别为{0.2,0.2,0.2,0.2,0.1,0.1}。现在,我们还不满足,我们想要做10000次试验,每次试验中我们都投掷骰子10000次。我们想知道,出现这样的情况使得我们认为,骰子六面出现概率为{0.2,0.2,0.2,0.2,0.1,0.1}的概率是多少(说不定下次试验统计得到的概率为{0.1, 0.1, 0.2, 0.2, 0.2, 0.2}这样了)。这样我们就在思考骰子六面出现概率分布这样的分布之上的分布。而这样一个分布就是Dirichlet分布。
如果理解了Beta分布与二项分布的关系,Dirichlet分布于多项分布之间的关系就可以理解了。简单来说,Dirichlet分布是多项分布之上的分布。也就是说,在多次进行多项分布试验中,每次都会得到一组多项分布中k个结果的概率向量$p^{→} = {p_{1}, p_{2},…, p_{k}}$,那么,得到某一个概率向量(如p_{0}^{→})的分布是什么样的呢?这就是Dirichlet分布,其公式如下:
$p(P={p_{i}}|α_{i}) = \frac{Π_{i}Γ(α_{i})}{Γ(∑_{i}α_{i})} * Π_{i}p_{i}^{α_{i}-1}$
其中,
$∑_{i}p_{i} = 1, p_{i} ≥ 0$
。
这里面也涉及到了Gamma分布,我们还是先略过不讲。
和之前一样,可以认为:Beta分布是Dirichlet分布在k=2时的特殊情况。我们令:k=2, α = α_{1}, β = α_{2},即可得到Beta分布的公式。
Dirichlet分布是多项分布之上的分布(distribution over multinominals),也是多项分布的共轭先验分布(conjugate prior of multinominals)。
七、Gamma分布(Γ(x)分布)
关于Gamma分布,Rickjin写的“LDA数学八卦”中有详细的描述,强烈推荐。我看过了一遍,但还没有理解,因此略过,等搞明白了再说。【存疑:可考虑再专门写一篇gamma分布的文章】
八、多项分布、Dirichlet分布在LDA中的应用
此处只是初步说一下自己对多项分布、Dirichlet分布与LDA的关系的理解。
LDA模型在描述的时候,是从生成文章的方向来描述的,但在实际计算中,一般是根据已有的文章(即:语料库corpus)来反推文章的主题。
我们先按生成文章的方向来讲。
LDA是假设一篇文章中有多个主题,每个主题有对应的单词,我们分别将其对应为doc-topic,和topic-word模型。
我们先来看看topic-word模型:
对于一个topic,它对应的一个word库,在这个word库中,每一个word都有可能被选择,这个,不过不同word被选择的概率不同,因此,这个topic-word模型中word的分布为多项分布。根据多项分布的公式:P(x_{1}, x_{2},…, x_{k}|n, p_{1}, p_{2},…, p_{k}),其中,x_{i}就是单词word的出现次数,p_{i}就是单词word的出现概率。
再来看doc-topic模型:
对于一篇文章中,可能会有多个主题,每个主题的概率也是不同的,那么,doc-topic模型也是多项分布吗?注意:在一篇文章doc中,文章的主题并不是随机选择的,而是有确定主题的,也就是说,对于一片doc,已经默认其主题的概率p_{i}的是固定的。那么,我们从语料库中选择单词来形成这篇文章,且这篇文章的主题符合概率向量p_{→}={p_{1}, p_{2},…, p_{k}},这个分布就是Dirichlet分布。根据Dirichlet分布的公式:p(P={p_{i}}|α_{i}),其中,p_{i}就是各个主题出现的概率。【存疑:此处p_{i}与上一段的p_{i}所指的不是一个东西吧?应该一个是在一个主题中各个word的出现概率p,一个是在一篇文章doc中,各个主题出现的概率p。】
【存疑:现在不明白的是,Dirichlet分布中的α_{i}的意义是什么?概率语言模型及其变形系列(2)-LDA及Gibbs Sampling中有说到:α^{→}为Dirichlet分布的参数,在概率语言模型中通常会根据经验给定,由于是参数向量服从分布的参数,因此称为“hyperparamer”。不过,还是没有说他的意义是什么?】
LDA模型要解决的主要问题是:
已知:
Dirichlet分布的公式:$p(P={p_{i}}|α_{i})$
多项分布的公式:$P(x_{1}, x_{2},…, x_{k}|n, p_{1}, p_{2},…, p_{k})$
在此情况下,根据已知的各个word(如$x_{1}, x_{2},…, x_{k}$)的统计词频等信息,求出各个word属于各个主题的概率,即:
$P({p_{i}}|x_{1}, x_{2},…, x_{k}) = ?$
(注:根据共轭先验分布的公式,参看CMU的一个PPTDirichlet Distribution, Dirichlet Process and Dirichlet Process Mixture,可以得到:
$P({p_{i}}|x_{1}, x_{2},…, x_{k}) = \frac{Π_{i}Γ(α_{i}+x_{i})}{Γ(N+∑_{i}α_{i})} * Π_{i}p_{i}^{α_{i}+x_{i}-1}$
)$
根据不同的主题进行排序,从而可以得到不同主题情况下的所有word的排序结果,我们一般取前20~100个单词,就可以看出这个主题是哪一类的。
九、【存疑:不明白的问题】:
- 为何关于二项分布的分布是Beta分布的那种形式(即:如何推导出来的)?
- 为何关于多项分布的分布是Dirichlet分布的形式?
- Beta分布中的α、β参数所代表的意义是什么?
- Dirichlet分布中的α^{→} = {α_{i}}所代表的意义是什么?
- LDA模型中的φ参数在哪个分布里,怎么没有看到?它的意义是什么?
- LDA模型中,每个topic下对应的word是所有的corpus中的words吗,还是只是其中的一部分word所组成的子集?
- LDA模型中,每个文章doc中,选择topic也和和每个topic中选择word一样,都是多项分布吗?
参考资料:
- “LDA数学八卦” —— Rickjin
- 伯努利试验
- 伯努利过程
- 伯努利分布
- 二项分布
- PRML Chapter 2. Probability Distributions
- The Dirichlet Distribution 狄利克雷分布 (PRML 2.2.1)
- Dirichlet Distribution, Dirichlet Process and Dirichlet Process Mixture
- 概率语言模型及其变形系列(2)-LDA及Gibbs Sampling
伯努利分布、二项分布、Beta分布、多项分布和Dirichlet分布与他们之间的关系,以及在LDA中的应用的更多相关文章
- 机器学习的数学基础(1)--Dirichlet分布
机器学习的数学基础(1)--Dirichlet分布 这一系列(机器学习的数学基础)主要包括目前学习过程中回过头复习的基础数学知识的总结. 基础知识:conjugate priors共轭先验 共轭先验是 ...
- (转)机器学习的数学基础(1)--Dirichlet分布
转http://blog.csdn.net/jwh_bupt/article/details/8841644 这一系列(机器学习的数学基础)主要包括目前学习过程中回过头复习的基础数学知识的总结. 基础 ...
- Dirichlet分布深入理解
Dirichlet分布 我们把Beta分布推广到高维的场景,就是Dirichlet分布.Dirichlet分布定义如下 Dirichlet分布与多项式分布共轭.多项式分布定义如下 共轭关系表示如下 D ...
- 伯努利分布、二项分布、多项分布、Beta分布、Dirichlet分布
1. 伯努利分布 伯努利分布(Bernoulli distribution)又名两点分布或0-1分布,介绍伯努利分布前首先需要引入伯努利试验(Bernoulli trial). 伯努利试验是只有两种可 ...
- 关于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 分布 ...
- LDA学习之beta分布和Dirichlet分布
---恢复内容开始--- 今天学习LDA主题模型,看到Beta分布和Dirichlet分布一脸的茫然,这俩玩意怎么来的,再网上查阅了很多资料,当做读书笔记记下来: 先来几个名词: 共轭先验: 在贝叶斯 ...
- (转)Gamma分布,Beta分布,Multinomial多项式分布,Dirichlet狄利克雷分布
1. Gamma函数 首先我们可以看一下Gamma函数的定义: Gamma的重要性质包括下面几条: 1. 递推公式: 2. 对于正整数n, 有 因此可以说Gamma函数是阶乘的推广. 3. 4. ...
- Beta分布和Dirichlet分布
在<Gamma函数是如何被发现的?>里证明了\begin{align*} B(m, n) = \int_0^1 x^{m-1} (1-x)^{n-1} \text{d} x = \frac ...
随机推荐
- python3之Django模型(一)
1.模型概述 模型是关于您的数据的唯一,明确的信息来源,它包含您正在存储的数据的重要字段和行为.通常,每个模型映射到单个数据库表. 每个模型都是一个子类的python类django.db.models ...
- SpringMVC框架05——拦截器
1.拦截器概述 Spring MVC的拦截器(Interceptor)与Java Servlet的过滤器(Filter)类似,它主要用于拦截用户的请求并做相应的处理,通常应用在权限验证.记录请求信息的 ...
- codeforces_1092c
title: codeforces_1092c date: 2018-12-24 19:42:23 tags: acm 刷题 概述 一道有关字符串前缀后缀的题,,,自己迟早要坑在这字符串的题上,,,一 ...
- 五校联考R1 Day2T2 矩阵matrix(容斥)
题目链接 容易想到容斥,但是很恶心,因为要对行和列都容斥,然后行+列又要容斥.. 于是得到\(O(nm\log)\)的做法. 就有70分了: #include <cstdio> #incl ...
- Codeforces.314E.Sereja and Squares(DP)
题目链接 http://www.cnblogs.com/TheRoadToTheGold/p/8443668.html \(Description\) 给你一个擦去了部分左括号和全部右括号的括号序列, ...
- [NOIp2014提高组]解方程
思路: 系数的范围有$10^{10000}$,但是用高精度做显然不现实,因此可以考虑一个类似于“哈希”的做法, 对方程两边同时取模,如果取的模数足够多,正确率就很高了. 中间对多项式的计算可以使用$O ...
- python调用oracle存储过程(packeage)
http://markmail.org/message/y64t5mqlgy4rogte http://www.oracle.com/technetwork/cn/articles/prez-stor ...
- Windows访问Linux的Ext4格式分区
Ext2Fsd是Windows下一套很实用的Driver,虽然名称是ext2fsd但ext3/ext4都可读取,安装完成后电脑便可直接认得ext格式扇区 虽然官方介绍只能支持到Windows 8,但实 ...
- PGXZ-腾讯全功能分布式关系数据集群
PGXZ-腾讯全功能分布式关系数据集群
- .NET基于Eleasticsearch搭建日志系统实战演练
一.需求背景介绍 1.1.需求描述 大家都知道C/S架构模式的客户端应用程序(比如:WinForm桌面应用.WPF.移动App应用程序.控制台应用程序.Windows服务等等)的日志记录都存储在本地客 ...