关于狄利克雷分布的理解



作者:Thomas Wayne

链接:http://www.zhihu.com/question/26751755/answer/80931791

来源:知乎

著作权归作者全部。商业转载请联系作者获得授权。非商业转载请注明出处。

近期问的人有点多,打算写一系列“简单易懂地理解XXX系列”。

今天来讲一下dirichlet distribution和dirichlet process怎么回事。力求让刚開始学习的人看懂,并且我比較追求motivation。追求数学严谨性和简洁性的大神请移步不要看了。不喜欢看各种细节的也能够直接跳着看文中的结论。

实际上这是学习nonparametric bayesian里常见的困惑。有些同学碰到paper或者PPT读着读着发现怎么就弄出一个dirichlet distribution了?这里面有什么intuition吗?

读三遍:要想简单地理解,还得要先从简单的样例讲起。

要想易懂地理解dirichlet distribution,首先先得知道它的特殊版本号beta distribution干了什么。

而要理解beta distribution有什么用。还得了解Bernoulli process。

首先先看Bernoulli process。要理解什么是Bernoulli process,首先先看什么Bernoulli trial。Bernoulli trial简单地说就是一个仅仅有两个结果的简单trial,比方抛硬币

那我们就用抛一个(不均匀)硬币来说好了,X = 1就是头,X = 0就是字。我们设定q是抛出字的概率。

那什么是bernoulli process?就是从Bernoulli population里随机抽样,或者说就是反复的独立Bernoulli trials,再或者说就是狂抛这枚硬币n次记结果吧(汗=_=)。

好吧,我们就一直抛吧,我们记下X=0的次数k.

如今问题来了。

Q:我们怎样知道这枚硬币抛出字的概率?我们知道。假设能够一直抛下去,最后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引进来,由于Bayes能随着不断的观測而更新概率;并且每次仅仅须要前一次的prior等等…在这先不多说bayes有什么好,接下来用更形式化语言来讲事实上说得更清楚。

我们如今用更正规的语言又一次整理一下思路。如今有个硬币得到random sample X = (x1,x2,...xn),我们须要基于这n次观察的结果来估算一下q在[0,1]中取哪个值比較靠谱,由于我们不能再用单一一个确定的值描写叙述q。所以我们用一个分布函数来描写叙述:有关q的概率密度函数(说得再简单点。即是q在[0,1]“分布律”)。当然,这应当写成一个条件密度:f(q|X),由于我们总是观測到X的情况下。来猜的q。

如今我们来看看Bayes theorem。看看它能带来什么不同:

tex=P%28q%7Cx%29+P%28x%29+%3D+P%28X%3Dx%7Cq%29P%28q%29">

在这里P(q)就是关于q的先验概率(所谓先验,就是在得到观察X之前,我们设定的关于q的概率密度函数)。

P(q|x)是观測到x之后得到的关于q的后验概率。注意,到这里公式里出现的都是"概率",并没有在[0,1]上的概率密度函数出现。

为了让贝叶斯定理和密度函数结合到一块。我们能够从方程两边由P(q)得到f(q),而由P(q|x)得到f(q|x)。

又注意到P(x)能够认定为是个常量(Q:why?)。能够在分析这类问题时不用管。那么。这里就有个简单的结论——关于q的后验概率密度f(q|x)就和“关于q的先验概率密度乘以一个条件概率"成比例,即:

带着以上这个结论,我们再来看这个抛硬币问题:

连续抛n次,即为一个bernoulli process,则在q确定时,n次抛掷结果确定时,又观察得到k次字的概率能够描写叙述为:

那么f(q|x)就和先验概率密度乘以以上的条件概率是成比例的:

尽管我们不知道。也求不出那个P(x),但我们知道它是固定的。我们这时事实上已经得到了一个求f(q|x)的公式(仅仅要在n次观測下确定了,f(q)确定了,那么f(q|x)也确定了)。

如今在来看f(q)。

显然,在我们对硬币一无所知的时候,我们应当觉得硬币抛出字的概率q有可能在[0,1]上随意处取值。f(q)在这里取个均匀分布的密度函数是比較合适的,即f(q) = 1 (for q in [0,1]) 。

有些同学可能发现了。这里面

tex=f%28q%7Cx%29+%5Csim+q%5E%7Bk%7D%281-q%29%5E%7Bn-k%7D">,那个

tex=q%5E%7Bk%7D%281-q%29%5E%7Bn-k%7D">乘上[0,1]的均匀分布不就是一个Beta
distribution么

对,它就是一个Beta distribution。Beta distribution由两个參数alpha、beta确定。在这里相应的alpha等于k+1,beta等于n+1-k。

均匀分布的先验密度函数,就是那个f(q)也能够被beta distribution描写叙述。这时alpha等于1。beta也等于1。

更有意思的是。当我们每多抛一次硬币,出现字时,我们仅仅须要alpha = alpha + 1;出现头仅仅须要beta = beta + 1。这样就能得到须要预计的概率密度f(q|x)…

