完备数据集下的贝叶斯网络结构学习:
- 基于依赖统计分析的方法—— 通常利用统计或是信息论的方法分析变量之间的依赖关系,从而获得最优的网络结构
-
- 对于基于依赖统计分析方法的研究可分为三种:
-
-
- 基于分解的方法(V结构的存在)
-
-
-
-
- Decomposition of search for v-structures in DAGs
- Decomposition of structural learning about directed acylic graphs
- Structural learning of chain graphs via decomposition
-
-
-
- 基于Markov blanket的方法
-
-
-
- Using Markov blankets for causal structure learning
- Learning Bayesian network strcture using Markov blanket decomposition
-
-
-
- 基于结构空间限制的方法
-
-
-
- Bayesian network learning algorithms using structural restrictions(将这些约束与pc算法相结合提出了一种改进算法,提高了结构学习效率)(约束由Campos指出包括1、一定存在一条无向边或是有向边 2、一定不存在一条无向边或有向边 3、部分节点的顺序)
-
-
-
- 常用的算法:
-
-
- SGS——利用节点间的条件独立性来确定网络结构的方法
- PC——利用稀疏网络中节点不需要高阶独立性检验的特点,提出了一种削减策略:依次由0阶独立性检验开始到高阶独立性检验,对初始网络中节点之间的连接进行削减。此种策略有效地从稀疏模型中建立贝叶斯网络,解决了SGS算法随着网络中节点数的增长复杂度呈指数倍增长的问题。
- TPDA——把结构学习过程分三个阶段进行:a)起草(drafting)网络结构,利用节点之间的互信息得到一个初始的网络结构;b)增厚(thickening)网络结构,在步骤a)网络结构的基础上计算网络中不存在连接节点间的条件互信息,对满足条件的两节点之间添加边;。)削减( thinning)网络结构,计算步骤b)网络结构中边的条件互信J急,删除不满足条件的边。
-
- 基于评分搜索的方法
-
- 评分函数(表示学习到的网络和真实网络的匹配程度)
-
-
- BIC——由Schwarz在1978年提出的BIC准则。BIC评分函数是在样本满足独立同分布假设的前提下,用对数似然度来度量网络结构与观侧数据的拟合程度。由于没有对网络结构的复杂度进行约束,通过此评分函数搜索得出的网络结构较为复杂,准确度不高。
- K2——由Cooper等提出了一种结合先验信息的K2评分函数。因为在进行贝叶斯网络结构学习之前,绝大多数情况下节点顺序是不清楚的,因此,这也是K2算法最大的弊端。
- MDL——由Lam在1994年提出了以最小描述长度MDL作为衡量标准,通过搜索与评价来找出正确的网络结构,不需要知道节点顺序等先验知识。相对于BIC算法,该方法加入了算法复杂度的惩罚项,但是MDL评分函数在观测数据量较小时,惩罚量所占的得分比重较大导致数据与结构的欠拟合;当观测数据量较大时,惩罚量所占的比重较小,使得数据与结构过拟合。所以,在实际的计算过程中,MDL评分函数的计算精确度不高。
- BDe——由Heckerman等人在1995年提出。是K2的改进算法,此方法假设贝叶斯网络参数的先验分布服从Dirichlet分布,在计算的过程中不需要事先获得节点顺序,扩大了评分函数的应用领域。
- IS——由Bouchaala等人提出。利用用隐含估计的方法对贝叶斯网络参数进行估计,避免了要先确定节点变量分布的情况,减少了由节点变量分布带来的误差,提高了评分函数的精确度。
- MIT——由Campos等人提出。基于条件独立性测试的评分函数MIT( mutual information tests),函数通过度量网络结构与观测数据之间的KL距离来评价网络结构的优劣,当两者距离最小时,网络结构与观测数据的相似性最大。此方法利用信息论的原理减少了计算复杂度。
- 卡方度量
- 信息熵度量
- BD——贝叶斯狄利克雷评分
-
- 搜索算法
-
-
- K2——K2搜索算法由Cooper等人在1992年提出。K2搜索算法通过贪婪搜索选择最优的网络结构,在定义评分函数之后,从一个网络节点开始,根据已经确定的最大父节点数目和节点顺序,选择分值最高的节点作为该节点的父节点。
- Ziegler等通过以节点为单位分解评分函数,从而改进了贪婪算法的搜索策略,提高了算法的精度。(Approximation algorithms for restricted Bayesian network structures)
- Campos等然提出了基于蚁群优化算法的贝叶斯网络结构学习(Ant colony optimization for learning Bayesian networks)
- 其他的搜索优化方法,包括贪婪算法,粒子群优化算法,遗传算法,人工蜂群算法等(An artificial bee colony algorithm for learning Bayesian networks A Bayesian network learning algorithm based on independence test and ant colony optimizationBayesian network structure learning algorithm based on ant colony optimization search optimal node ordering)
-
-
-
- 爬山算法——爬山法使用的搜索算子由3种,分别为加边、减边、转边;其中在加边和转边的使用时有一个前提就是不能有环;主要思想:爬山法从一个初始网络结构出发,通过三个搜索算子对当前网络结构进行修改,得到一系列候选网络结构,然后计算每个候选网络结构的评分,并选出评分最大的作为最优候选结构,如果最优候选结构的评分大于当前网络结构的评分,则以最优候选结构作为当前网络结构,继续搜索; 否则,就停止搜索,并返回当前网络结构。
-
- 将上述两种方法相结合
-
- MMHC——Tsamardinos等人提出的MMHC算法是比较经典的混合搜索算法之一,首先利用MMPC(max-min parents and chlidren)算法确定每个节点的父节点和子节点集,从而构建出网络结构框架;然后根据K2搜索策略对已经得到的网络结构的框架进行搜索评分,得出最优网络结构。
- I-ACO-B——由Ji等人提出,首先通过节点间条件独立性测试缩减网络结构空间,然后利用蚁群算法对网络结构空间进行评分搜索,最终得出最优的网络结构
- MIC——ZHANG等人在互信息的基础上提出了MIC( maximum information coeffioient)来判断节点间的相关性,有效地改善了在缩减网络结构空间时误删最优解的情况。
- SK-SS——Masegosa 等人利用基于Markov Blanket 集合的方法来构建网络结构框架,缩减了网络结构空间,并通过适合于网络结构框架的评分函数SK-SS( skeleton-ased stochastic search method)来降低计算复杂度,取得了很好的效果。
- Larjo 等人l鉴于大多数贝叶斯网络结构都是稀疏的情况,用L-1范数惩罚网络复杂度,并将正则项加入到评分函数中,在减小网络结构复杂度的同时提高了计算效率,并在生物领域取得了较好的应用。
- 增量学习——提出了基于增量学习的贝叶斯网络结构学习方法,给出了贝叶斯网络结构增量学习的框架,通过改进BIC评分函数得出评价网络结构是否需要进行增量学习的评价准则,最后通过TPDA算法学习出当前状态下准确的贝叶斯网络结构。实验结果表明,增量学习的思想大大提高了算法的学习效率。(An incremental structure learning approach for bayesian network)
不完备数据下的贝叶斯网络结构学习:
- 数据的丢失导致两方面的问题:
-
- 评分函数不再具有可分解形式,不能进行局部搜索
- 一些充分统计因子不存在,无法直接对网络结构打分
- 具体流程:
-
- 随机或按分布生成丢失数据,将不完备数据初始化
- 对数据进行完善修正,并通过参数估计方法得出贝叶斯网络的参数估计值;
- 对得到的贝叶斯网络观测数据进行结构学习得出G的k次方,并跳至步骤b,直至循环结束
- 部分算法:
-
- EM——该方法是由Friedman等人在1998年提出的,该方法是一种比较经典的不完备数据结构学习算法
- MS-EM——该算法是在EM 算法完成数据修补后,利用爬山算法来寻找最优的网络结构(Learning belief networks in the presence of missing values and hidden variables)
- GES-EMMWST-EM——为了减少爬山算法的计算复杂度提出的算法(Learning Bayesian network equivalence classed from incomplete data)
- BN-GS—— 针对不完备数据的结构学习算法容易陷入局部最优,提出了一种基于Gibbs sampling修复丢失数据的BN-GS( Bayesian network&Gibbs sampling)算法。BN-GS把Gibbs sampling和数据集修正与贝叶斯网络结构调整有机地结合在一起。一方面,由Gibbs sampling过程的收敛性保证了贝叶斯网络结构序列的收敛性;另一方面,每一次依据联合概率的分解独立地对样本进行抽样,能够显著提高抽样效率。但这种方法在保证精确度的同时,存在重复计算网络结构的问题,增加了学习复杂度。
- 不足:
-
- 基EM算法框架的结构学习算法由于网络参数的最大似然估计和数据采样的不准确性使得学习准确度较r氏。
传统的因果网络推断方法:
- 基于估计马尔可夫等价类的贝叶斯网络结构学习算法
- 基于估计马尔可夫等价类的贝叶斯网络结构学习算法只能用于因果结构无向图的环境,而无法准确完成模型的方向推断
- 基于加性噪声模型或信息集合的因果方向推断算法
- 基于加性噪声模型或信息几何的因果方向推断算法能够从数据节点集中构建有效的因果网络