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.由于