共轭分布

在贝叶斯概率理论中,如果后验概率和先验概率满足同样的分布律,那么,先验分布和后验分布被叫做共轭分布,同时,先验分布叫做似然函数的共轭先验分布。

Beta分布是二项式分布的共轭先验分布,而狄利克雷(Dirichlet)分布是多项式分布的共轭分布。

共轭的意思是,以Beta分布和二项式分布为例,数据符合二项分布的时候,参数的先验分布和后验分布都能保持Beta分布的形式,这种形式不变的好处是,我们能够在先验分布中赋予参数很明确的物理意义,这个物理意义可以延续到后续分布中进行解释,同时从先验变换到后验过程中从数据中补充的知识也容易有物理解释。


我们还是从一个例子讲起。假如你有一个硬币,它有可能是不均匀的,所以投这个硬币有 θ 的概率抛出Head,有 (1−θ) 的概率抛出Tail。如果抛了五次这个硬币,有三次是Head,有两次是Tail,这个 θ 最有可能是多少呢?如果你必须给出一个确定的值,并且你完全根据目前观测的结果来估计 θ,那么显然你会得出结论 θ=3/5。

但上面这种点估计的方法显然有漏洞,这种漏洞主要体现在实验次数比较少的时候,所得出的点估计结果可能有较大偏差。大数定理也告诉我们,在重复实验中,随着实验次数的增加,事件发生的频率才趋于一个稳定值。一个比较极端的例子是,如果你抛出五次硬币,全部都是Head。那么按照之前的逻辑,你将估计 θ 的值等于 1。也就是说,你估计这枚硬币不管怎么投,都朝上!但是按正常思维推理,我们显然不太会相信世界上有这么厉害的硬币,显然硬币还是有一定可能抛出Tail的。就算观测到再多次的Head,抛出Tail的概率还是不可能为0。

前面介绍的贝叶斯定理或许可以帮助我们。在贝叶斯学派看来,参数 θ 不再是一个固定的值了,而是满足一定的概率分布!回想一下前面介绍的先验概率和后验概率。在估计 θ 时,我们心中可能有一个根据经验的估计,即先验概率,P(θ)。而给定一系列实验观察结果 X 的条件下,我们可以得到后验概率为

image

在上面的贝叶斯公式中,P(θ) 就是个概率分布。这个概率分布可以是任何概率分布,比如高斯分布,或者刚刚提过的 Beta 分布。下图是Beta(5,2)的概率分布图。如果我们将这个概率分布作为 P(θ),那么我们在还未抛硬币前,便认为 θ 很可能接近于0.8,而不大可能是个很小的值或是一个很大的值。换言之,我们在抛硬币前,便估计这枚硬币更可能有0.8的概率抛出正面。

虽然 P(θ) 可以是任何种类的概率分布,但是如果使用Beta 分布,会让之后的计算更加方便。我们接着继续看便知道这是为什么了。况且,通过调节 Beta 分布中的 a 和 b,你可以让这个概率分布变成各种你想要的形状!Beta 分布已经很足够表达我们事先对 θ的估计了。

现在我们已经估计好了 P(θ) 为一个 Beta 分布,那么 P(X|θ) 是多少呢?其实就是个二项(Binomial)分布。继续以前面抛5次硬币抛出3次Head的观察结果为例,X=抛5次硬币3次结果为Head的事件,image

贝叶斯公式中分母上的 P(X) 是个Normalizer,或者叫做边缘概率。在 θ 是离散的情况下,P(X) 就是 θ 为不同值的时候,P(X|θ) 的求和。例如,假设我们事先估计硬币抛出正面的概率只可能是0.5或者0.8,那么 P(X)=P(X|θ=0.5)+P(X|θ=0.8),计算时分别将 θ=0.5 和 θ=0.8 代入到前面的二项分布公式中。而如果我们采用 Beta 分布,θ的概率分布在[0,1]之间是连续的,所以要用积分,即

image

下面的证明就告诉我们:P(θ) 是个 Beta 分布,那么在观测到“X=抛5次硬币中出现3个head”的事件后,P(θ|X) 依旧是个 Beta 分布!只是这个概率分布的形状因为观测的事件而发生了变化。

image

因为观测前后,对 θ 估计的概率分布均为 Beta 分布,这就是为什么使用 Beta 分布方便我们计算的原因了。当我们得知 P(θ|X)=Beta(θ|a+3,b+2)后,我们就只要根据 Beta 分布的特性,得出 θ 最有可能等于多少了。(即 θ 等于多少时,观测后得到的 Beta 分布有最大的概率密度)。

