贝叶斯网络 (Bayesian network),又称信念网络 (belief network)或是有向无环图 模型 (directed acyclic graphical model),是一种概率图型模型,借由有向无环图 (directed acyclic graphs, or DAGs)中得知一组随机变量
{
X
1
,
X
2
,
.
.
.
,
X
n
}
{\displaystyle \left\{X_{1},X_{2},...,X_{n}\right\}}
及其n 组条件概率分布 (conditional probability distributions, or CPDs)的性质。举例而言,贝叶斯网络可用来表示疾病和其相关症状间的概率关系;倘若已知某种症状下,贝叶斯网络就可用来计算各种可能罹患疾病之发生概率。
一个简单的贝叶斯网络。雨水影响洒水器是否有动作,且雨水及洒水器二者均可影响草是否湿润.
一般而言,贝叶斯网络的有向无环图中的节点表示随机变量,它们可以是可观察到的变量,抑或是隐变量、未知参数等。连接两个节点的箭头代表此两个随机变量是具有因果关系或是非条件独立的;而两个节点间若没有箭头相互连接一起的情况就称其随机变量彼此间为条件独立。若两个节点间以一个单箭头连接在一起,表示其中一个节点是“因 (parents)”,另一个是“果 (descendants or children)”,两节点就会产生一个条件概率值。比方说,我们以
X
i
{\displaystyle X_{i}}
表示第i个节点,而
X
i
{\displaystyle X_{i}}
的“因”以
P
i
{\displaystyle P_{i}}
表示,
X
i
{\displaystyle X_{i}}
的“果”以
C
i
{\displaystyle C_{i}}
表示;图一就是一种典型的贝叶斯网络结构图,依照先前的定义,我们就可以轻易的从图一可以得知:
P
2
=
{
X
4
,
X
5
}
,
C
2
=
∅
,
P
4
=
∅
,
C
4
=
{
X
2
,
X
5
}
,
P
5
=
{
X
4
}
{\displaystyle P_{2}=\left\{X_{4},X_{5}\right\},C_{2}=\emptyset ,P_{4}=\emptyset ,C_{4}=\left\{X_{2},X_{5}\right\},P_{5}=\left\{X_{4}\right\}}
,以及
C
5
=
{
X
2
}
{\displaystyle C_{5}=\left\{X_{2}\right\}}
大部分的情况下,贝叶斯网络适用在节点的性质是属于离散型的情况下,且依照
P
(
X
i
|
P
i
)
{\displaystyle P(X_{i}|P_{i})}
此条件概率写出条件概率表 ,此条件概率表的每一行(row)列出所有可能发生的
P
i
{\displaystyle P_{i}}
,每一列(column)列出所有可能发生的
X
i
{\displaystyle X_{i}}
,且任一行的概率总和必为1。写出条件概率表后就很容易将事情给条理化,且轻易地得知此贝叶斯网络结构图中各节点间之因果关系;但是条件概率表也有其缺点:若是节点
X
i
{\displaystyle X_{i}}
是由很多的“因”所造成的“果”,如此条件概率表就会变得在计算上既复杂又使用不便。下图为图一贝叶斯网络中某部分结构图之条件概率表。
图一:部分结构图之条件概率表
令 G = (I ,E ) 表示一个有向无环图 (DAG),其中 I 代表图 中所有的节点的集合,而 E 代表有向连接线段的集合,且令 X = (X i )i ∈I 为其有向无环图中的某一节点 i 所代表之随机变量,若节点 X 的联合概率分布可以表示成:
p
(
x
)
=
∏
i
∈
I
p
(
x
i
|
x
pa
(
i
)
)
{\displaystyle p(x)=\prod _{i\in I}p{\big (}x_{i}\,{\big |}\,x_{\operatorname {pa} (i)}{\big )}}
则称 X 为相对于一有向无环图 G 的贝叶斯网络,其中
p
a
(
i
)
{\displaystyle pa(i)}
表示节点 i 之“因”。
对任意的随机变量,其联合分布可由各自的局部条件概率分布相乘而得出:
P
(
X
1
=
x
1
,
…
,
X
n
=
x
n
)
=
∏
i
=
1
n
P
(
X
i
=
x
i
∣
X
i
+
1
=
x
i
+
1
,
…
,
X
n
=
x
n
)
{\displaystyle \mathrm {P} (X_{1}=x_{1},\ldots ,X_{n}=x_{n})=\prod _{i=1}^{n}\mathrm {P} (X_{i}=x_{i}\mid X_{i+1}=x_{i+1},\ldots ,X_{n}=x_{n})}
依照上式,我们可以将一贝叶斯网络的联合概率分布写成:
P
(
X
1
=
x
1
,
…
,
X
n
=
x
n
)
=
∏
i
=
1
n
P
(
X
i
=
x
i
∣
X
j
=
x
j
)
{\displaystyle \mathrm {P} (X_{1}=x_{1},\ldots ,X_{n}=x_{n})=\prod _{i=1}^{n}\mathrm {P} (X_{i}=x_{i}\mid X_{j}=x_{j})}
(对每个相对于Xi 的“因”变量 Xj 而言)
上面两个表示式之差别在于条件概率的部分,在贝叶斯网络中,若已知其“因”变量下,某些节点会与其“因”变量条件独立,只有与“因”变量有关的节点才会有条件概率的存在。
如果联合分布的相依数目很稀少时,使用贝氏函数的方法可以节省相当大的存储器容量。举例而言,若想将10个变量其值皆为0或1存储成一条件概率表型式,一个直观的想法可知我们总共必须要计算
2
10
=
1024
{\displaystyle 2^{10}=1024}
个值;但若这10个变量中无任何变量之相关“因”变量是超过三个以上的话,则贝叶斯网络的条件概率表最多只需计算
10
∗
2
3
=
80
{\displaystyle 10*2^{3}=80}
个值即可。另一个贝式网络优点在于:对人类而言,它更能轻易地得知各变量间是否条件独立或相依与其局部分布 (local distribution)的类型来求得所有随机变量之联合分布。
定义一个节点之马尔可夫毯为此节点的因节点、果节点与果节点的因节点所成之集合。一旦给定其马尔可夫毯的值后,若网络内之任一节点X 皆会与其他的节点条件独立的话,就称X 为相对于一有向无环图G 的贝叶斯网络。
假设有两个服务器
(
S
1
,
S
2
)
{\displaystyle (S_{1},S_{2})}
,会发送数据包到用户端(以U 表示之),但是第二个服务器的数据包发送成功率会与第一个服务器发送成功与否有关,因此此贝叶斯网络的结构图可以表示成如图二的型式。就每个数据包发送而言,只有两种可能值:T (成功)或 F (失败)。则此贝叶斯网络之联合概率分布可以表示成:
P
(
U
,
S
1
,
S
2
)
=
P
(
U
|
S
1
,
S
2
)
×
P
(
S
2
|
S
1
)
×
P
(
S
1
)
{\displaystyle P(U,S_{1},S_{2})=P(U|S_{1},S_{2})\times P(S_{2}|S_{1})\times P(S_{1})}
图二:简单的贝叶斯网络例子
此模型亦可回答如:“假设已知用户端成功接受到数据包,求第一服务器成功发送数据包的概率?”诸如此类的问题,而此类型问题皆可用条件概率的方法来算出其所求之发生概率:
P
(
S
1
=
T
∣
U
=
T
)
=
P
(
S
1
=
T
,
U
=
T
)
P
(
U
=
T
)
{\displaystyle \mathrm {P} ({\mathit {S_{1}}}=T\mid {\mathit {U}}=T)={\frac {\mathrm {P} ({\mathit {S_{1}}}=T,{\mathit {U}}=T)}{\mathrm {P} ({\mathit {U}}=T)}}}
=
∑
S
2
∈
{
T
,
F
}
P
(
S
1
=
T
,
S
2
,
U
=
T
)
∑
S
1
,
S
2
∈
{
T
,
F
}
P
(
U
=
T
,
S
1
,
S
2
)
{\displaystyle ={\frac {\sum _{{\mathit {S_{2}}}\in \{T,F\}}\mathrm {P} ({\mathit {S_{1}}}=T,{\mathit {S_{2}}},{\mathit {U}}=T)}{\sum _{{\mathit {S_{1}}},{\mathit {S_{2}}}\in \{T,F\}}\mathrm {P} ({\mathit {U}}=T,{\mathit {S_{1}}},{\mathit {S_{2}}})}}}
=
(
0.4
×
0.3
×
1
)
U
=
T
,
S
1
=
T
,
S
2
=
F
+
(
0.4
×
0.7
×
1
)
U
=
T
,
S
1
=
T
,
S
2
=
T
(
0.4
×
0.3
×
1
)
T
T
F
+
(
0.4
×
0.7
×
1
)
T
T
T
+
(
0.6
×
0.3
×
1
)
F
T
T
+
0
T
F
F
{\displaystyle ={\frac {(0.4\times 0.3\times 1)_{U=T,S_{1}=T,S_{2}=F}+(0.4\times 0.7\times 1)_{U=T,S_{1}=T,S_{2}=T}}{(0.4\times 0.3\times 1)_{TTF}+(0.4\times 0.7\times 1)_{TTT}+(0.6\times 0.3\times 1)_{FTT}+0_{TFF}}}}
≈
68.96
%
{\displaystyle \approx 68.96\%}
。
以上例子是一个很简单的贝叶斯网络模型,但是如果当模型很复杂时,这时使用枚举式的方法来求解概率就会变得非常复杂且难以计算,因此必须使用其他的替代方法。一般来说,贝叶斯概率有以下几种求法:
枚举推理法(如上述例子)
变量消元算法(variable elimination)
直接取样算法
拒绝取样算法
似然加权算法
马尔可夫链蒙特卡洛算法 (Markov chain Monte Carlo algorithm)
在此,以马尔可夫链蒙特卡洛算法为例,又马尔可夫链蒙特卡洛算法的类型很多,故在这里只说明其中一种吉布斯采样 的操作步骤:
首先将已给定数值的变量固定,然后将未给定数值的其他变量随意给定一个初始值,接着进入以下迭代步骤:
(1)随意挑选其中一个未给定数值的变量
(2)从条件分布
P
(
X
i
|
Markovblanket
(
X
i
)
)
{\displaystyle P(X_{i}|{\text{Markovblanket}}(X_{i}))}
抽样出新的
X
i
{\displaystyle X_{i}}
的值,接着重新计算
P
(
X
i
|
Markovblanket
(
X
i
)
)
=
α
P
(
X
i
|
parents
(
X
i
)
)
×
∏
Y
i
∈
children
(
X
i
)
parent
(
Y
i
)
{\displaystyle P(X_{i}|{\text{Markovblanket}}(X_{i}))=\alpha P(X_{i}|{\text{parents}}(X_{i}))\times \prod _{Y_{i}\in {\text{children}}(X_{i})}{\text{parent}}(Y_{i})}
当迭代结束后,删除前面若干笔尚未稳定的数值,就可以求出的近似条件概率分布。马尔可夫链蒙特卡洛算法的优点是在计算很大的网络时效率很好,但缺点是所抽取出的样本并不具独立性。
当贝叶斯网络上的结构跟参数皆已知时,我们可以透过以上方法来求得特定情况的概率,不过,如果当网络的结构或参数未知时,我们必须借由所观测到的资料去推估网络的结构或参数,一般而言,推估网络的结构会比推估节点上的参数来的困难。依照对贝叶斯网络结构的了解和观测值的完整与否,我们可以分成下列四种情形:
More information 结构, 观测值 ...
结构
观测值
方法
已知
完整
最大似然估计法(MLE)
已知
部分
EM算法 Greedy Hill-climbing method
未知
完整
搜索整个模型空间
未知
部分
结构算法 EM算法 Bound contraction
Close
以下就结构已知的部分,作进一步的说明。
此时我们可以用最大似然估计法(MLE)来求得参数。其对数似然函数为
L
=
1
N
∑
i
=
1
n
∑
i
=
1
s
log
(
P
(
X
i
|
p
a
(
X
i
)
,
D
i
)
)
{\displaystyle L={\frac {1}{N}}\sum _{i=1}^{n}\sum _{i=1}^{s}\log(P(X_{i}|pa(X_{i}),D_{i}))}
其中
p
a
(
X
i
)
{\displaystyle pa(X_{i})}
代表
X
i
{\displaystyle X_{i}}
的因变量,
D
i
{\displaystyle D_{i}}
代表第
1
{\displaystyle {\mathit {1}}}
个观测值,N 代表观测值资料的总数。
以图二当例子,我们可以求出节点U 的最大似然估计式为
P
(
U
=
u
|
S
1
=
s
1
,
S
2
=
s
2
)
=
n
(
U
=
u
,
S
1
=
s
1
,
S
2
=
s
2
)
n
(
S
1
=
s
1
,
S
2
=
s
2
)
{\displaystyle P(U=u|S_{1}=s_{1},S_{2}=s_{2})={\frac {n(U=u,S_{1}=s_{1},S_{2}=s_{2})}{n(S_{1}=s_{1},S_{2}=s_{2})}}}
由上式就可以借由观测值来估计出节点U 的条件分布。如果当模型很复杂时,这时可能就要利用数值分析或其它优化技巧来求出参数。
如果有些节点观测不到的话,可以使用EM算法(Expectation-Maximization algorithm )来决定出参数的区域最佳似然估计式。而EM算法的主要精神在于如果所有节点的值都已知下,在M阶段就会很简单,如同最大似然估计法。而EM算法的步骤如下:
(1)首先给定欲估计的参数一个起始值,然后利用此起始值和其他的观测值,求出其他未观测到节点的条件期望,接着将所估计出的值视为观测值,将此完整的观测值带入此模型的最大似然估计式中,如下所示(以图二为例):
P
(
U
=
u
|
S
1
=
s
1
,
S
2
=
s
2
)
=
E
N
(
U
=
u
,
S
1
=
s
1
,
S
2
=
s
2
)
E
N
(
S
1
=
s
1
,
S
2
=
s
2
)
{\displaystyle P(U=u|S_{1}=s_{1},S_{2}=s_{2})={\frac {EN(U=u,S_{1}=s_{1},S_{2}=s_{2})}{EN(S_{1}=s_{1},S_{2}=s_{2})}}}
其中
E
N
(
x
)
{\displaystyle EN(x)}
代表在目前的估计参数下,事件x的条件概率期望为
E
N
(
x
)
=
E
∑
k
I
(
x
|
D
(
k
)
)
=
∑
k
P
(
x
|
D
(
k
)
)
{\displaystyle EN(x)=E\sum _{k}I(x|D(k))=\sum _{k}P(x|D(k))}
(2)最大化此最大似然估计式,求出此参数之最有可能值,如此重复步骤(1)与(2),直到参数收敛为止,即可得到最佳的参数估计值。
让我们考虑一个应用在医药上的概率推论例子,在此病人会被诊断出是否有呼吸困难的症状。表一代表一个我们所观测到的资料集合,包含10笔观测值,S 代表的是吸烟与否(Smoker),C 代表是否为罹癌者(Cancer),B 代表是否罹患支气管炎(bronchitis),D 代表是否有呼吸困难及咳嗽(dyspnea and asthma)的症状。‘1’和‘0’分别代表‘是’和‘否’。此医药网络结构显示于图三。
表一
表二代表的是整个网络的经验联合概率分布,是由所收集到的资料所建构而成,利用此表可建构出节点的联合概率分布。见图四。此贝氏公式
P
(
A
|
B
)
=
P
(
A
,
B
)
P
(
B
)
{\displaystyle P(A|B)={\frac {P(A,B)}{P(B)}}}
可利用节点的边际概率和联合概率去计算节点的条件概率,待会会应用在建立条件概率表格 (Conditional probability Table; CPT)上。见图五。贝叶斯网络的联合概率可由下列式子计算:
P
(
S
,
C
,
B
,
D
)
=
P
(
S
)
×
P
(
C
|
S
)
×
P
(
B
|
S
,
C
)
×
P
(
D
|
B
,
C
)
{\displaystyle P(S,C,B,D)=P(S)\times P(C|S)\times P(B|S,C)\times P(D|B,C)}
其值见表三。
使用整个网络经验联合概率分布所计算出来的值会与使用CPT所计算出来的值不同,其差异可由表二和表三得知。其中差异不只是值的不同,也出现了新事件的概率(原本所没观察到的事件)。
表二
图四
图五
表三
建立在观测资料上的概率推论算法:
1.资料集合
D
=
{
d
1
,
…
,
d
n
}
{\displaystyle D=\left\{d_{1},\ldots ,d_{n}\right\}}
,其中
d
i
=
x
i
(
1
)
,
…
,
x
i
(
N
)
{\displaystyle d_{i}={x_{i}^{(1)},\ldots ,x_{i}^{(N)}}}
(下标代表第几个观测值,上标代表第几个变量),且一共有n个观测值。每一个观测值包含
N
(
N
≥
2
)
{\displaystyle N(N\geq 2)}
个变量
X
i
(
1
)
,
…
,
X
i
(
N
)
{\displaystyle {X_{i}^{(1)},\ldots ,X_{i}^{(N)}}}
,第j个变量有
A
(
j
)
=
0
,
1
,
…
,
α
(
j
)
−
1
(
α
(
j
)
≥
2
)
{\displaystyle A^{(j)}={0,1,\ldots ,\alpha ^{(j)}-1}(\alpha ^{(j)}\geq 2)}
状态。
2.此贝叶斯网络的结构G代表N个前代(predecessors)节点集合
{
Π
(
1
)
,
…
,
Π
(
N
)
}
{\displaystyle \left\{\Pi ^{(1)},\ldots ,\Pi ^{(N)}\right\}}
,也就是对第j个节点,
Π
(
j
)
{\displaystyle \Pi ^{(j)}}
为其亲代节点的集合, j=1,2,…,N
3.示例点(instantiated node)
{
X
P
1
=
x
P
1
,
…
,
X
P
v
=
x
P
v
}
{\displaystyle \left\{X^{P_{1}}=x^{P_{1}},\ldots ,X^{P_{v}}=x^{P_{v}}\right\}}
为节点在已知状态,即在此状态的概率为1。如果示例点为空集合,将使用古典概率推论
使用表一的观测值和图一的贝叶斯网络结构,并且已知示例点(instantiated node)为
{
S
=
0
,
C
=
0
}
{\displaystyle \left\{S=0,C=0\right\}}
,也就是病人为非吸烟者和罹癌者:
P
(
S
=
0
)
=
1
,
P
(
C
=
0
)
=
1
{\displaystyle P\left(S=0\right)=1,P\left(C=0\right)=1}
问题:
1.病人患有支气管炎的概率
P
(
B
)
=
?
{\displaystyle P\left(B\right)=?}
2.病人会有呼吸困难的概率
P
(
D
)
=
?
{\displaystyle P\left(D\right)=?}
解答:
1.
P
(
B
=
0
|
S
=
0
,
C
=
0
)
=
0.8
{\displaystyle P\left(B=0|S=0,C=0\right)=0.8}
P
(
B
=
1
|
S
=
0
,
C
=
0
)
=
0.2
{\displaystyle P\left(B=1|S=0,C=0\right)=0.2}
故为0.2
2.
P
(
D
=
0
|
S
=
0
,
C
=
0
)
{\displaystyle P\left(D=0|S=0,C=0\right)}
=
P
(
D
=
0
,
B
=
0
|
S
=
0
,
C
=
0
)
+
P
(
D
=
0
,
B
=
1
|
S
=
0
,
C
=
0
)
{\displaystyle =P\left(D=0,B=0|S=0,C=0\right)+P\left(D=0,B=1|S=0,C=0\right)}
=
P
(
D
=
0
|
B
=
0
,
S
=
0
,
C
=
0
)
×
P
(
B
=
0
|
S
=
0
,
C
=
0
)
{\displaystyle =P\left(D=0|B=0,S=0,C=0\right)\times P\left(B=0|S=0,C=0\right)}
+
P
(
D
=
0
|
B
=
1
,
S
=
0
,
C
=
0
)
×
P
(
B
=
1
|
S
=
0
,
C
=
0
)
{\displaystyle +P\left(D=0|B=1,S=0,C=0\right)\times P\left(B=1|S=0,C=0\right)}
P
(
D
=
1
|
S
=
0
,
C
=
0
)
{\displaystyle P\left(D=1|S=0,C=0\right)}
=
P
(
D
=
1
,
B
=
1
|
S
=
0
,
C
=
0
)
+
P
(
D
=
1
,
B
=
0
|
S
=
0
,
C
=
0
)
{\displaystyle =P\left(D=1,B=1|S=0,C=0\right)+P\left(D=1,B=0|S=0,C=0\right)}
=
P
(
D
=
1
|
B
=
0
,
S
=
0
,
C
=
0
)
×
P
(
B
=
0
|
S
=
0
,
C
=
0
)
{\displaystyle =P\left(D=1|B=0,S=0,C=0\right)\times P\left(B=0|S=0,C=0\right)}
+
P
(
D
=
1
|
B
=
1
,
S
=
0
,
C
=
0
)
×
P
(
B
=
1
|
S
=
0
,
C
=
0
)
{\displaystyle +P\left(D=1|B=1,S=0,C=0\right)\times P\left(B=1|S=0,C=0\right)}
A. N. Terent' yev and P. I. Bidyuk. METHOD OF PROBABILISTIC INFERENCE FROM LEARNING DATA IN BAYESIAN NETWORKS. Cybernetics and Systems Analysis, 391-396, Vol. 43, No. 3, 2007
Emilia Mendes and Nile Mosley. Bayesian Network Models for Web Effort Prediction: A Comparative Study. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 723-737, VOL. 34, NO. 6, NOVEMBER/DECEMBER 2008
Yu. V. Kapitonova, N. M. Mishchenko, O. D. Felizhanko, and N. N. Shchegoleva. USING BAYESIAN NETWORKS FOR MONITORING COMPUTER USERS. Cybernetics and Systems Analysis, 789-799, Vol. 40, No. 6, 2004
Ben-Gal I., Bayesian Networks, in Ruggeri F., Faltin F. & Kenett R. ,Encyclopedia of Statistics in Quality & Reliability, Wiley & Sons (2007).
Radu Stefan Niculescu, Tom M. Mitchell and R. Bharat Rao, Journal of Machine Learning Research 7 (2006) 1357–1383
N. Terent' yev and P. I. Bidyuk. METHOD OF PROBABILISTIC INFERENCE FROM LEARNING DATA IN BAYESIAN NETWORKS. Cybernetics and Systems Analysis, 391-396, Vol. 43, No. 3, 2007
P. I. Bidyuk, A. N. Terent’ev, and A. S. Gasanov. CONSTRUCTION AND METHODS OF LEARNING OF BAYESIAN NETWORKS. Cybernetics and Systems Analysis, 587-598, Vol. 41, No. 4, 2005