LDA-math-认识Beta/Dirichlet分布

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

2. 认识Beta/Dirichlet分布
2.1 魔鬼的游戏—认识Beta 分布

统计学就是猜测上帝的游戏,当然我们不总是有机会猜测上帝,运气不好的时候就得揣度魔鬼的心思。有一天你被魔鬼撒旦抓走了,撒旦说:“你们人类很聪明,而我是很仁慈的,和你玩一个游戏,赢了就可以走,否则把灵魂出卖给我。游戏的规则很简单,我有一个魔盒,上面有一个按钮,你每按一下按钮,就均匀的输出一个[0,1]之间的随机数,我现在按10下,我手上有10个数,你猜第7大的数是什么,偏离不超过0.01就算对。”你应该怎么猜呢?

从数学的角度抽象一下,上面这个游戏其实是在说随机变量X1,X2,?,Xn∼iidUniform(0,1),把这n 个随机变量排序后得到顺序统计量 X(1),X(2),?,X(n), 然后问 X(k) 的分布是什么。

对于不喜欢数学的同学而言,估计每个概率分布都是一个恶魔,那在概率统计学中,均匀分布应该算得上是潘多拉魔盒,几乎所有重要的概率分布都可以从均匀分布Uniform(0,1)中生成出来;尤其是在统计模拟中,所有统计分布的随机样本都是通过均匀分布产生的。

潘多拉魔盒Uniform(0,1)

对于上面的游戏而言 n=10,k=7, 如果我们能求出 X(7) 的分布的概率密度,那么用概率密度的极值点去做猜测就是最好的策略。对于一般的情形,X(k) 的分布是什么呢?那我们尝试计算一下X(k) 落在一个区间 [x,x+Δx] 的概率,也就是求如下概率值

P(x≤X(k)≤x+Δx)=?

把 [0,1] 区间分成三段 [0,x),[x,x+Δx],(x+Δx,1],我们先考虑简单的情形,假设n 个数中只有一个落在了区间 [x,x+Δx]内,则因为这个区间内的数X(k)是第k大的,则[0,x)中应该有 k−1 个数,(x,1] 这个区间中应该有n−k 个数。不失一般性,我们先考虑如下一个符合上述要求的事件E

E={X1∈[x,x+Δx],Xi∈[0,x)(i=2,?,k),Xj∈(x+Δx,1](j=k+1,?,n)}

件 E

则有

P(E)=∏i=1nP(Xi)=xk−1(1−x−Δx)n−kΔx=xk−1(1−x)n−kΔx+o(Δx)

o(Δx)表示Δx的高阶无穷小。显然,由于不同的排列组合,即n个数中有一个落在 [x,x+Δx]区间的有n种取法,余下n−1个数中有k−1个落在[0,x)的有(n−1k−1)种组合,所以和事件E等价的事件一共有 n(n−1k−1)个。

继续考虑稍微复杂一点情形,假设n 个数中有两个数落在了区间 [x,x+Δx],

E′={X1,X2∈[x,x+Δx],Xi∈[0,x)(i=3,?,k),Xj∈(x+Δx,1](j=k+1,?,n)}

事件E’

则有

P(E′)=xk−2(1−x−Δx)n−k(Δx)2=o(Δx)

从以上分析我们很容易看出,只要落在[x,x+Δx]内的数字超过一个,则对应的事件的概率就是 o(Δx)。于是

P(x≤X(k)≤x+Δx)=n(n−1k−1)P(E)+o(Δx)=n(n−1k−1)xk−1(1−x)n−kΔx+o(Δx)

所以,可以得到X(k)的概率密度函数为

f(x)=limΔx→0P(x≤X(k)≤x+Δx)Δx=n(n−1k−1)xk−1(1−x)n−k=n!(k−1)!(n−k)!xk−1(1−x)n−kx∈[0,1]

利用Gamma 函数,我们可以把 f(x) 表达为

