基础知识 · 2024年1月1日

贝叶斯网络简介

贝叶斯网络简介

贝叶斯网络 (BN) 用于以某种方式对包含不确定性的域进行建模。这种不确定性可能是由于对域的理解不完全,在执行给定任务时对域状态的不完全了解,控制域行为的机制的随机性,或这些因素的组合。

贝叶斯网络也称为信念网络和贝叶斯信念网络。以前,术语因果概率网络也被使用过。BN 是一个节点网络,通过有向链接连接,每个节点都附加一个概率函数。BN 的网络(或图)是有向无环图 (DAG),即没有在同一节点开始和结束的有向路径。

节点表示具有有限状态数的离散随机变量或连续(高斯分布)随机变量。在本文档中,术语“变量”和“节点”可以互换使用。节点之间的链接表示节点之间的(因果)关系。

如果一个节点没有任何父节点(即,没有指向它的链接),则该节点将包含一个边际概率表。如果节点是离散的,则它包含它所表示的变量状态的概率分布。如果节点是连续的,则它包含它所表示的随机变量的高斯密度函数(通过均值和方差参数给出)。

如果节点确实有父节点(即指向它的一个或多个链路),则该节点包含条件概率表 (CPT)。如果节点是离散的,则节点的 CPT(或更一般地说,条件概率函数 (CPF))中的每个单元都包含节点处于特定状态的条件概率,给定其父节点状态的特定配置。因此,离散节点的 CPT 中的单元数等于节点的可能状态数与父节点的可能状态数的乘积。如果节点是连续的,则 CPT 包含其离散父项状态的每个配置的均值和方差参数(如果没有离散父项,则包含一个)的均值和方差参数,以及离散父项状态的每个配置的每个连续父项的回归系数。

下面的示例试图使所有这些更加具体。

苹果树示例

此示例的问题域是属于 Jack Fletcher(我们称他为 Apple Jack)的一个小果园。有一天,Apple Jack发现他最好的苹果树正在落叶。现在,他想知道为什么会这样。他知道,如果这棵树是干燥的(由干旱引起的),这并不神秘——树木在干旱期间落叶是很常见的。另一方面,叶子的脱落可能是疾病的迹象。

这种情况可以由图1中的BN建模。BN 由三个节点组成:Sick(生病)、Dry(干燥)和Lost(落叶),它们都可以处于两种状态之一:生病可以是“生病”或“不生病”——干燥可以是“干燥”或“不干燥”——失去可以是“是”或“否”。节点 Sick 告诉我们,苹果树处于“生病”状态,因此生病了。否则,它将处于“不”状态。节点 Dry 和 Lost 分别以相同的方式告诉我们树是否干燥以及树是否正在落叶。

图 1:BN 表示 Apple Jack 问题的域。

图 1 中的 BN 模拟了从 Sick 到 Lost 以及从 Dry 到 Lost 的因果依赖关系。这由两个链接表示。

当一个节点 A 与另一个节点 B 之间存在因果依赖关系时,我们预计当 A 处于某种状态时,这会对 B 的状态产生影响。在对BN中的因果依赖进行建模时,应该小心。有时,链接应该指向哪个方向并不是很明显。例如,在我们的例子中,我们说从生病到损失之间存在因果关系,因为当一棵树生病时,这可能会导致树失去叶子。但是,难道不能说,当树失去叶子时,它可能会生病,然后将链接转向另一个方向吗?不,我们不能!是疾病导致了落叶,而不是落叶导致了疾病。

在图 1 中,我们得到了 BN 的图形表示。然而,这只是我们所说的国阵的定性代表。在我们称它为 BN 之前,我们需要指定定量表示

BN 的定量表示是节点的 CPT 集合。表 1、2 和 3 显示了图 1 BN 中三个节点的 CPT。

表1:P(Sick)

表2:P(Dry)

表3:P(Loses |Sick, Dry)

请注意,所有三个表都显示了节点处于特定状态的概率,具体取决于其父节点的状态,但由于 Sick 和 Dry 没有任何父节点,因此表 1 和表 2 中的分布不以任何内容为条件。

