最大似然估计提供了一个估计参数μ,Σ的框架。现在我们通过引入这些参数的先验分布,来介绍贝叶斯方法。让我们以单元随机高斯变量x这个简单的例子作为开始。假设方差δ2已知,考虑从N个观测量X={x1,...,xN}中推断出均值μ的任务。对于给定μ的观测到数据的概率的似然函数是关于μ的函数,为:
p(X|μ)=N∏n=1p(xn|μ)=1(2πδ2)N/2exp{−12δ2N∑n=1(xn−μ)2}
再一次强调似然函数p(x|μ)不是关于μ的概率分布,也不是标准化的。
我们看到似然函数的指数以μ的二次型的形式出现。这意味着,如果我们选择高斯先验p(μ),那么它会是似然函数的共轭分布。因为对应的后验是两个μ的二次函数的指数的乘积,因此也是一个高斯分布。先令我们的先验分布为:
p(μ)=N(μ|μ0,δ20)
且后验分布由:
p(μ|X)∝p(X|μ)p(μ)
给出。 通过简单的配出指数中二次项的操作,可以得到的后验分布为:
p(μ|X)=N(μ|μN,δ2N)
其中
μN=δ2Nδ20+δ2μ0+Nδ20Nδ20+δ2μML1δ2N=1δ20+Nδ2
其中μML是μ的最大似然解,由样本均值给出:
μML=1NN∑n=1xn
花一点时间来学习后验均值和方差的形式是有价值的。首先,我们注意到由式(2.141)给出的后验分布的均值位于先验均值μ0与最大似然解μML之间。如果观测到的数据点N=0,那么式(2.141)像预期一样退化到先验均值。当N→∞时,后验分布由最大似然解给出。同样的,考虑式(2.142)给出的后验分布的方差。我们看到用方差的逆也就是精度来表示会更加自然。此外,精度是可加的,所以后验的精度是先验精度加上每个观测到的数据点对精度贡献。当观测到更多的数据,精度稳定的增加,对应的后验分布的方差稳定的减少。当没有观测到数据时,我们得到先验方差。当数据量N→∞时,方差δ2N趋向与0,同时后验分布在最大似然解附近变成无限高的尖峰。因此式(2.143)给出的μ的最大似然的点估计可以通过贝叶斯在观测数量趋于无穷时恢复精度。注意,即使对于有限的N,当δ2→∞即先验有无限的方差,那么式(2.141)的后验均值退化成最大似然解,而式(2.142)的后验方差由δ2N=δ2/N给出。
图2.12展示了高斯分布均值的贝叶斯推断的分析。可以很直接地把这个结果推广到已知方差未知均值的D维高斯随机变量x的情况。
图 2.12 高斯分布的均值μ的贝叶斯推断
我们已经看到最大似然如何构造在观测到第N个数据之后,更新之前N−1个数据点得到的均值表达式的顺序方法。实际上,对于推断问题来说,贝叶斯范式很自然的引出顺序观点。为了证明这点,让我们来讨论一下高斯分布下的均值推断,把后验分布中最后一个数据点xN的贡献单独写出来:
p(μ|D)∝[p(μ)N−1∏n=1p(xn|μ)]p(xN|μ)
方括号中的项(忽略标准化系数)是观测到N−1个数据点之后的后验概率分布。把它看成一个先验分布,然后使用贝叶斯定理与和xN相关的似然函数结合到了一起,得到了观测到N个数据点之后的后验概率。这种贝叶斯推断的顺序观点是非常通用的,可以应用于任何独立同分布的观测数据问题中。
之前,我们假设高斯分布的数据的方差是已知的,目标是推断出均值。现在假设均值是已知的,希望推断出方差。同样的,如果选择先验分布的共轭形式,我们的计算会得到大量简化。使用精度λ≡1/σ2进行计算是最方便的。关于λ的似然函数为:
p(X|λ)=N∏n=1N(xn|μ,λ−1)∝λN/2exp{−λ2N∑n=1(xn−μ)2}
因此,对应的共轭先验正比于λ的幂次数和λ的线性函数的指数。这就是Gamma分布,定义为:
Gam(λ|a,b)=1Γ(a)baλa−1exp(−bλ)
其中,Γ(a)是(1.141)中定义的gamma函数,同时保证了式(2.146)被正确的标准化。如果a>0那么gamma分布积分是有穷的,如果a≤1,那么分布本身是有穷的。图2.13展示了不同的a,b的情况下分布。
图 2.13 gamma分布
Gamma分布的均值和方差为:
E[λ]=abvar[λ]=ab2
考虑先验分布Gam(λ|a0,b0)。如果乘以似然函数(2.145),那么就得到后验分布:
p(λ|X)∝λa0−1λN/2exp{−b0λ−λ2N∑n=1(xn−μ)2}
我们可以把它当作形式为Gam(λ|aN,bN)的gamma分布,其中:
aN=a0+N2bN=b0+12N∑n=1(xn−μ)2=b0+N2σ2ML
其中σ2ML是对方差的最大似然估计。注意,在式(2.149)中不需要一直关注先验分布和似然函数的标准化常数,因为如果需要,可以使用式(2.146)给出的Gamma分布的表达式求出正确的系数。
从式(2.150)得到观测到N个数据点的效果是使a增加了N/2。因此我们可以把先验分布中的参数a0看成2a0个“有效”先验观测。同样的,从式(2.151)中得到N个数据点为参数b贡献了Nδ2ML/2其中δ2ML是方差,所以把先验中的参数b0解释为从2a0个“有效”的先验观测的方差为2b0/(2a0)=b0/a0。回忆一下,我们在Dirichlet先验中做过类似的解释。这些分布是指数族的例子,我们将会看到,把共轭先验解释为有效的虚拟数据点是指数族分布的一种通用方法。
在使用方差本身而不是精度的情况下,共轭先验被称为逆Gamma(inverse gamma)分布。我们不会详细地讨论这个分布,因为使用精度来进行计算会更加方便。
现在,假设均值和精度都是未知的。为了找到共轭先验,考虑似然函数对μ,λ的依赖:
p(X|μ,λ)=N∏n=1(λ2π)12exp{−λ2(xn−μ)2}∝[λ1/2exp(−λμ22)]Nexp{λμN∑n=1xn−λ2N∑n=1x2n}
现在,我们在想找到一个对于μ,λ的依赖与似然函数有着相同的函数形式的先验分布p(μ,λ)因此,采用形式:
p(μ,λ)∝[λ1/2exp(−λμ22)]βexp{cλμ−dλ}=exp{−βλ2(μ−c/β)2}λβ/2exp{−(d−c22β)λ}
其中c,d,β是常量。由于总有p(μ,λ)=p(μ|λ)p(λ),我们可以通过观察找到p(μ|λ),p(λ)。特别的,当p(μ|λ)是一个精度为关于λ的线性函数的高斯分布,p(λ)是一个gamma分布时,得到的标准化的先验形式为:
p(μ,λ)=N(μ|μ0,(βλ)−1)Gam(λ|a,b)
其中,我们的新常数为μ0=c/β,a=1+β/2,b=d−c2/2β。式(2.154)的分布被称为正态-gamma(normal-gamma)或高斯-gamma(Gaussian-gamma)分布,并在图2.14中展示。
图 2.14 高斯-gamma分布
注意,因为μ的精度是λ的线性函数,所以不能简单的把一个独立的μ上的的高斯先验与一个λ上的的Gamma分布相乘。即使选择一个μ,λ 相互独立的先验,后验分布中μ的精度和λ的值也会相互耦合。
对于D维向量x的多元高斯分布N(x|μ,Λ−1),假设精度已知,那么均值μ共轭先验还是高斯分布。对于已知的均值,未知的精度矩阵Λ,共轭先验是Wishart分布:
W(Λ|W,v)=B|Λ|(v−D−1)/2exp(−12Tr(W−1Λ))
其中v是分布的自由度,W是D×D的伸缩矩阵,TR(˙)记作迹。标准化常量B为:
B(W,v)=|W|−v/2(2vD/2πD(D−1)/4D∏i=1Γ(v+1−i2))−1
同样的,用协方差矩阵本身(而不是精度)定义的先验分布也可行的,这会推导出逆Wishart分布,但是我们不会详细讨论这一点。如果均值和精度同时未知,那么,和一元变量类似的推理得到共轭先验:
p(μ,Λ|μ0,β,W,v)=N(μ|μ0,(βΛ)−1)W(Λ|W,v)
这被称为正态-Wishart分布或高斯-Wishart分布。