在机器学习领域中,概率模型是一个常用的利器。用它来对问题进行建模,有几点好处:1)当给定参数分布的假设空间后,可以通过很严格的数学推导,得到模型的似然分布,这样模型可以有很好的概率解释;2)可以利用现有的EM算法或者Variational method来学习。通常为了方便推导参数的后验分布,会假设参数的先验分布是似然的某个共轭分布,这样后验分布和先验分布具有相同的形式,这对于建模过程中的数学推导可以大大的简化,保证最后的形式是tractable。

在概率模型中,Dirichlet这个词出现的频率非常的高。初始机器学习的同学或者说得再广一些,在学习概率模型的时候,很多同学都不清楚为啥一个表现形式如此奇怪的分布Dirichlet分布会出现在我们的教科书中,它是靠啥关系攀上了多项分布(Multinomial distribution)这个亲戚的,以至于它可以“堂而皇之”地扼杀我大天朝这么多数学家和科学家梦想的?为了引出背后这层关系,我们需要先介绍一个概念——共轭先验(Conjugate Prior)

  • Conjugate Prior: In Bayesian probability theory, if the posterior distributions p(θ|x) are in the same family as the prior probability distribution p(θ), the prior and posterior are then called conjugate distributions, and the prior is called a conjugate prior for the likelihood. ----from wiki
  • 用中文来讲,在贝叶斯统计理论中,如果某个随机变量Θ的后验概率 p(θ|x)和气先验概率p(θ)属于同一个分布簇的,那么称p(θ|x)和p(θ)为共轭分布,同时,也称p(θ)为似然函数p(x|θ)的共轭先验。

介绍了这个重要的概念之后,我们回到文章的正题。首先需要弄清楚什么是二项分布(Binomial distribution)。这个概念是从伯努利分布推进的。伯努利分布是一个离散型的随机分布,其中的随机变量只有两类取值,非正即负{+,-}。二项分布即重复n次的伯努利试验,记为 X~b(n,p)。概率密度函数(概率质量函数)为P(K=k)=\binom{n}{k}p^k(1-p)^{n-k}。再来看看Beta分布,给定参数\alpha>0和\beta>0,取值范围为[0,1]的随机变量x的概率密度函数f(x;\alpha,\beta)=\frac{1}{B(\alpha,\beta)}x^{\alpha-1}(1-x)^{\beta-1},其中\frac{1}{B(\alpha,\beta)}=\frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)},\Gamma(z)=\int_0^{\infty}t^{z-1}e^{-t}dt。这里假定,先验分布和似然概率如下所示:

p(x)=\frac{1}{B(\alpha,\beta)}x^{\alpha-1}(1-x)^{\beta-1}
p(y|x)=\binom{n}{k}x^k(1-x)^{n-k}

那么很容易知道后验概率为

p(x|y)=\frac{1}{B(\alpha+k,\beta+n-k)}x^{\alpha+k-1}(1-x)^{\beta+n-k-1}

弄清楚了Beta分布和二项分布之间的关系后,对于接下来的Dirichlet 分布和多项分布(Multinomial distribution)的关系理解将会有非常大的帮助。多项分布,从字面上所表现出的含义,我们也大抵知道它的意思。它本身确实也是这样的,其单次试验中的随机变量的取值不再是0-1的,而是有多种离散值可能(1,2,3...,k),其中\sum_{i=1}^k{p_i}=1,p_i>0 。多项分布的概率密度函数为P(x_1,x_2,...,x_k;n,p_1,p_2,...,p_k)=\frac{n!}{x_1!\cdot\cdot\cdot x_k!}p_1^{x_1}\cdot\cdot\cdot p_k^{x_k}。而Dirichlet分布的的密度函数形式也如出一辙:f(x_1,x_2,...,x_k;\alpha_1,\alpha_2,...,\alpha_k)=\frac{1}{B(\alpha)}\prod_{i=1}^k{x_i^{\alpha^i-1}},其中B(\alpha)=\frac{\prod_{i=1}^k\Gamma(\alpha^i)}{\Gamma(\sum_{i=1}^k{\alpha^i})},\sum{x_i}=1。到这里,我们可以看到Beta分布和Dirichlet 分布有多相似啊,二项分布和多项分布有多相似啊!

