贝叶斯机器学习:共轭先验

离散随机变量的二项分布和多项式分布,以及连续随机变量的高斯分布,这些都是参数分布(parmetric distribution) 的具体例子。之所以被称为参数分布,是因为少量可调节的参数控制了整个概率分布。

在频率派的观点中,我们通过最优化某些准则(例如似然函数)来确定参数的具体值。而在贝叶斯派的观点中,给定观测数据,我们引入参数的先验分布,然后使用贝叶斯定理来计算对应后验概率分布。

参数方法的另一个限制是它假定分布有一个具体的函数形式,这对于一个具体应用来说是不合适的。另一种替代的方法是非参数(nonparametric) 估计方法。这种方法中分布的形式通常依赖于数据集的规模。这些模型仍然具有参数,但是这些参数控制的是模型的复杂度而不是分布的形式。

我们会看到,对于贝叶斯参数估计而言,共轭先验(conjugate prior) 有着很重要的作用。它使得后验概率分布的函数形式与先验概率相同,因此使得贝叶斯分析得到了极大的简化。例如,二项分布的参数的共轭分布为Beta分布,多项式分布的参数的共轭分布为狄利克雷分布(Dirichlet distribution),而高斯分布的均值的共轭先验是另一个高斯分布。所有这些分布都是指数族(exponential family) 分布的特例。在本篇博客中我们将会介绍二项分布与多项式分布的共轭先验,高斯分布的共轭先验留在下一篇博客中进行介绍。

1 二项分布的共轭先验:Beta分布

1.1 伯努利分布

考虑一个二元随机变量x{0,1},它服从伯努利分布(Bernoulli distribution)

Bern(xμ)=μx(1μ)1x

其中μx=1的概率(0μ1)。这个分布是归一化的(xp(xμ)=(1μ)+μ=1),并且均值和方差为

E[x]=xxBern(xμ)=0x(1μ)+1μ=μ,Var[x]=x(xμ)2Bern(xμ)=(μ)2(1μ)+(1μ)2μ=μ(1μ)

现在我们假设我们有一个x的观测值的数据集D={x1,x2,,xN}。假设每个观测都是独立地从Bern(xμ)中抽取的,因此我们可以构造关于μ的似然函数如下:

p(Dμ)=i=1Nμxi(1μ)1xi

依频率派的做法,我们可以通过最大化似然函数(或等价地最大化对数似然函数)来估计μ的值。这种参数估计方法被称为最大似然估计(maximum likelihood estimation, MLE)(参见博客《统计推断:最大似然估计、贝叶斯估计与方差偏差分解》)。如果我们令dlnp(Dμ)dμ=0,我们就得到了最大似然的估计值μML=1Nixi。这也被称为样本均值(sample mean)。如果我们把数据集里x=1的观测的数量记作m,那么我们可以把上式写成下面的形式:

μML=mN

此时可以理解为数据集里x=1的观测所占的比例。

上述是频率派的参数估计方法,如果采用贝叶斯派的参数估计方法,在将参数μ的先验分布选为均匀分布的情况下,会得到其后验概率分布近似为高斯分布N(μB,μB(1μB)N),这里μBμML一样也是mN(参见博客《概率论沉思录:初等假设检验》)。

1.2 二项分布

我们也可以求解给定数据集规模N的条件下,x=1的观测出现的数量m的概率分布。该分布即是我们在博客《概率论沉思录:初等抽样论》)中提到过的二项分布(binomial distribution)

Bin(mN,μ)=(Nm)μm(1μ)Nm

二项分布的均值和方差如下所示:

E[m]=m=0NmBin(mN,μ)=m=0NmNμmBin(m1N1,μ)=Nμm=1NBin(m1N1,μ)1=Nμ

Var[m]=m=0N(mNμ)2Bin(mN,μ)=Nμm=0N(m(m1)+1Bin(m1N1,μ))2N2μ21+N2μ21=Nμ(E[m1]+1)2N2μ21+N2μ21=Nμ[(N1)μ+1]N2μ2=Nμ(1μ)

这些结果也可以使用结论E[x1++xN]=E[x1]+E[xN](对随机变量xi),与结论Var[x1++xN]=Var[x1]+Var[xN](对相互独立的随机变量xi)得到。由于m=x1++xN,并且对于每次观察有E[xi]=μVar[xi]=μ(1μ),应用该结论得到E[m]=Nμ,Var[m]=Nμ(1μ)

类似地,关于数据集D,对于二项分布而言我们相当于拥有了单个样本点m,我们也可以构造关于μ的似然函数如下:

p(Dμ)=p(mμ)=(Nm)μm(1μ)Nm

再次采用频率派的做法,令dlnp(Dμ)dμ=0,我们就得到了二项分布参数μ的最大似然估计值

μML=mN

