1. 引言
贝叶斯网络(Bayesian Networks, BNs) [1]通过有向无环图和条件概率分布,为多变量间的依赖关系提供了一种严格的概率图模型表示,其核心环节之一——参数学习直接决定了模型能否准确进行变量间的推理。然而在实际应用中,采集到的训练数据往往呈现出显著的不均衡特性,这对参数学习的鲁棒性构成了严峻挑战。以图1所示的“草坪湿润”网络为例,节点“下雨”(R)和“洒水”(S)作为父节点,共同影响子节点“草坪湿润”(W)。在实际观测数据中,某些父节点组合如“不下雨–不洒水”对应子节点W的概率表状态为“草坪湿润”,但由于观测样本有限以及这类情况在现实生活中出现频次很低,导致该组合状态下数据未被观测到,最终得到分布不均衡的数据。采用传统最大似然估计(Maximum likelihood Estimation, MLE) [2]方法计算条件概率会出现零概率值,直接影响BNs的推理性能。
针对此问题,研究人员在参数学习时融入专家给定的参数先验知识,目前研究方法主要分为两类:一是将参数学习问题转化为基于似然函数或熵函数的约束优化问题,并借助凸优化[3]或梯度法[4]求解,如文献[3]提出约束最大似然算法,将最大熵函数作为准则,与非单调性约束结合转化为凸优化问题,但当数据分布不均衡时,容易导致专家给出的约束变为空可行集,直接导致凸优化无解。二是将约束与专家先验知识融合,转化为虚拟样本的形式结合贝叶斯估计求解[5]-[11],如文献[9]用均匀分布描述参数取值区间,结合单调性约束推断Dirichlet分布超参数,最后结合最大后验概率估计(Maximum a posterior, MAP) [12]求解;文献[10] [11]则用正态分布描述近似不等式约束,同样作为Dirichlet分布的近似求解超参数,这类方法有效解决了零概率值问题并提高了网络的参数学习精度。Dirichlet分布是多项分布的共轭先验且能简化计算,但其超参数的确定高度依赖于专家领域知识,且当变量分类过多时往往难以确定约束类型,其适用性显著降低,因此如何在不依赖专家知识的情形下确定Dirichlet分布的超参数,从而求得网络参数值成为一个亟待解决的问题。
为减少对专家知识的依赖并提高参数学习精度,本文选择从数据本身出发,探索其内在结构信息以构建适用的先验信息。在参数学习时,数据的不均衡性体现为不同概率分布的不确定性存在差异。以天气预测为例,均匀分布P (下雨) = 0.5、P (不下雨) = 0.5的不确定性,要强于倾斜分布P (下雨) = 0.8、P (不下雨) = 0.2的不确定性,那么如何衡量这两种不确定性的强弱呢?在信息论中,熵[13]作为度量随机变量的不确定性的核心指标,能够精确量化这种差异:熵值越大,表明分布越均衡,不确定性越强;熵值越小,则表明分布越不均衡,不确定性越弱。
因此,本文提出用熵刻画数据的内在结构信息并用正态分布表示,并设计一种不均衡数据集条件下自适应BNs参数学习方法。首先,利用熵和3σ准则构造自适应方差,MLE计算均值,然后通过网格搜索和交叉验证寻找最优容许误差,得到超参数的先验正态分布,将其作为Dirichlet分布的近似分布,通过目标优化求解超参数,最后结合MAP计算网络参数值。
2. 贝叶斯网络相关理论
2.1. 贝叶斯网络
贝叶斯网络[14]由结构
和参数
两部分组成,结构
是一种有向无环图
,其中节点变量集合
,有向边集合E代表变量之间的直接依赖关系,
是网络结构中的参数集合,描述变量对其父节点的依赖关系。每个节点都附有一个概率分布,根节点
所附的是它的边缘分布
,而非根节点
所附的是其条件概率分布
。
贝叶斯网是联合分布的分解的一种表示,基于条件独立性假设(马尔科夫假设),把各变量所附的条件概率分布相乘就得到联合分布,即
(1)
其中当
时,
为边缘分布
。
贝叶斯网络结构学习就是对于给定的数据集
,找到一个与数据集拟合最好的网络。而在有了具体的网络之后,需要找到与之对应的条件概率表(conditional probability table, CPT)即参数学习。本文就是在结构已知的情况,探讨BNs参数学习问题。
2.2. 最大似然估计(MLE)
根据文献[14],考虑一个由
个变量
组成的贝叶斯网络
。不失一般性,设其中节点
共有
个取值
,其父节点
的取值共有
个组合,
。若
无父节点,则
。那么,网络的参数为
(2)
其中
的取值范围是
,而对一个固定的
,
和
的取值范围分别是从
及从
。
设
是数据中满足
和
的样本的数量,于是由文献[13]可知参数
的最大似然估计值为:
(3)
2.3. 最大后验概率估计(MAP)
根据文献[12],贝叶斯公式将先验分布和似然函数结合,得
到后验分布即:
(4)
式(4)中,概率分布
表示
的先验知识,似然函数
表示数据集
的影响。在独立同分布(independent and identically distributed, i.i.d.)条件下,式(4)中
为多项式似然函数的共轭分布。本文假设先验分布
是Dirichlet分布,即:
(5)
则后验分布
也是Dirichlet分布。在观测样本下,
的后验分布
为:
(6)
由文献[10],当参数的后验分布取极大值时,得到该参数的贝叶斯最大后验估计值为:
(7)
本文的无信息先验MAP估计方法则是令
,即默认虚拟样本为1。
2.4. 均匀约束先验方法
根据文献[9],根据单调性和规范性得到每个参数的取值范围,再无任何先验参数的情况下,认为参数在区间内服从均匀分布,即设参数
,则
(8)
然后将该均匀分布的均值作为约束,方差作为目标函数,求出相应Beta分布的参数,并以该Beta分布作为先验参数的分布函数。
3. 基于熵的自适应BNs参数学习方法
3.1. 自适应方差
信息熵是刻画随机变量不确定性的经典工具,又称为香农熵或熵,根据文献[13]中Shannon对离散随机变量熵的描述,贝叶斯网络
中节点
的熵可定义为:
(9)
其中
表示节点
的状态数,为了消除状态数的影响,本文采用标准熵,使得不同变量间、不同网络之间的比较具备一致性。
定义1 (标准条件熵)在贝叶斯网络
中,对于每个条件分布
的标准条件熵
定义为:
(10)
其中
表示均匀分布时的最大熵值,该度量将熵值规范化至[0, 1]区间。
对应于完全确定的分布(单一事件概率为1),
则表示最大不确定性状态。
定义2 (自适应方差) Dirichlet分布参数估计的渐近分布服从正态分布[15],又根据文献[10] [11]用正态分布描述近似不等式约束,因此本文有理由设数据结构信息服从正态分布,即设Dirichlet分布超参数:
(11)
其中
为正态分布的数学期望,通过式(3)计算得到;
是利用标准条件熵以及
准则构造的自适应方差,本文希望并且对于低熵(不均衡)区域,希望在计算时更依赖于先验信息;对于高熵(均衡)区域,希望先验分布较弱,在做参数估计时更依赖于数据本身,因此其标准差定义为:
(12)
其中容许误差
是一个基础参数,控制每个条件分布的全局先验强度水平,在真实数据中通过网格搜索和交叉验证得到。
作为熵调节因子,实现局部自适应调节,根据每个条件分布的均衡性程度微调先验强度,熵越大代表分布越均衡,需要的先验信息越少,从而令方差越小,
更集中在
附近;而熵越小代表分布越不均衡,需要更多的先验信息,从而令方差越大,
在
附近较为分散。
根据文献[9]-[11],Dirichlet分布的边缘分布为Beta分布,且Beta分布为二项式分布的共轭分布族,因此可以通过最小化方差平方和确定Beta分布中的2个形参来近似表达与其相关的领域知识。
(13)
其中
是Beta分布的两个参数,
和
分别是Beta分布的方差和期望,其表达式为:
(14)
利用式(13)和式(14)求得Beta分布的两个参数,得到
后,将其作为虚拟样本代入式(7),计算网络参数
的估计值。
3.2. 算法描述
给定样本量为
的数据集
,基于熵的贝叶斯网络自适应参数学习方法的具体流程如下:
步骤1根据式(3)计算得到每个节点的条件概率,将其作为正态分布的均值
;
步骤2对每个条件分布
,根据式(10)计算标准熵
;
步骤3利用网格搜索以及K折交叉验证选择最优
。将观测数据集D划分为K个互斥子集
,其中
,
,
。对于每个候选
,进行交叉验证:
a) 初始化平均对数似然
,
,训练集
,验证集
;
b) 使用训练集
和当前
,生成自适应先验参数
,然后根据式(7)得到参数
;
c) 验证集评估:计算验证集对数似然
,其中单个样本
的概率计算为:
;
d) 累加对数似然:
,计算平均对数似然:
;
e) 选择最优
:
。
步骤4将最优
代入式(12)中得到自适应方差,根据式(13)和式(14)求得Beta分布参数,将其代入式(7),得到最终估计参数:
。
4. 实验测试
4.1. 实验内容
本文在完整样本数据集下对本文方法的参数学习精度和运行耗时进行测试,并且与MLE、无信息先验MAP (默认虚拟样本为1)、均匀约束先验[9] 3种估计方法进行比较。
本文在草坪湿润模型(Grass Wet)、Earthquake、Asia三个不同复杂度的BNs上进行实验测试,其中Grass Wet网络如图1所示,该模型被广泛应用于评估各种参数学习算法如文献[7]-[10]。每个节点取值为0或1,当节点取值为0时,表示事件不发生,取值为1时,表示事件发生。该BNs节点的真实参数如表1所示。
Figure 1. Structure of grass wet Bayesian network
图1. 草坪湿润推理贝叶斯网络
Table 1. System resulting data of standard experiment
表1. 草坪湿润网络节点参数
节点 |
参数值 |
C |
,
|
S |
,
|
,
|
R |
,
|
,
|
W |
,
|
,
|
,
|
,
|
在实验测试中,根据图1所示网络结构和表1所示网络真实参数值,采用随机抽样方法生成样本数据。实验测试环境为:Windows 11系统,处理器为Inter CPU 2.40 GHz,平台软件为PyCharm2022.2.2。
本文实验以KL散度和均方误差(Mean Square Error, MSE)为参数学习精度的衡量指标,差异越小说明精度越高,具体计算形式如式(15)和(16) [16]。
(15)
(16)
4.2. 不同
取值对KL散度和MSE的影响
以Grass Wet为例,探究本文方法在样本量为200、500、1000情况下,
取值分别为0.0001、0.001、0.005、0.01、0.05、0.1、0.2、0.5时对KL散度与MSE的影响,如图2所示。
(a) Impact of Prior Parameters
on KL Divergence (b) Impact of Prior Parameters
on MSE
(a) 先验参数
对KL散度的影响 (b) 先验参数
对MSE的影响
Figure 2. Impact of different
values on KL divergence and MSE (Grass Wet)
图2. 不同
取值对KL散度和MSE的影响(Grass Wet)
根据图2所示,可以看出,本文方法随着
取值的增大,KL散度和MSE都随之增长。在
之前,增长速度缓慢几乎相等;在
之后,增长速度随着
增大而逐渐增大,KL散度和MSE也显著增大,表明
越大,与真实网络的估计偏差越大,因此需要选择合适的
取值。
4.3. 实验结果
(1) 零概率值处理效果
根据图1所示Grass Wet网络结构和表1所示网络参数真实值,采用随机抽样算法随机生成样本量为100、200、500、800、1000、1500、2000的样本集,以W节点4个参数
、
、
、
为例,计算本文方法得到的网络参数值,并与MLE、无信息先验MAP、均匀约束先验方法对比,结果如表2所示。
由表2可以看出,本文方法与无信息先验MAP、基于均匀先验方法都克服了小概率事件参数漏算、误算的情况,如样本量为100、500的情况下,MLE将
估计为0.000,即在“下雨–洒水”同时发生的情况下“草坪不湿润”的概率为0.000;而在样本量为100的情况下,MLE将
估计为0.000,即“不洒水–下雨”的情况下“草坪不湿润”的概率为0.000,这与我们设置的真实参数估计偏差较大。而本文方法与无信息先验MAP、基于均匀先验的方法都有效解决了零概率值问题,接下比较本文方法与其他方法的精度。
Table 2. Parameter learning results for node W
表2. 节点W参数学习结果
样本量 |
本文方法 |
均匀约束先验 |
无信息先验MAP |
MLE |
100 |
0.181 |
0.157 |
0.212 |
0.921 |
0.381 |
0.138 |
0.257 |
0.873 |
0.352 |
0.140 |
0.244 |
0.875 |
0.000 |
0.000 |
0.098 |
0.924 |
200 |
0.108 |
0.125 |
0.193 |
0.914 |
0.329 |
0.129 |
0.193 |
0.872 |
0.300 |
0.130 |
0.192 |
0.871 |
0.100 |
0.014 |
0.107 |
0.895 |
500 |
0.010 |
0.114 |
0.203 |
0.882 |
0.189 |
0.110 |
0.137 |
0.898 |
0.173 |
0.111 |
0.138 |
0.897 |
0.000 |
0.104 |
0.102 |
0.907 |
800 |
0.010 |
0.106 |
0.200 |
0.897 |
0.122 |
0.102 |
0.131 |
0.893 |
0.115 |
0.103 |
0.132 |
0.892 |
0.008 |
0.100 |
0.110 |
0.899 |
1000 |
0.010 |
0.100 |
0.202 |
0.900 |
0.111 |
0.101 |
0.111 |
0.898 |
0.104 |
0.101 |
0.112 |
0.898 |
0.009 |
0.098 |
0.092 |
0.903 |
1500 |
0.010 |
0.102 |
0.199 |
0.901 |
0.084 |
0.105 |
0.107 |
0.899 |
0.079 |
0.105 |
0.108 |
0.898 |
0.020 |
0.103 |
0.094 |
0.902 |
2000 |
0.010 |
0.100 |
0.198 |
0.900 |
0.064 |
0.101 |
0.110 |
0.893 |
0.059 |
0.101 |
0.111 |
0.893 |
0.013 |
0.100 |
0.101 |
0.896 |
(2) 参数学习精度测试(KL散度)
为了从总体上更好地说明参数学习的精度,通过计算与真实参数的KL散度来分析比较本文的4种方法。并且在不同网络复杂度的经典BNs上对比,网络信息如表3所示。由于文中数据是通过简单随机采样得到,一次实验并不能反映算法的优劣,因此本文每次实验均重复100次,结果如表4、图3和图4所示。
Table 3. Simulated networks information
表3. 仿真网络信息
网络名称 |
节点数 |
边的数目 |
参数个数 |
Grass Wet |
4 |
4 |
9 |
Earthquake |
5 |
4 |
10 |
Asia |
8 |
8 |
18 |
Table 4. Contrast of average KL divergence for the four algorithms
表4. 4种算法的平均KL散度对比
网络 |
样本量 |
本文方法 |
均匀约束先验 |
无信息先验MAP |
MLE |
Grass Wet |
100 |
0.075 |
0.127 |
0.121 |
0.453 |
200 |
0.066 |
0.102 |
0.099 |
0.233 |
500 |
0.056 |
0.076 |
0.074 |
0.101 |
800 |
0.056 |
0.068 |
0.067 |
0.083 |
1000 |
0.056 |
0.066 |
0.065 |
0.086 |
1500 |
0.056 |
0.063 |
0.062 |
0.079 |
2000 |
0.056 |
0.060 |
0.060 |
0.074 |
Earthquake |
100 |
0.078 |
0.121 |
0.121 |
1.052 |
200 |
0.067 |
0.101 |
0.101 |
0.799 |
500 |
0.059 |
0.078 |
0.077 |
0.326 |
800 |
0.062 |
0.078 |
0.077 |
0.132 |
1000 |
0.058 |
0.074 |
0.073 |
0.209 |
1500 |
0.055 |
0.068 |
0.066 |
0.083 |
2000 |
0.041 |
0.064 |
0.060 |
0.051 |
Asia |
100 |
0.101 |
0.133 |
0.128 |
0.378 |
200 |
0.082 |
0.120 |
0.114 |
0.313 |
500 |
0.048 |
0.091 |
0.084 |
0.210 |
800 |
0.032 |
0.078 |
0.082 |
0.172 |
1000 |
0.042 |
0.077 |
0.071 |
0.180 |
1500 |
0.008 |
0.049 |
0.043 |
0.083 |
2000 |
0.013 |
0.049 |
0.045 |
0.070 |
Figure 3. Contrast of average KL divergence for the four algorithms (Grass Wet)
图3. 四种算法平均KL散度对比(Grass Wet)
由表4和图3、图4的曲线可以看出,在参数精度(KL散度)方面,4种方法随着样本量的增长与真实参数的距离逐渐减小并趋于一致,且本文方法要明显优于均匀约束先验、无信息先验 MAP,MLE 3种方法。如在不同的网络中,样本量为100~500时,本文方法得到的平均KL散度均没有超过0.1。在Grass Wet网络中,与MLE相比,在样本量从100上升到2000的过程中,本文方法的平均KL散度从0.075降低到0.013,幅度变化较小;而MLE的平均KL散度从0.453降低到0.074,幅度变化较大。本文的方法相对于MLE至少降低了83%。
Figure 4. Contrast of average KL divergence for the four algorithms (Asia)
图4. 四种算法平均KL散度对比(Asia)
(3) 参数学习精度测试(MSE)
Table 5. Contrast of MSE for the four algorithms
表5. 4种算法的MSE对比
网络 |
样本量 |
本文方法 |
均匀约束先验 |
无信息先验MAP |
MLE |
Grass Wet |
100 |
0.032 |
0.048 |
0.045 |
0.038 |
200 |
0.029 |
0.038 |
0.037 |
0.032 |
500 |
0.025 |
0.029 |
0.029 |
0.026 |
800 |
0.025 |
0.027 |
0.027 |
0.026 |
1000 |
0.025 |
0.026 |
0.026 |
0.026 |
1500 |
0.025 |
0.026 |
0.026 |
0.026 |
2000 |
0.025 |
0.026 |
0.026 |
0.025 |
Earthquake |
100 |
0.029 |
0.046 |
0.046 |
0.059 |
200 |
0.024 |
0.037 |
0.037 |
0.045 |
500 |
0.021 |
0.028 |
0.027 |
0.028 |
800 |
0.022 |
0.028 |
0.028 |
0.027 |
1000 |
0.021 |
0.026 |
0.026 |
0.025 |
1500 |
0.020 |
0.024 |
0.023 |
0.021 |
2000 |
0.015 |
0.022 |
0.020 |
0.016 |
Asia |
100 |
0.030 |
0.050 |
0.048 |
0.042 |
200 |
0.026 |
0.041 |
0.039 |
0.033 |
500 |
0.020 |
0.031 |
0.028 |
0.022 |
800 |
0.013 |
0.026 |
0.023 |
0.019 |
1000 |
0.017 |
0.026 |
0.024 |
0.019 |
1500 |
0.004 |
0.015 |
0.012 |
0.010 |
2000 |
0.005 |
0.016 |
0.014 |
0.015 |
Figure 5. Contrast of MSE for the four algorithms (Grass Wet)
图5. 四种算法MSE对比(Grass Wet)
Figure 6. Contrast of MSE for the four algorithms (Asia)
图6. 四种算法MSE对比(Asia)
由表5和图5、图6可以看出,4种方法随着样本量的增长与真实参数的距离逐渐减小,这与平均KL散度的趋势一致,且不同复杂度的网络其MSE变化也不同,但本文方法均优于其他3种方法。例如在Grass Wet网络和Asia网络中,四种算法在MSE上的优劣均表现为本文方法 > MLE > 无信息先验MAP > 均匀约束先验方法。
(4) 运行时间测试
以Grass Wet网络为例,在不同的样本集下,对4种方法的运行时间进行测试,统计每种方法的平均运行时间,测试结果如表6、图7所示。
Table 6. Contrast of running time for the four algorithms
表6. 4种算法的计算时间对比
网络 |
样本量 |
本文方法 |
均匀约束先验 |
无信息先验MAP |
MLE |
Grass Wet |
100 |
1.602E−01 |
4.352E−03 |
2.007E−04 |
9.999E−05 |
200 |
1.609E−01 |
4.755E−03 |
1.973E−04 |
1.094E−04 |
500 |
1.529E−01 |
5.183E−03 |
2.737E−04 |
4.762E−04 |
800 |
1.658E−01 |
5.290E−03 |
7.021E−04 |
6.520E−04 |
1000 |
1.586E−01 |
5.211E−03 |
7.004E−04 |
8.257E−04 |
1500 |
1.661E−01 |
5.737E−03 |
1.048E−03 |
1.102E−03 |
2000 |
1.815E−01 |
7.470E−03 |
1.712E−03 |
1.401E−03 |
Figure 7. Contrast of running time for the four algorithms (Grass Wet)
图7. 四种算法运行时间对比(Grass Wet)
由表6和图7可以看出,在不同的数据集上,本文方法耗时明显都高于其他三种方法,且随着样本量与网络复杂度的增长,运行时间也随之增长,但均不超过0.3秒。例如在样本量从100升至2000的过程中,与MLE相比,本文方法的运行时间从0.1602秒上升至0.1815秒,增幅较大,而MLE方法从0.0009秒上升至0.0013秒,增幅较小。显然,本文方法提高了参数学习精度,但增加了一定的运行时间。
5. 结论
本文针对不均衡数据集条件下建立贝叶斯网络易出现零概率值问题,提出一种基于熵的自适应参数学习方法。实验测试结果表明,该方法的精度大于基于均匀约束先验的方法、无信息先验MAP方法、MLE 3种方法,虽然运行时间要高于这三种方法,但时间消耗总体不超过0.3秒。本文也存在不足,本文只是考虑了完整数据样本下的参数学习,后续需要进一步研究缺失数据样本下的学习问题。