不确定性知识表示与推理
一、为什么需要不确定性推理?
在传统的确定性知识表示与推理中(如谓词逻辑、归结推理),我们处理的是具有明确真值的事实和规则。例如,“姜维的主公是刘备”,“刘备的义弟是关羽”,“关羽的义弟是张飞”,可以推断出“姜维的主公的义弟是张飞”。
然而,现实世界充满了不确定性:
- 信息不完整:医疗诊断时,患者可能无法提供所有症状;传感器数据可能缺失。
- 随机性:金融市场波动受多种随机因素影响;基因表达受环境随机干扰。
- 模糊性:自然语言中的“很快”、“高个子”等表述因人而异;图像识别中物体边缘模糊。
大多数智能任务都涉及不确定性。在缺少足够信息的情况下做出判断,就需要不确定性推理。
那么,如何在不确定性下做出理性决策呢?在不确定性环境下,我们不能仅依赖已知事实,而必须“赌博”(做出不确定性下的决策)。理性决策通常意味着最大化期望效用 (Expected Utility)。
期望效用 = Σ (结果的概率 × 结果的效用)
例如,选择去机场的出发时间,需要权衡准时到达的效用和不同交通状况发生的概率。要做出理性行为,我们必须能够评估事件发生的可能性,即概率。
二、概率论基础回顾
概率论是处理不确定性的数学基础。本节将回顾其核心概念。
-
概率定义:
- 概率是定义在一组原子事件集 U (全集) 上的函数。
- 为每个事件 e∈U 指定一个值 Pr(e)∈[0,1]。
- 对事件集 F⊆U,Pr(F)=∑e∈FPr(e)。
- 概率公理:
- Pr(U)=1
- Pr(A)∈[0,1]
- Pr(A∪B)=Pr(A)+Pr(B)−Pr(A∩B)
- 常用表示:A∨B (A 或 B),A∧B (A 与 B),¬A (非 A)。
-
事件与变量:
- 事件空间可由一组变量 V1,V2,…,Vn 及其对应的域 Dom[Vi] 定义。
- 原子事件是所有变量值向量的集合:{(d1,…,dn)∣di∈Dom[Vi]}。
- 事件空间大小为 ∏i∣Dom[Vi]∣。若每个变量有2个值,则有 2n 个原子事件 (指数级)。
-
边际化 (Summing out / Marginalizing):
- 计算某个变量取特定值的概率,需要对其他所有变量的所有可能取值求和。
- 例如:Pr(V1=a)=∑x2∈Dom[V2]⋯∑xn∈Dom[Vn]Pr(V1=a,V2=x2,…,Vn=xn)
-
条件概率 (Conditional Probability):
- 给定事件 A 发生 (且 Pr(A)>0),事件 B 发生的概率为:
Pr(B∣A)=Pr(A)Pr(B∩A)
- 全概率公式:若 B1,…,Bk 构成 U 的一个划分 (互斥且周全),则对任意事件 A:
Pr(A)=∑i=1kPr(A∩Bi)=∑i=1kPr(A∣Bi)Pr(Bi)
-
独立性 (Independence):
- 如果 Pr(B∣A)=Pr(B),则称 B 与 A 独立。
- 等价地,如果 Pr(A∩B)=Pr(A)⋅Pr(B),则 A 与 B 独立。
- 独立性允许我们将 Pr(A∩B) 的计算分解为 Pr(A) 和 Pr(B)。
-
条件独立性 (Conditional Independence):
- 如果在给定 A 的条件下,B 与 C 条件独立,指的是在条件概率空间 Pr(⋅∣A) 中的独立性。
- 即 Pr(B∣A∩C)=Pr(B∣A)。
- 这意味着一旦知道了 A,额外知道 C 对于判断 B 是否发生是无关的。
- 其重要推论是:Pr(B∩C∣A)=Pr(B∣A)⋅Pr(C∣A)。
-
链式法则 (Chain Rule):
- Pr(A1∩A2∩⋯∩An)=Pr(A1∣A2∩⋯∩An)⋅Pr(A2∣A3∩⋯∩An)⋅⋯⋅Pr(An−1∣An)⋅Pr(An)
-
贝叶斯法则 (Bayes’ Rule):
- Pr(Y∣X)=Pr(X)Pr(X∣Y)Pr(Y)
- 它允许我们用 Pr(X∣Y) (通常更易评估或从因果关系获得) 来计算 Pr(Y∣X)。
关于概率分布的表示,需要注意:Pr(X) 指变量 X 的边际分布;Pr(X∣Y) 指关于 X 的一系列条件分布,对 Y 的每个取值 y∈Dom(Y) 都有一个;Pr(X=d) 是一个数值,而 Pr(X) 是一个函数,接受 x∈Dom[X] 返回 Pr(X=x)。
三、贝叶斯推断
四、多因子下的贝叶斯推断 (朴素贝叶斯分类器)
当有多个证据(属性)时如何推断?给定一个样本,具有属性 (A1,A2,…,An),目标是预测其类别 C。我们希望找到使后验概率 P(C∣A1,A2,…,An) 最大化的类别 C。
根据贝叶斯定理:
P(C∣A1,…,An)=P(A1,…,An)P(A1,…,An∣C)P(C)
要最大化上式,只需最大化分子 P(A1,…,An∣C)P(C),因为分母 P(A1,…,An) 对所有类别 C 都是相同的。
核心难点:如何估计 P(A1,…,An∣C)?这个联合概率分布的参数空间非常大。
因此,最大化目标变为:
CNB=argmaxCP(C)∏i=1nP(Ai∣C)
参数估计:
- P(C): 类别 C 的先验概率,可从训练数据中该类别的样本频率估计,Nc/N。
- P(Ai∣C):
- 离散属性: P(Ai=v∣Ck)=Nik/Nk,即类别 Ck 的样本中属性 Ai 取值为 v 的频率。
- 连续属性:
-
离散化: 将连续值划分为区间,然后按离散属性处理。
-
概率密度估计: 假设属性服从某种分布(如正态分布),从数据中估计分布参数(如均值 μik 和标准差 σik),然后用概率密度函数 f(Ai=v∣Ck) 代替 P(Ai=v∣Ck)。
例如,正态分布: P(Ai=v∣Ck)=2πσik1exp(−2σik2(v−μik)2)
朴素贝叶斯分类器的特点:
- 实现简单,计算效率高。
- 在很多实际问题中表现良好,即使独立性假设不完全成立。
- 对孤立的噪声点和不相关属性具有一定的鲁棒性。
朴素贝叶斯分类器的不足:
- 独立性假设:在现实中往往不成立(如邮件中某些词语倾向于一起出现)。
- 对先验概率敏感:先验概率 P(C) 的选择可能影响结果。
- 数据稀疏问题:零概率问题需要平滑处理。
五、贝叶斯学派与频率学派
统计学中存在两种主要的思想流派:
- 频率学派 (Frequentist Statistics):认为概率是大量重复试验中事件发生的频率。他们基于样本信息进行推断,认为参数是固定但未知的。
- 贝叶斯学派 (Bayesian Statistics):认为概率是认识主体对事件发生可能性大小的相信程度(主观概率)。他们结合样本信息和先验信息进行推断,认为参数是随机变量,有其自身的分布。
贝叶斯方法一度被忽视,直到计算机算力发展和抽样算法(如MCMC)的进步,才重新得到广泛应用。
贝叶斯方法的历史趣闻:
- 《联邦党人文集》作者公案:Mosteller 和 Wallace 使用贝叶斯方法分析词频,成功推断出存在争议的12篇文章的作者(主要是麦迪逊)。
- 天蝎号核潜艇搜救:John Craven 使用贝叶斯方法,结合多领域专家的主观猜测(先验)和搜索结果(证据)不断更新潜艇位置的概率分布图,最终成功定位。这种方法后来成为海难空难搜救的通行做法 (Bayesian Search Theory)。
六、从完全独立到条件独立
在朴素贝叶斯中,我们假设所有属性在给定类别时是条件独立的。这是一个很强的假设。如果变量之间确实存在依赖关系,我们需要一种更精细的方式来表示它们。
-
完全独立:假设布尔变量 X1,…,Xn 彼此完全独立。
- 指定联合分布仅需 n 个参数 (如 Pr(Xi=true))。
- 例如,Pr(X1∧¬X2∧X3)=Pr(X1)(1−Pr(X2))Pr(X3)。
- 复杂度从 O(2n) 降到 O(n)。
- 然而,完全独立在现实中很少见。
-
条件独立:幸运的是,大多数领域表现出相当程度的条件独立性。贝叶斯网络 (Bayesian Networks, BNs) 正是利用这种条件独立性来进行表示和推理。
七、什么是贝叶斯网络 (Bayesian Network, BN)?
例如,一个包含11个布尔变量的BN,若显式表示联合分布,需要 211−1=2047 个参数。若使用BN,假设每个CPT的条目数总和为27个参数,则大大减少了存储和计算需求。
八、构建贝叶斯网络
九、使用贝叶斯网络进行推理
那么,贝叶斯网络能做什么呢?给定一个贝叶斯网络(结构和CPTs)和一些证据 E (即某些变量的观测值),我们希望计算某个(或某些)未观测变量 Xk 的后验概率分布 Pr(Xk∣E)。
也就是说,我们想知道 Pr(Xk=d∣E) 对所有 d∈Dom[Xk] 的值。
应用场景:
- 医疗诊断:根据症状(证据)计算不同疾病(查询变量)的概率。
- 故障诊断:根据观测到的系统行为推断故障原因。
- 天气预测:根据气象数据(证据)预测冰雹(查询变量)的概率。
例如,在警报网络中,我们可能想计算:
Pr(B=true∣M=true,J=false,E=false)
(Mary 打电话了,John 没打电话,没有地震,那么发生入室盗窃的概率是多少?)
贝叶斯网络中的推理算法(如变量消除、信念传播、MCMC采样等)用于执行这些计算,利用网络结构中的条件独立性来提高效率。这部分内容通常在后续课程中详细介绍o
课后作业
答案(仅供参考)
(1)
P(E=F,S=F,M=F,B=F)=P(S=F∣E=F,M=F)P(B=F∣M=F)P(E=F)P(M=F)=0.6⋅0.93=0.4374
(2)
P(B=T)=∑k∈{T,F}P(B=T∣M=k)P(M=k)=1⋅0.1+0.1⋅0.9=0.19
(3)
P(M=T∣B=T)=P(B=T)P(M=T,B=T)=0.191≈0.5263
(4)
P(M=T∣S=T,B=T,E=T)=P(S=T,B=T,E=T)P(M=T,S=T,B=T,E=T)
分子: P(M=T,S=T,B=T,E=T)=P(E=T)P(M=T)P(S=T∣E=T,M=T)P(B=T∣M=T)
P(E=T)=0.4
P(M=T)=0.1
P(S=T∣E=T,M=T)=1.0
P(B=T∣M=T)=1.0
分子 =0.4⋅0.1⋅1.0⋅1.0=0.04
分母: P(S=T,B=T,E=T)=∑m∈{T,F}P(S=T,B=T,E=T,M=m)
P(S=T,B=T,E=T)=P(S=T,B=T,E=T,M=T)+P(S=T,B=T,E=T,M=F)
第一项 P(S=T,B=T,E=T,M=T) 就是我们刚计算的分子,即 0.04。
第二项 P(S=T,B=T,E=T,M=F)=P(E=T)P(M=F)P(S=T∣E=T,M=F)P(B=T∣M=F)
P(E=T)=0.4
P(M=F)=0.9
P(S=T∣E=T,M=F)=0.8
P(B=T∣M=F)=0.1
第二项 =0.4⋅0.9⋅0.8⋅0.1=0.36⋅0.08=0.0288
分母 =0.04+0.0288=0.0688
所以,P(M=T∣S=T,B=T,E=T)=0.06880.04=688400=172100=4325≈0.5814
(5)
P(E=T∣M=T)
根据贝叶斯网络的结构,E 和 M 是独立的父节点(它们之间没有直接的边,也没有共同的父节点)。因此,一个变量的发生不影响另一个变量的先验概率。
所以,P(E=T∣M=T)=P(E=T)
P(E=T)=0.4