在看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. 用python实现一个无界面的2048

    转载请注明出处http://www.cnblogs.com/Wxtrkbc/p/5519453.html 以前游戏2048火的时候,正好用其他的语言编写了一个,现在学习python,正好想起来,便决定 ...

  2. Linux 彻底删除用户

    想要完全删除用户账号(也就是删除所有与该用户相关的文件),以下这两种方法个人觉得是最好的: (1)使用 userdel -r xiaoluo命令删除. (2)先使用userdel xiaoluo 删除 ...

  3. mysql过滤数据

    1.大纲 WHERE - 学习如何使用WHERE子句根据指定的条件过滤行记录. AND运算符 - 介绍如何使用AND运算符以组合布尔表达式以形成用于过滤数据的复杂条件. OR运算符 - 介绍OR运算符 ...

  4. 007.KVM虚机时间-快照管理

    一 快照管理 1.1 创建快照 [root@kvm-host ~]# virsh snapshot-create vm03-centos6.8 [root@kvm-host ~]# virsh sna ...

  5. Python - 计算个人所得税

    最近在学python,写了个计算个人所得税计算的脚本,分享. 以下为python3适用版本 #!/usr/bin/python # -*- coding: UTF-8 -*- # 该python脚本用 ...

  6. django表单字段

    在通过django.forms.Forms创建表单字段时,其中每个字段都有一些自定义的验证逻辑和一些其他钩子 虽然表单字段的Field类主要使用在Form类中,但也可以直接实例化来使用它们,以更好的了 ...

  7. BeagleBone Black教程之BeagleBone Black使用到的Linux基础

    BeagleBone Black教程之BeagleBone Black使用到的Linux基础 BeagleBone Black涉及到的Linux基础 在许多没有Linux相关经验的人看来,Linux看 ...

  8. 可视化工具gephi源码探秘(二)

    在上篇<可视化工具gephi源码探秘(一)>中主要介绍了如何将gephi的源码导入myeclipse中遇到的一些问题,此篇接着上篇而来,主要讲解当下通过myeclipse导入gephi源码 ...

  9. python语法(三)— 循环

    上一篇,学习了python的判断语句,了解了python中如何直线分支语句,本文来学习循环语句.python中有两种循环while循环和for循环,当我们不知道循环次数时使用while循环,让我们知道 ...

  10. BZOJ.4832.[Lydsy1704月赛]抵制克苏恩(期望DP)

    题目链接 \(f[s][i][j][k]\)表示还剩\(s\)次攻击,分别有\(i,j,k\)个血量为\(1,2,3\)的奴隶主时,期望受到伤害. 因为期望是倒推,所以这么表示从后往前求,注意\(a, ...