贝叶斯网专题12:参数学习之贝叶斯估计
第一部分:贝叶斯网基础
1.1 信息论基础
1.2 贝叶斯网基本概念
1.3 变量独立性的图论分析
第二部分:贝叶斯网推理
2.1 概率推理中的变量消元方法
2.2 团树传播算法
2.3 近似推理
2.3.1 蒙特卡洛方法
2.3.1.1 重要性抽样法
2.3.1.2 马尔可夫蒙特卡洛抽样法(MCMC)
2.3.2 变分推理
第三部分:贝叶斯网参数学习
3.1 理论基础-分布的分布
3.2 极大似然估计
3.3 贝叶斯估计
上个暑假结束前,贝叶斯网专题更新到参数学习的极大似然估计部分。上了一学期课,寒假来临了,又有时间再续前缘。接下来将通过几个专题介绍参数学习的贝叶斯估计方法、结构学习的方法以及隐结构学习的方法。隐结构学习中将会遇到一些迄今为止仍未解决的问题,未来可沿着这个方向做进一步的研究。下面进入本次专题的内容:参数学习之贝叶斯估计方法。
当贝叶斯网的结构已知,而各节点的条件概率表存在未知项时,可通过参数学习方法从样本集中估计这些未知项。常用的参数学习方法包括极大似然估计和贝叶斯估计。上一专题已经介绍了极大似然估计,其认为待估参数是固定的,我们观察到了一些样本数据,这些样本数据既然已经出现,那就认为它们出现的概率是最大的,进而反推出参数的取值。而贝叶斯估计的思路与此不同,它认为参数服从某种分布,观察到的样本数据只是在这种参数的分布下产生的,因此我们可以根据经验给出待估参数的先验分布,并通过观察到的样本的似然度和贝叶斯公式计算后验分布,并以参数在该后验分布下的期望来估算参数值。
上面这段加粗的文字概括了贝叶斯估计的基本思想,下面将通过最简单的单参数情况来介绍贝叶斯估计的概念和方法,并逐步推广到单变量多参数贝叶斯估计和一般网络参数贝叶斯估计。
3.3.1 单参数贝叶斯估计
考虑如下两个问题:
(1) 假设投掷一枚图钉6次,其中2次帽向上,4次尖向上,问下一次投掷帽向上的概率是多少?
(2) 若将上一问中的图钉换成硬币,帽为正面,尖为反面,则下一次投掷正面向上的概率是多少?
若按照最大似然估计原则,这两个问题的答案都是26\frac{2}{6}62,但直观上我们会感觉投掷硬币的概率应该比较平均,将26\frac{2}{6}62作为问题(1)的答案比较合理,而作为问题(2)的答案则不能令人信服。
最大似然估计不能区分以上两种情况,因为它将待估参数视为一个未知但固定的值,不考虑先验知识的影响。而贝叶斯估计则将待估参数视为一个随机变量,其所服从的先验分布体现了对该参数的先验知识。
我们从这个最简单的单参数估计问题来引出贝叶斯估计的概念。在这个问题中,我们的待估参数θ\thetaθ为投掷图钉帽面朝上(投掷硬币正面朝上)的概率。贝叶斯估计是计算θ\thetaθ的后验分布。为此,首先要选用一个概率分布p(θ)p(\theta)p(θ)来总结关于θ\thetaθ的先验知识,然后将数据D=(D1,D2,⋯)D=(D_1,D_2,\cdots)D=(D1,D2,⋯)的影响用似然函数L(θ∣D)=P(D∣θ)L(\theta|D)=P(D|\theta)L(θ∣D)=P(D∣θ)来归纳,最后使用贝叶斯公式将先验分布和似然函数结合,得到θ\thetaθ的后验分布,即:
p(θ∣D)=L(θ∣D)p(θ)p(D)∝L(θ∣D)p(θ)(1)\begin{aligned} p(\theta|D)&=\frac{L(\theta|D)p(\theta)}{p(D)}\\ &\propto L(\theta|D)p(\theta)\tag{1} \end{aligned} p(θ∣D)=p(D)L(θ∣D)p(θ)∝L(θ∣D)p(θ)(1)
上式中的分母可以看作是归一化项,给定一个数据集D,其概率就已经确定,是一个常数,在进行贝叶斯最大后验概率估计( Bayesian MAP estimation)时,省略该分母不影响最终结果:
θ∗=argmaxθp(θ∣D)=argmaxθL(θ∣D)p(θ)\begin{aligned} \theta^*&=\mathop{\arg\max}\limits_\theta p(\theta|D)\\ &=\mathop{\arg\max}\limits_\theta L(\theta|D)p(\theta) \end{aligned} θ∗=θargmaxp(θ∣D)=θargmaxL(θ∣D)p(θ)
我们也可以进行完全贝叶斯估计(full Bayesian estimation),即计算待估参数在后验分布下的期望:
θ∗=∫θp(θ∣D)dθ\theta^*=\int \theta p(\theta|D)d\theta θ∗=∫θp(θ∣D)dθ
在积分计算比较困难时,可使用最大后验概率估计替代。若无特别说明,后文所指都是完全贝叶斯估计。
为了方便计算,需要对数据集做独立同分布假设,即给定θ\thetaθ,D中的样本满足i.i.d.假设,从而样本集的似然函数L(θ∣D)L(\theta|D)L(θ∣D)可改写为:
L(θ∣D)=θmh(1−θ)mtL(\theta|D)=\theta^{m_h}(1-\theta)^{m_t} L(θ∣D)=θmh(1−θ)mt
其中mh,mtm_h,m_tmh,mt分别表示数据集D中图钉帽朝上和尖朝上的样本个数。
而参数的先验分布p(θ)p(\theta)p(θ)一般假设是一个Beta分布B[αh,αt]B[\alpha_h,\alpha_t]B[αh,αt],即:
p(θ)=Γ(αh+αt)Γ(αh)Γ(αt)θαh−1(1−θ)αt−1p(\theta)=\frac{\Gamma(\alpha_h+\alpha_t)}{\Gamma(\alpha_h)\Gamma(\alpha_t)}\theta^{\alpha_h-1}(1-\theta)^{\alpha_t-1} p(θ)=Γ(αh)Γ(αt)Γ(αh+αt)θαh−1(1−θ)αt−1
关于Gamma函数、Beta分布,以及后面推广到多参数时的Dirichlet分布,在分布的分布一节中已经介绍过,不熟悉的读者可先跳转过去打牢基础。
假设θ∼B[αh,αt]\theta\sim B[\alpha_h,\alpha_t]θ∼B[αh,αt]相当于假设关于θ\thetaθ的先验知识是已经投掷了αh+αt\alpha_h+\alpha_tαh+αt次,其中αh\alpha_hαh次帽朝上,αt\alpha_tαt次尖朝上。αh,αt\alpha_h,\alpha_tαh,αt称为超参数,αh+αt\alpha_h+\alpha_tαh+αt称为等价样本量。
将似然函数和先验分布代入式(1),可得:
p(θ∣D)∝θmh(1−θ)mtθαh−1(1−θ)αt−1=θmh+αh−1(1−θ)mt+αt−1\begin{aligned} p(\theta|D)&\propto \theta^{m_h}(1-\theta)^{m_t}\theta^{\alpha_h-1}(1-\theta)^{\alpha_t-1}\\ &=\theta^{m_h+\alpha_h-1}(1-\theta)^{m_t+\alpha_t-1} \end{aligned} p(θ∣D)∝θmh(1−θ)mtθαh−1(1−θ)αt−1=θmh+αh−1(1−θ)mt+αt−1
由此可知,θ\thetaθ的后验分布p(θ∣D)p(\theta|D)p(θ∣D)也服从Beta分布,其超参数为mh+αh,mt+αtm_h+\alpha_h,m_t+\alpha_tmh+αh,mt+αt,上式增加归一化项后的完整形式为:
p(θ∣D)=Γ(mh+αh+mt+αt)Γ(mh+αh)Γ(mt+αt)θmh+αh−1(1−θ)mt+αt−1p(\theta|D)=\frac{\Gamma(m_h+\alpha_h+m_t+\alpha_t)}{\Gamma(m_h+\alpha_h)\Gamma(m_t+\alpha_t)}\theta^{m_h+\alpha_h-1}(1-\theta)^{m_t+\alpha_t-1} p(θ∣D)=Γ(mh+αh)Γ(mt+αt)Γ(mh+αh+mt+αt)θmh+αh−1(1−θ)mt+αt−1
从而θ\thetaθ的完全贝叶斯估计为:
θ∗=∫θp(θ∣D)dθ=Γ(mh+αh+mt+αt)Γ(mh+αh)Γ(mt+αt)∫θθmh+αh−1(1−θ)mt+αt−1dθ=mh+αhmh+αh+mt+αt(2)\begin{aligned} \theta^*&=\int \theta p(\theta|D)d\theta\\ &=\frac{\Gamma(m_h+\alpha_h+m_t+\alpha_t)}{\Gamma(m_h+\alpha_h)\Gamma(m_t+\alpha_t)}\int \theta\theta^{m_h+\alpha_h-1}(1-\theta)^{m_t+\alpha_t-1}d\theta\\ &=\frac{m_h+\alpha_h}{m_h+\alpha_h+m_t+\alpha_t}\tag{2} \end{aligned} θ∗=∫θp(θ∣D)dθ=Γ(mh+αh)Γ(mt+αt)Γ(mh+αh+mt+αt)∫θθmh+αh−1(1−θ)mt+αt−1dθ=mh+αh+mt+αtmh+αh(2)
关于该积分的计算技巧,可参考分布的分布一节,也可直接使用该节中给出的关于Beta分布期望的结论。
由式(2)可知;当样本量较小时,该估计主要依赖于先验知识;当样本量很大时,该估计主要依赖样本数据,并逐渐接近最大似然估计mhmh+mt\frac{m_h}{m_h+m_t}mh+mtmh,先验知识的影响逐渐减小。
回到本节开头提出的掷图钉和掷硬币的实验:由于我们没有关于掷图钉的先验知识,可以假设先验分布为B[0,0]B[0,0]B[0,0];而关于掷硬币,我们的先验知识是正面朝上的概率为12\frac{1}{2}21,但又不能完全排除这是一枚魔术硬币,所以可假设其先验分布为B[100,100]B[100,100]B[100,100]。样本集D中的mh=2,mt=4m_h=2,m_t=4mh=2,mt=4,分别代入式(2),可得:
- 掷图钉时帽朝上的概率θ\thetaθ的贝叶斯估计为2+06+0=26\frac{2+0}{6+0}=\frac{2}{6}6+02+0=62
- 掷硬币时头朝上的概率θ\thetaθ的贝叶斯估计为2+1006+200≈12\frac{2+100}{6+200}\approx\frac{1}{2}6+2002+100≈21
若假设投掷硬币60000次,得到20000次正面朝上,即mh=20000,mt=40000m_h=20000,m_t=40000mh=20000,mt=40000,那么:
- 掷硬币时头朝上的概率θ\thetaθ的贝叶斯估计为20000+10060000+200≈26\frac{20000+100}{60000+200}\approx\frac{2}{6}60000+20020000+100≈62
这里,样本量很大,数据占据主导,关于硬币均匀的先验知识被数据修正,可断定该硬币为魔术硬币。
共轭分布与增量学习
在分布的分布一节中,介绍过共轭分布的概念。Beta分布是二项似然函数的共轭分布,即先验分布服从Beta分布,似然函数服从二项分布,则后验分布也服从Beta分布。若假设先验分布服从正态分布,则贝叶斯估计的计算会很困难。这正是共轭分布带来的好处。
后面将单参数贝叶斯估计推广到多参数时,Beta分布变为对应的Dirichlet分布,其与多项分布是共轭分布。
共轭分布使得我们可以清楚地观察到贝叶斯估计是如何将先验知识与观测数据结合到一起的,而这一过程可循序渐进地进行,即可以一个一个地处理数据样本,每处理一个就更新一次参数,这种参数更新方式即为及其学习中的增量学习。
与在线学习对应的是批量学习,批量学习则需要一次处理所有数据,当新数据出现后,需要和老数据混合后重新进行参数估计。该过程完全不依赖之前的估计。贝叶斯估计既可以进行增量学习,也可以进行批量学习。
3.3.2 单变量多参数贝叶斯估计
考虑一个由多值变量X组成的单节点贝叶斯网,设X有r种取值,ΩX={x1,x2,⋯,xr}\Omega_X=\{x_1,x_2,\cdots,x_r\}ΩX={x1,x2,⋯,xr},则该单节点贝叶斯网存在r个待估参数θi=P(X=xi),i=1,2,⋯,r\theta_i=P(X=x_i),i=1,2,\cdots,rθi=P(X=xi),i=1,2,⋯,r。用θ\bm\thetaθ记向量(θ1,θ2,⋯,θr)(\theta_1,\theta_2,\cdots,\theta_r)(θ1,θ2,⋯,θr),其中∑i=1rθi=1\sum_{i=1}^r\theta_i=1∑i=1rθi=1。设有一组i.i.d.数据D=(D1,D2,⋯,Dm)D=(D_1,D_2,\cdots,D_m)D=(D1,D2,⋯,Dm),其中满足X=xiX=x_iX=xi的样本个数是mim_imi,则可得到似然函数:
L(θ∣D)=∏i=1rθimi(3)L(\bm\theta|D)=\prod_{i=1}^r\theta_i^{m_i}\tag{3} L(θ∣D)=i=1∏rθimi(3)
具有这种形式的似然函数称为多项似然函数,其中的{mi∣i=1,2,⋯,r}\{m_i|i=1,2,\cdots,r\}{mi∣i=1,2,⋯,r}是充分统计量。
多项似然函数的共轭分布是Dirichlet分布,因此在进行贝叶斯估计时,一般假设θ\bm\thetaθ的先验分布为D[α1,α2,⋯,αr]D[\alpha_1,\alpha_2,\cdots,\alpha_r]D[α1,α2,⋯,αr],即:
p(θ)=Γ(α)∏i=1rΓ(αi)∏i=1rθiαi−1(4)p(\bm\theta)=\frac{\Gamma(\alpha)}{\prod_{i=1}^r\Gamma(\alpha_i)}\prod_{i=1}^r\theta_i^{\alpha_i-1}\tag{4} p(θ)=∏i=1rΓ(αi)Γ(α)i=1∏rθiαi−1(4)
其中α=∑i=1rαi\alpha=\sum_{i=1}^r\alpha_iα=∑i=1rαi。当r=2时,Dirichlet分布D[α1,α2]D[\alpha_1,\alpha_2]D[α1,α2]就是Beta分布B[α1,α2]B[\alpha_1,\alpha_2]B[α1,α2]。
假设θ\bm\thetaθ的先验分布为D[α1,α2,⋯,αr]D[\alpha_1,\alpha_2,\cdots,\alpha_r]D[α1,α2,⋯,αr]等于假设关于θ\bm\thetaθ的先验知识包括α\alphaα个虚拟数据样本,其中满足X=xiX=x_iX=xi的样本数为αi\alpha_iαi个,α\alphaα称为等价样本量。
将式(3)(4)代入贝叶斯公式,可得θ\bm\thetaθ的后验概率分布满足:
p(θ∣D)∝∏i=1rθimiΓ(α)∏i=1rΓ(αi)∏i=1rθiαi−1∝∏i=1rθimi+αi−1\begin{aligned} p(\bm\theta|D)&\propto\prod_{i=1}^r\theta_i^{m_i}\frac{\Gamma(\alpha)}{\prod_{i=1}^r\Gamma(\alpha_i)}\prod_{i=1}^r\theta_i^{\alpha_i-1}\\ &\propto\prod_{i=1}^r\theta_i^{m_i+\alpha_i-1} \end{aligned} p(θ∣D)∝i=1∏rθimi∏i=1rΓ(αi)Γ(α)i=1∏rθiαi−1∝i=1∏rθimi+αi−1
即p(θ∣D)p(\bm\theta|D)p(θ∣D)是Dirichlet分布D[m1+α1,m2+α2,⋯,mr+αr]D[m_1+\alpha_1,m_2+\alpha_2,\cdots,m_r+\alpha_r]D[m1+α1,m2+α2,⋯,mr+αr]。
在分布的分布一节中推导过Dirichlet分布的期望,从而可得θ\bm\thetaθ中各分量θi\theta_iθi的完全贝叶斯估计为:
θi∗=∫θip(θ∣D)dθ=mi+αim+α\theta_i^*=\int\theta_ip(\bm\theta|D)d\bm\theta=\frac{m_i+\alpha_i}{m+\alpha} θi∗=∫θip(θ∣D)dθ=m+αmi+αi
由此可知,当样本量m很小时,该估计主要依赖先验知识;当样本量m很大时,该估计逐渐接近最大似然估计,先验知识的影响逐渐减小。
3.3.3 一般网络贝叶斯估计
考虑一个由nnn个变量X={X1,X2,⋯,Xn}X=\{X_1,X_2,\cdots,X_n\}X={X1,X2,⋯,Xn}组成的贝叶斯网NNN。不失一般性,设其中的节点XiX_iXi共有rir_iri个取值1,2,⋯,ri1,2,\cdots,r_i1,2,⋯,ri,其父节点π(Xi)\pi(X_i)π(Xi)的取值共有qiq_iqi种组合1,2,⋯,qi1,2,\cdots,q_i1,2,⋯,qi。若XiX_iXi无父节点,则qi=1q_i=1qi=1。那么,网络的参数为:
θijk=P(Xi=k∣π(Xi)=j)\theta_{ijk}=P(X_i=k|\pi(X_i)=j)θijk=P(Xi=k∣π(Xi)=j)
其中iii的取值范围是1,2,⋯,n1,2,\cdots,n1,2,⋯,n,表示nnn个变量中的第iii个。对于第iii个变量XiX_iXi,jjj的取值范围是1,2,⋯,qi1,2,\cdots,q_i1,2,⋯,qi,表示其父节点π(Xi)\pi(X_i)π(Xi)的第jjj种取值组合;kkk的取值范围是1,2,⋯,ri1,2,\cdots,r_i1,2,⋯,ri,表示XiX_iXi的第kkk种取值。用θ\bm\thetaθ记所有θijk\theta_{ijk}θijk组成的向量,由于概率归一性,该贝叶斯网NNN的独立参数个数为∑i=1nqi(ri−1)\sum_{i=1}^nq_i(r_i-1)∑i=1nqi(ri−1)。
要对参数θ\bm\thetaθ进行贝叶斯估计,首先要将θ\bm\thetaθ视为随机变量,并将关于θ\bm\thetaθ的先验知识表示为一个先验概率分布p(θ)p(\bm\theta)p(θ)。然后计算在观测到i.i.d.数据D=(D1,D2,⋯,Dm)D=(D_1,D_2,\cdots,D_m)D=(D1,D2,⋯,Dm)以后,θ\bm\thetaθ的后验概率分布p(θ∣D)p(\bm\theta|D)p(θ∣D),并用θ\bm\thetaθ在该后验概率分布下的期望作为对θ\bm\thetaθ的贝叶斯估计。
与上一讲最大似然估计相同,我们知道θ\bm\thetaθ的似然函数为:
L(θ∣D)=∏i=1n∏j=1qi∏k=1riθijkmijkL(\bm\theta|D)=\prod_{i=1}^n\prod_{j=1}^{q_i}\prod_{k=1}^{r_i}\theta_{ijk}^{m_{ijk}} L(θ∣D)=i=1∏nj=1∏qik=1∏riθijkmijk
根据贝叶斯公式,有:
p(θ∣D)∝p(θ)∏i=1n∏j=1qi∏k=1riθijkmijkp(\bm\theta|D)\propto p(\bm\theta)\prod_{i=1}^n\prod_{j=1}^{q_i}\prod_{k=1}^{r_i}\theta_{ijk}^{m_{ijk}} p(θ∣D)∝p(θ)i=1∏nj=1∏qik=1∏riθijkmijk
为了便于计算,我们需要对先验分布p(θ)p(\bm\theta)p(θ)作一些共轭性假设。首先引入两个新记号:
- θij∙\bm\theta_{ij\bullet}θij∙表示由θij1,⋯,θijri\theta_{ij1},\cdots,\theta_{ijr_i}θij1,⋯,θijri所组成的子向量
- θi∙∙\bm\theta_{i\bullet\bullet}θi∙∙表示由θi1∙,⋯,θiqi∙\theta_{i1\bullet},\cdots,\theta_{iq_i\bullet}θi1∙,⋯,θiqi∙所组成的子向量
θi∙∙\bm\theta_{i\bullet\bullet}θi∙∙包含所有关于变量XiX_iXi的条件概率分布P(Xi∣π(Xi))P(X_i|\pi(X_i))P(Xi∣π(Xi))的参数,而θij∙\bm\theta_{ij\bullet}θij∙包含所有关于分布P(Xi∣π(Xi)=j)P(X_i|\pi(X_i)=j)P(Xi∣π(Xi)=j)的参数。
关于p(θ)p(\bm\theta)p(θ)我们做如下三个假设:
- 全局独立假设:关于不同变量XiX_iXi的参数相互独立,即
p(θ)=∏i=1np(θi∙∙)p(\bm\theta)=\prod_{i=1}^np(\bm\theta_{i\bullet\bullet}) p(θ)=i=1∏np(θi∙∙) - 局部独立假设:给定一个变量XiX_iXi,对应于π(Xi)\pi(X_i)π(Xi)的不同取值的参数相互独立,即
p(θi∙∙)=∏j=1qip(θij∙)p(\bm\theta_{i\bullet\bullet})=\prod_{j=1}^{q_i}p(\bm\theta_{ij\bullet}) p(θi∙∙)=j=1∏qip(θij∙) - p(θij∙)p(\bm\theta_{ij\bullet})p(θij∙)是Dirichlet分布D[αij1,αij2,⋯,αijri]D[\alpha_{ij1},\alpha_{ij2},\cdots,\alpha_{ijr_i}]D[αij1,αij2,⋯,αijri]
在上述三个假设下,有:
p(θ)=∏i=1np(θi∙∙)=∏i=1n∏j=1qip(θij∙)∝∏i=1n∏j=1qi∏k=1riθijkαijk−1p(\bm\theta)=\prod_{i=1}^np(\bm\theta_{i\bullet\bullet})=\prod_{i=1}^n\prod_{j=1}^{q_i}p(\bm\theta_{ij\bullet})\propto\prod_{i=1}^n\prod_{j=1}^{q_i}\prod_{k=1}^{r_i}\bm\theta_{ijk}^{\alpha_{ijk}-1} p(θ)=i=1∏np(θi∙∙)=i=1∏nj=1∏qip(θij∙)∝i=1∏nj=1∏qik=1∏riθijkαijk−1
该式定义的p(θ)p(\bm\theta)p(θ)称为乘积Dirichlet分布。
将似然函数和先验概率分布代入贝叶斯公式,可得θ\bm\thetaθ的后验概率分布为:
p(θ∣D)∝∏i=1n∏j=1qi∏k=1riθijkmijk∏i=1n∏j=1qi∏k=1riθijkαijk−1=∏i=1n∏j=1qi∏k=1riθijkmijk+αijk−1\begin{aligned} p(\bm\theta|D)&\propto\prod_{i=1}^n\prod_{j=1}^{q_i}\prod_{k=1}^{r_i}\theta_{ijk}^{m_{ijk}}\prod_{i=1}^n\prod_{j=1}^{q_i}\prod_{k=1}^{r_i}\bm\theta_{ijk}^{\alpha_{ijk}-1}\\ &=\prod_{i=1}^n\prod_{j=1}^{q_i}\prod_{k=1}^{r_i}\bm\theta_{ijk}^{m_{ijk}+\alpha_{ijk}-1} \end{aligned} p(θ∣D)∝i=1∏nj=1∏qik=1∏riθijkmijki=1∏nj=1∏qik=1∏riθijkαijk−1=i=1∏nj=1∏qik=1∏riθijkmijk+αijk−1
由此可知,后验分布也是一个乘积Dirichlet分布,也具有全局和局部独立性,从而有p(θij∙)p(\bm\theta_{ij\bullet})p(θij∙)为Dirichlet分布D[mij1+αij1,⋯,mijri+αijri]D[m_{ij1}+\alpha_{ij1},\cdots,m_{ijr_i}+\alpha_{ijr_i}]D[mij1+αij1,⋯,mijri+αijri]。
下面我们考虑θ\bm\thetaθ的任一分量θijk\theta_{ijk}θijk的贝叶斯估计,即其在该后验概率分布p(θ∣D)p(\bm\theta|D)p(θ∣D)下的期望:
θijk∗=∫θijkp(θ∣D)dθ=∫θijk∏l=1n∏s=1qlp(θls∙∣D)dθls∙全局和局部独立性=∫θijkp(θij∙∣D)dθij∙Dirichlet分布=mijk+αijk∑k=1rimijk+αijkDirichlet分布的期望(5)\begin{aligned} \theta_{ijk}^*&=\int\theta_{ijk}p(\bm\theta|D)d\bm\theta\\ &=\int\theta_{ijk}\prod_{l=1}^n\prod_{s=1}^{q_l}p(\bm\theta_{ls\bullet}|D)d\bm\theta_{ls\bullet}\quad\text{全局和局部独立性}\\ &=\int\theta_{ijk}p(\bm\theta_{ij\bullet}|D)d\bm\theta_{ij\bullet}\quad\text{Dirichlet分布}\\ &=\frac{m_{ijk}+\alpha_{ijk}}{\sum_{k=1}^{r_i}m_{ijk}+\alpha_{ijk}}\quad\text{Dirichlet分布的期望}\tag{5} \end{aligned} θijk∗=∫θijkp(θ∣D)dθ=∫θijkl=1∏ns=1∏qlp(θls∙∣D)dθls∙全局和局部独立性=∫θijkp(θij∙∣D)dθij∙Dirichlet分布=∑k=1rimijk+αijkmijk+αijkDirichlet分布的期望(5)
从而,对于任一给定的测试数据Dm+1D_{m+1}Dm+1,我们可以计算在参数θ∗\bm\theta^*θ∗下的概率:
P(Dm+1∣θ∗)=∏i=1n∑j=1qi∑k=1riχ(i,j,k:Dm+1)mijk+αijk∑k=1rimijk+αijkP(D_{m+1}|\bm\theta^*)=\prod_{i=1}^n\sum_{j=1}^{q_i}\sum_{k=1}^{r_i}\chi(i,j,k:D_{m+1})\frac{m_{ijk}+\alpha_{ijk}}{\sum_{k=1}^{r_i}m_{ijk}+\alpha_{ijk}} P(Dm+1∣θ∗)=i=1∏nj=1∑qik=1∑riχ(i,j,k:Dm+1)∑k=1rimijk+αijkmijk+αijk
其中χ(i,j,k:Dm+1)\chi(i,j,k:D_{m+1})χ(i,j,k:Dm+1)为指示函数,当数据Dm+1D_{m+1}Dm+1满足P(Xi=k∣π(Xi)=j)P(X_i=k|\pi(X_i)=j)P(Xi=k∣π(Xi)=j)时,该函数为1,否则为0.
例 考虑如下图(a)所示的贝叶斯网NNN,其中所有变量均取二值1或2。右侧表格(b)为关于NN的一组i.i.d.数据。
对该网络的参数进行贝叶斯估计,首先要假设参数p(θ)p(\bm\theta)p(θ)为乘积Dirichlet分布,其超参数α={αijk∣i=1,2,3;j=1,⋯,qi;k=1,2}\bm\alpha=\{\alpha_{ijk}|i=1,2,3;j=1,\cdots,q_i;k=1,2\}α={αijk∣i=1,2,3;j=1,⋯,qi;k=1,2}如下表©所示。
这等价于关于θ\bm\thetaθ的先验知识是如下表(d)所示的虚拟数据集D′D'D′。
其等价样本量为4.根据式(5),可得θ\bm\thetaθ的后验分布p(θ∣D)p(\bm\theta|D)p(θ∣D),其也是乘积Dirichlet分布,其超参数如下表(e)所示。
对于第iii个节点XiX_iXi,若给定其父节点取值π(Xi)=j\pi(X_i)=jπ(Xi)=j,则该节点的取值服从Dirichlet分布,对参数θij∙\bm\theta_{ij\bullet}θij∙的完全贝叶斯估计则是计算其在该Dirichlet分布下的期望,见式(5),计算结果见下表(f)。
3.3.4 缺值数据贝叶斯估计
当样本集数据中的数据存在缺值时,似然函数则无法直接给出,因而没有计算贝叶斯估计的闭公式。为了解决该问题,可采用近似的方法,如碎权更新方法就是一种较常用的近似方法。
碎权更新首先设定先验概率分布p(θ)p(\bm\theta)p(θ)是乘积Dirichlet分布,然后按顺序逐个处理数据样本。在处理当前样本时,若样本有缺值,则利用先前的估计对样本进行修补,然后再利用该样本更新对θ\bm\thetaθ的估计。在整个过程中,对θ\bm\thetaθ的估计在不断变化,但始终服从乘积Dirichlet分布。
经过lll次参数更新,处理完前lll个样本D1,D2,⋯,DlD_1,D_2,\cdots,D_lD1,D2,⋯,Dl后,得到p(θ∣D1,D2,⋯,Dl)p(\bm\theta|D_1,D_2,\cdots,D_l)p(θ∣D1,D2,⋯,Dl)的一个近似,它是一个乘积Dirichlet分布,记其超参数为αl={αijkl∣i=1,⋯,n;j=1,⋯,qi;k=1,⋯,ri}\bm\alpha^l=\{\alpha_{ijk}^l|i=1,\cdots,n;j=1,\cdots,q_i;k=1,\cdots,r_i\}αl={αijkl∣i=1,⋯,n;j=1,⋯,qi;k=1,⋯,ri}.从而可得到基于该超参数的参数θ\bm\thetaθ的完全贝叶斯估计,记作θl∗\bm\theta^*_{l}θl∗,下标(l)(l)(l)表示第lll次更新后的参数估计。基于该估计,计算下一个样本Dl+1D_{l+1}Dl+1中的缺值项。具体计算方法如下。
设X(l+1)X_{(l+1)}X(l+1)是Dl+1D_{l+1}Dl+1中所有缺值变量的集合,对X(l+1)X_{(l+1)}X(l+1)的任一取值x(l+1)x_{(l+1)}x(l+1),我们可以通过已估计的参数θl∗\bm\theta^*_{l}θl∗来计算X(l+1)=x(l+1)X_{(l+1)}=x_{(l+1)}X(l+1)=x(l+1)的碎权权重wx(l+1)=P(X(l+1)=x(l+1)∣θ(l)∗,Dl+1)w_{x_{(l+1)}}=P(X_{(l+1)}=x_{(l+1)}|\bm\theta^*_{(l)},D_{l+1})wx(l+1)=P(X(l+1)=x(l+1)∣θ(l)∗,Dl+1),其计算方法如下:
wx(l+1)=P(X(l+1)=x(l+1),Dl+1∣θ(l)∗)∑x(l+1)∈Ω(X(l+1))P(X(l+1)=x(l+1),Dl+1∣θ(l)∗)w_{x_{(l+1)}}=\frac{P(X_{(l+1)}=x_{(l+1)},D_{l+1}|\bm\theta^*_{(l)})}{\sum_{x_{(l+1)}\in\Omega(X_{(l+1)})}P(X_{(l+1)}=x_{(l+1)},D_{l+1}|\bm\theta^*_{(l)})} wx(l+1)=∑x(l+1)∈Ω(X(l+1))P(X(l+1)=x(l+1),Dl+1∣θ(l)∗)P(X(l+1)=x(l+1),Dl+1∣θ(l)∗)
进而可将该缺值样本Dl+1D_{l+1}Dl+1转变为一组带有权重的完整样本,称为碎权完整样本集:{(Dl+1,X(l+1)=x(l+1))[wx(l+1)],⋯}\{(D_{l+1},X_{(l+1)}=x_{(l+1)})[w_{x_{(l+1)}}],\cdots\}{(Dl+1,X(l+1)=x(l+1))[wx(l+1)],⋯},其中x(l+1)∈Ω(X(l+1))x_{(l+1)}\in\Omega(X_{(l+1)})x(l+1)∈Ω(X(l+1)).
根据该组碎权完整样本集对超参数αl\bm\alpha^lαl进行第l+1l+1l+1次更新:
αijkl+1=αijkl+∑x(l+1)∈Ω(X(l+1))χ(i,j,k:Dl+1,X(l+1)=x(l+1))wx(l+1)\alpha_{ijk}^{l+1}=\alpha_{ijk}^l+\sum_{x_{(l+1)}\in\Omega(X_{(l+1)})}\chi(i,j,k:D_{l+1},X_{(l+1)}=x_{(l+1)})w_{x_{(l+1)}} αijkl+1=αijkl+x(l+1)∈Ω(X(l+1))∑χ(i,j,k:Dl+1,X(l+1)=x(l+1))wx(l+1)
例 如下图(a)和(b)所示的贝叶斯网N和缺值数据集D,用碎权更新计算N的参数的贝叶斯估计。
首先假设参数θ\bm\thetaθ的先验分布是乘积Dirichlet分布,其超参数α0\bm\alpha^0α0如下:
从α0\bm\alpha^0α0出发,首先考虑第一个样本D1=(1,1,1)D_1=(1,1,1)D1=(1,1,1),其为完整数据,可直接更新先验分布p(θ)p(\bm\theta)p(θ),得到参数的后验分布p(θ∣D1)p(\bm\theta|D_1)p(θ∣D1),其也是一个乘积Dirichlet分布,超参数α1\bm\alpha^1α1如下:
接下来考虑D2=(2,2,2)D_2=(2,2,2)D2=(2,2,2),它也是完整数据,可直接更新,更新后的超参数α2\bm\alpha^2α2如下:
接下来考虑D3=(1,−,1)D_3=(1,-,1)D3=(1,−,1),其中X2X_2X2缺值,需要修补。利用已估算出的θ2∗\bm\theta^*_2θ2∗来计算碎权权重P(X2∣θ2∗,D3)P(X_2|\bm\theta_2^*,D_3)P(X2∣θ2∗,D3),修补后的碎权完整样本集如下:
用这两个碎权完整样本进行更新,更新后的超参数α3\bm\alpha^3α3如下:
最后来考虑D4=(2,−,2)D_4=(2,-,2)D4=(2,−,2),其中X2X_2X2缺值,需要修补。利用已估算出的θ3∗\bm\theta^*_3θ3∗来计算碎权权重P(X2∣θ3∗,D4)P(X_2|\bm\theta_3^*,D_4)P(X2∣θ3∗,D4),修补后的碎权完整样本集如下:
用这两个碎权完整样本进行更新,更新后的超参数α4\bm\alpha^4α4如下:
注意,碎权更新的结果受处理样本的顺序影响,顺序不同,最终结果可能会不同。
3.3.5 小结
贝叶斯网参数的学习有两种方法:最大似然估计方法和贝叶斯估计方法。我们用三讲(分布的分布、最大似然估计估计、贝叶斯估计)将这两种方法进行了详细介绍,并分别探讨了缺值数据下极大似然估计和贝叶斯估计的方法。
前面介绍的贝叶斯网参数学习是在贝叶斯网结构已确定的情况下进行的,在面对一个新问题时,我们往往连贝叶斯网的结构都还没有,从下一讲开始将对贝叶斯网结构学习进行介绍。
贝叶斯网专题12:参数学习之贝叶斯估计相关推荐
- 贝叶斯网专题11:参数学习之极大似然估计
第一部分:贝叶斯网基础 1.1 信息论基础 1.2 贝叶斯网基本概念 1.3 变量独立性的图论分析 第二部分:贝叶斯网推理 2.1 概率推理中的变量消元方法 2.2 团树传播算法 2.3 近似推理 2 ...
- 贝叶斯网专题1:信息论基础
文章目录 贝叶斯网专题前言 第一部分:贝叶斯网基础 1.1 信息论基础 1.1.1 预备数学知识:Jensen不等式 1.1.2 熵 1.1.3 联合熵.条件熵.互信息 1.1.4 交叉熵和相对熵(K ...
- 贝叶斯网专题2:贝叶斯网基本概念
文章目录 第一部分:贝叶斯网基础 [1.1 信息论基础](https://blog.csdn.net/deepbodhi/article/details/119823055) 1.2 贝叶斯网基本概念 ...
- 贝叶斯网专题4:概率推理中的变量消元方法
文章目录 第一部分:贝叶斯网基础 [1.1 信息论基础](https://blog.csdn.net/deepbodhi/article/details/119823055) [1.2 贝叶斯网基本概 ...
- 贝叶斯网专题6:团树传播
文章目录 第一部分:贝叶斯网基础 [1.1 信息论基础](https://blog.csdn.net/deepbodhi/article/details/119823055) [1.2 贝叶斯网基本概 ...
- 贝叶斯网的R实现( Bayesian networks in R)bnlearn(1)
1.bayesian networks的一些基本概念 贝叶斯网bayesian networks是一种有向无环图模型(DAG),可表示为G=(V,A).其中V是节点的集合,节点表示随机变量:A是弧(或 ...
- 贝叶斯网的R实现( Bayesian networks in R)bnlearn(3)
4.参数学习 得到贝叶斯网的网络结构之后,可以对局部分布的参数进行参数估计了,这称作参数学习. 4.1参数学习的基本方法 bnlearn包的参数学习函数是bn.fit,其参数method给出了两种具体 ...
- 机器学习--贝叶斯网
++Bayesian network 1-概念 2-DAG示例 3-BN结构 4-BN中3个变量之间的依赖关系 5-吉布斯采样算法 6-代码部分 0-自定义贝叶斯网络 1-搜索所有网络结构 2-启发式 ...
- 机器学习基础(六):贝叶斯分类(贝叶斯决策论、朴素/半朴素贝叶斯分类器、贝叶斯网、EM算法)
6.贝叶斯分类 6.1贝叶斯决策论Bayesian decision theory 概率框架下实施决策的基本方法. 对分类任务来说,在所有相关概率都已知的理想情形下,贝叶斯决策论考虑如何基于这些概率和 ...
最新文章
- 模块架构不是软件成功的“决定因素”
- [linux] shell脚本编程-ubuntu创建vsftpd服务
- mstsc /console 远程命令
- 微服务系列:MicroProfile和Apache TomEE
- 移动硬盘备份linux系统盘,将Ubuntu Linux系统放到你的移动硬盘
- SpringBoot (14)---使用Redis缓存
- 练手|常见近30种NLP任务的练手项目
- 用Matlab处理信号从入门到入土1
- u盘需要计算机管理权限,u易u盘需要管理员权限的文件怎么删除
- 阿里大数据之路:数据管理篇大总结
- 最新版codeblocks安装与汉化视频教程-自带编译器版
- 树莓派麦克风杂音问题…待解决
- android 导航栏navigation
- MySQL-06-MD5加密
- 面试分享:17道Python面试题,让你在求职中无往不利
- Postgresql12主从配置及切换
- 用html+css3写一个小丸子的头像
- lvgl 7.7.2 arc样式
- Buck开关调整器拓扑
- 池塘夜降彩虹雨C语言数据结构实验(免积分下载+超详细注释)