欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

贝叶斯网络结构学习方法

程序员文章站 2023-12-21 14:40:28
...


基于评分搜索


定义

基于评分搜索的方法将BN结构学习视为组合优化问题;

  • 首先通过定义评分函数对BN结构空间中的不同元素与样本数据的拟合程度进行度量
  • 然后利用搜索算法确定评分最高的网络结构,即与数据拟合最好的网络结构

BN结构学习可定义为优化模型:
OM=(G,Ω,F)OM=(G, \Omega, F)

G:候选网络结构搜索空间,它定义了样本数据集D中所有变量(节点)之间可能连接关系的网络结构集合;
Ω\Omega:网络变量之间需要满足的约束条件集合,最基本的约束是所有节点间的连接构成一个有向无环图;
F:评分函数,表示从搜索空间G到实数集R的一个映射,函数的极值点即为网络的最优结构.

Robinson等证明了包含n个节点可能的BN结构数目f(n)f(n)
f(n)=i=1nn!i!(ni)!2i(ni)f(ni)f(n)=\sum^n_{i=1}\frac{n!}{i!(n-i)!}2^{i(n-i)}f(n-i)

可见,随着变量数目的增多,搜索空间的维数呈 指数级 增长,因此,评分函数和搜索策略是影响评分搜索算法的主要因素.


评分函数

在BN结构学习的框架中,结构G和参数θG\theta_G被视为随机变量;
假设数据集D=(d1,d2,...,dm)D=(d_1,d_2, . . ., d_m)是关于n个变量{X1,X2,...,Xn}\{X_1, X_2,..., X_n\}的样本;
G的可能取值包括所有以{X1,X2,...,Xn}\{X_1, X_2,..., X_n\}为节点的有向无环图。
给定结构G,变量θG\theta_G的可能取值是与G对应的参数值。

贝叶斯网络结构学习方法
结构先验分布:P(G)P(G)
结构确定之后, θG\theta_G 的参数先验分布:P(θG)P(\theta_G)


基于贝叶斯统计的评分

假设数据集D是关于样本变量{X1,X2,...,Xn}\{X_1, X_2,..., X_n\} 完整独立同分布数据。
贝叶斯评分的主要思想是给定先验知识和样本数据条件下,选择一个后验概率值最大的网络结构,即:
1-1
G=argmaxGP(GD)G^* = \arg max_GP(G|D)
重点是P(GD)P(G|D),又根据贝叶斯定理:
1-2
P(GD)=P(DG)P(G)P(D)P(G|D)=\frac{P(D|G)P(G)}{P(D)}
P(G,D)=P(GD)P(D)=P(DG)P(G)P(G,D)= P(G|D)P(D)=P(D|G)P(G)
P(D)P(D)已知而且不依赖P(G)P(G),所以P(GD)P(G|D)可转换为:
1-3
logP(G,D)=logP(DG)+logP(G)\log P(G,D) = \log P(D|G) + \log P(G)
则:
1-4
G=arglogP(DG)+logP(G)G^* = \arg \log P(D|G)+\log P(G)

P(G)P(G)是结构先验分布,一般会假设它是某种分布,ex:均匀分布
之后展开 P(DG)P(D|G) (称为边缘似然函数)。
1-5
P(DG)=P(DG,θG)p(θGG)dθGP(D|G)=\int P(D|G,\theta_G)p(\theta_G|G) d \theta_G


K2评分

假设数据集D是关于样本变量{X1,X2,...,Xn}\{X_1, X_2,..., X_n\} 完整独立同分布数据。G是关于变量集{X1,X2,...,Xn}\{X_1, X_2,..., X_n\}的BN结构,并且p(θGG)p(\theta_G|G)服从均匀分布。
可知如下K2评分:
1-6
FK2(GD)=logP(G)+i=1nj=1qi{log(ri1)!(mij+ri1)!}+k=1rilog(mijk!)F_{K2}(G|D)=\log P(G) + \sum_{i=1}^n\sum_{j=1}^{q_i}\{\log\frac{(r_i-1)!}{(m_{ij*}+r_i-1)!}\}+\sum_{k=1}^{r_i} \log (m_{ijk}!)

qiq_i:???
rir_i:???
mijkm_{ijk}:变量XiX_i取第k个值同时pa(Xi)pa(X_i)取第j个值的样本数目

BD(Bayesian Dirichlet)评分

