Bayesian 网
§1 Bayesian 网的定义
全概率分布可以回答相关领域的任何问题,但随着变量数目的增
加,全概率分布的联合取值空间却可能变得很大。另外,对所有的原
子事实给出概率,对用户来说也非常困难。
若使用 Bayes 规则,就可以利用变量之间的条件独立关系简化计
算过程,大大降低所需要声明的条件概率的数目。我们可以用一个叫
作 Bayesian 网的数据结构来表示变量之间的依赖关系,并为全概率分
布给出一个简明的表示。
定义(Bayesian 网):Bayesian 网 T 是一个三元组(N,A,P),其
中
1. N 是节点集合
2. A 是有向弧集合,与 N 组成有限非循环图 G =(N,A)
3.
,其中 代表节点 V 的父亲节点集合
Bayesian 网是一个有向非循环图:
(1) 网中节点与知识领域的随机变量一一对应(下文中不区分节
点与变量);
(2)网中的有向弧表示变量间的因果关系,从节点 X 到节点 Y 有
向弧的直观含义是 X 对 Y 有直接的因果影响;影响的强度或者说不确
定性由条件概率表示;
(3)每个节点有一个条件概率表,定量描述其所有父亲节点对于
该节点的作用效果。
-1-
}:)|({NVVpPvv
(4)由领域专家给定网络结构和条件概率表。
对领域专家来说,决定在特定领域中存在哪些条件独立联系通常是
较容易的(给定网络结构相对容易)──事实上,要远比实际声明出这
些概率本身容易得多(给定准确的条件概率相对困难)。一旦 Bayesian
网的拓扑结构给定,则只需对那些直接相互依赖的节点给出条件概率,
并用它们来计算任何其它概率值。
例 1:考虑下面的情形,你在家里安装了一个新的防盗报警器,该
报警器可以相当可靠地探测到盗窃的发生,但也有的时候,会对轻微
的地震作出反应。你有两个邻居,约翰和玛丽,他们答应会在听到报
警时通知在工作的你。约翰总是一听到报警就给你打电话,但他有时
会把报警器的声音和电话铃的声音搞混。另一方面,玛丽喜欢听音乐,
音量又大,因而有时会忽略报警器的声音。现在给出某人打了电话或
未打电话的证据(观测值),我们想估计一下盗窃发生的概率。上面的
描述可以用图 1 所示的 Bayesian 网来表示。
盗窃
地震
警报
John 打电话
Mary 打电话
图 1
-2-
网络的拓扑可以看作是一个抽象的知识库,它表示了在一个领域中
的因果联系。在盗窃网络中,网络拓扑显示出盗窃和地震都会直接影
响警报的发作,而约翰和玛丽是否会打电话通知你仅依赖于警报──这
样,网络就表示了这样一个假设:即他们既不会直接发现一次盗窃,
也不会直接感受到一次地震。
注意,网络中没有同玛丽正在听音乐对应的节点,也没有同约翰将
一次电话铃响误认为警报相对应的节点,这些因素被概括到同从警报
到约翰打电话及到玛丽打电话这两个链接相联系的不确定性中去了。
可以看出,概率实际上概括了可能导致警报器失灵的原因的一个无限
的集合(高湿度,电压过高,电池失灵,……),同样,导致约翰和玛
丽没有打电话报告的原因也可能很多,他们也被概括到概率中去了。
以这种方式,一个小的网络就可以处理一个非常大的世界,至少是逼
近的处理,通过引入额外的相关信息,逼近的程度还可以进一步改善。
一旦拓扑结构给定,我们还需要为每个节点声明一个条件概率表或
称为 CPT。对父节点值的每一种可能的组合,需要给出节点的条件概
率,构成了 CPT 的一行。例如,对于随机变量警报,它的条件概率表
是:
盗窃
True
True
False
False
地震
True
False
True
False
P(警报|盗窃,地震)
True False
0.050
0.950
0.050
0.950
0.290
0.710
0.999
0.001
表 1
-3-
CPT 的每行相加和必须为1,因而在上表中,每行其实只要给出
一个值就可以了。
一般情况下,一个有 n 个布尔父亲的布尔变量的条件概率表包含
2n 独立给出的概率。
没有父亲的节点只有一行,变量的每个可能值对应一个先验概率。
对于上述例子的完整网络在图 2 中给出,图中只对每个变量为真的
情形给出了条件概率。
盗窃
P(B)
0.001
地震
P(E)
0.002
警报
John 打电话
A P(J)
T 0.90
F 0.05
图 2
B E
P(A)
T T
0.95
T F
0.94
F T
0.29
F F
0.001
Mary 打电话
A P(M)
T 0.70
F 0.01
§2 Bayesian 网的语义
我们已经描述 Bayesian 网是什么样的,但并没有说明它的语义。
有两种方法可以给 Bayesian 网赋予语义。
第一种方式将网络看成是对一个全概率分布的编码,
第二种方式将网络看成是对一个条件独立命题的集合的编码(即:
在给定变量集合的情况下变量集之间的概率独立关系)。
-4-
这二种方式是等价的,但第一种方式对于我们理解怎样构造一个网
络有帮助。第二种方式有助于我们理解推理过程。
§2.1 全概率分布的表示
这里我们采用第一种方式,即将 Bayesian 网看作是全概率分布的
一个表示。根据这种理解,全概率分布中的每一项可以从网络信息中
计算出来。
全概率分布中的每一项是对每个变量给出一个特定的值,从而得
出一个变量的组合,并对每个变量的组合给出一个概率值。
例如,
,简记为
。
=
…(1)
这样,全概率分布中的每项都以连乘积的方式给出,而该积中的每
个元素都可以在 Bayesian 网中的条件概率表中找到。从而,Bayesian
网中的条件概率表提供了全概率分布的一个分解表示。
例 2:为了说明这一点,我们可以计算这样一个事实的概率,该事
实是,警报器发出警报,但既未发生地震,也未发生盗窃,而约翰和
玛丽都打了电话
全概率分布可以用来解释关于领域的任何查询。既然 Bayesian 网
给出了全概率分布的一个表示,则显然 Bayesian 网也可以作到这一点,
最明显的方法是首先计算是全概率分布中的每一项,但在下一节中我
-5-
)xxnn11XP(X1P(XX)n)P(1nXX))niii1Parents(X |P(XP(JMABE)=P(J|A)P(M|A)P(A|BE)P(B)P(E)=090070000109990998000062.*.*.*.*..
们将给出更好的方法。
§2.2 Bayesian 网的构造方法
式子(1)定义了一个给定的 Bayesian 网的语义。我们现在来表明
该语义蕴合了很多条件独立关系:
给定父节点,贝叶斯网中的每个变量都和其非后裔节点概率独立。
这些条件独立关系对于 Bayesian 网的构造者确定网络的拓扑结构
是很有用的。 使用条件概率的定义重新写出联合概率分布如下:
将此同式子(1)比较,我们可以看到上述定义等价于下述命题:
其中
(2)
。这个条件容易满足,只需按和 Bayesian
网结构隐含的部分序相一致的任意一个序来标记所有节点就可以了。
例 3:ABC
拓扑序列:A B C
P(ABC) = P(C|AB) (B|A)P(A) = P(C|B) (B|A)P(A)
除了作为领域的一个完备的无冗余的表示之外,Bayesian 网通常
比完全给出全概率分布要紧凑(compact )得多。正是这个性质使得我们
可以用 Bayesian 网处理大量的证据节点(证据的组合),而不会出现
利用 Bayes 推理时出现的那种条件概率数目的指数级增长。
Bayesian 网的紧凑性是一种更为一般的、被称为局部结构性(local
structured)的一个例子,在有局部结构性的系统中,每个子部件集只
同数量有限的其它部件发生直接联系,而同所有的其它部件无关(空
-6-
))X(parents|X(P)X...X|X(Piiii11}X,...X{)X(parentsii11)X(P)X|X(P)....X,...,X|X(P)X,...,XX(P)X...X(Pnninnn11212111
间的马尔科夫性质,如:随机场)。局部结构性通常可以导致线性增长
而非指数级增长。
例 4:在 Bayesian 网的例子中,可以合理的设想,在多数领域中
每个随机变量是布尔变量,则为一个节点所声明的条件概率表包含至
多 2n 个项, 假设有 20 个节点(N=20),每个节点有至多5个父亲(K
=5),则 Bayesian 网需 640(20*25)个项, 相比之下,直接给出联合
概率分布则需 100(220)万个项。
例 5:有些领域中,每个变量都直接被所有其它变量所影响,从而
网络是全联通的,这时,声明条件概率表就需要同声明全概率分布一
样多的项。
实践中所发生的信息压缩,往往是由于实际领域有许多结构可以
利用, 而 Bayesian 网可以很好地利用这些结构。某些时候,变量间
可能有相互依赖关系,从而需要增加一条弧,但如果这种依赖关系非
常轻微,则我们可以忽略这些依赖,以精确度的微小损失换来结构上
的简化。
例 6:在上述盗窃网点的例子中,如果发生地震的话, John 和
Mary 就不会打电话,即使他听到了警报。因为很明显是地震导致了
警报器大作。是否需从地震到 John 打电话和 Mary 打电话间增加新的
弧呢?这取决于在实践中,你认为得到更精确的概率与给出更简单的
Bayesian 网之间哪一个更重要(折中)。
§2.3 Bayesian 网中的条件独立关系
前面的分析已指出,对一个给定的 Bayesian 网,在给定父节点的
-7-
情况下,一个节点同其非后裔节点之间是相互独立的,为设计推理算
法,我们还需知道是否还有其它的条件独立关系成立?换句话说,对
定的一个 Bayesian 网,在给定一个证据节点集E的情况下,如何判断
某个节点集X是否独立于另一个节点集Y?
先看简单的情况(只包含 3 个变量)
同父(tail-to-tail) V 型(head-to-head) 顺序(head-to-tail)
图 3 Bayesian 网中 3 变量之间的典型依赖关系
Head 和 tail 是指有向边的“头”和“尾”
例 7:分别验证以上三种结构的独立性。
1. P(x2,x3|x1) = P(x2|x1)P(x3|x1) 条件独立
给定 x1,x2 和 x3 是条件独立的。
给定 x3(x2),x1 和 x2(x3)必不独立;
2. P(x3x1)= P(x3)P(x1) 边际独立(marginal independence)
在未给定 x2 的情况下,x3 和 x1 是独立的;
给定 x2,x3 和 x1 必不独立(因为 x2 受该两个变量影响,x2
给定后,x3 和 x1 的取值组合就必须满足某个条件范围,因此
x3 和 x1 是不独立的。
同样的,给定 x1(x3),x3(x1)和 x2 必不独立)
-8-
x1x2x3x1x2x3x1x2x3