在给定实例(例如上述实例)中关注变量之间的因果关系的 BN 有时称为静态贝叶斯网络 (SBN)。SBN只关注当前的情况,并不明确地对时间序列进行建模,即忽略过去和也不预测未来。例如,在图 2 中,有两种疾病(D1 和 D2)可引起不同的症状(S1 和 S2)。使用手头的症状信息可以预测每种疾病的概率。

图 2:静态贝叶斯网络 (SBN) 示例。

在许多问题领域,例如上面考虑的医疗情况,在不使用时间维度的情况下表示数据和推理几乎是不可想象的,因为事物会随着时间的推移而演变。如图 2 所示的 SBN 不能用于此类系统,因此必须扩展网络以包含时间信息。这种网络被称为动态贝叶斯网络(DBN)。将 SBN 扩展到 DBN 的最简单方法是包含 SBN 的多个实例(时间片)并将它们链接在一起。例如,图 3 中的网络是通过链接图 2 中的多个网络实例获得的。

图 3:动态贝叶斯网络 (DBN) 示例。

今天疾病的存在将对明天疾病是否会存在产生影响。因此,表示“今天疾病”(节点 D1 和 D2)和“明天疾病”(节点 D1* 和 D2*)的节点之间应该有一个链接。使用这个新网络,可以预测疾病的进展。

上面的例子中显示了如何构造非常简单的BN的描述。当我们构建了一个网络时,我们可以用它来在一些已知状态的节点中输入证据,然后检索在其他节点中计算出的新概率。在苹果树的例子中,假设我们知道这棵树正在落叶。然后,我们通过在 Loses 节点中选择状态“yes”来输入此证据。然后我们可以将树生病的概率读作节点Sick处于“sick”状态的概率,将树干燥的概率读作节点Dry处于“dry”状态的概率。

在给定一些证据的情况下计算其他变量的概率,例如上述情况,称为信念更新。另一个可能有趣的信息是,在给定一些证据的情况下,所有随机变量的状态最有可能的全局分配。这被称为信念修正

HUGIN为您提供了构建此类网络的工具。构建 BN 后,您可以进行信念修正、信念更新等等。如果您正在了解有关 HUGIN 开发环境的更多信息,那么现在是阅读如何构建 BN 教程的好时机。在这里,Apple Tree BN 是使用 HUGIN 图形用户界面构建的。您还可以继续阅读面向对象网络简介;例如,面向对象的网络在构建具有重复结构的网络时非常有用,就像上面的疾病网络一样。或者您可能希望继续阅读影响图 (ID) 简介;ID 是使用实用程序节点和决策节点扩展的 BN。

贝叶斯网络的定义

从形式上讲,贝叶斯网络可以定义如下:

贝叶斯网络是一对 (G,P),其中 G=(V,E) 是有限节点(或顶点)上的有向无环图(DAG),V 通过有向链接(或边)相互连接,E 和 P 是一组(条件)概率分布。网络具有以下属性:

  • 每个节点表示一个变量 A,父节点表示变量 B1、B2,…, Bn(即 对于每个 i=1,…,n,Bi,→ A) 被分配一个条件概率表 (CPT),表示 P(A | B1, B2, …, Bn)。

节点表示随机变量,链接表示变量之间的概率依赖关系。这些依赖关系通过一组条件概率表(CPT)进行量化:每个变量都被分配一个给定其父级的变量的CPT。对于没有父级的变量,这是一个无条件(也称为边际)分布。

有条件独立

贝叶斯网络的一个重要概念是条件独立性。如果当变量 C 的值已知时,关于变量 B 值的知识没有提供有关变量 A 值的进一步信息,则在给定第三组变量 C 的情况下,称两组变量 A 和 B 是(有条件的)独立的:

  • [P(A|B,C) = P(A|C)]

条件独立性可以直接从图中读取如下:设 AB 和 C 是不相交的变量集,则

  • 识别包含的最小子图及其祖先;(A ∪ B ∪ C)
  • 在具有公共子节点的节点之间添加无向边;
  • 在所有有向边上放置方向。

现在,如果从 A 中的变量到 B 中的变量的每条路径都包含 C 中的变量,那么给定 C 的 A 有条件地独立于 B (Lauritzen et al. 1990)。

为了说明这个概念,让我们考虑以下虚构的医学知识

“呼吸急促(呼吸困难)[d]可能是由于结核病[t]、肺癌[l]或支气管炎[b],或它们都不是,或不止一种。最近对亚洲的访问[a]会增加患肺结核的风险,而吸烟[s]是肺癌和支气管炎的危险因素。单次胸部X光检查的结果[x]不能区分肺癌和肺结核,呼吸困难的存在与否也不能区分“(Lauritzen&Spiegelhalter 1988)。

最后一个事实在图中由中间变量 e 表示。这个变量是它的两个父级(t 和 l)的逻辑或;它总结了一种或两种疾病的存在或两种疾病的不存在。

图 4 显示了知识模型。

图4:表示有关肺部疾病的医学知识的结构方面的图表。

如果我们了解到患者是吸烟者,我们将调整我们对肺癌和支气管炎的信念(风险增加)。然而,我们对结核病的信念是不变的(即,在给定空变量集的情况下,t 有条件地独立于 s)。现在,假设我们得到病人的阳性 X 射线结果。这将影响我们对肺结核和肺癌的信念,但不会影响我们对支气管炎的信念(即,b 有条件地独立于 x 给定的 s)。然而,如果我们也知道患者患有呼吸急促,X 射线结果也会影响我们对支气管炎的信念(即 b 没有条件地独立于给定的 s 和 d)。

使用上述方法,可以从图 1 的图中读取这些(不)依赖性。

另一种确定条件独立性的等效方法是d-分离,这源于Pearl(1988)

推理

贝叶斯网络中的推理意味着在给定其他变量的信息(证据)的情况下计算某些变量的条件概率。

当所有可用证据都指向作为感兴趣变量的祖先的变量时,这很容易。但是,当有关于感兴趣变量的后代的证据时,我们必须执行与边缘方向相反的推理。为此,我们采用贝叶斯定理

HUGIN推理本质上是贝叶斯定理的巧妙应用;详情可参见Jensen等人(1990(1))的论文。

具有条件高斯变量的网络

HUGIN决策引擎能够处理具有离散和连续随机变量的网络。连续随机变量必须具有以父级值为条件的高斯分布(也称为正态分布)。

具有离散父级 I 和连续父级 Z 的连续变量 Y 的分布是以父项的值为条件的(一维)高斯分布:

请注意,均值线性依赖于连续父变量,而方差不依赖于连续父变量。但是,线性函数和方差都允许依赖于离散父变量。这些限制确保了精确推理的可能。

请注意,离散变量不能具有连续的父变量。

图 5 显示了垃圾焚烧炉的网络模型(Lauritzen 1992):

垃圾焚烧炉的排放(粉尘和重金属)因进入废物的成分差异而不同 [W]。另一个重要因素是废物燃烧方案[B],可以通过测量排放物中的CO2浓度来监测[C]。过滤效率 [E] 取决于电过滤器的技术状态 [F] 以及废物的数量和成分 [W]。重金属 [Mo] 的排放取决于进入废物中金属 [Mi] 的浓度和灰尘颗粒 [D] 的排放。通过测量光的穿透性[L]来监测粉尘的发射[D]

图 5:垃圾焚烧炉模型的结构方面:BF 和 W 是离散变量,而其余变量是连续变量。

在包含条件高斯变量的网络模型中推理的结果一如既往地是给定证据的单个变量的信念(即边际分布)。对于离散变量,这相当于变量状态的概率分布。对于条件高斯变量,提供了两个度量:

  1. 分布的均值和方差;
  2. 由于分布通常不是简单的高斯分布,而是高斯分布的混合(即加权和),因此可以使用每个高斯分布的参数(权重、平均值和方差)列表。

从图 5 所示的网络(假设离散变量 BF 和 W 都是二进制变量),我们可以看到

  • C 的分布最多可以由两个高斯分布组成(如果实例化了 B,则一个);
  • 最初(即,在没有纳入证据的情况下),E 的分布由最多四个高斯分布组成;
  • 如果 L 被实例化(并且 B、F 或 W 均未实例化),则 E 的分布最多由八个高斯分布组成。

有关如何使用 HUGIN 图形用户界面指定条件高斯分布函数的详细信息,另请参阅高斯分布函数部分。

要了解如何使用 HUGIN 图形用户界面构建贝叶斯网络,请参阅教程如何构建 BN。