深入浅出LDA(4)

1. 如何更好的理解 β 分布 Dirichlet 分布?

这一节内容来自:知乎 王胖子
链接:https://www.zhihu.com/question/26751755/answer/80931791

outline:Bernoulli trial->Bernoulli process->Beta分布->Dirichlet分布


Bernoulli trial简单地说就是一个只有两个结果的简单trial,比如抛硬币,x = 1就是头,x= 0就是字,我们设定q是抛出字的概率。那么bernoulli process就是重复的独立Bernoulli trials,再或者说就是狂抛这枚硬币n次记结果。


我们记下x=0的次数k.现在问题来了:我们如何知道这枚硬币抛出字的概率?我们知道,如果可以一直抛下去,最后k/n一定会趋近于q;可是现实中有很多场合不允许我们总抛硬币,比如我只允许你抛4次。你该怎么回答这个问题?显然你在只抛4次的情况下,k/n基本不靠谱;那你只能”猜一下q大致分布在[0,1]中间的哪些值里会比较合理”,但绝不可能得到一个准确的结果比如q就是等于k/n。

举个例子,比如:4次抛掷出现“头头字字”,你肯定觉得q在0.5附近比较合理,q在0.2和0.8附近的硬币抛出这个结果应该有点不太可能,q = 0.05和0.95那是有点扯淡了。你如果把这些值画出来,你会发现q在[0,1]区间内呈现的就是一个中间最高,两边低的情况。


从感性上说,这样应当是比较符合常理的。那我们如果有个什么工具能描述一下这个q可能的分布就好了,比如用一个概率密度函数来描述一下? 这当然可以,可是我们还需要注意另一个问题,那就是随着n增长观测变多,你每次的概率密度函数该怎么计算?该怎么利用以前的结果更新(这个在形式上和计算上都很重要)?到这里,其实很自然地会想到把bayes theorem引进来,


我们现在用更正规的语言重新整理一下思路。现在有个硬币得到的随机序列:X = (x1,x2,…xn),其中 xi=0 or 1 我们需要基于这n次观察的结果来估算一下q在[0,1]中取哪个值比较靠谱,由于我们不能再用单一一个确定的值描述q,所以我们用一个分布函数来描述:有关q的概率密度函数(说得再简单点,即是q在[0,1]“分布律”)。当然,这应当写成一个条件密度:f(q|X),因为我们总是观测到X的情况下,来猜的q。


根据贝叶斯理论:

p(q|x)=p(x|q)p(q)

带着以上这个结论,我们再来看这个抛硬币问题:连续抛n次,即为一个bernoulli process,则在q确定时,n次抛掷结果确定时,又观察得到k次字的概率可以描述为:
p(x|q)=qk(1q)nk

现在在来看 p(q) 。显然,在我们对硬币一无所知的时候,我们应当认为硬币抛出字的概率q有可能在[0,1]上任意处取值。 p(q) 在这里取个均匀分布的密度函数是比较合适的。这样原始变成

p(q|x)=qk(1q)nk101dq=10qk(1q)nkdq

它就是一个 β distribution。 β distribution由两个参数 α β 确定;在这里对应的 α=k+1 β=n+1k 。而均匀分布的先验密度函数,就是那个 p(q) 也可以被 β distribution描述,这时 α=1 β=1 。更有意思的是,当我们每多抛一次硬币,出现字时,我们只需要 α=α+1 ;出现头只需要 β=β+1 。这样就能得到需要估计的概率密度p(q|x)… 其实之所以计算会变得这么简单,是因为被beta distribution描述的prior经过bayes formula前后还是一个beta distribution;这种不改变函数本身所属family的特性,叫共轭(conjugate)。


讲到这你应该明白,对于有两个结果的重复Bernoulli trial,我们用beta prior/distribution就能解决。那么加入我们有n个结果呢?比如抛的是骰子?这时候上面的Bernoulli trial就要变成有一次trial有k个可能的结果; Bernoulli distribution就变成multinomial distribution。而beta distribution所表述的先验分布,也要改写成一个多结果版本的先验分布。那就是dirichlet distribution。均匀的先验分布Beta(1,1)也要变成k个结果的Dir(alpha/K)。dirichlet prior也有共轭的性质,所以也是非常好计算的。简而言之,就是由2种外推到k种,而看待它们的视角并没有什么不同。他们有着非常非常非常相似的形式。结论:dirichlet distribution就是由2种结果bernoulli trial导出的beta distribution外推到k种的generalization

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值