f(x)=Γ(n+1)Γ(k)Γ(n−k+1)xk−1(1−x)n−k

还记得神奇的 Gamma 函数可以把很多数学概念从整数集合延拓到实数集合吧。我们在上式中取α=k,β=n−k+1, 于是我们得到

f(x)=Γ(α+β)Γ(α)Γ(β)xα−1(1−x)β−1(1)

这个就是一般意义上的 Beta 分布!可以证明,在α,β取非负实数的时候,这个概率密度函数也都是良定义的。

好,我们回到魔鬼的游戏,这n=10,k=7这个具体的实例中,我们按照如下密度分布的峰值去猜测才是最有把握的。

f(x)=10!(6)!(3)!x6(1−x)3x∈[0,1]

然而即便如此,我们能做到一次猜中的概率也不高,很不幸,你第一次没有猜中,魔鬼微笑着说:“我再仁慈一点,再给你一个机会,你按5下这个机器,你就得到了5个[0,1]之间的随机数,然后我可以告诉你这5个数中的每一个和我的第7大的数相比,谁大谁小,然后你继续猜我手头的第7大的数是多少。”这时候我们应该怎么猜测呢?

2.2 Beta-Binomial 共轭

魔鬼的第二个题目,数学上形式化一下,就是

  1. X1,X2,?,Xn∼iidUniform(0,1),对应的顺序统计量是 X(1),X(2),?,X(n), 我们要猜测 p=X(k);
  2. Y1,Y2,?,Ym∼iidUniform(0,1), Yi中有m1个比p小,m2个比p大;
  3. 问 P(p|Y1,Y2,?,Ym) 的分布是什么。

由于p=X(k)在 X1,X2,?,Xn中是第k大的,利用Yi的信息,我们容易推理得到 p=X(k) 在X1,X2,?,Xn,Y1,Y2,?,Ym∼iidUniform(0,1) 这(m+n)个独立随机变量中是第 k+m1大的,于是按照上一个小节的推理,此时p=X(k) 的概率密度函数是 Beta(p|k+m1,n−k+1+m2)。按照贝叶斯推理的逻辑,我们把以上过程整理如下:

  1. p=X(k)是我们要猜测的参数,我们推导出 p 的分布为 f(p)=Beta(p|k,n−k+1),称为 p 的先验分布;
  2. 数据Yi中有m1个比p小,m2个比p大,Yi相当于是做了m次贝努利实验,所以m1 服从二项分布 B(m,p);
  3. 在给定了来自数据提供的(m1,m2)的知识后,p 的后验分布变为 f(p|m1,m2)=Beta(p|k+m1,n−k+1+m2)

贝努利实验

我们知道贝叶斯参数估计的基本过程是

先验分布 + 数据的知识 = 后验分布

以上贝叶斯分析过程的简单直观的表述就是

Beta(p|k,n−k+1)+Count(m1,m2)=Beta(p|k+m1,n−k+1+m2)

其中 (m1,m2) 对应的是二项分布B(m1+m2,p)的计数。更一般的,对于非负实数α,β,我们有如下关系

Beta(p|α,β)+Count(m1,m2)=Beta(p|α+m1,β+m2)(2)

这个式子实际上描述的就是  Beta-Binomial 共轭,此处共轭的意思就是,数据符合二项分布的时候,参数的先验分布和后验分布都能保持Beta 分布的形式,这种形式不变的好处是,我们能够在先验分布中赋予参数很明确的物理意义,这个物理意义可以延续到后验分布中进行解释,同时从先验变换到后验过程中从数据中补充的知识也容易有物理解释。

而我们从以上过程可以看到,Beta 分布中的参数α,β都可以理解为物理计数,这两个参数经常被称为伪计数(pseudo-count)。基于以上逻辑,我们也可以把Beta(p|α,β)写成下式来理解

Beta(p|1,1)+Count(α−1,β−1)=Beta(p|α,β)(∗∗∗)