假设数据集D是关于样本变量{X1,X2,...,Xn}\{X_1, X_2,..., X_n\} 完整独立同分布数据。G是关于变量集{X1,X2,...,Xn}\{X_1, X_2,..., X_n\}的BN结构,并且p(θGG)p(\theta_G|G)服从Dirichlet分布。
p(θGG)i=1nj=1qik=1riθijkαijk1p(\theta_G|G) \propto \prod^n_{i=1} \prod^{q_i}_{j=1} \prod^{r_i}_{k=1}\theta_{ijk}^{\alpha_{ijk}-1}
可知如下BD评分:
FBD(GD)=logP(G)+i=1nj=1qi{logΓ(αij)Γ(αij+mij)}+k=1rilogΓ(αijk+mijk)Γ(αij)F_{BD}(G|D)=\log P(G) + \sum_{i=1}^n\sum_{j=1}^{q_i}\{\log\frac{\Gamma(\alpha_{ij*})}{\Gamma(\alpha_{ij*}+m_{ij*})}\}+\sum_{k=1}^{r_i} \log \frac{\Gamma(\alpha_{ijk}+m_{ijk})}{\Gamma(\alpha_{ij*})}

αijk\alpha_{ijk}:Dirichlet分布中的超参数取值
αij=k=1riαijk\alpha_{ij*} = \sum_{k=1}^{r_i}\alpha_{ijk}
mijkm_{ijk}:变量XiX_i取第k个值同时pa(Xi)pa(X_i)取第j个值的样本数目
pa(Xi)pa(X_i):???

所有的超参数值αijk=1\alpha_{ijk}=1时,BD评分退化为K2评分。

BDeu(Bayesian Dirichlet eu)评分