例如下图,仔细观察新得到的 Beta 分布,和上一图中的概率分布对比,发现峰值从0.8左右的位置移向了0.7左右的位置。这是因为新观测到的数据中,5次有3次是head(60%),这让我们觉得,θ 没有0.8那么高。但由于我们之前觉得 θ 有0.8那么高,我们觉得抛出head的概率肯定又要比60%高一些!这就是Bayesian方法和普通的统计方法不同的地方。我们结合自己的先验概率和观测结果来给出预测。

如果我们投的不是硬币,而是一个多面体(比如骰子),那么我们就要使用 Dirichlet 分布了。使用Dirichlet 分布之目的,也是为了让观测后得到的posterior probability依旧是 Dirichlet 分布。关于 Dirichlet 分布的话题我们会在后续的文章中继续介绍。

到此为止,我们终于可以引出“共轭性”的概念了!后验概率分布(正⽐于先验和似然函数的乘积)拥有与先验分布相同的函数形式。这个性质被叫做共轭性(Conjugacy)。共轭先验(conjugate prior)有着很重要的作⽤。它使得后验概率分布的函数形式与先验概率相同,因此使得贝叶斯分析得到了极⼤的简化。例如,二项分布的参数之共轭先验就是我们前面介绍的 Beta 分布。多项式分布的参数之共轭先验则是 Dirichlet 分布,⽽⾼斯分布的均值之共轭先验是另⼀个⾼斯分布。

总的来说,对于给定的概率分布 P(X|θ),我们可以寻求一个与该似然函数 ,即P(X|θ), 共轭的先验分布 P(θ),如此一来后验分布 P(θ|X) 就会同先验分布具有相同的函数形式。而且对于任何指数族成员来说,都存在有一个共轭先验。

总结:所谓共轭就是指这两个概率分布具有相同的形式。


对于应用贝叶斯理论的人来说,当你观察一个事件x ,你预估计并给出其内部参数θ ,表示你对于事件x 发生的置信程度。如果你熟悉贝叶斯方法,当你每次观测到新的x 数据时你就会更新你预先给出的参数θ 。那么就要问了,你新观测到的x 样本点对于你改变样本参数θ 的影响有多大?这就取决与你一开始对参数θ 的确定程度。如果你给出的参数θ 基于你经过上千上万次认真实验得到的因此你很确定你的参数值,那么单一的新数据不会对参数有多大影响。但是如果你的参数θ 的估计仅仅是从一个不可靠的朋友那听来的,那么新数据对于你重新估计参数值θ 的影响就会大很多。当然,当你重新估计θ 的时候,你也要重新估计你新参数值的确定程度(置信程度)。换个方式说,你就是要计算θ 的可能值的新概率分布。新概率分布为P(θ | x),其计算可以使用贝叶斯法则:

image

P(x |θ )表示以预估θ 为参数的 x概率分布,可以直接求得。P(θ )是已有原始的θ 概率分布。不同设定参数的精确度决定了你对θ 的置信程度。所以分子部分可以直接计算求得。分母部分的计算很棘手。对于任意分布形式,积分计算可能会有很多困难。也许你并不是想找出参数θ 的整个分布。你只是想求得一个最优值来做预测。如果这是你的目标,那你就可以选取分布 P(θ | x),求θ 的值使得 P(θ | x)最大,作为新的参数。由于我们已经获得了P(θ | x)的形式,所以可以得到对于参数的置信程度。(可以理解为最大似然法求参数)实际中,利用最大似然法求参数θ 通常很困难。因为有局部最优解的存在,还有优化问题中的一些普遍问题。对于足够简单的分布,可以利用EM 算法保证参数收敛到一个局部最优解。但是对于复杂得多的分布,这个方法就变得力不从心,这就要利用近似算法。所以要尽量保证 P(x |θ )和 P(θ )简单。P(x |θ )分布的选择是模型选择的问题,选择复杂的模型可以更好的反应数据的深层形式,但也会增加更多的时间和内存开销。假设在确定 P(θ )分布形式之前我们先选择模型的形式。那么如何确定 P(θ )的最佳的分布形式?注意每次你观测一个新数据的时候,你就要计算一次上面等式。这样在观察数据的过程中,你就要乘上许多不同的概率分布。如果 P(θ )分布没有选择好, P(θ )会很快变得非常麻烦。聪明的你会发现,选取 P(θ )作为P(x |θ )分布的共轭先验。如果P(x |θ )乘以 P(θ )然后归一化结果后其形式和 P(θ )的形式一样,那么我们就说 P(θ )共轭于P(x |θ )。注: P(x |θ )我们也称作似然函数。先验概率 P(θ )和似然函数的乘积,然后归一化得到后验概率P(θ | x)。共轭先验的定义为:如果后验概率分布和先验概率分布有相同的形式(如同为指数族分布),则后验概率分布和先验概率分布统称共轭分布。那么先验概率 P(θ )称为似然函数的共轭先验。考虑一个离散情况的例子:投掷一个非均匀硬币(正反面概率不相等),可以使用参数为θ 伯努利模型,那么结果x 的分布形式为:(关于伯努利分布可以参考其他资料)

