在实践中已经指出了在实践中使用概率推理的一个问题。7.1。如果使用具有n个值的d个变量X 1 ,…,Xd,则相关联的概率分布具有nd个总值。这意味着在最坏的情况下,用于确定指定概率的存储器使用和计算时间随着变量的数量呈指数增长。
在实践中,应用程序通常非常结构化,并且分发包含许多冗余。这意味着可以使用适当的方法大幅减少它。贝叶斯网络的使用在这里证明了它的力量,并且是在实践中成功使用的AI技术之一。贝叶斯网络利用有关变量独立性的知识来简化模型。
1.
独立变量
在最简单的情况下,所有变量都是成对独立的,情况就是如此
P(X 1,…,Xd)= P(X 1)・ P(X 2)・・・・ P(Xd)。
因此,可以从d值P(X 1 ),…,P(Xd)计算分布中的所有条目。然而,有趣的应用程序通常无法建模,因为条件概率变得微不足道。13因为
P(A | B)=
P(A,B)
P(B)=
P(A)P(B)
P(B)= P(A)
13 在朴素贝叶斯方法中,假设所有属性的独立性,并且该方法已成功应用于文本分类(参见第8.6节)。
所有条件概率都减少到先验概率。当只有一部分变量在某些条件下是独立的或独立的时,情况就会变得更加有趣。对于AI中的推理,变量之间的依赖关系恰好是重要的,必须加以利用。
我们想通过J. Pearl [Pea88]的一个简单且非常具有说明性的例子概述贝叶斯网络的推理,它通过[RN10]而闻名,现在是基本的AI知识。
例7.7 (报警示例)Bob是单身人士,他的房子里安装了一个警报系统,以防止窃贼。鲍勃在办公室工作时听不到警报。因此,他问他的两个邻居,约翰在左边的房子里,玛丽在右边的房子里,如果他们听到他的警报就会在他的办公室打电话给他。几年后,鲍勃知道约翰和玛丽是多么可靠,并使用条件概率模拟他们的呼叫行为,如下所示。14
P(J | Al)= 0。90 P(M | Al)= 0。70,P(J |¬Al)= 0。05 P(M |¬Al)= 0。01。
由于玛丽很难听,她没有比约翰更频繁地听到警报。然而,约翰有时会把鲍勃家里的警报和其他房子的警报混在一起。警报是由爆窃引发的,但也可能由(弱)地震引发,这可能导致误报,因为鲍勃只想知道他办公室时的入室盗窃情况。这些关系是建模的
P(Al | Bur,Ear)= 0。95,P(Al | Bur,¬Eur)= 0。94,P(Al | ¬Bur,Ear)= 0。29,
P(Al | ¬Bur,¬Eur)= 0。001,
= =
以及先验概率P(Bur) 0 。001和P(耳朵) 0 。002.这两个变量是独立的,因为地震不是根据窃贼的习惯制定计划,相反,没有办法预测地震,所以窃贼没有机会相应地制定他们的时间表。
| ∨| |
现在可以根据此知识库进行查询。例如,Bob可能对P(Bur JM),P(J Bur)或P(M Bur)感兴趣。也就是说,他想知道变量J和M对入室盗窃报告的反应有多敏感。
14二进制变量J和M代表两个事件“John call”,而“Mary call”分别代表Al代表“警报警报声”,Bur代表“盗窃”,耳朵代表“地震”。
图7.11 带有相关CPT的报警示例的贝叶斯网络
| |¬
通过图形化表示作为条件概率的知识,我们可以大大简化实际工作。图7.11显示了警报示例的贝叶斯网络。网络中的每个节点代表一个变量,每个有向边代表一个条件概率的陈述。例如,从Al到J的边表示两个值P(J Al)和P(J Al),其以表格的形式给出,即所谓的CPT(条件概率表)。节点的CPT列出了由进入边连接的所有节点上的节点变量的所有条件概率。
在研究网络时,我们可能会问自己为什么除了绘制的四个之外没有其他边缘。由于变量是独立的,因此两个节点Bur和Ear没有链接。所有其他节点都有一个父节点,这使得推理稍微复杂一些。我们首先需要条件独立的概念。
3. 条件独立
类似于随机变量的独立性,我们给出
定义7.6给定C if ,两个变量A和B被称为条件独立
P(A,B | C)= P(A | C)・ P(B | C)。
这个等式适用于所有三个变量(即分布)的所有值组合,我们在符号中看到。我们现在查看报警示例中的节点J和M,它们具有公共父节点A1。如果约翰和玛丽
独立地对警报作出反应,那么两个变量J和M在给定Al的情况下是独立的,即:
P(J,M | Al)= P(J | Al)・ P(M | Al)。
=
如果已知Al的值,例如因为触发了警报,则变量J和M是独立的(在条件Al w下)。由于两个变量J和M的条件独立性,因此不添加这两个节点之间的边缘。但是,J和M 不是独立的(参见第159 页的练习7.11)。
相似的是两个变量J和Bur之间的关系,因为John对入室盗窃没有反应,而是警报。例如,这可能是因为高墙阻挡了他对Bob的财产的看法,但他仍然可以听到警报。因此,鉴于Al和,J和Bur是独立的
P(J,Bur | Al)= P(J | Al)・ P(Bur | Al)。
给出警报,变量J和Ear,M和Bur,以及M和Ear也是独立的。对于具有条件独立性的计算,以下与上述定义等效的特征是有用的:
定理7.5以下等式是成对等价的,这意味着每个单独的等式描述给定C的变量A和B的条件独立性。
P(A,B | C)= P(A | C)・ P(B | C),
P(A | B,C)= P(A | C),
P(B | A,C)= P(B | C)。
(7.16)
(7.17)
(7.18)
证明一方面,使用条件独立性(7.16 ),我们可以得出结论
P(A,B,C)= P(A,B | C)P(C)= P(A | C)P(B | C)P(C)。
另一方面,产品规则给了我们
P(A,B,C)= P(A | B,C)P(B | C)P(C)。
因此,P(A | B,C)= P(A | C)相当于(7.16 )。我们通过在该推导中交换 A 和 B 类似地获得(7.18 )。
现在我们再次转向警报示例,并显示如何使用第 146 页的图 7.11中的贝叶斯网络进行推理。例如,鲍勃对他的两个警报记者约翰和玛丽的敏感性感兴趣,即在P(J | Bur)和
P(M | Bur)。然而,值 P(Bur | J)和 P(Bur | M),以及 P(Bur | J,M)
对他来说更重要。我们从 P(J | Bur)开始计算
P(J | Bur) = P(J,Bur) = P(J,Bur,Al) + P(J,Bur, ¬Al)
(7.19)
和
P(Bur)
P(Bur)
P(J,Bur,Al) = P(J | Bur,Al) P(Al | Bur) P(Bur) = P(J | Al) P(Al | Bur) P(Bur),
(7.20)
对于最后两个方程式,我们使用了产品规则和给定Al的J和Bur的条件独立性。插入(7.19)我们获得
| =
图P(j伯尔) P(Ĵ | Al)的P(铝|伯尔)P(布尔)+ P(Ĵ |¬ Al)的P(¬铝|伯尔)P(布尔)
P(Bur)
= P(Ĵ | Al)的P(铝|伯尔)+ P(Ĵ |¬ Al)的P(¬铝|伯尔)。(7.21)这里 P(铝|柏迪)和 P(¬铝|柏迪)失踪。因此我们计算
P(Bur)
P(Bur)
P(Al | Bur)= P(Al,Bur)= P(Al,Bur,Ear)+ P(Al,Bur,¬Eur)
=
P(Al | Bur,Ear)P(Bur)P(耳)+ P(Al | Bur,¬Eur)P(Bur)P(¬Eur)P(Bur)
= P(Al | Bur,Ear)P(耳) + P(Al | Bur, ¬ear )P( ¬ 耳)
= 0 。95 ・ 0 。002 + 0 。94 ・ 0 。998 = 0 。94
以及 P(¬铝|伯尔)= 0。06并将其插入(7.21 ),得到结果
P(J | Bur)= 0 。9 ・ 0 。94 + 0 。05 ・ 0 。06 = 0 。849 。
| =
类似地,我们计算P(M Bur) 0 。659.我们现在知道约翰约占所有入室盗窃案的85%,玛丽约占所有入室盗窃案的66%。由于条件独立性,他们调用的概率都是计算的
P(J,M | Bur)= P(J | Bur)P(M | Bur)= 0。849 ・ 0。659 = 0。559。
然而,更有趣的是John或Mary打电话的可能性
图P(j ∨ 中号 | 伯尔) = P( ¬ ( ¬ Ĵ, ¬ M) | 伯尔) = 1 – P( ¬ Ĵ, ¬ 中号 | 伯尔)
= 1 – P( ¬ Ĵ | 伯尔)P( ¬ 中号 | 伯尔) = 1 – 0 。051 = 0 。948 。
鲍勃因此接收了大约95%的盗窃案的通知。现在来计算
P(Bur | J),我们应用贝叶斯公式,它给了我们
P(J)
0 。052
P(Bur | J)= P(J | Bur)P(Bur)= 0。849 ・ 0。001 = 0 。016 。
| =
| =
显然,只有大约1.6%的来自约翰的电话实际上是由于一个问题。因为Mary的误报概率小5倍,P(Bur M)为 0 。056我们对Mary的电话有很高的信心。如果他们两个都打电话,鲍勃应该只是严重关心他的家,因为P(Bur J,M) 0 。284(参见第159
页的练习7.11)。
在第( 148 )页的( 7.21 )中,我们展示了
图P(j |伯尔)= P(Ĵ | Al)的P(铝|伯尔)+ P(Ĵ |¬ Al)的P(¬铝|伯尔)
我们如何“滑入”一个新的变量。在给定引入附加变量C的情况下,这种关系通常适用于两个变量A和B,称为条件:
P(A | B)= P(A | B,C = c)P(C = c | B)。
C
如果A和B在条件上独立给定C,则该公式简化为
P(A | B)= P(A | C = c)P(C = c | B)。
C
5.
贝叶斯网络软件
我们将使用警报示例简要介绍两个工具。我们已经熟悉PIT系统了。我们将PIT语法中的CPT值输入到www.pit-systems.de 的在线输入窗口中。在第 150 页的图 7.12 所示输入后,我们收到了答案:
P([Einbruch = t] | [John = t] AND [Mary = t])=
0.2841。
虽然PIT不是经典的贝叶斯网络工具,但它可以将任意条件概率和查询作为输入并计算正确的结果。可以显示[Sch96],在输入CPT或等效规则时,MaxEnt原则意味着相同的条件独立性,因此也与贝叶斯网络具有相同的答案。因此,贝叶斯网络是MaxEnt的一个特例。
1 var Alarm {t,f},Burglary {t,f},Earthquake
{t,f},John {t,f},Mary {t,f}; 2
3 P([Earthquake = t])= 0.002;
4 P([防盗= t])= 0.001;
1.
P([Alarm = t] |
[Burglary = t] AND [Earthquake = t])= 0.95;
2.
P([Alarm = t] |
[Burglary = t] AND [Earthquake = f])= 0.94;
3.
P([Alarm = t] |
[Burglary = f] AND [Earthquake = t])= 0.29;
4. P([Alarm = t] | [Burglary = f] AND [Earthquake = f])= 0.001; 9 P([John = t] | [Alarm = t])= 0.90;
10 P([John = t] | [Alarm = f])= 0.05;
11 P([Mary = t] | [Alarm = t])= 0.70;
12 P([Mary = t] | [Alarm = f])= 0.01;
13
14 QP([Burglary = t] | [John = t] AND [Mary = t]);
图7.12 报警示例的PIT输入
图7.13 JavaBayes的用户界面:离开图形编辑器,右边是控制台,输出答案
接下来我们将看看JavaBayes [Coz98],这是一个经典的系统,也可以在互联网上免费获得,图形界面如图 7.13 所示。使用图形网络编辑器,可以操纵节点和边缘,并编辑CPT中的值。此外,可以使用“观察”分配变量值,并使用“查询”调用其他变量的值。然后,查询的答案将出现在控制台窗口中。
专业的商业系统Hugin功能更强大,更方便。例如,Hugin除了离散变量外还可以使用连续变量。它还可以学习贝叶斯网络,即从统计数据中完全自动生成网络(参见第8.5节)。
6.
贝叶斯网络的发展
对于读者来说,紧凑的贝叶斯网络非常清晰,并且比完整的概率分布更具信息量。此外,它需要更少
| | | |
记忆。对于变量v 1 ,…,vn与v 1 ,…,vn各自的不同值,分布总数为
ñ
| vi | – 1
i = 1
| | = – =
独立的条目。在报警示例中,变量都是二进制的。因此,对于所有变量vi 2,并且分布具有2 5 1 31个独立条目。要计算贝叶斯网络的独立条目数,必须确定所有CPT的所有条目的总数。对于具有ki父节点ei 1 ,…,eik i的节点vi,相关联的CPT具有
ķ 我
(| vi | – 1) | eij |
j = 1
条目。然后,网络中的所有CPT一起拥有
恩克我
(| vi | – 1)| eij | (7.22)
i = 1
j = 1
i = 1
j = 1
条目。15然后,对于报警示例,结果是
2 + 2 + 4 + 1 + 1 = 10
– –
唯一描述网络的独立条目。当我们假设所有n个变量具有相同的b个值并且每个节点具有k个父节点时,完整分布和贝叶斯网络之间的存储器复杂性的比较变得更清楚。然后,可以简化(7.22)并且所有CPT一起具有n(b 1 )个bk条目。完整的发行版包含bn1个条目。只有当父节点的平均数远小于变量数时,才会产生显着的增益。这意味着节点仅在本地连接。由于本地连接,网络变得模块化,这在软件工程中导致复杂性降低。在警报示例中,警报节点将节点Bur和Ear与节点J和M分开。我们也可以在L EXMED示例中清楚地看到这一点。
15 对于没有祖先的节点,此总和中的乘积为空。为此我们替换值1,因为没有祖先的节点的CPT以其先验概率包含恰好一个值。
L EXMED作为贝叶斯网络
S EX 中描述的L EXMED 系统。7.3 也可以建模为贝叶斯网络。通过使外部的,精细绘制的线指向(给出它们的箭头),第 137 页的图 7.8中的独立图可以被解释为贝叶斯网络。得到的网络如图 7.14 所示。
在Sect。7.3.2 L EXMED
的分布大小计算为值20 643 839.另一方面贝叶斯网络可以用521个值完全描述。可以通过在第 151 页上将图 7.14中的变量输入( 7.22 )来确定该值。按顺序(Leuko,TRek,Gua,Age,Reb,Sono,Tapp,BowS,Sex,P4Q,P1Q,P2Q,RecP,Urin,P3Q,Diag4)我们计算
恩克我
( | vi | – 1 ) | eij | = 6 ・ 6 ・ 4 + 5 ・ 4 + 2 ・ 4 + 9 ・ 7 ・ 4 + 1 ・ 3 ・ 4 + 1 ・ 4 + 1 ・ 2 ・ 4
i = 1
j = 1
+ 3 ・ 3 ・ 4 + 1 ・ 4 + 1 ・ 4 ・ 2 + 1 ・ 4 ・ 2 + 1 ・ 4 + 1 ・ 4 + 1 ・ 4
+ 1 ・ 4 + 1 = 521 。
|
|
|
|
此示例表明,为实际应用程序构建完整分发几乎是不可能的。另一方面,具有22个边缘和521个概率值的贝叶斯网络仍然是可管理的。
因果关系与网络结构
贝叶斯网络的构建通常分两个阶段进行。
1.
网络结构的设计:该步骤通常手动执行,并将在下面描述。
2. 输入CPT中的概率:在许多变量的情况下手动输入值非常繁琐。如果(例如使用L EXMED)数据库可用,则可以通过计算频率来估计CPT条目来自动执行此步骤。
我们现在将在报警示例中描述网络的构造(见图7.15)。在开始的时候,我们知道这两个原因盗窃和地震以及两种症状约翰和玛丽。然而,由于约翰和玛丽不直接对防盗或地震作出反应,而只是对警报作出反应,因此将其作为鲍勃无法观察到的附加变量是合适的。添加边的过程从原因开始,即与没有父节点的变量一起开始。首先我们选择入室盗窃和下一次地震。现在我们必须检查地震是否独立于盗窃。这是给定的,因此从防盗到地震没有任何边缘。因为报警直接取决于入室和地震时,这些变量下选择和边缘从两个加入盗窃和地震到报警。然后我们选择约翰。由于Alarm和John不是独立的,因此会从警报向John添加边缘。玛丽也是如此。现在,我们必须检查是否约翰是条件独立的防盗给出报警。如果不是这种情况,那么必须从Burglary到John插入另一条边。我们还必须检查从地震到约翰以及从盗窃或地震到玛丽是否需要边缘。由于条件独立,这四个边缘不是必需的。之间的边约翰和玛丽也是不必要的,因为约翰和玛丽是有条件独立给出报警。
贝叶斯网络的结构在很大程度上取决于所选择的变量排序。如果选择变量的顺序来反映从原因开始并继续进入诊断变量的因果关系,那么结果将是一个简单的网络。否则网络可能包含更多边缘。这种非因果网络通常很难理解并且具有更高的价值
图7.16之间不存在边缘阿和乙如果它们是独立的(左)或条件独立(中间,右)
推理的复杂性。读者可以参考第 159 页的练习 7.11 以获得更好的理解。
7.
贝叶斯网络的语义
正如我们在前一节中所看到的,当A和B独立或有条件地独立给定第三个变量C时,在两个变量A和B之间没有向贝叶斯网络添加边缘。这种情况如图7.16 所示。
我们现在要求贝叶斯网络没有周期,我们假设变量的编号使得变量的数量低于其前面的任何变量。当网络没有周期时,这总是可行的。16
然后,当使用所有条件独立性时,我们有
P(Xn | X 1,…,Xn – 1) = P(Xn | Parents(Xn))。
因此,这个等式是一个命题,即贝叶斯网络中的任意变量Xi 在条件上独立于其祖先,给定其父母。第 155 页的图 7.17 中描述的更为一般的命题可以紧凑地说明
定理7.6鉴于其父节点,贝叶斯网络中的节点在条件上独立于所有非后继节点。
现在,我们能够大大简化((链式法则 7.1 页) 120 ):
NN
P(X 1,…,XN) = P(熙 | X 1 …,西安 – 1) = P(熙 | 家长(十一))。(7.23)
i = 1
i = 1
i = 1
i = 1
例如,使用此规则,我们可以直接在第 148 页上编写( 7.20 )
P(J,Bur,Al)= P(J | Al)P(Al | Bur)P(Bur)。
16 如果例如三个节点 X 1 , X 2 , X 3 形成一个循环,则有边(X 1,X 2),(X 2,X 3)
和(X 3,X 1)其中 X 1 具有 X 3 作为后继者。
图7.17贝叶斯网络中条件独立的示例。如果给出父节点 E 1 和 E 2 ,则所有非后继节点 B 1,…,B 8 独立于 A
我们现在知道贝叶斯网络最重要的概念和基础。让我们总结一下[Jen01]:
定义7.7 贝叶斯网络定义如下:
•
•
一组变量和这些变量之间的一组有向边。每个变量都有许多可能的值。
•
变量与边缘一起形成有向无环图(DAG)。DAG是没有循环的图形,即没有形式的路径(A,…,A)。
§ 对于每个变量A
CPT(即条件概率表)
给出P(A | 父母(A)))。
| = | ・| | = |
如果P(A,BC)P(AC)P(BC)或者等效地,如果P(AB,C)P(AC),则给定 C,两个变量 A 和 B 被称为条件独立。除了概率计算的基本规则外,以下规则也是如此:
P(B)
贝叶斯定理: P(A | B)= P
(B | A)・
P(A)
边缘化: P(B)= P(A,B)+ P(¬A,B)= P(B | A)・ P(A)+
P(B |¬A)・ P(¬A)
调节: P(A | B)=
c P(A | B,C = c)P(C = c | B)
| = | –
贝叶斯网络中的变量在给定其父变量的情况下有条件地独立于所有非后继变量。如果 X 1,…,Xn – 1不是 Xn的成功,我们有P(Xn X 1,…,Xn 1)P(Xn Parents(Xn))。在构建网络时必须遵守这一条件。
在构建贝叶斯网络期间,应根据因果关系对变量进行排序。首先是原因,然后是隐藏变量,以及诊断变量。
i = 1
链规则:P(X 1,…,Xn)= n P(Xi | Parents(Xi))
在[Pea88]和[Jen01]中,为贝叶斯网络引入了d-分离这一术语,其中有一个类似于第 154 页的定理 7.6的定理。我们将避免引入这个术语,从而达到一个更简单的方法,尽管不是理论上干净的代表。