瞿锡垚
1 ,刘学军 1 ,张礼 2
(1.南京航空航天大学,计算机科学与技术学院,江苏 南京 211106;
2.南京林业大学,信息科学技术学院,江苏 南京 210037)

摘 要 :贝叶斯网络作为一种不确定知识表示网络,由网络结构和各节点的条件概率表组成,在解决系统决策问
题方面具有先天的理论优势。目前在大多数贝叶斯网络的应用中,各节点条件概率表的产生均是以人工输入的方
式完成,这在一些拥有较多网络节点的复杂背景中,需要巨大的人工消耗,效率低下。针对这一问题,提出一种
增加先验知识库的贝叶斯网络推理模型。根据具体的建模问题创建先验知识库,在该先验知识库下对网络节点进
行类别标记,然后根据局部马尔科夫性自动生成各节点的条件概率表。在贝叶斯网络推理任务中,使用在精确推
理任务中处理速度快、应用最为广泛的联结树算法,并使用 Hugin 算法完成消息的传递。最后通过一个贝叶斯网
络实例验证了整个模型的处理流程。

关键词:贝叶斯网络;知识库;局部马尔科夫性质;联结树算法;Hugin 消息传递
中图分类号: TP31

 

An Inference Model for Bayesian Network With Prior Knowledge Base

Abstract: Bayesian network is an uncertain knowledge representation network consisting of a network structure and a
conditional probability table for each node. Bayesian network has an innate theoretical advantage in solving decision
problems. In most applications of Bayesian network, conditional probability table for each node is currently generated
manually, which results in huge labor costs and inefficiency in complex networks with a large number of nodes. To
address this problem, an inference model for Bayesian network with prior knowledge base is proposed. Aprior
knowledge base is created for the specific modeling problem, based on which the network nodes are labeled with classes,
and then the conditional probability table for each node are generated automatically according to Local Markov
Properties. To infer Bayesian network, the Clique Tree algorithm with efficiency and popularity in precise inference is
adopted, and the Hugin algorithm is utilized to make message transmission. Finally, the entire processing flow of the
model is verified by a Bayesian network example. 

 

Key words: Bayesian network; knowledge base; Local Markov Property; Clique Tree algorithm; Hugin message-passing
algorithm

 

  0 引 言

贝叶斯网络 [1-3] 是一种基于贝叶斯定理的概率图模型,可表示为
 BN =< <V, E > ,P>  。网络结构由 <V, E > 表示,是一个有向无环图, V是网络节点, E 是节点之间有向边,

P 指代条件概率表(CPT, Conditional Probability Table)。贝叶斯网络同时具有概率论和图论的理论基础,拥有
不确定知识的表示能力。概率推理(probabilistic inference)和最大后验概率解释(Maximum a
posteriori explanation)是贝叶斯网络推理的两个基本问题 [4] 。概率推理过程分为精确推理 [5-7] 和近
似推理 [8-9] 两种,分别适用于网络复杂度低和复杂度高的场景。最大后验概率解释则是对建模问
题的计算结果进行解释性说明与分析。贝叶斯网络在被提出之初,由于其需要大量的计算且被证
明是 NP 难问题 [10] ,很长一段时间无法得到广泛应用。直到计算机的出现,让贝叶斯网络重新得
到重视,并广泛应用于故障诊断 [11-12] ,神经网络 [13] 以及作战重心评估 [14] 等问题。
目前对于贝叶斯网络的应用中,大多是在给定网络结构和条件概率表之后,根据证据节点计
算其他节点的概率值。而互联网时代带来了数据量的剧增,导致基于贝叶斯网络的系统决策问题
复杂度提升,即贝叶斯网络结构中节点数和有效边数增加。在条件概率表的构造过程中,增加一
个节点会带来两种新的状态,即该节点发生或不发生,而将这两种新状态加入到原始网络结构中
时,构造条件概率表的工作量将面临指数级的增加,这在一定程度上限制了贝叶斯网络的应用范
围。而在实际应用中,贝叶斯网络节点之间并非都是完全不一致的,一些节点之间具有较高的相
似性。
    针对网络节点增加带来的问题以及节点之间相似的应用现实,文中提出并实现了一种增加先
验知识库的贝叶斯网络推理模型。根据建模问题相关专家给出的节点类别,以及类别之间的条件
概率,建立先验知识库,自动生成贝叶斯网络的条件概率表,使用联结树精确推理算法 [15] 完成
贝叶斯网络的概率推理。

1 先验知识库

python实现动态贝叶斯网络 动态贝叶斯网络推理_贝叶斯网络

 

python实现动态贝叶斯网络 动态贝叶斯网络推理_贝叶斯网络_02

 

python实现动态贝叶斯网络 动态贝叶斯网络推理_python实现动态贝叶斯网络_03

 2 贝叶斯网络推理

 

