贝叶斯网专题4:概率推理中的变量消元方法

目录
[toc]


第一部分:贝叶斯网基础

1.1 信息论基础

1.2 贝叶斯网基本概念

1.3 变量独立性的图论分析

第二部分:贝叶斯网推理

2.1 概率推理中的变量消元方法

本节主要介绍基于贝叶斯网的概率推理方法,如何降低推理复杂度是需要考虑的主要问题。
变量消元方法是用于降低贝叶斯网推理复杂度的主要手段。而变量消元的复杂度又与变量消元的顺序有关,通过一些启发式算法,可以找到较好的消元顺序。
除了寻找较好的消元顺序来降低推理复杂度,还可以通过独立性关系剔除与推理无关的变量,对推理问题进行简化,对推理问题的简化将在下一讲再介绍。

2.1.1 推理问题

贝叶斯网推理主要包含三大类问题:后验概率问题、最大后验假设问题和最大可能解释问题。其中后验概率问题是最基本的问题。
(1)后验概率问题
后验概率问题是指已知贝叶斯网中某些变量的值,计算另外一些变量的后验概率分布。如第一部分所使用的Alarm案例中,若接到Mary电话通知警铃响了,这时会计算『发生了盗窃』的概率是多少,即计算。
此类问题中,已知变量称为证据变量,记为E,取值记为e;需要计算后验概率分布的变量称为查询变量,记为Q;需要计算的后验概率分布为.
人们常说的概率推理指的就是后验概率问题,根据证据变量和查询变量的因果关系不同,概率推理又可分为以下4种类型:

  • 从结果到原因的诊断推理。例如,已知Mary打电话,计算发生盗窃的概率。
  • 从原因到结果的预测推理。例如,已知发生了入室盗窃,计算Mary打电话的概率。
  • 同一结果的不同原因之间的原因间推理。例如,地震和入室盗窃都是导致警铃报警的原因。已知警铃响,又获知发生了地震,则对入室盗窃这一原因的信度则会降低。原因之间存在此消彼长的关系。
  • 包含上述多种类型的混合推理。例如,已知John打电话和发生了地震,计算警铃响的概率,这里既有诊断推理,又有预测推理。

虽然存在以上多种推理类型,但贝叶斯网推理都使用同一种方法来处理,即计算证据变量已知条件下查询变量的条件概率。

(2)最大后验假设问题
已知证据E=e,有时会对一些变量的后验概率最大的状态组合感兴趣,这些变量称为假设变量,记作H。H的一个状态组合称为一个假设,记为h。在所有可能的假设中,找出后验概率最大的那个假设,即:

这就是最大后验假设问题,简称为MAP(Maximum a posteriori hypothesis)。
可以看到,MAP问题的基础是后验概率问题。但MAP问题的复杂度与假设变量H的个数呈指数关系,对实际情况,需要作特殊的化简处理,关于该问题将在下一讲进行讨论。

(3)最大可能解释问题
在贝叶斯网中,证据E=e的一个解释指的是网络中全部变量的一个与E=e相一致状态组合。往往有时最关心概率最大的那个解释,即最大可能解释,简称MPE(Most probable explanation)。MPE问题可视为MAP问题的一个特例,即MAP中的假设变量H包含了网络中所有非证据变量。

可以看出,以上三种问题中,最基础的是后验概率问题。而通过变量间的条件独立关系对联合分布进行分解,减少模型参数个数,可使推理过程简化。下面将介绍最基本的贝叶斯网推理算法:变量消元法。

2.1.2 变量消元法

2.1.2.1 概率分布的分解与推理复杂度

下面用一个最简单的贝叶斯网来分析推理的复杂度。
设有如下图所示的贝叶斯网,考虑计算P(D)。

一个链状贝叶斯网


假设所有变量均为二值,则上式的运算复杂度如下:
\begin{align*} P(A=0)\{&P(B=0|A=0)[&P(C=0|B=0)P(D|C=0)&\\ &&+P(C=1|B=0)P(D|C=1)&]\\ +&P(B=1|A=0)[&P(C=0|B=1)P(D|C=0)&\\ &&+P(C=1|B=1)P(D|C=1)&]\}\\ +\\ P(A=1)\{&P(B=0|A=1)[&P(C=0|B=0)P(D|C=0)&\\ &&+P(C=1|B=0)P(D|C=1)&]\\ +&P(B=1|A=1)[&P(C=0|B=1)P(D|C=0)&\\ &&+P(C=1|B=1)P(D|C=1)&]\} \end{align*}
其中乘法14次,加法7次,对与D=0和D=1都要进行以上运算,所以总共有乘法28次,加法14次。
为了利用联合概率分布的分解来降低推理复杂度,我们可以依次求出P(B)、P(C)和P(D)的边缘概率分布:

计算P(B=0)需要2次乘法和1次加法,从而计算P(B)共需要4次乘法和2次加法;计算P(C)和P(D)的复杂度与P(B)一致。从而,共需12次乘法运算和6次加法运算。比直接用式(2.1.1)计算的复杂度低。
联合分布的分解之所以能降低推理复杂度,是因为它使得运算局部化。在式(2.1.1)中,消去A涉及到所有变量。而在第二种方法中,消去A只涉及到它自身和与它相连的变量B,因此复杂度降低。在变量众多的网络中,这种运算量的降低可能是指数级的,与贝叶斯网的节点度有关。
下面,我们定义严格的消元运算。

2.1.2.2 消元运算

在贝叶斯网基本概念中,介绍了联合分布的分解的概念。抽象地讲,一个联合分布是一个多变量函数,分解的概念可以推广到一般的多元函数。设是变量的一个函数,而是一组函数,其中每个所涉及的变量是的一个子集。如果:

则称是F的一个分解,是这个分解的因子。
不失一般性,设中与相关的函数为。
从中消去的过程称为消元运算,包括指如下过程:
(1) 从中删去所有与相关的函数;
(2) 将这些函数相乘,并通过如下运算消去变量:

(3) 将新函数放回中。

以下定理保证了该消元运算等价于直接从联合概率分布求边缘概率分布。

定理2.1.1
设是函数的一个分解,设是从中消去后所得的一组函数。是从中消去后所得的函数。那么
是的一个分解。

证明:
设,而只在中出现。有:
\begin{align*} G(X_2,\cdots,X_n)&=\sum_{X_1}F(X_1,X_2,\cdots,X_n)\\ &=\sum_{X_1}\prod_{i=1}^m f_i\\ &=\sum_{X_1}(\prod_{i=1}^k f_i \prod_{i=k+1}^m f_i)\\ &=(\sum_{X_1}\prod_{i=1}^k f_i)\prod_{i=k+1}^m f_i \end{align*}
定理得证。

2.1.2.3 基于变量消元法的后验概率推理算法

设X是一个贝叶斯网N中所有变量的集合,是N中所有概率分布的集合。按照贝叶斯网的定义,是N所表示的联合概率分布P(X)的一个分解。
假设观测到了证据E=e。在的因子中,将个证据变量设置为它们的观测值,得到另一组函数,记为,该步骤称为证据设置。是函数P(Y,E=e)的一个分解,这里Y=X\E。
设Q是Y的一个子集,从中逐个消去所有在Y中但不在Q中的变量,得到另一个函数集合,记为。根据定理2.1.1,是P(Q,E=e)的一个分解。所以,将中的所有因子相乘,就得到P(Q,E=e),进一步可得到:

上述过程给出了一个计算后验概率分布的算法,即变量消元法,简称VE算法。其形式化描述如下:

VE(N,E,e,Q,p):
输入:   N   一个贝叶斯网
        E   证据变量
        e   证据变量的取值
        Q   查询变量
        p   消元顺序,包含所有不在Q和E中的变量
输出:   P(Q|E=e)
1. 将N中所有概率分布的集合赋值给F
2. 在F的因子中,将证据变量E设置为其观测值e
3. while(p不空):
4.     设Z为p中排在最前面的变量,将Z从p中删除
5.     F←Elim(F,Z)
6. end while
7. 将F中所有因子相乘,得到Q的函数h(Q)
8. return h(Q)/sum_Q(h(Q))
Elim(F,Z):
输入:   F   一个函数集合
        Z   待消元变量
输出:   另一个函数集合
1. 从F中删除所有涉及Z的函数,设这些函数为{f1,f2,...,fk}
2. g←将这k个函数连乘$\prod_{i=1}^k f_i$
3. h←对g中的Z累加消元$\sum_Z g$
4. 将h放回F中
5. return F

例2.1.1 在下图所示的贝叶斯网中,设证据为{F=0},使用VE算法计算P(A|F=0).

变量消元法示例

设消元顺序p=
贝叶斯网给出的联合分布的分解为:

(1) VE算法首先设置证据F=0,得:

(2) 依照消元顺序p,首先消去变量C,与C有关的因子是,消去C得:

其中,
(3) 接着消去变量E,与E有关的因子是,消去E得:

其中,
(4) 接着消去变量B,与B有关的因子是,消去B得:

其中,
(5) 最后消去变量D,与D有关的因子是,消去D得:

其中,
(6) 计算
(7) 返回:

2.1.3 复杂度分析

2.1.3.1 复杂性的度量

在VE算法中,最耗费时间和空间的步骤是对Elim(F,Z)的调用,因此可以把这一步的复杂度作为整个算法的复杂度。
Elim(F,Z)从F中挑出所有涉及Z的函数,将它们相乘得到函数g,在将Z从g中消去。设是g中除Z以外的变量。若将g表示为多维表,则g所储存的函数值的个数为。该值可作为函数g复杂性的一个恰当度量,从而也是Elim(F,Z)的复杂性的恰当度量。我们称之为变量Z的消元成本,记为.
在推理过程中,VE算法需要消去多个变量,设它们依次为。则VE算法的复杂度可以用总消元成本来度量。式中最大的一项对整个式子的大小起支配作用,因此有时也用其中的最大项来度量VE算法的复杂度。该最大项被称为最大团的大小,在下一节讨论团树传播算法时会再提到。

