《LDA漫游指南》——2.6 共轭先验分布(conjugacy prior)

2.6 共轭先验分布(conjugacy 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 function.[2]

所谓的共轭,只是我们选取(choose)一个函数作为似然函数(likelihood function)的prior probability distribution,使得后验分布函数[3] (posterior distributions)和先验分布函数形式一致。比如Beta分布是二项式分布的共轭先验概率分布,而狄利克雷分布(Dirichlet分布)是多项式分布的共轭先验概率分布。为什么要这样做呢?这得从贝叶斯估计[4]谈起。

根据贝叶斯规则,后验分布=似然函数*先验分布,

参数估计是一个重要的话题。对于典型的离散型随机变量分布(如二项式分布和多项式分布)、典型的连续型随机变量分布(如正态分布),它们都可以看做是参数分布,因为它们的函数形式都被一小部分的参数控制,比如正态分布的均值和方差,二项式分布事件发生的概率等。因此,给定一些观测数据集(假定数据满足独立同分布),我们需要有一个解决方案来确定这些参数值的大小,以便能够利用分布模型来做密度估计。这就是参数估计!

对于参数估计,一直存在两个学派的不同解决方案。一是频率学派解决方案:通过某些优化准则(比如似然函数)来选择特定参数值;二是贝叶斯学派解决方案:假定参数服从一个先验分布,通过观测到的数据,使用贝叶斯理论计算对应的后验分布。先验和后验的选择满足共轭,这些分布都是指数簇分布的例子。

简而言之,假设参数 \theta 也是变量而非常量,而且在做试验前已经服从某个分布p(\theta)(来源于以前做试验数据计算得到,或来自于人们的主观经验),然后现在做新试验去更新这个分布假设。如果不知道最大似然估计(Maximum Likelihood)的概念,详见附录。

2.6.1 从二项分布到Beta分布

注意二项分布概率密度函数为

将参数去掉,变成形式

再加上归一化因子B(α,β)(注意这个归一化因子含有k和n,但绝不含p,变为Beta分布:

Beta分布前一项\beta函数是确保Beta分布是归一化(normalized)。

求证:Beta分布确实是二项分布的共轭先验分布。
证明:

1. 二项分布的似然函数。

这里s表示n次试验中成功的次数,f表示n次伯努利试验中失败的次数。

2. 先验分布Beta分布如下:

3. 由于prior distribution * likelihood = post distribution,得

这就可以看到后验分布(post distribution)又变为Beta分布,也就是和先验分布(prior distribution)一致了,因此我们称为共轭(conjugacy)。

超参数变了。如果以后有新增的观测值,后验分布又可作为先验分布来进行计算。具体来讲,在某一个时间点有一个观测值,此时可以得到后验,之后,每一个观测值的到来,都以之前的后验作为先验,乘以似然函数后,得到修正后的新后验。在这每一步中,其实我们不需要管什么似然函数,可以将后验分布看做是以代表x=1出现“次数”的参数s和代表x=0出现“次数”的参数f为参数的Beta分布:当有一个新的x=1的观测量到来的时候,s=\alpha+1,f=β,即α的值相应的加1;否则s=α,f=\beta+1,即\beta的值加1。所以这也就是超参数(\alpha,\beta)又被称为伪计数(pseudo count)的原因。

我们可以把上面性质所表示的方法看做是序列方法(sequential approach)。该方法是贝叶斯观点中很自然得到的学习方法。它非常适合实时学习场景。在某一时刻,有一个观测数据,或是一小批量数据,在下一批观测数据到来之前我们就可以丢弃它们,因为我们可以在一开始的小批量数据中得到后验分布模型,当有新的一批数据到来时,只需要更新这个模型就可以了。一个实时学习应用场景是:在所有数据到来之前,预测就必须通过之前稳定到达的一部分数据流来作出预测。注意,因为这种序列方法不需要将所有数据都载入内存,因此它在大数据的应用将非常有效。当然,之前频率学派所使用的最大化似然函数方法也可以转换成这种序列式方法的。

另外,我们做先验分布的目的是估计参数,比如投掷硬币试验,需要根据已有的观测数据,估计下一次试验硬币正面结果的概率。

这正是Beta分布的均值,结合Beta分布的均值公式可以得到

2.6.2 从多项分布到Dirichlet分布

通过观察多项式分布的形式(\prod\limits_{k = 1}^K {p_k^{{m_k}}} ),我们选取先验分布的形式为(保留带概率p_k的项):

这里\alpha _1},{\alpha _2},{\alpha _3},...,{\alpha _k}代表这个分布的超参数(或伪计数),\vec \alpha = {({\alpha _1},{\alpha _2},{\alpha _3},...,{\alpha _k})^T}。由于有0 \leqslant {\mu _k} \leqslant 1, \sum\limits_k {{\mu _k} = 1}这两个条件的限制(用{\mu _k}等价于p_k),因此{{\mu _k}}之上的分布是K-1维度。

图2-2为节选自Pattern Recognition and Machine Learning第77页的内容,其含义是假设一共有3个概率,这3个概率μ的范围被限制在红色框所围的坐标轴内。

将式(2.16)加入系数归一化(normalized),便可得到Dirchlet分布的概率密度表达式:

m_k也叫做充分统计量。跟上一节一样,这里的m_k就是根据新试验去更新超参数。注意,f函数内自变量的p_1~p_k-1而非p_k,这是由于p_1~p_k-1一旦确定下来,而因为概率之和=1(0 \leqslant {p_k} \leqslant 1)以及\sum\limits_k {{p_k} = 1} ,因此前面这些“自由变量”一旦被确定,最后一个变量=1-(p_1+p_2+...+p_k) 固定下来而不“自由”了。

求证:Dirichlet分布确实是多项分布的共轭先验分布。
证明:

1.多项分布的似然函数。

2.先验分布Dirichlet分布。

3.由于

时间: 2024-08-06 21:24:17

《LDA漫游指南》——2.6 共轭先验分布(conjugacy prior)的相关文章

《LDA漫游指南》——第2章 前置知识

第2章 前置知识 LDA漫游指南 本章所描述的工具和线索在后期LDA算法的采样公式推导中会全部明了.关于为什么需要使用这些知识要素,这里面有很长的一段历史渊源,比如在概率论和数理统计中,gamma函数被广泛使用,而在最终的LDA采样公式中,你会发现,gamma函数被神奇地消失了.我们在后面的章节中可以看到,LDA算法的精妙之处在于用令人屏息的洞察力作为纽带,将零散的部件全部组合在一起. 2.1 gamma函数 所谓的gamma函数其实就是阶乘的函数形式,即n!=1⋅2⋅3-n.如果我问你3的阶乘

《LDA漫游指南》——第1章 背景

第1章 背景 LDA漫游指南 LDA算法使用的全部知识的渊源可以追溯到18世纪的欧拉.欧拉(Leonhard Euler ,1707年4月15日-1783年9月18日),瑞士数学家,如图1-1所示.欧拉一生贡献颇丰,1734年,欧拉因解决巴塞尔问题而出名,巴塞尔问题见式(1.1)的值是多少. (1.1) 这个问题困扰了数学家长达几个世纪的,当时的数学家只知道该级数的值小于2,但不知道精确值,欧拉准确的推导出该式的值等于π^2/6.欧拉的方法聪明而新颖,他创造性地将有限多项式的观察推广到无穷级数,

《LDA漫游指南》——2.5 狄利克雷分布(Dirichlet Distribution)

2.5 狄利克雷分布(Dirichlet Distribution) Dirichlet分布是Beta分布在多项情况下的推广,也是多项分布的共轭先验分布(共轭先验分布将在2.6节进行介绍).Dirichlet分布的概率密度函数如下: 二项分布和多项分布很相似,Beta分布和Dirichlet 分布很相似,至于"Beta分布是二项式分布的共轭先验概率分布,而Dirichlet分布是多项式分布的共轭先验概率分布"这点会在下文中进行说明. 另一个重要的公式是 为了简便表达,公式中引入了希腊字

《LDA漫游指南》——2.7 总结

2.7 总结 1. 贝叶斯学派采用给参数赋予先验分布,并使得先验与后验共轭,通过求后验均值来得到参数的估计,频率学派通过某个优化准则,比如最大化似然函数来求得参数的估计:不管是哪个学派思想,都要用到似然函数.注意到似然函数有所不同,这点在极大似然估计(MLE)和最大后验概率估计(MAP)体现得尤其明显. 2.当拥有无限数据量时(Beta分布式中的s和f都趋向于无穷,Dirichlet分布式中的m趋向于无穷),贝叶斯方法和频率学派方法所得到的参数估计是一致的.当在有限的数据量下,贝叶斯学派的参数后

《LDA漫游指南》——2.3 Beta分布(Beta distribution)

2.3 Beta分布(Beta distribution) 在概率论中,Beta分布是指一组定义在区间(0,1)的连续概率分布,有两个参数alpha 和beta ,且alpha ,beta > 0. Beta分布的概率密度函数是 (2.5) 随机变量X服从参数为的Beta分布通常写作:Xsim Beta(alpha ,beta ). 这个式子中分母的函数B(alpha ,beta )称为beta函数. 两种证明方法这里我们来证明一个重要的公式,该公式中的关系在LDA算法Gibbs Samplin

《LDA漫游指南》——2.2 二项分布(Binomial distribution)

2.2 二项分布(Binomial distribution) 在概率论中,二项分布即重复n次独立的伯努利试验.在每次试验中只有两种可能的结果(成功/失败),每次成功的概率为p,而且两种结果发生与否互相对立,并且相互独立,与其他各次试验结果无关,事件发生与否的概率在每一次独立试验中都保持不变,则这一系列试验总称为n重伯努利实验,当试验次数为1时,二项分布就是伯努利分布. 在给出二项分布之前,我们来做一个例子,假设你在玩CS这个游戏,你拿着狙击枪,敌人出现,你打中敌人的概率是p,打不中敌人的概率是

《LDA漫游指南》——2.4 多项分布(multinomial distribution)

2.4 多项分布(multinomial distribution) 多项分布[1]是二项分布的推广扩展,在n次独立试验中每次只输出k种结果中的一个,且每种结果都有一个确定的概率p.多项分布给出了在多种输出状态的情况下,关于成功次数的各种组合的概率. 举个例子,投掷n次骰子,这个骰子共有6种结果输出,且1点出现概率为p_1,2点出现概率p_2,--多项分布给出了在n次试验中,骰子1点出现x_1次,2点出现x_2次,3点出现x_3次,-,6点出现x_6次.这个结果组合的概率为 式(2.8)为多项分

[python] LDA处理文档主题分布代码入门笔记

以前只知道LDA是个好东西,但自己并没有真正去使用过.同时,关于它的文章也非常之多,推荐大家阅读书籍<LDA漫游指南>,最近自己在学习文档主题分布和实体对齐中也尝试使用LDA进行简单的实验.这篇文章主要是讲述Python下LDA的基础用法,希望对大家有所帮助.如果文章中有错误或不足之处,还请海涵~ 一. 下载安装 LDA推荐下载地址包括:其中前三个比较常用.        gensim下载地址:https://radimrehurek.com/gensim/models/ldamodel.ht

mahout系列:Dirichlet 分布

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次试验,每次试验中我们都投掷