@wuqi0616
2018-01-02T06:27:16.000000Z
字数 9627
阅读 3041
离散动态贝叶斯网络推理与应用
本章内容主要围绕静态贝叶斯网络的基本概念及二种经典推理算法进行讲解。
本章的主要知识点:
其中红色框选部分为本人认为本章的重点、难点部分。
贝叶斯网络:信念网络(Belief Networks,BN)或因果网络(Causal Networks)
贝叶斯网络的定义:描述数据变量之间依赖关系的一种图形模型,也是一种用来进行推理的模型。
贝叶斯网络的作用:用于不确定环境建模和推理,提供了一种方便的框架结构来表示因果关系,使不确定性推理在逻辑上变得更为清晰、可理解性更强。
贝叶斯网络[1]的数学定义:
(1)存在一个变量集,其中,以及变量对应节点之间有向边的集合。
(2)每个变量的取值既可以是离散的,也可以是连续的。
(3)由变量对应的节点和节点之间的有向边构成一个有向无环图,其中为节点集,与领域的随机变量一一对应,为有向边集,反应节点变量之间的因果依赖关系。
(4)对每个节点和它的父节点集合都对应一个条件概率分布表,且满足:
图论概念:
有向图(Directed Graphs):图的所有边都有方向,其中父节点(Parent)指向子节点(Child)
根节点(Root Nodes):没有父节点
叶节点(Child Nodes):没有子节点
祖先节点(Ancestors):包含其父节点及父节点祖先节点,根节点没有祖先节点
后代节点(Descendants):包含其子节点及子节点后代节点,叶节点没有后代节点
非后代节点(Non-Descendants):包含所有不是其后代节点的节点
有向环(Directed Cycle):某节点是自己的祖先节点
有向无环图(Directed Acyclic Graph):不含有向环的有向图
,根据随机变量的取值类型,可将贝叶斯网络分为:、连续型和混合型贝叶斯网络。
离散变量:
(a) 布尔变量(Boolean Variables):真(1)、假(0)
(b) 顺序变量(Ordered Variables):等级划分、取值分顺序(高、中、低)
(c) 整数变量(Integral Variables):取值对应一定的范围(0 ~ 20)
贝叶斯网络的图形结构定性表示了各变量之间的关系。
在贝叶斯网络中:
1、如果一个节点影响或导致另外一个节点发生时,它们可以直接连接
2、节点与父节点被称为一个家族(Family),一个节点可以有多个父节点
3、所有节点的联合概率分布被分解为各个家族的条件概率之间的乘积
贝叶斯网络的参数(条件概率表)定量描述了变量节点与父节点之间的依赖关系。
在贝叶斯网络中:
1、每个节点的条件概率表与其父节点集的实例相关联。
2、概率归一性,对于节点取值个数为时,只要指定个参数
3、根节点的参数为其先验概率
,而条件独立性假设蕴涵在有向无环图中。
定理:随机变量A、B、C,若存在
则,称A和B在给定C时条件独立,A和B的联合概率分布可以分解为A的边缘概率分布于B的边缘概率分布的乘积。
补充:
(a)贝叶斯公式:
(b)条件概率公式及推广
原则上,利用概率论的基本公式可以验证多变量之间的条件独立性假设,但是过于耗时。
考虑三变量A、B、C相连典型分类蕴涵的条件独立性:
证:顺连情况相似,证第一种
根据式(1)得
证:
根据式(1)得
证:
根据式(1)得
结论:
给定一个节点集合,设是节点与之间的一条通路,是该通路上的一个节点,则通路被阻塞()的充分条件是,满足其一:
(a)在中,且与通路中的相邻节点构成顺连结构。(构造给定)
(b)在中,且与通路中的相邻节点构成分连结构。(构造给定)
(c)为汇连节点,且和的后代均不在中。(构造未给定)
引[2]贝叶斯网络的马尔可夫性,若有向分隔和,那么和在给定时条件独立。
补充:
通路:在贝叶斯网络中,两个节点和之间的一条通路是开始于结束于的一个节点序列,其中节点各异且相邻两节点之间有边相连。
贝叶斯网络的推理是通过计算回答查询的过程,其主要推理问题包括以下三类:
书上主要讨论的是后验概率问题,根据贝叶斯网络中蕴涵因果语义,其概率推理又可分为:
该算法因为避免复杂的图形变换,在处理较为简单的网络时有优势。该算法最早由Kim和Pearl针对单连通网络推理开发[4]。
补充:
信度(Belief):节点的后验概率
信度更新(Belief Updating):在给定一些节点证据时,更新其它节点的后验概率。
单连通网络(Singly-Connected Networks):贝叶斯网络中,任意两个节点之间最多只有一条通路。
多连通网络(Multiply-Connected Networks):……任意两节点间不只一条通路。
核心公式:
(a)信度更新
为归一化因子,保证。
(b)自底而上传播
利用节点计算新的并输入到它的父节点,即
(c)自顶而下传播
利用节点计算新的并传输到它的子节点,即
补充:
1.消息传播算法推理目的在于通过计算{是查询节点,是若干证据节点}来更新的信度。
2.对来说,网路中的证据分别来自父节点的预测信息,以及来自子节点的诊断信息。
(a)认为信息沿弧方向传递,记为,即。
(b)认为信息沿弧反方向传递,记为,即。
消息传播过程及步骤:
1.初始化。
(a)在没有证据输入和消息传播之前,网络中所有节点的自身消息参数、传递给父节点的消息、以及传递给子节点的消息均初始化为1。
(b)对于根节点,初始化其自身参数为其先验概率。
2.无证据输入下的消息传播()
(a)默认所有消息均为单位向量,无需考虑消息传播。
(b)求根节点信度。因已知根节点的消息和消息,故可先求出其信度。
(c)求第一代子节点信度。根据公式(8)求第一代子节点的消息,()由于信号为单位向量,则得第一代子节点信度。
(d)求第二代及后代子节点信度。根据公式(10)求子节点收到的,再根据公式(8)求子节点信息。
3.有证据输入下的消息传播()
(a)对证据节点的参数进行设置,设的证据为,可设定,即第位为1。
(b)求第代父节点的信息和信度。根据公式(9)求第一代父节点的信息,结合公式(7)求其信息。此时,该父节点的信息为步骤2无证据输入时的信度。()
(c)求第代及其祖先父节点的信息和信度。(),需要利用公式(9)和公式(7),如果遇到信息传递还要用到公式(10)和公式(8)。
缺陷:
优点:
由于工程实践中贝叶斯网络多数为多连通网络,消息传播算法将在该种网络的无向环中陷入无限循环,甚至失效。目前联接树算法(团树算法)为多连通网络广泛采用的精确推理算法。联接树算法[5]最早是Lauritzen和Spiegelhalter于1988年提出,不但可以解决单连通网络下的推理,也可以完成多连通网络下的推理计算。
联接树算法的基本思路:通过合并多连通网络节点,为网络构建一个等价的单连通网络,在所得到的单连通网络上进行消息传播,以实现多连通网络中的精确推理。
联接树算法基本流程:
1.构建贝叶斯网络结构对应端正图(Moral Graph)。将网络中拥有共同子节点但二者之间并未直接相连的节点进行连接,并除去所有边的方向。
2.将所得端正图三角化(Triangulate)。这里涉及寻找最优三角图的NP问题,多采用启发式方法构造三角图。启发式方法构造一个节点顺序,然后按节点顺序逐个进行处理进行三角化。
其中构造节点顺序可采用最大势搜索算法(Maximum Cardinality Search)。我们认为在一个无向图中每个包含3个以上节点的环中至少有一根弦,则该无向图可称为三角图。
3.创建联接树。
(a)创建簇(Cluster)。在三角图中识别所有极大团,对每个极大团所包含节点进行合并,作为一个新的节点。其中极大团中不包含无向图中的其他团(两两之间互相连接的一组节点)。
(b)候选分离集(Separator)。每对簇和,候选分离集为。在实际操作中,认为各个团之间的交集作为分离集。分离集选择的原则是: 1.优先选择最大质量的候选分离集(所含变量多)2.当质量相同时,优先选择最小代价候选分离集(两簇所有节点组合状态数之和)。
4.给联接树中的簇分配参数。
(a)初始设定簇和分离集(即节点集)节点所有状态组合对应的实数概率表每个元素均为1。
(b)确定委托变量。
5.信度更新。在加入证据后,使用消息传播算法对联接树中的信度进行更新。
加入证据之后,生成证据向量。将该证据向量与为指定的簇概率表相乘(结果为与证据相一致的状态组合所对应的条目保持不变,其余为0)。再进行消息传播。
涉及核心公式:
(a)相邻簇通过分离集进行消息传播更新公式
设联接树簇和簇通过分离集相连,对应概率表。消息自传至,对应更新公式:
前者通过边缘化发送信息的簇概率表实现;后者将其旧表乘以分离集的新表除以分离集的旧表实现更新。
(b)联接树中的消息传播
确定查询节点,在联接树中任选包含的簇,对分别调用收集证据(Collect Evidence)子程序和分发证据(Distribute Evidence)子程序。另外防止重复传播,需把所有簇设置为未标记状态。
完成消息传播之后,联接树中任意包含查询节点的簇所存储的概率表需进行边缘化和归一化,便可得到查询节点的后验概率。
(c)联接树代价函数
使用联接树算法进行概率推理对的代价主要由联接树中簇的状态空间大小决定。其中为涉及的分离集,亦中包含父节点和子节点的数目;为的状态数。
因此联接树的代价等于每个簇求出其所有委托节点及委托节点的父节点状态数进行求积,然后对所有簇的代价进行求和。
#CollectEvidence(C)
标记C;
if(C存在未标记的邻簇Ci)
CollectEvidence(Ci)
从C到调用该程序的簇传播消息
#DistributeEvidence(C)
标记C;
if(C存在未标记的邻簇Ci)
从C到Ci传播消息
DistributeEvidence(Ci)
消息传播算法和联接树算法都是研究确定性证据(Specific Evidence)的推理,是对变量取特定值的明确描述。但是在现实中我们还会遇到其他类型的证据:
确定性证据推理与不确定性证据推理的区别在于:一旦确定性证据输入,无论将来其他节点收集到任何证据,该节点的信度都将保持不变;不确定证据希望结合其他证据来更新其自身信度。
通过添加虚拟节点,可以用似然比描述观测值中的不确定性。
注意:在仅考虑一个没有父节点且均匀先验的节点时可以简单地把不确定性映射为似然比。但是,在非均匀先验的条件下,似然比对于节点信度改变微乎其微。
涉及核心公式:
(a)赔率(Fair Odds)
在证据理论中,的赔率指事件为真的概率与为假的概率之间的比值:
。对赔率仍有贝叶斯公式:
当情况特殊,同一个变量证据为一个集合、一个序列,或者多重不确定观测值。
解决思路为:对每个观测值建立一个虚拟节点。推理算法采用相同方法,向上传播每个虚拟节点的似然比组成的向量
注意:如果观测不独立,必须通过实际的节点显式描述它们之间的依赖关系。
消息传播算法中不确定证据的推理:
考虑把虚拟节点作为一个子节点与观测节点通过虚拟边相连接,这些边单向传播信息(虚拟->观测)。虚拟节点没有参数信息,但是可以向观测节点发送信息(即似然比向量)。
联接树算法中不确定证据的推理:
(a)对于确定性证据,即证据向量第元素为1
(b)对于消极证据,即证据向量除第元素都为1
(c)对于不确定性证据,即似然比向量为证据向量。
所有情况,证据向量都将被乘到为所指定的簇的概率表上。
补:公式推导
(15)证,