确定贝叶斯网络结构和条件概率表之后,文中使用联结树算法对网络进行精确推理。联结树
算法是目前贝叶斯网络精确推理任务中应用最为广泛的算法,可以推理任何网络(单连通或者多
连通),算法整个过程如图 2 所示。子网络的提取过程是为了减少运算量,在给定证据之后,可
以删除与证据无关的节点,即证据的祖先节点中不包含的点。在贝叶斯网络中依次用无向边连接
每两个具有共同子节点的节点,然后去除所有贝叶斯网络中有向边的方向便得到贝叶斯网络的道
德图。之后使用 Kjaerulff 算法对道德图进行三角剖分,该算法具体过程如下:

算法 1 Kjaerulff 算法

输入:贝叶斯网络道德图;
输出:原道德图中所有完全子图。

python实现动态贝叶斯网络 动态贝叶斯网络推理_贝叶斯网络_04

 算法 2    建立 clique 联结树算法
输入:clique 集合与分割集集合;
输出:clique 联结树。

python实现动态贝叶斯网络 动态贝叶斯网络推理_python实现动态贝叶斯网络_05

 

算法 3  Hugin 算法
输入:clique 联结树,证据节点Ve 以及条件概率表;
输出:贝叶斯网络中所有节点对于证据节点的后验概率。

 

python实现动态贝叶斯网络 动态贝叶斯网络推理_条件概率_06

python实现动态贝叶斯网络 动态贝叶斯网络推理_贝叶斯网络_07

 

  3 实例验证

python实现动态贝叶斯网络 动态贝叶斯网络推理_python实现动态贝叶斯网络_08

python实现动态贝叶斯网络 动态贝叶斯网络推理_python实现动态贝叶斯网络_09

 

python实现动态贝叶斯网络 动态贝叶斯网络推理_贝叶斯网络_10

 4  结束语
本文提出了一种增加先验知识库的贝叶斯网络推理模型。对网络节点进行类别标记,并添加
各类别的先验概率及各类别间的条件概率,在此基础上,利用局部马尔科夫性完成对各网络节点条件概率表的自动推理计算,大大减少了人工输入条件概率表的时间消耗。对于贝叶斯网络的推理,使用在精确推理任务中速度快、应用最为广泛的联结树算法,并使用了 Hugin 消息传递,最终通过实例验证了整个模型的处理流程。

参考文献
[1] 刘伟娜,霍利民,张立国. 贝叶斯网络精确推理算法的研究[J]. 微计算机信息,2006,22(9):92-94.
[2] 王华伟,周经伦,何祖玉,等. 基于贝叶斯网络的复杂系统故障诊断[J]. 计算机集成制造系统,2004,
10(2):230-234.
[3] Pearl J. Fusion, propagation, and structuring in belief networks[M]. Elsevier Science
Publishers Ltd. 1986.
[4] 厉海涛,金光,周经伦,等. 贝叶斯网络推理算法综述[J]. 系统工程与电子技术,2008,30(5):935-939.
[5] Díez F J. Local conditioning in Bayesian networks[M]. Elsevier Science Publishers Ltd. 1996.
[6] Lauritzen S L,Spiegelhalter D J. Local Computations with Probabilities on Graphical Structures
and Their Application to Expert Systems[J]. Journal of the Royal Statistical Society,1988,
50(2):157-224.
[7] Shachter R D,D'Ambrosio B,Favero B A D. Symbolic probabilistic inference in belief
networks[C]// Eighth National Conference on Artificial Intelligence. AAAI Press,1990:126-131.
[8] Dagum P,Karp R,Luby M,et al. An optimal algorithm for Monte Carlo estimation[C]// Symposium
on Foundations of Computer Science. IEEE Computer Society,1995:142.
[9] Henrion M. Search-based Methods to Bound Diagnostic Probabilities in Very Large Belief Nets[J].
Uncertainty Proceedings, 1991,34(3):142-150.
[10] Cooper,Gregory F. The computational complexity of probabilistic inference using Bayesian
belief networks (research note)[J]. Artificial Intelligence,1990,42(2):393-405.
[11] 王永强,律方成,李和明. 基于粗糙集理论和贝叶斯网络的电力变压器故障诊断方法[J]. 中国电机
工程学报,2006,26(8):137-141.
[12] 姚成玉,陈东宁,王斌. 基于 T-S 故障树和贝叶斯网络的模糊可靠性评估方法[J]. 机械工程学报,
2014,50(2):193-201.
[13] Zaidi N A,Petitjean F,Webb G I. Preconditioning an Artificial Neural Network Using Naive
Bayes[C]// Pacific-Asia Conference on Knowledge Discovery and Data Mining. Springer International
Publishing,2016:341-353.
[14] 李正浩,刘学军. 一种基于贝叶斯网络的作战重心评估模型[J]. 计算机技术与发展,2014(9):50-53.
[15] 刘俊娜. 贝叶斯网络推理算法研究[D]. 合肥工业大学,2007.
[16] Jensen F V, Lauritzen S L, Olesen K G. Bayesian updating in causal probabilistic networks
by local computations[J]. Computational Statistics Quarterly, 1990, 4: 269-282..