image

其共轭先验为beta 分布,具有两个参数α 和β ,我们称之为超参数(hyperparameters)。简单解释就是,这两个参数决定了我们的θ 参数。Beta 分布形式为:

image

同样θ 为硬币为正面的概率。取值范围为0 到1。所以这个方程是归一化的方程。假如你观察一次投硬币x 事件然后要更新关于参数θ 的置信度。Beta函数的分母是一个归一化测常数,计算P(θ | x)的时候可以忽略它,只要计算完后再归一化即可。

image

归一化这个等式后会得到另一个beta 分布,就是伯努利分布的共轭先验。
如果对二项分布熟悉,beta 分布的分子部分和二项分布非阶乘部分很相似,归一化后得到的beta
分布为:

image

注:二项分布的形式为:

image

也可以写作:

image

可以看出,beta 分布和二项式分布几乎是一样的。他们最大的不同点是,beta 分布是带有预设定参数α 和β 关于θ 的函数。而二项分布是带有预设定参数θ 和α +β 关于α 的函数。很显然beta 分布共轭于二项式分布。另外一个区别是:beta 分布用伽马函数作为归一化系数,而二项分布使用阶乘系数。回忆伽马函数只是将系数向实数域的一个扩展。这样就允许α 和β 为任意正实数。而二项式的系数只能定义为任意正整数。关于更多关于二项分布, beta 分布, gama 函数的内容见链接http://www.mhtl.uwaterloo.ca/courses/me755/web_chap1.pdf。现在想一下这些问题,共轭先验有什么意义?它仅仅是我们的一种数学计算工具吗?答案显然不是,它有更深的意义对于beta 分布的形式。考虑上面的内容,如果你已经观察了很多数据,那么再观察另外一个数据对于你对模型的认识并不会改变多少。如果,你仅仅一开始观测了少量数据,那么观察另外的单一数据对于你的模型参数置信度影响就会很大。你可以通过共轭先验的形式获得这个直觉上的判断。

考虑投硬币的例子,我们设α 和β 为得到正面和反面的次数,将其作为beta 分布的参数,实验有两种情况:第一种我们投10 次,3 次正面7 次反面。第二种投10000 次,3000 次正面,7000次反面。从这个beta 分布中很容易得到两种情况下各自“声称正面概率为30%”的置信度的不同。(如果我们对一个模型没有任何先验知识,我们可以将beta 分布的两个参数α 和β 都等于1,beta 分布变成均匀分布。或者将两个系数都等于N+1。将这个两个超参数设为小于1 的值,那么模型就具有了“负数据”,可以让我们避免对于真实数据中带有噪音的参数θ 过度拟合。)注:上面一段有异议,关于两个参数α 和β 都等于1,表示模型没有先验知识是有争议的。Haldane 先验 alpha = beta = 0 and Jeffreys' 先验模型, alpha = beta = 0.5。概括一下,beta 分布是伯努利分布和二项式分布的共轭先验。在做贝叶斯理论相关计算时非常有用和有效。也可使用实数和虚数的先验数据。其他共轭先验如狄利克雷分布是多项式分布的共轭先验,原理是相似的。


参考文献:http://blog.csdn.net/baimafujinji/article/details/51374202

               http://lesswrong.com/lw/5sn/the_joys_of_conjugate_priors/

 

posted @ 2017-12-28 23:05  彼岸花杀是条狗  阅读(3524)  评论(0编辑  收藏  举报