事实上之所以计算会变得这么简单。是由于被beta distribution描写叙述的prior经过bayes formula前后还是一个beta distribution;这样的不改变函数本身所属family的特性,叫共轭(conjugate)

ok。说到这你应该明确。对于有两个结果的反复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种,而看待它们的视角并没有什么不同。

他们有着很很很相似的形式。

结论1:dirichlet distribution就是由2种结果bernoulli trial导出的beta distribution外推到k种的generalization

时间: 2024-10-11 23:45:08

关于狄利克雷分布的理解的相关文章

【转】狄利克雷分布

(注:只转一点介绍内容的以作备查.有兴趣同学请移步原文详阅.) 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}.现在,我们还

主题模型TopicModel:隐含狄利克雷分布LDA

http://blog.csdn.net/pipisorry/article/details/42649657 主题模型LDA简介 隐含狄利克雷分布简称LDA(Latent Dirichlet allocation),是一种主题模型,它可以将文档集中每篇文档的主题按照概率分布的形式给出. 同时它是一种无监督学习算法,在训练时不需要手工标注的训练集,需要的仅仅是文档集以及指定主题的数量k即可.此外LDA的另一个优点则是,对于每一个主题均可找出一些词语来描述它. LDA首先由Blei, David

二项分布 , 多项分布, 以及与之对应的beta分布和狄利克雷分布

1. 二项分布与beta分布对应 2. 多项分布与狄利克雷分布对应 3. 二项分布是什么?n次bernuli试验服从 二项分布 二项分布是N次重复bernuli试验结果的分布. bernuli实验是什么?做一次抛硬币实验,该试验结果只有2种情况,x= 1, 表示正面. x=0,表示反面. bernuli(x|p) = p^x*(1-p)^(1-x).如果了n次, 我们只要数一下正面的次数n_x,即可得到反面的次数n-n_x. n次重复的nernuli试验: n-bernuli(n_x|N,p)

(转)Gamma分布,Beta分布,Multinomial多项式分布,Dirichlet狄利克雷分布

1. Gamma函数 首先我们可以看一下Gamma函数的定义: Gamma的重要性质包括下面几条: 1. 递推公式: 2. 对于正整数n, 有 因此可以说Gamma函数是阶乘的推广. 3.  4.  关于递推公式,可以用分部积分完成证明: 2. Beta函数 B函数,又称为Beta函数或者第一类欧拉积分,是一个特殊的函数,定义如下: B函数具有如下性质: 3. Beta分布 在介绍贝塔分布(Beta distribution)之前,需要先明确一下先验概率.后验概率.似然函数以及共轭分布的概念.

主题模型——隐含狄利克雷分布总结

摘要: 1.算法概述 2.算法推导 3.算法特性及优缺点 4.注意事项 5.实现和具体例子 6.适用场合 7.与NB,pLSA比较 内容: 1.算法概述: 先贴一段维基百科中关于主题模型的描述,便于大家理解我们接下来要做什么: 主题模型(Topic Model)在机器学习和自然语言处理等领域是用来在一系列文档中发现抽象主题的一种统计模型. 直观来讲,如果一篇文章有一个中心思想,那么一些特定词语会更频繁的出现.比方说,如果一篇文章是在讲狗的,那"狗"和"骨头"等词出现

Dirichlet分布深入理解

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

Gamma分布于Beta分布的理解

参考文献: https://blog.csdn.net/lanchunhui/article/details/50544697 https://blog.csdn.net/lanchunhui/article/details/50540460 https://blog.csdn.net/lanchunhui/article/details/50543721 原文地址:https://www.cnblogs.com/jhc888007/p/9829315.html

狄利克雷过程

官方定义:令 表示一个可测的参数空间, 描述某一个类别的参数.令H是空间 上的一个概率测度, 表示一个正实数.对于空间上的任意一个有限分割 : 如果空间上的一个随机概率分布G在这个分割中各部分上的测度服从一个狄利克雷分布: , 那么我们就称随机概率分布G 服从狄利克雷过程,记为 . 我们把 叫做集中度参数,把H叫做基分布. 解读: 测度的通俗理解就是给一个空间中的每个子集一个度量,即一个实数来衡量各个子集.最直观的例子是用长度来衡量一个一维实数集合,这里的长度就是一种测度. 概率测度是指在空间中

通俗理解LDA主题模型(boss)

0 前言 看完前面几篇简单的文章后,思路还是不清晰了,但是稍微理解了LDA,下面@Hcy开始详细进入boss篇.其中文章可以分为下述5个步骤: 一个函数:gamma函数 四个分布:二项分布.多项分布.beta分布.Dirichlet分布 一个概念和一个理念:共轭先验和贝叶斯框架 两个模型:pLSA.LDA(在本文第4 部分阐述) 一个采样:Gibbs采样 本文便按照上述5个步骤来阐述,希望读者看完本文后,能对LDA有个尽量清晰完整的了解.同时,本文基于邹博讲LDA的PPT.rickjin的LDA