可以看到,在二项分布中,参数μ的最大似然解和伯努利分布同样为μML=mN

1.3 Beta分布

我们前面得到了在二项分布中参数μ的最大似然解μML=mN。而我们之前提到过,我们使用的数据集对于想要拟合的二项分布而言相当于只有单个样本点,会给出严重的过拟合结果。为了用贝叶斯的观点看待这个问题,我们需要引入一个关于参数μ的先验分布p(μ)。我们注意到二项分布的似然函数是某个因子与μm(1μ)Nm的乘积的形式。如果我们选择一个正比于μ(1μ)的幂指数的先验概率分布,那么后验概率分布(正比于先验和似然函数的乘积)就会有着与先验分布相同的函数形式(这个性质被叫做共轭性(conjugacy))。这样,先验分布的校正将表现为其参数的校正。这样在处理上是非常方便的,它通常使得计算相当容易。因此,我们把先验分布选择为Beta分布[2],定义为

Beta(μa,b)=1B(a,b)μa1(1μ)b1

其中归一化因子B(a,b)经由我们在博客《概率论沉思录:初等假设检验》中提到过的Beta函数计算得到:

B(a,b)=01μa1(1μ)b1dμ=Γ(a)Γ(b)Γ(a+b)

其中

Γ(x)0tx1etdt,x>0

为Gamma函数。对Γ(x+1)=0txetdt使用一次分部积分法[3]我们有Γ(x+1)=[tx(et)]00xtx1(et)dt=xΓ(x),又因为Γ(1)=0etdt=[et]0=1,因此用归纳法可证明当x为正整数时Γ(x)=(x1)!(参见博客《概率论沉思录:初等假设检验》)。

Beta分布的均值和方差如下所示:

E[μ]=01μBeta(μa,b)dμ=01μ1B(a,b)μa1(1μ)b1dμ=B(a+1,b)B(a,b)=aa+b

Var[μ]=01(μaa+b)2Beta(μa,b)dμ=01(μaa+b)21B(a,b)μa1(1μ)b1dμ=1B(a,b)[B(a+2,b)2aa+bB(a+1,b)+a2(a+b)2B(a,b)]=ab(a+b)2(a+b+1)

参数ab经常被称为超参数(hyperparameter),因为它们控制了参数μ的概率分布。

根据Beta先验Beta(μa,b)=1B(a,b)μa1(1μ)b1与二项分布的似然函数p(mμ)=(Nm)μm(1μ)Nm,我们可得到μ的后验分布为:

p(μm)=p(mμ)Beta(μa,b)01p(mμ)Beta(μa,b)dμ=(Nm)μm(1μ)Nm1B(a,b)μa1(1μ)b101(Nm)μm(1μ)Nm1B(a,b)μa1(1μ)b1dμ=(Nm)1B(a,b)μm+a1(1μ)Nm+b1(Nm)B(m+a,Nm+b)B(a,b)=1B(m+a,Nm+b)μm+a1(1μ)Nm+b1

这是Beta(μm+a,Nm+b)分布。

我们看到,μ的后验分布是另一个Beta分布,这反映出先验关于似然函数的共轭性质。我们还看到,如果一个数据集里有m次观测为x=1,有Nm次观测为x=0,那么从先验概率到后验概率,a的值变大了mb的值变大了Nm。这让我们可以简单地把先验概率中的超参数ab分别看成x=1x=0有效观测数(effective number of observation)。注意,ab不一定是整数。

另外,如果我们接下来观测到更多的数据,那么后验概率分布可以扮演先验概率的角色。为了说明这一点,我们可以假想每次只取一个观测值,然后在每次观测之后更新当前的后验分布。在每个阶段,后验概率都可以视为一个Beta(μa,b)分布,参数ab分别表示对于x=1x=0的观测总数(先验的和实际的)。观测到一个x=1对应于把a的值增加1,而观测到x=0会使b增加1。下图说明了这个过程中的一个步骤:

在该图中,先验分布为Beta(μa=2,b=2)=6μ(1μ),似然函数由公式p(m=1μ)=μ给出(其中N=1),对应于x=1的一次观测,从而后验概率分布为Beta(μa=3,b=2)=12μ2(1μ)

我们看到,如果我们接受了贝叶斯观点,那么学习过程中的顺序(sequential) 方法可以自然而然地得出。它与先验和似然函数的选择无关,只取决于数据独立同分布的假设。顺序方法每次使用一个观测值,或者每次使用一小批观测值。然后再使用下一个观测值之前丢掉它们。

顺序方法可以被用于实时学习的场景中。在实时学习的场景中,输入为一个持续稳定的数据流,模型必须在观测到所有数据之前就进行预测。由于顺序学习的方法不需要把所有的数据都存储到内存里,因此顺序方法对于大的数据集也很有用。最大似然方法也可以转化成顺序的框架。