其中 Beta(p|1,1) 恰好就是均匀分布Uniform(0,1)。

对于(***) 式,我们其实也可以纯粹从贝叶斯的角度来进行推导和理解。 假设有一个不均匀的硬币抛出正面的概率为p,抛m次后出现正面和反面的次数分别是m1,m2,那么按传统的频率学派观点,p的估计值应该为 p^=m1m。而从贝叶斯学派的观点来看,开始对硬币不均匀性一无所知,所以应该假设p∼Uniform(0,1), 于是有了二项分布的计数(m1,m2)之后,按照贝叶斯公式如下计算p 的后验分布

P(p|m1,m2)=P(p)⋅P(m1,m2|p)P(m1,m2)=1⋅P(m1,m2|p)∫10P(m1,m2|t)dt=(mm1)pm1(1−p)m2∫10(mm1)tm1(1−t)m2dt=pm1(1−p)m2∫10tm1(1−t)m2dt

计算得到的后验分布正好是 Beta(p|m1+1,m2+1)。

百变星君Beta分布

Beta 分布的概率密度我们把它画成图,会发现它是个百变星君,它可以是凹的、凸的、单调上升的、单调下降的;可以是曲线也可以是直线,而均匀分布也是特殊的Beta分布。由于Beta 分布能够拟合如此之多的形状,因此它在统计数据拟合中被广泛使用。

在上一个小节中,我们从二项分布推导Gamma 分布的时候,使用了如下的等式

P(C≤k)=n!k!(n−k−1)!∫1ptk(1−t)n−k−1dt,C∼B(n,p)(3)

现在大家可以看到,左边是二项分布的概率累积,右边实际上是Beta(t|k+1,n−k) 分布的概率积分。这个式子在上一小节中并没有给出证明,下面我们利用和魔鬼的游戏类似的概率物理过程进行证明。

我们可以如下构造二项分布,取随机变量 X1,X2,?,Xn∼iidUniform(0,1),一个成功的贝努利实验就是 Xi<p,否则表示失败,于是成功的概率为p。C用于计数成功的次数,于是C∼B(n,p)。

贝努利实验最多成功k次

显然我们有如下式子成立

P(C≤k)=P(X(k+1)>p)

此处X(k+1)是顺序统计量,为第k+1大的数。等式左边表示贝努利实验成功次数最多k次,右边表示第 k+1 大的数必然对应于失败的贝努利实验,从而失败次数最少是n−k次,所以左右两边是等价的。由于X(k+1)∼Beta(t|k+1,n−k), 于是

P(C≤k)=P(X(k+1)>p)=∫1pBeta(t|k+1,n−k)dt=n!k!(n−k−1)!∫1ptk(1−t)n−k−1dt

最后我们再回到魔鬼的游戏,如果你按出的5个随机数字中,魔鬼告诉你有2个小于它手中第7大的数,那么你应该
按照如下概率分布的峰值做猜测是最好的

Beta(x|9,7)=15!(8)!(6)!x8(1−x)6x∈[0,1]

很幸运的,你这次猜中了,魔鬼开始甩赖了:这个游戏对你来说太简单了,我要加大点难度,我们重新来一次,我按魔盒20下生成20个随机数,你同时给我猜第7大和第13大的数是什么,这时候应该如何猜测呢?

2.3 Dirichlet-Multinomial 共轭

对于魔鬼变本加厉的新的游戏规则,数学形式化如下:

  1. X1,X2,?,Xn∼iidUniform(0,1),
  2. 排序后对应的顺序统计量 X(1),X(2),?,X(n),
  3. 问 (X(k1),X(k1+k2))的联合分布是什么;

游戏3

完全类似于第一个游戏的推导过程,我们可以进行如下的概率计算(为了数学公式的简洁对称,我们取x3满足x1+x2+x3=1,但只有x1,x2是变量)

(X(k1),X(k1+k2))的联合分布推导