2.1.3.2 复杂度的计算

VE算法的复杂度与贝叶斯网的结构相关。
考虑一个函数集合,它的结构图是一个按如下方法定义的无向图:
(1) 从空图出发,对中每一个变量添加一个节点;
(2) 对任意两个变量X和Y,若它们出现在同一因子中,则在它们对应的节点之间添加一条边;
例如,函数集合

其结构图如下所示。

函数集合F的结构图

可以看出,结构图与端正图相同,结构图是从函数集合 的角度定义,端正图是从贝叶斯网的角度定义。

从中消去一个变量Z的成本为,其中是函数所涉及的所有变量,而是所有涉及Z的因子。根据结构图的定义,是的结构图中与Z相邻的节点集合,记为nb(Z)。因此有:

对于上图,设所有变量都取二值。从中消去变量T。在结构图中,T的邻居节点nb(T)={A,L,R},所以:

从中消去T后得到新的函数集合,的结构图可以通过对上图作如下图的变换得到:

图消元

即首先在原图G中将所有与Z相邻的节点nb(Z)两两相连,再从图中除去节点Z,以及与Z相连的所有边。

考虑一个消元顺序p,通过如下CostVE算法可计算VE算法的复杂度。

CostVE(N,E,Q,p):
输入:   N   贝叶斯网络结构
        E   证据变量
        Q   查询变量
        p   消元顺序,包含所有不再Q和E中的变量
输出:   用VE算法计算P(Q|E=e)的复杂度
1. 将N端正化为G
2. 从G中除去所有证据变量
3. 复杂度C赋初值0
4. while(p不空):
5.     从p中移去第一个变量Z
6.     C=C+|Z|\prod_{X\in nb(Z)}|X|
7.     从G中消去节点Z
8. end while
9. return C

考虑用VE算法消去上图所示贝叶斯网中所有变量。设这些变量均取二值,用CostVE算法计算两个不同的消元顺序分别对应的消元成本。
(1) 消元顺序p=
(2) 消元顺序p=
如下两图所示,分别为两种消元顺序的图变换过程。
第一种顺序的消元成本为:

第二种顺序的消元成本为:

消元顺序


消元顺序

2.1.4 消元顺序

从上例我们可以看到,两种不同消元顺序会导致不同的消元成本。在所有消元顺序中,总成本最低的消元顺序称为最优消元顺序。在推理之前,我们希望能预先确定最优消元顺序。然而,寻找最优消元顺序是一个NP难问题。实际中,我们可以使用启发式规则来寻找较好、但不一定是最优的消元顺序。常用的确定消元顺序的启发式方法包括:最大势搜索和最小缺边搜索。

2.1.4.1 最大势搜索

最大势搜索的方法为:首先从结构图中任选一个节点,编号为1;然后在剩下的未编号节点中选择与最多已编号节点相邻的节点,并依次编号;若出现多个候选待编号节点,则任选一个;在所有节点都完成编号后,按编号由大到小将节点排序,该顺序则为按最大势搜索的消元顺序。
以下图的贝叶斯网为例,用最大势搜索来确定消元顺序。


最大势搜索

第1步,任选一个节点,比如B节点,编号为1;
第2步,候选待节点为,因为它们的相邻节点中已编号的数量都是1,任选其中一个节点,比如S,编号为2;
第3步,候选待编号节点为,它们的相邻节点已编号的数量都是1,任选其中一个节点,比如D,编号为3;
第4步,候选待编号节点为,它的相邻节点已编号的数量最多,为2,将其编号为4;
第5步,以此类推,分别将L、T、X、A编号为5、6、7、8;
最后,按编号由大到小排序得到的消元顺序。
有CostVE算法可以计算得到,该消元顺序的成本为46。

2.1.4.2 最小缺边搜索

定义节点Z的缺边数为消去该节点后需要添加的边的条数。比如在上例的初始贝叶斯图上,节点{A,T,L,R,S,B,D,X}的缺边数分别为{0,2,2,8,1,2,0,0}.
最小缺边搜索的方法为:计算所有节点的缺边数,选择缺边数最小的,编号为1,若有多个候选待编号节点,则任选一个;从图中消去该节点,再重复以上过程,直至所有节点都消去。所得编号,按由小到大排序,该顺序即为按最小缺边搜索的消元顺序。
下图为按最小缺边搜索的过程,得到的消元顺序为,由CostVE算法可以计算得到,该消元顺序的成本为46。


最小缺边搜索.png

你可能感兴趣的:(贝叶斯网专题4:概率推理中的变量消元方法)