对于μ的后验分布Beta(m+a,Nm+b),如果我们想在此基础上使用点估计(而不同于直接进行最大似然估计),一个很自然的做法就是采用这个后验分布的均值做为贝叶斯估计量(Bayes estimator),如下式所示:

μB=E[μD]=m+aa+b+N

这里我们也可以采用最大后验点估计(maximum a posteriori, MAP)[4],该方法选择后验概率最大的点(在这里μ是连续值的情况下,也即概率密度最大的点):

μMAP=arg maxμp(μm)

dp(μm)dμ=0可以得到其最大值是在μMAP=m+a1a+b+N2处。

现在我们来考虑一下μ的贝叶斯估计量μB是怎样形成的。先验分布Beta(μa,b)有均值aa+b,它是我们在没有见到数据时对μ的最好估计。当不考虑先验信息,我们可能会使用极大似然估计量μML=mN当作对于μ的估计,而μ的贝叶斯估计量μB则结合进了所有这些信息。如果把μB写成下式,可以清楚地看到这些信息被结合进去的方式:

μB=(a+ba+b+N)(aa+b)E[μ]+(Na+b+N)(mN)μML

这样,μB就表示成先验均值E[μ]=aa+b和最大似然估计量μML=mN(也即样本均值)的一个线性组合,其组合的权重由abN决定。可以看到,在数据集无限大的极限情况下,m,N,此时μB变成了最大似然的结果μML。实际上,有个很普遍的情况是,贝叶斯的结果和最大似然的结果在数据集的规模趋于无穷的情况下会统一到一起。对于有限规模的数据集,μB总是位于先验均值E[μ]和最大似然估计量μML之间。

从之前的图中我们可以看到,μ的后验分布的图像相比其先验分布更尖。进一步地,随着观测数量的不断增加,后验分布的参数ab也会不断增大,后验分布的数量还会越来越尖。下图展示了当ab变化时,Beta分布Beta(μa,b)关于μ的函数图像的变化。

我们也能够通过Beta分布的方差公式Var[μ]=ab(a+b)2(a+b+1)看出这种趋势。根据该公式,如果ab,那么方差就趋于0。我们可能想知道,下面这个性质是不是贝叶斯学习的一个共有属性:随着我们观测到越来越多的数据,后验概率表示的不确定性将会持续下降。

为了说明这一点,我们可以用频率学家的观点考虑贝叶斯学习问题。我们可以证明,平均来看,这种性质确实成立。考虑一个一般的贝叶斯推断问题,参数为θ,并且我们观测到了一个数据集D,由联合概率分布p(θ,D)描述。我们有下列结果:

Eθ[θ]=ED[Eθ[θD]]

其中

Eθ[θ]p(θ)θdθED[Eθ[θD]]{θp(θD)dθ}p(D)dD

该结果表明,θ的后验均值在产生数据集的整个分布上做平均后,等于θ的先验均值。类似地,我们可以证明

Varθ[θ]=ED[Varθ[θD]]+VarD[Eθ[θD]]

上式左侧的项是θ的先验方差。在右侧,第一项是θ的平均后验方差,第二项是θ的后验均值的方差。由于这个方差非负,因此这个结果表明,平均来看,θ的后验方差小于或等于先验方差。后验均值的方差越大,方差减小得就越多。但是需要注意的是,这个结果只在平均情况下成立,对于一个特定的观测数据集,有可能后验方差大于先验方差。

2 多项分布的共轭先验:狄利克雷分布

2.1 类别分布

二元随机变量可以用来描述只能取两种可能值中的一种的这样的量。然而,我们经常会遇到可以取K个互斥状态中的某一种的离散变量。一种比较方便的表示方法是“1-of-K”表示法。这种表示方法中,变量被表示成一个K维向量x,向量中的一个元素xk等于1,剩余元素等于0(注意,这样的向量满足kxk=1)。例如,如果我们有一个能够取K=6种状态的变量,这个变量的某次特定的观测恰好对应于x3=1的状态,那么x就可以表示为x=(0,0,1,0,0,0)Tx的分布为类别分布(categorical distribution)

p(xμ)=k=1Kμkxk

其中μ=(μ1,,μK)T,参数μk表示xk=1的概率(0μk1,kμk=1)。上述概率分布可以被看做是伯努利分布对于多个输出的一个推广。这个分布是归一化的(xp(xu)=kμk=1),并且均值为

E[x]=xp(xμ)x=μ1(10)++μK(01)=(μ1μK)=μ

类似地,我们考虑一个有x的独立观测值的数据集D={x1,x2,,xN}。对应的似然函数形式为

p(Dμ)=i=1Nk=1Kμkxik=k=1Kμkixik=k=1Kμkmk

依频率派的做法,为了找到μ的最大似然解,我们可以关于μk最大化lnp(Dμ),并且要满足约束kμk=1(这可以通过拉格朗日乘数λ实现),此时即最大化:

k=1Kmklnμk+λ(k=1Kμk1)

令上式关于μk的导数等于0,我们有μk=mkλ。把该结果代入到约束kμk=1中,解得λ=N。于是我们得到了最大似然解

μkML=mkN

它是在N次观测中,xk=1的观测所占的比例。

2.2 多项分布

类比于二项分布之于伯努利分布,我们也可以考虑m1,,mK在参数μ和观测总数N下的联合分布。该分布即是我们在博客《概率论沉思录:初等抽样论》)中提到过的多项分布(multinomial distribution)

Mult(m1,,mKμ,N)=N!m1!mK!k=1Kμkmk

其中k=1Kmk=N

类似地,关于数据集D,对于多项分布而言我们相当于拥有了单个样本点(m1,m2,,mK),我们也可以构造关于μ的似然函数如下:

p(Dμ)=p(m1,,mKμ)=N!m1!mK!k=1Kμkmk

再次采用频率派的做法,为了找到μ的最大似然解,我们可以关于μk最大化lnp(Dμ),并且要满足约束kμk=1(这也可以通过拉格朗日乘数λ实现),这样我们就得到了多项分布参数μ的最大似然估计值

μkML=mkN

可以看到,在多项分布中,参数μk的最大似然解和“1-of-K”随机变量的分布同样为μkML=mkN

2.3 狄利克雷分布

现在我们介绍多项分布Mult(m1,,mKμ,N)的参数μ的一族先验分布。观察多项式分布的形式,我们将其对应的共轭先验选择为狄利克雷分布(Dirichlet distribution)[5],定义为

Dir(μα)=1B(α)k=1Kμkαk1

其中归一化因子B(α)经由多项Beta函数[5]计算得到:

B(α)=Ωk=1Kμkαk1dμ=k=1KΓ(αk)Γ(k=1Kαk)

其中积分区域Ω也即μ的值域(0μk1kμk=1),为RK中的K1维的单纯形(simplex)。下图展示了μ=(μ1,μ2,μ3)TR3中的分布情况,可以看到其被限制在了一个二维单纯形平面中:

参数α=(α1,,αK)T。下图展示了在不同的参数α=(α1,α2,α3)T的情况下,单纯形上的狄利克雷分布的图像:

其中两个水平轴是单纯形平面上的坐标轴,垂直轴对应于概率密度的值。这里α=(0.1,0.1,0.1)T对应于左图,α=(1,1,1)T对应于中图,α=(10,10,10)T对应于右图。

根据狄利克雷先验Dir(μα)=1B(α)kμkαk1与多项分布的似然函数p(Dμ)=kμkmk,我们可以可得到μ的后验分布为:

p(μD)=p(Dμ)Dir(μα)Ωp(Dμ)Dir(μα)dμ=kKμkmk1B(α)kKμkαk1ΩkKμkmk1B(α)kKμkαk1dμ=1B(α)kKμmk+αk1B(m+α)B(α)=1B(m+α)kKμmk+αk1

这是Dir(μm+α)分布,其中m=(m1,,mK)T

类比于我们之前为二项分布选择先验分布Beta(μa,b),将参数ab分别看成x=1x=0的有效观测数,这里我们为多项分布选择先验分布Dir(μα),也可以将参数αk看成xk=1的有效观测数。

需要注意的是,具有两个状态的量既可以表示为二元变量然后使用二项分布建模,也可以表示为类别变量然后使用多项分布建模。

参考

  • [1] Bishop C M, Nasrabadi N M. Pattern recognition and machine learning[M]. New York: springer, 2006.
  • [2] Casella G, Berger R. Statistical inference[M]. CRC press, 2024.
  • [3] Rudin W. Principles of mathematical analysis[M]. New York: McGraw-hill, 1964.
  • [4] Bengio Y, Goodfellow I, Courville A. Deep learning[M]. Cambridge, MA, USA: MIT press, 2017.
  • [5] 《维基百科:狄利克雷分布》

__EOF__

  • 本文作者: 猎户座
  • 本文链接: https://www.cnblogs.com/orion-orion/p/18660368
  • 关于博主: 研究生小菜一枚,机器学习半吊子,并行计算混子。
  • 版权声明: 欢迎您对我的文章进行转载,但请务必保留原始出处哦(*^▽^*)。
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • posted @   orion-orion  阅读(217)  评论(0编辑  收藏  举报
    相关博文:
    阅读排行:
    · DeepSeek-R1本地部署如何选择适合你的版本?看这里
    · 开源的 DeepSeek-R1「GitHub 热点速览」
    · 传国玉玺易主,ai.com竟然跳转到国产AI
    · 揭秘 Sdcb Chats 如何解析 DeepSeek-R1 思维链
    · 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)
    点击右上角即可分享
    微信分享提示