P(X(k1)∈(x1,x1+Δx),X(k1+k2)∈(x2,x2+Δx))=n(n−1)(n−2k1−1,k2−1)xk1−11xk2−12xn−k1−k23(Δx)2=n!(k1−1)!(k2−1)!(n−k1−k2)!xk1−11xk2−12xn−k1−k23(Δx)2

于是我们得到 (X(k1),X(k1+k2))的联合分布是

f(x1,x2,x3)=n!(k1−1)!(k2−1)!(n−k1−k2)!xk1−11xk2−12xn−k1−k23=Γ(n+1)Γ(k1)Γ(k2)Γ(n−k1−k2+1)xk1−11xk2−12xn−k1−k23

熟悉 Dirichlet的同学一眼就可以看出,上面这个分布其实就是3维形式的 Dirichlet 分布Dir(x1,x2,x3|k1,k2,n−k1−k2+1)。令 α1=k1,α2=k2,α3=n−k1−k2+1,于是分布密度可以写为

f(x1,x2,x3)=Γ(α1+α2+α3)Γ(α1)Γ(α2)Γ(α3)xα1−11xα2−12xα3−13(4)

这个就是一般形式的3维 Dirichlet 分布,即便 α→=(α1,α2,α3) 延拓到非负实数集合,以上概率分布也是良定义的。

从形式上我们也能看出,Dirichlet 分布是Beta 分布在高维度上的推广,他和Beta 分布一样也是一个百变星君,密度函数可以展现出多种形态。

不同 α 下的Dirichlet 分布

类似于魔鬼的游戏2,我们也可以调整一下游戏3,从魔盒中生成m个随机数Y1,Y2,?,Ym∼iidUniform(0,1) 并让魔鬼告诉我们Yi和(X(k1),X(k1+k2))相比谁大谁小。于是有如下游戏4

  1. X1,X2,?,Xn∼iidUniform(0,1),排序后对应的顺序统计量 X(1),X(2),?,X(n)
  2. 令p1=X(k1),p2=X(k1+k2),p3=1−p1−p2(加上p3是为了数学表达简洁对称),我们要猜测 p→=(p1,p2,p3);
  3. Y1,Y2,?,Ym∼iidUniform(0,1), Yi中落到[0,p1),[p1,p2),[p2,1] 三个区间的个数分别为 m1,m2,m3,m=m1+m2+m3;
  4. 问后验分布 P(p→|Y1,Y2,?,Ym) 的分布是什么。

游戏4

为了方便,我们记

m−→=(m1,m2,m3),k→=(k1,k2,n−k1−k2+1)

由游戏中的信息,我们可以推理得到 p1,p2在X1,X2,?,Xn, Y1,Y2,?,Ym ∼iidUniform(0,1)这 m+n个数中分别成为了第 k1+m1,k2+m2大的数,于是后验分布 P(p→|Y1,Y2,?,Ym) 应该是 Dir(p→|k1+m1,k1+m2,n−k1−k2+1+m3),即Dir(p→|k→+m−→)。按照贝叶斯推理的逻辑,我们同样可以把以上过程整理如下:

  1. 我们要猜测参数 p→=(p1,p2,p3),其先验分布为Dir(p→|k→);
  2. 数据Yi落到[0,p1),[p1,p2),[p2,1]三个区间的个数分别为 m1,m2,m3,所以m−→=(m1,m2,m3) 服从多项分布Mult(m−→|p→)
  3. 在给定了来自数据提供的知识m−→后,p→ 的后验分布变为 Dir(p→|k→+m−→)

贝叶斯推理过程

以上贝叶斯分析过程的简单直观的表述就是

Dir(p→|k→)+MultCount(m−→)=Dir(p→|k→+m−→)

令 α→=k→,把α→从整数集合延拓到实数集合,更一般的可以证明有如下关系

Dir(p→|α→)+MultCount(m−→)=Dir(p|α→+m−→)(5)

以上式子实际上描述的就是 Dirichlet-Multinomial 共轭,而我们从以上过程可以看到,Dirichlet 分布中的参数α→都可以理解为物理计数。类似于 Beta 分布,我们也可以把 Dir(p→|α→)作如下分解

Dir(p→|1→)+MultCount(m−→−1→)=Dir(p→|α→)

此处1→=(1,1,?,1)。自然,上式我们也可以类似地用纯粹贝叶斯的观点进行推导和解释。

以上的游戏我们还可以往更高的维度上继续推,譬如猜测 X(1),X(2),?,X(n)中的4、5、…等更多个数,于是就得到更高纬度的 Dirichlet 分布和 Dirichlet-Multinomial 共轭。一般形式的 Dirichlet 分布定义如下

Dir(p→|α→)=Γ(∑Kk=1αk)∏Kk=1Γ(αk)∏k=1Kpαk−1k(6)

对于给定的 p→和 N,多项分布定义为

Mult(n→|p→,N)=(Nn→)∏k=1Kpnkk(7)

而 Mult(n→|p→,N) 和 Dir(p→|α→)这两个分布是共轭关系。

Beta-Binomail 共轭和 Dirichlet-Multinomail 共轭都可以用纯粹数学的方式进行证明,我们在这两个小节中通过一个游戏来解释这两个共轭关系,主要是想说明这个共轭关系是可以对应到很具体的概率物理过程的。

2.4 Beta/Dirichlet 分布的一个性质

如果 p∼Beta(t|α,β), 则

E(p)=∫10t∗Beta(t|α,β)dt=∫10t∗Γ(α+β)Γ(α)Γ(β)tα−1(1−t)β−1dt=Γ(α+β)Γ(α)Γ(β)∫10tα(1−t)β−1dt

上式右边的积分对应到概率分布 Beta(t|α+1,β),对于这个分布,我们有

∫10Γ(α+β+1)Γ(α+1)Γ(β)tα(1−t)β−1dt=1

把上式带入E(p)的计算式,得到

E(p)=Γ(α+β)Γ(α)Γ(β)⋅Γ(α+1)Γ(β)Γ(α+β+1)=Γ(α+β)Γ(α+β+1)Γ(α+1)Γ(α)=αα+β(8)

这说明,对于Beta 分布的随机变量,其均值可以用αα+β来估计。Dirichlet 分布也有类似的结论,如果p→∼Dir(t→|α→),同样可以证明

E(p→)=(α1∑Ki=1αi,α2∑Ki=1αi,?,αK∑Ki=1αi)(9)

以上两个结论很重要,因为我们在后面的 LDA 数学推导中需要使用这个结论。

时间: 2024-11-08 11:59:05

LDA-math-认识Beta/Dirichlet分布的相关文章

Beta分布和Dirichlet分布

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

机器学习的数学基础(1)--Dirichlet分布

机器学习的数学基础(1)--Dirichlet分布 这一系列(机器学习的数学基础)主要包括目前学习过程中回过头复习的基础数学知识的总结. 基础知识:conjugate priors共轭先验 共轭先验是指这样一种概率密度:它使得后验概率的密度函数与先验概率的密度函数具有相同的函数形式.它极大地简化了贝叶斯分析. 如何解释这句话.由于 P(u|D) = p(D|u)p(u)/p(D)   (1.0式) 其中D是给定的一个样本集合,因此对其来说p(D)是一个确定的值,可以理解为一个常数.P(u|D)是

(转)机器学习的数学基础(1)--Dirichlet分布

转http://blog.csdn.net/jwh_bupt/article/details/8841644 这一系列(机器学习的数学基础)主要包括目前学习过程中回过头复习的基础数学知识的总结. 基础知识:conjugate priors共轭先验 共轭先验是指这样一种概率密度:它使得后验概率的密度函数与先验概率的密度函数具有相同的函数形式.它极大地简化了贝叶斯分析. 如何解释这句话.由于 P(u|D) = p(D|u)p(u)/p(D)   (1.0式) 其中D是给定的一个样本集合,因此对其来说