BD公式中的超参数 αijk=αP(Xi=k,pa(Xi)=jG)\alpha_{ijk}=\alpha P(X_i=k,pa(X_i)=j | G)时候,P(.G)P(.|G)表示网络G的先验分布,α\alpha 表示先验样本等价量。
P(Xi=k,pa(Xi)=jG=1riqiP(X_i=k,pa(X_i)=j | G = \frac{1}{r_iq_i},即结构先验信息服从均匀分布。

可知如下BDeu评分:
FBDeu(GD)=logP(G)+i=1nj=1qi{logΓ(αqi)Γ(mij+αqi)}+k=1rilogΓ(mijk+αriqi)Γ(αriqi)F_{BDeu}(G|D)=\log P(G) + \sum_{i=1}^n\sum_{j=1}^{q_i}\{\log\frac{\Gamma(\frac{\alpha}{q_i})}{\Gamma(m_{ij*}+\frac{\alpha}{q_i})}\}+\sum_{k=1}^{r_i} \log \frac{\Gamma(m_{ijk}+\frac{\alpha}{r_iq_i})}{\Gamma(\frac{\alpha}{r_iq_i})}


基于信息理论的评分

基于信息理论的评分函数主要是利用编码理论和信息论中的最小描述长度(Minimum Description Length, MDL)原理来实现的.其基本思想源自对数据的存储。

假设D是一组给定的实例数据,如果要对其进行保存,为了节省存储空间,一般采用某种模型对其进行编码压缩,然后再保存压缩后的数据;另外,为了在需要的时候可以完全恢复这些实例数据,要求对所使用的模型进行保存;
因此,需要保存的数据长度=压缩后的数据长度+模型的描述长度,该长度称为总的描述长度。

MDL原理就是要求选择总描述长度最小的模型。按照MDL原理,BN结构学习就是要找到使得网络的描述长度和样本的编码长度之和最小的图模型。

这意味着MDL评分准则趋向于寻找一个结构较简单的网络,实现网络精度复杂度之间的均衡。一般利用参数个数作为网络结构复杂度的惩罚函数:
2-1:
C(G)=12logmi=1n(ri1)qiC(G) = \frac{1}{2}\log m\sum^n_{i=1}(r_i-1)q_i

m:数据集D中的样本总量;
i=1n(ri1)qi\sum^n_{i=1}(r_i-1)q_i:网络中包含的参数总量

采用海明码表示压缩后的数据长度,就是关于数据D和模型的对数似然:
2-2:
LLD(G)=j=1nj=1qik=1rimijklog(mijkmij)LL_D(G)=\sum^n_{j=1}\sum^{q_i}_{j=1}\sum^{r_i}_{k=1}m_{ijk}\log(\frac{m_{ijk}}{m_{ij*}})

MDL评分函数

则由2-1、2-2可知,得到相应的MDL评分函数
2-3
FMDL(GD)=LLD(G)C(G)F_{MDL}(G|D)=LL_D(G)-C(G)
2-4
FMDL(GD)=i=1nj=1qik=1rimijklog(mijkmij)12logmi=1n(ri1)qiF_{MDL}(G|D)=\sum^n_{i=1}\sum^{q_i}_{j=1}\sum^{r_i}_{k=1}m_{ijk}\log(\frac{m_{ijk}}{m_{ij*}})- \frac{1}{2}\log m\sum^n_{i=1}(r_i-1)q_i

m:数据集D中的样本总量;
i=1n(ri1)qi\sum^n_{i=1}(r_i-1)q_i:网络中包含的参数总量

AIC评分函数

MDL评分函数不依赖于先验概率;对给定的充分大的独立样本而言,具有最大MDL分值的网络可以任意接近于抽样分布;当实例数据D服从多项分布时,MDL评分函数等于BIC评分函数.因此对公式(2-4)做进一步的简化,得到AIC评分函数:

2-5
FAIC(GD)=i=1nj=1qik=1rimijklog(mijkmij)i=1n(ri1)qiF_{AIC}(G|D)=\sum^n_{i=1}\sum^{q_i}_{j=1}\sum^{r_i}_{k=1}m_{ijk}\log(\frac{m_{ijk}}{m_{ij*}})- \sum^n_{i=1}(r_i-1)q_i

MIT评分函数

MDL评分函数中,对网络的惩罚项用整个网络包含的参数以及样本数据量来表示,Campos结合贝叶斯网络的可分解性,用网络的局部结构复杂度作为惩罚项,提出一种基于互信息卡方分布MIT ( Mutual Information Tests) 评分函数.
2-6
FMIT(GD)=i=1,Pa(Xi)!=n(2mMID(Xi,Pa(Xi))maxσij=1Siχα,liσi(j))F_{MIT}(G|D)=\sum^n_{i=1,Pa(X-i)!=\empty}(2mMI_D(X_i,Pa(X_i))-\max_{\sigma_i }\sum^{S_i}_{j=1}\chi_{\alpha,l_{i\sigma_i(j)}})

MID(Xi,Pa(Xi))MI_D(X_i,Pa(X_i))XiX_i与其父变量之间互信息
SiS_iXiX_i父节点的个数
χα,liσi(j)\chi_{\alpha,l_{i\sigma_i(j)}}:表示置信度为α\alpha,*度为liσi(j)l_{i\sigma_i(j)}的卡方分布值。



搜索方法

求出每个变量评分函数最大的父变量集

  • K2算法
  • 爬山算法
  • GES算法
  • 基于进化计算的方法

K2算法

K2算法使用贪心搜索去获取最大值。首先假设随机变量是有顺序的,如果Xi在Xj之前,那么不能存在从Xj到Xi的边。同时假设每个变量最多的父变量个数为u。每次挑选使评分函数最大的父变量放入集合,当无法使评分函数增大时,停止循环,具体算法如下,其中Pred(Xi)表示顺序在Xi之前的变量。

  • 贪婪搜索
  • CH评分衡量结构优劣性
  • 利用结点序 ρ\rho 以及正整数 μ\mu 来限制搜索空间的大小

结点序 ρ\rho怎么确定?

贝叶斯网络结构学习方法

爬山(hillclimbing)算法

爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索到全局最优解。假设C点为当前解,爬山算法搜索到A点这个局部最优解就会停止搜索,因为在A点无论向那个方向小幅度移动都不能得到更优的解。

  • 局部操作(加边,减边,删边),评分高低作为是否选择该操作的标准。
  • 通过贪婪选择来判断是否对模型结构进行更新。
# 爬山法伪代码
Procedure HillClimbing():
    old = getInitial() # get initial feasible solution x
    while(the stopping condition is not reached):
    	for 加边,减边,删边 操作后的 newG: 
        new= localSearch(N(x)); # select the optimal solution from the neighborhood of x as x'
        if(old <= new)
            old = new
        else
            return old
  end

贝叶斯网络结构学习方法
爬山法




基于约束|依赖统计

待填充

参考

贝叶斯网络结构学习(知乎)
2013 贝叶斯网络结构学习与推理研究 朱明敏
2015 贝叶斯网络结构学习综述 李硕豪
2017 贝叶斯网络结构学习与应用研究 曹杰

上一篇:

下一篇: