在看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个单词,就可以看出这个主题是哪一类的。

九、【存疑:不明白的问题】:

  1. 为何关于二项分布的分布是Beta分布的那种形式(即:如何推导出来的)?
  2. 为何关于多项分布的分布是Dirichlet分布的形式?
  3. Beta分布中的α、β参数所代表的意义是什么?
  4. Dirichlet分布中的α^{→} = {α_{i}}所代表的意义是什么?
  5. LDA模型中的φ参数在哪个分布里,怎么没有看到?它的意义是什么?
  6. LDA模型中,每个topic下对应的word是所有的corpus中的words吗,还是只是其中的一部分word所组成的子集?
  7. LDA模型中,每个文章doc中,选择topic也和和每个topic中选择word一样,都是多项分布吗?

参考资料:

伯努利分布、二项分布、Beta分布、多项分布和Dirichlet分布与他们之间的关系,以及在LDA中的应用的更多相关文章

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

    机器学习的数学基础(1)--Dirichlet分布 这一系列(机器学习的数学基础)主要包括目前学习过程中回过头复习的基础数学知识的总结. 基础知识:conjugate priors共轭先验 共轭先验是 ...

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

    转http://blog.csdn.net/jwh_bupt/article/details/8841644 这一系列(机器学习的数学基础)主要包括目前学习过程中回过头复习的基础数学知识的总结. 基础 ...

  3. Dirichlet分布深入理解

    Dirichlet分布 我们把Beta分布推广到高维的场景,就是Dirichlet分布.Dirichlet分布定义如下 Dirichlet分布与多项式分布共轭.多项式分布定义如下 共轭关系表示如下 D ...

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

    1. 伯努利分布 伯努利分布(Bernoulli distribution)又名两点分布或0-1分布,介绍伯努利分布前首先需要引入伯努利试验(Bernoulli trial). 伯努利试验是只有两种可 ...

  5. 关于Beta分布、二项分布与Dirichlet分布、多项分布的关系

    在机器学习领域中,概率模型是一个常用的利器.用它来对问题进行建模,有几点好处:1)当给定参数分布的假设空间后,可以通过很严格的数学推导,得到模型的似然分布,这样模型可以有很好的概率解释:2)可以利用现 ...

  6. LDA-math-认识Beta/Dirichlet分布

    http://cos.name/2013/01/lda-math-beta-dirichlet/#more-6953 2. 认识Beta/Dirichlet分布2.1 魔鬼的游戏—认识Beta 分布 ...

  7. LDA学习之beta分布和Dirichlet分布

    ---恢复内容开始--- 今天学习LDA主题模型,看到Beta分布和Dirichlet分布一脸的茫然,这俩玩意怎么来的,再网上查阅了很多资料,当做读书笔记记下来: 先来几个名词: 共轭先验: 在贝叶斯 ...

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

    1. Gamma函数 首先我们可以看一下Gamma函数的定义: Gamma的重要性质包括下面几条: 1. 递推公式: 2. 对于正整数n, 有 因此可以说Gamma函数是阶乘的推广. 3.  4.  ...

  9. Beta分布和Dirichlet分布

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

随机推荐

  1. 前端自动化grunt轻松入门

    如果你还不了解grunt,或者只是听过它的名字而没有去研究过它,那么这篇入门级的文章就是为你写的,相信看完你就会爱上grunt! grunt是什么? grunt是一个非常好的自动化工具,你只管code ...

  2. python django + js 使用ajax进行文件上传并获取上传进度案例

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 面向对象设计原则 里氏替换原则(Liskov Substitution Principle)

    里氏替换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一. 里氏替换原则中说,任何基类可以出现的地方,子类一定可以出现. LSP是继承复用的基石,只 ...

  4. 【2017 4 24 - B】 组合数

    [题目描述] 输入格式: 一行一个正整数n 输出格式: 一行一个数f(n)对1000000007取余的值 [分析] 就是乱搞?? 就是问根到叶子有多少条路径嘛. 然后路径可以π.1.1.π...这样表 ...

  5. 利用cve-2017-11882的一次渗透测试

    利用工具:https://github.com/Ridter/CVE-2017-11882/ 影响版本: office 2003 office 2007 office 2010 office 2013 ...

  6. LocalCache

    public static class LocalCacheHelper { ; //5分钟过期 public static T GetCache<T>(string cacheKey) ...

  7. MongoDB 那些坑(转)

    MongoDB 是目前炙手可热的 NoSQL 文档型数据库,它提供的一些特性很棒:如自动 failover 机制,自动 sharding,无模式 schemaless,大部分情况下性能也很棒.但是薄荷 ...

  8. Understanding the STM32F0's GPIO

    Understanding the STM32F0's GPIO This is the first part of the GPIO tutorial for the STM32F0Discover ...

  9. Windows 2008 R2防火墙设置运行被ping通

    参考文献: http://huobumingbai.blog.51cto.com/1196746/323896/

  10. [Go] 通过 17 个简短代码片段,切底弄懂 channel 基础

    关于管道 Channel Channel 用来同步并发执行的函数并提供它们某种传值交流的机制. Channel 的一些特性:通过 channel 传递的元素类型.容器(或缓冲区)和 传递的方向由“&l ...