Dirichlet分布深入理解

Dirichlet分布 我们把Beta分布推广到高维的场景,就是Dirichlet分布.Dirichlet分布定义如下 Dirichlet分布与多项式分布共轭.多项式分布定义如下 共轭关系表示如下 Dirichlet-MultCount共轭理解 上述共轭关系我们可以这样理解,先验Dirichlet分布参数为α,多项式分布实验结果为m,则后验Dirichlet分布的参数为α+m.m为n维向量,表示实验中各种结果出现的次数.例如投掷骰子的试验中,m为6维向量,6个分量分别表示出现1点到6点的次数.

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

1. 伯努利分布 伯努利分布(Bernoulli distribution)又名两点分布或0-1分布,介绍伯努利分布前首先需要引入伯努利试验(Bernoulli trial). 伯努利试验是只有两种可能结果的单次随机试验,即对于一个随机变量X而言: 伯努利试验都可以表达为“是或否”的问题.例如,抛一次硬币是正面向上吗?刚出生的小孩是个女孩吗?等等 如果试验E是一个伯努利试验,将E独立重复地进行n次,则称这一串重复的独立试验为n重伯努利试验.进行一次伯努利试验,成功(X=1)概率为p(0<=p<

主题模型TopicModel:LDA中的数学模型

http://blog.csdn.net/pipisorry/article/details/42672935 了解LDA需要明白如下数学原理: 一个函数:gamma函数 四个分布:二项分布.多项分布.beta分布.Dirichlet分布 一个概念和一个理念:共轭先验和贝叶斯框架 两个模型:pLSA.LDA(文档-主题,主题-词语) 一个采样:Gibbs采样 估计未知参数所采用的不同思想:频率学派.贝叶斯学派 皮皮Blog gamma函数 Gamma函数 Γ(x)=∫∞0tx?1e?tdt 通过

LDA算法

本文原创, 转载请注明出处:http://www.cnblogs.com/gufeiyang/p/5020819.html 本文目录: 1.Gamma函数 2.Beta/Dirichlet分布 3.LDA文本建模 4.吉普斯抽样概率公式推导 1.Gamma函数 T(x)= ∫ tx-1 e-tdt    T(x+1) = xT(x) 若x为整数,则有 T(n) = (n-1)! 2.Dirichlet分布 这里抛出两个问题: 问题1: (1) X1, X2......Xn 服从Uniform(0

七月算法-12月机器学习在线班--第十五次课笔记—主题模型

七月算法-12月机器学习--第十五次课笔记—主题模型 七月算法(julyedu.com)12月机器学习在线班学习笔记http://www.julyedu.com 复习的知识: 1.,Γ函数 是阶乘在实数上的推广,即实数的阶乘 2,Beta分布 Beta分布的概率密度: 其中系数B为: 两者的关系 1,朴素贝叶斯分析 朴素贝叶斯没有分析语意,无法解决语料中一词多义和多词一义的问题,更像是词法的分析,可以 一, 1个词可能被映射到多个主题中——一词多义 二,多个词可能被映射到某个主题的概率很高——多

LDA-math-神奇的Gamma函数

http://cos.name/2013/01/lda-math-gamma-function/ 1. 神奇的Gamma函数1.1 Gamma 函数诞生记学高等数学的时候,我们都学习过如下一个长相有点奇特的Gamma函数 Γ(x)=∫∞0tx−1e−tdt 通过分部积分的方法,可以推导出这个函数有如下的递归性质 Γ(x+1)=xΓ(x) 于是很容易证明,Γ(x) 函数可以当成是阶乘在实数集上的延拓,具有如下性质 Γ(n)=(n−1)! 学习了Gamma 函数之后,多年以来我一直有两个疑问: 这个