基于改进贝叶斯网络的风险评估模型研究
2018-10-17◆黄伟
◆黄 伟
基于改进贝叶斯网络的风险评估模型研究
◆黄 伟
(唐山市公安局网络安全保卫支队 河北 063000)
目前,贝叶斯网络(BN)已广泛应用于风险事件评估,但由于风险事件的特殊性,其应用受到一定限制。一是传统BN风险评估模型缺失定量数据,参数确定多依赖专家经验,故引入基于遗传算法的条件概率表(CPT)检索算法用于改进BN参数学习。二是风险评估中的变量相互关联,既不满足BN所要求的条件独立性假设,也导致计算效率下降,故提出改进的灰色关联分析法(GRA)计算指标权重对BN进行加权,以满足条件独立性假设。最后将改进的BN风险评估模型应用于实际问题研究,结果表明该模型可应用于不完全数据和变量相关的风险事件评估。
贝叶斯网络;风险评估;遗传算法;灰色关联分析
0 引言
贝叶斯网络(BN),又称置信度网络,是结合概率论与图论所形成的算法模型,不仅可运用于变量之间的因果关系和条件相关关系的可视化展示,而且可运用于解决存在模糊性和不确定性的问题,实现定量计算和定性分析的有效结合,目前已成为不确定知识表达和推理领域最有效的理论模型之一。然而,传统贝叶斯网络算法也存在诸多缺陷。(1)在建模中随着变量和其状态数量的增加,网络结构规模和网络学习的计算量都会呈现指数级增长,增加了计算和检索的困难;(2)由于评价因素之间的强相关性,网络建模过程既不满足条件独立性假设,也导致分析效率降低。针对贝叶斯网络存在的缺陷,诸多学者对其进行了改进探索。[1]通过修改贝叶斯概率测度的计算方法,使之更适用于数据库计算;通过改进贝叶斯网络分类器的概率公式提高了计算效率。[2]在使用贝叶斯网络入侵检测技术时,结合主成分分析和滑动窗口对贝叶斯网络进行了改进,大大降低数据维数,提高运算效率和检测精度。
贝叶斯网络在处理不确定知识表达和推理领域具有高效性,目前已被广泛应用于事件风险评估,如施工安全风险评估[3]、航空公司安全风险评估[4]、网络风险评估[5]等等。但由于事件中的风险是由风险因素与风险承受对象在多维和多层系统中相互作用的结果,是相当模糊和随机的[6],实际问题通常是定性描述,大多存在定量数据缺失,传统BN风险模型的结构和参数也主要由专家经验知识确定,具有较强的主观和不确定性。因此,客观和科学地利用非定量信息和不完全数据构建BN存在较大的困难。
针对已有文献关于贝叶斯网络算法及其在风险评估当中存在的利弊,本文提出基于遗传算法(GA)和改进的灰关联分析法(GRA)来优化贝叶斯网络风险评估建模,以试图解决传统贝叶斯网络风险评估中出现的若干问题。
1 贝叶斯网络的算法与应用
(1)传统贝叶斯网络理论
(2)贝叶斯网络风险模型构建
利用贝叶斯网络(BN)进行风险建模是一个系统的过程,包括变量定义和节点选择、网络结构学习、CPT学习、概率推理和计算共四个步骤,并一一对应于风险评估过程中的指标选择、系统建立、指标权重计算和模型构建四个步骤。其中,BN的概率推理可以有效实现不确定信息的融合,并可通过有向无环图反映变量间的因果关系,故采用BN建立风险评估模型是非常理想的选择。
鉴于风险评估中缺乏定量数据以及变量之间存在一定相关性的问题,本文提出基于遗传算法(GA)和改进的灰色关联分析法(GRA)来优化BN建模。基于改进贝叶斯网络的风险评估建模技术流程图如图1所示。
图1 基于改进贝叶斯网络的风险评估模型构建流程图
2 改进贝叶斯网络算法
(1)基于GA的CPT检索算法设计
目前,贝叶斯网络参数学习中用于处理完整数据的算法主要包括极大似然估计法、贝叶斯估计法和梯度下降法,用于处理不完整数据的算法包括期望最大化(EM)方法和Gibbs样本方法。但在现实的风险评估事件中,所获得数据具有如下特性:1.定性和定量数据相结合;2.数据不完整。BN中的参数学习直接影响着事件风险评估的准确性,而现有的参数学习算法并不适用于BN风险评估建模,故提出了一种基于遗传算法(GA)的CPT检索算法,即将遗传算法应用于学习缺乏定量数据节点的概率分布,将多变量非线性规划应用于参数的误差反馈学习。
由于遗传算法(GA)是一种随机化检索算法,模拟了生物进化的优胜劣汰规则与染色体的交换机制,通过选择、交叉、变异三种基本操作寻求最优个体,是处理复杂优化问题的一类方法,具有极高的鲁棒性和广泛适用性。因此我们在根据GA的算法流程,将交叉和变异算子、误差反馈函数运用到BN参数学习过程中,从而构建基于遗传算法的CPT检索算法。具体的操作流程图见图2。
图2 基于GA的CPT检索算法流程图
基于GA的CPT检索算法实现步骤如下:
Step1:根据事件的历史风险评估数据作为出发点,在BN参数学习中创建初始CPT群体,即设置进化代数计数器t=0,设置最大进化代数T,随机生成M各个体作为初始群体P(0),并计算群体P(t)中各个个体的适应度;
Step2:根据对历史数据的统计分析,获得BN风险评估的真实后验概率分布,并建立误差反馈函数;
Step:3:将交叉和变异算子、误差反馈函数运用到BN参数学习过程中,执行交叉、变异和其他遗传操作,即利用遗传算法检索节点的最优CPT,群体P(t)经过选择、交叉、变异运算之后得到下一代群体P(t+1);
Step4:通过检索最优CPT和多元非线性规划所得到的误差反馈函数来不断减少网络参数学习过程中的学习误差;
Step5:若t=T,即当最优个体的适应度达到给定的阈值,或者最优个体的适应度和群体的适应度不再上升时,终止条件判断输出最优CPT,确定最优的网络学习参数。
基于目标数据和误差反馈,通过遗传算法(GA)改进的CPT检索算法,一方面可以处理风险评估事件中定量与定性型相结合或是不完整的数据,另一方面,使得参数学习的效率并不受到数据不完整性和网络结构复杂性的影响。
(2)基于改进的GRA优化加权BN算法设计
节点的条件独立性假设有助于简化BN的概率推理工作。当非关联节点满足条件独立性时,后验概率的推理公式可用极大后验估计(Liu, 2016)[7]来获取,具体见公式(3)。
若节点之间不满足条件独立性,公式(3)的后验概率推理公式不再适用。为了使BN能运用于实际中的风险评估问题,必须对BN方法进行改进以满足条件独立性假设。因此本文提出改进的灰色关联分析法(GRA)来计算指标权重对BN进行加权,旨在满足BN所要求的条件独立性假设。
灰色关联分析法(GRA),是根据因素之间发展趋势的相似或相异程度,亦即灰色关联度,作为衡量因素间关联程度的一种方法。灰色关联度分析对于一个系统的发展变化态势提供了量化的度量,非常适合动态历程分析。但GRA在对历程中的每个时刻的绝对差进行计算时,忽略了相邻时刻之间的变化,只能考虑到每个端点的差异,无法描述两个动态序列之间的相关性,因此本文采用改进后的GRA来优化加权BN,具体的操作流程图见图3。
图3 基于改进的GRA优化加权BN的流程图
基于改进的GRA优化加权BN的主要分析步骤如下:
Step1:确定反映事件风险特征的参考序列和影响事件风险的比较序列,并输入相应数据;
Step2:由于事件风险影响因素的物理意义不同,导致数据的量纲也存在差异,不便于进行比较,或在比较时难以得出正确的结论,因此在进行灰色关联度分析之前,需对数据进行无量纲化、规范化处理;
Step3:对灰色关联分析法(GRA)进行改进。首先对序列进行非线性拟合,用连续函数代替离散函数。然后按公式(4)对差分序列进行改进,以积分形式表示变化趋势,准确描述几何形状的相关程度。
最终,计算每个评估指标的权重。
Step5:基于指标权重对BN进行优化加权。将权重整合到CPT学习中来构建加权BN,并改进概率推理公式。
改进后的GRA充分考虑了状态和变异相似度这两个问题,因此可以更准确地测量两个序列的相关性。相应地,通过该方法计算的权重可以更好地度量节点间的相互依赖性,并可以改善条件独立性假设。
3 改进贝叶斯网络的优越性
基于遗传算法(GA)和改进的灰色关联分析(GRA)两种算法构建的新的贝叶斯网络模型能够在缺少定量数据和变量之间存在相关性的情况下实现客观的评估建模。
关于BN算法改进的优越性体现在BN风险评估建模的每一个过程当中,例如在结构学习中,传统BN主要依赖于专家经验或先验知识通过人工方式进行构建,而改进后的BN既可以人工构建,也可以实现自动构建;在参数学习中,传统BN的参数主要是通过专家对定性信息评分的方式确定,而改进后的BN可以基于遗传算法实现自动检索确定;在概率推理和计算过程中,改进的BN突破了传统BN不考虑变量相关性,只进行简单推理的方式,使用了改进后的灰色关联分析算法构建加权BN进行推理。
4 应用实例
目前,很多供电局依然通过定期巡检、校验电表、用户举报窃电等方法来发现窃电或计量装置故障,以防范被窃漏电的风险。为了能够实时自动评估监测被窃漏电的风险和发现计量装置故障,本文通过采集电量异常、负荷异常、终端报警、线损异常等数据信息,分别建立传统BN和改进后的BN窃漏电风险评估模型,一方面用于对两种BN模型进行实际实验效果比较,另一方面,用于实现对被窃漏电情况的实时风险监测。
本文选取了某供电局2014年9月所有窃漏电用户及正常用户的电量、告警及线损数据和该用户在当天是否窃漏电的数据,由于贝叶斯网络只能使用离散型数据构建,因此对数据进行处理后共选取291个样本数据构建传统BN和改进BN模型。关于网络节点名称及分类如表1所示。
表1 网络节点名称及分类
关于BN风险评估模型的网络结构图如图4所示。
图4 BN窃漏电风险评估模型网络结构图
表2 不同BN窃漏电风险评估模型的概率推理结果
为了对两种模型的风险评估精度进行评价,因此对两模型的概率推理结果分别进行了统计。从表2来看,改进后的BN模型的评估误差为4.13%,评价精度可以达到95.87%,比传统的BN高出9.92%,而传统BN模型的评价精度则只达到85.95%。
图5 不同参数学习算法的收敛曲线
为了验证CPT检索算法的有效性,与另一种参数学习方法进行比较分析。首先生成BN网络的训练数据,然后利用期望最大化算法和检索算法计算节点“是否被窃漏电”的CPT。考虑到检索的随机性,运行GA共200次,从图5来看,在期望最大化(EM)算法下,当迭代次数达到接近50左右时才实现收敛,而在基于GA的CPT检索算法下,当迭代次数为19左右时就实现收敛。当GA实现实现推理误差反馈时,计算误差减小51.23%,收敛速度提高61.22%。可见,CPT检索算法不仅可以提高计算效率,同时也提高了计算精度。
5 结论
鉴于贝叶斯网络在解决随机性和不确定性问题上具有优越性,目前已被广泛应用于事件风险评估。但由于风险事件的模糊性和随机性,客观科学地利用非定量信息和不完全数据构建BN风险评估模型存在较大的困难,因此本文提出了一种基于遗传算法(GA)的CPT检索算法用于解决CPT学习中的定性节点问题,改进BN参数学习。对于风险评估中的变量相关性问题,本文提出了基于改进的灰色关联分析(GRA)优化加权BN,即通过在序列计算中引入序列变化率差异来改进GRA,使其能更准确地测量指标间的相关性,最后根据相关性确定指标权重来优化加权BN,以满足其所要求的条件独立性假设。相关实验表明,改进后的贝叶斯网络风险评估模型不仅解决了事件中存在的数据不规则、不完整和变量之间相关的问题,同时也提高了模型的运算效率和风险评估的精度。
[1]陈亮.改进的贝叶斯网络模型在保险欺诈挖掘中的应用[J].河南城建学院学报,2012.
[2]冯祖洪,李静.基于主成分分析的改进贝叶斯网络入侵检测研究[J].现代电子技术,2012.
[3]汪涛,廖彬超,马昕,方东平.基于贝叶斯网络的施工安全风险概率评估方法[J].土木工程学报,2010.
[4]姬志伟,杨英宝,孙益祥.基于贝叶斯网络的航空公司安全风险评估研究[J].中国民航飞行学院学报,2016.
[5]李军,熊飞,钮焱.基于贝叶斯网络的网络风险评估研究[J].软件导刊,2017.
[6]Pate´-Cornell, M.E. 1996. Uncertainties in risk analysis: Six levels of treatment. Reliability Engineering System Safety,1996.
[7]Liu, R. 2016. Research on risk assessment and modeling of flooddisaster based on Bayesian network. Shanghai: East China Normal University (in Chinese).
[8]付钰,吴晓平,严承华.基于贝叶斯网络的信息安全风险评估方法[J].武汉大学学报( 理学版),2006.
[9]Chickering DM. Optimal structure identification with greedy search. Journal of Machine Learning Research,2002.
[10]Sahin F, Yavuz M, Amavu Z. et al. Fault diagnosis for airplane engines using Bayesian network and distributed particle swam optimization. Parallel Computing,2007.