再一次来看看共轭。假设x=(x_1,x_2,...,x_k)有先验分布

p(x;\alpha_1,\alpha_2,...,\alpha_k)=\frac{1}{B(\alpha)}\prod_{i=1}^k{x_i^{\alpha^i-1}}

另有似然函数

p(y|x)=\frac{n!}{n_1!\cdot\cdot\cdot n_k!}x_1^{n_1}\cdot\cdot\cdot x_k^{n_k},

则后验概率

p(x|y)=\frac{1}{Z}\prod_{i=1}^k{x_i^{\alpha^i+n_i-1}}

,和Dirichlet 分布形式一致。

其实,细心的读者已经发现,这里这四类分布,如果但从数学形式上看,它们的组织形式都是一致的,都是通过乘积的形式构成,加上先验分布、似然函数和后言分布之间的乘积推导关系,可以很容易发现,它们所表现出的共轭性质很容易理解。

关于Beta分布、二项分布与Dirichlet分布、多项分布的关系的更多相关文章

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

    在看LDA的时候,遇到的数学公式分布有些多,因此在这里总结一下思路. 一.伯努利试验.伯努利过程与伯努利分布 先说一下什么是伯努利试验: 维基百科伯努利试验中: 伯努利试验(Bernoulli tri ...

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

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

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

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

  4. Dirichlet分布深入理解

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

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

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

  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. LaTex Font Size 字体大小命令

    LaTex中字体大小有很多中等级,分别由下列命令控制: \tiny \scriptsize \footnotesize \small \normalsize \large \Large \LARGE ...

  2. ado.net 实体类_数据访问类

    实体类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ...

  3. Struts的文件下载功能实现代码

    Action: package com.tengfeiyang.action; import java.io.File; import java.io.FileInputStream; import ...

  4. GitHub上删除项目

    1. 在自己的repositories中,选择要删除的项目,左击. 2.  选择 [Settings] 3.  选择 [Delete ** ] 4.  在弹出框中 输入 要删除的项目名,点击下方的按钮 ...

  5. ArcGIS 使用点滴记录

    (1)ArcGIS Shapefile数据text类型字段最长为254.若想更长,使用GeoDatabase (2)ArcGIS中出现一些奇奇怪怪的问题,找不到解决方法时,一般考虑是不是空间参考的问题 ...

  6. HTTP协议 (五) 代理

    HTTP协议 (五) 代理 阅读目录 什么是代理服务器 Fiddler就是个典型的代理 代理作用一:FQ 代理作用二:匿名访问 代理作用三:通过代理上网 代理作用四:通过代理缓存,加快上网速度 代理作 ...

  7. javascript中判断对象类型

    <script type="text/javascript"> //判别一个对象属性在不在某个对象中 //in 是用于查找某个属性是否存在于对象中,它会把对象 //里面 ...

  8. 织梦5.7 TAG、标题、栏目以及keywords长度字符数限制修改

    织梦5.7 TAG.标题.栏目以及keywords长度字符数限制修改[图文]   标签: 织梦关键词长度修改 织梦tag长度修改 织梦标题长度修改 织梦栏目长度限制修改 织梦修改 分类: 技术操作   ...

  9. php课程---php使用PDO方法详解(转)

    本文详细分析了php使用PDO方法.分享给大家供大家参考.具体分析如下: PDO::exec:返回的是int类型,表示影响结果的条数. 代码如下: PDOStatement::execute 返回的是 ...

  10. Any changes made by a writer will not be seen by other users of the database until the changes have been completed

    https://en.wikipedia.org/wiki/Multiversion_concurrency_control Multiversion concurrency control (MCC ...