不确定性知识表示与推理

一、为什么需要不确定性推理?

在传统的确定性知识表示与推理中(如谓词逻辑、归结推理),我们处理的是具有明确真值的事实和规则。例如,“姜维的主公是刘备”,“刘备的义弟是关羽”,“关羽的义弟是张飞”,可以推断出“姜维的主公的义弟是张飞”。

然而,现实世界充满了不确定性:

  • 信息不完整:医疗诊断时,患者可能无法提供所有症状;传感器数据可能缺失。
  • 随机性:金融市场波动受多种随机因素影响;基因表达受环境随机干扰。
  • 模糊性:自然语言中的“很快”、“高个子”等表述因人而异;图像识别中物体边缘模糊。

大多数智能任务都涉及不确定性。在缺少足够信息的情况下做出判断,就需要不确定性推理。

那么,如何在不确定性下做出理性决策呢?在不确定性环境下,我们不能仅依赖已知事实,而必须“赌博”(做出不确定性下的决策)。理性决策通常意味着最大化期望效用 (Expected Utility)

期望效用 = Σ (结果的概率 × 结果的效用)

例如,选择去机场的出发时间,需要权衡准时到达的效用和不同交通状况发生的概率。要做出理性行为,我们必须能够评估事件发生的可能性,即概率

二、概率论基础回顾

概率论是处理不确定性的数学基础。本节将回顾其核心概念。

  1. 概率定义

    • 概率是定义在一组原子事件集 UU (全集) 上的函数。
    • 为每个事件 eUe \in U 指定一个值 Pr(e)[0,1]Pr(e) \in [0,1]
    • 对事件集 FUF \subseteq UPr(F)=eFPr(e)Pr(F) = \sum_{e \in F} Pr(e)
    • 概率公理:
      • Pr(U)=1Pr(U) = 1
      • Pr(A)[0,1]Pr(A) \in [0, 1]
      • Pr(AB)=Pr(A)+Pr(B)Pr(AB)Pr(A \cup B) = Pr(A) + Pr(B) - Pr(A \cap B)
    • 常用表示:ABA \lor B (A 或 B),ABA \land B (A 与 B),¬A\neg A (非 A)。
  2. 事件与变量

    • 事件空间可由一组变量 V1,V2,,VnV_1, V_2, \dots, V_n 及其对应的域 Dom[Vi]Dom[V_i] 定义。
    • 原子事件是所有变量值向量的集合:{(d1,,dn)diDom[Vi]}\{(d_1, \dots, d_n) | d_i \in Dom[V_i]\}
    • 事件空间大小为 iDom[Vi]\prod_i |Dom[V_i]|。若每个变量有2个值,则有 2n2^n 个原子事件 (指数级)。
  3. 边际化 (Summing out / Marginalizing)

    • 计算某个变量取特定值的概率,需要对其他所有变量的所有可能取值求和。
    • 例如:Pr(V1=a)=x2Dom[V2]xnDom[Vn]Pr(V1=a,V2=x2,,Vn=xn)Pr(V_1 = a) = \sum_{x_2 \in Dom[V_2]} \dots \sum_{x_n \in Dom[V_n]} Pr(V_1=a, V_2=x_2, \dots, V_n=x_n)
  4. 条件概率 (Conditional Probability)

    • 给定事件 A 发生 (且 Pr(A)>0Pr(A) > 0),事件 B 发生的概率为: Pr(BA)=Pr(BA)Pr(A)Pr(B|A) = \frac{Pr(B \cap A)}{Pr(A)}
    • 全概率公式:若 B1,,BkB_1, \dots, B_k 构成 UU 的一个划分 (互斥且周全),则对任意事件 A: Pr(A)=i=1kPr(ABi)=i=1kPr(ABi)Pr(Bi)Pr(A) = \sum_{i=1}^k Pr(A \cap B_i) = \sum_{i=1}^k Pr(A|B_i)Pr(B_i)
  5. 独立性 (Independence)

    • 如果 Pr(BA)=Pr(B)Pr(B|A) = Pr(B),则称 B 与 A 独立。
    • 等价地,如果 Pr(AB)=Pr(A)Pr(B)Pr(A \cap B) = Pr(A) \cdot Pr(B),则 A 与 B 独立。
    • 独立性允许我们将 Pr(AB)Pr(A \cap B) 的计算分解为 Pr(A)Pr(A)Pr(B)Pr(B)
  6. 条件独立性 (Conditional Independence)

    • 如果在给定 A 的条件下,B 与 C 条件独立,指的是在条件概率空间 Pr(A)Pr(\cdot|A) 中的独立性。
    • Pr(BAC)=Pr(BA)Pr(B|A \cap C) = Pr(B|A)
    • 这意味着一旦知道了 A,额外知道 C 对于判断 B 是否发生是无关的。
    • 其重要推论是:Pr(BCA)=Pr(BA)Pr(CA)Pr(B \cap C|A) = Pr(B|A) \cdot Pr(C|A)
  7. 链式法则 (Chain Rule)

    • Pr(A1A2An)=Pr(A1A2An)Pr(A2A3An)Pr(An1An)Pr(An)Pr(A_1 \cap A_2 \cap \dots \cap A_n) = Pr(A_1 | A_2 \cap \dots \cap A_n) \cdot Pr(A_2 | A_3 \cap \dots \cap A_n) \cdot \dots \cdot Pr(A_{n-1}|A_n) \cdot Pr(A_n)
  8. 贝叶斯法则 (Bayes’ Rule)

    • Pr(YX)=Pr(XY)Pr(Y)Pr(X)Pr(Y|X) = \frac{Pr(X|Y)Pr(Y)}{Pr(X)}
    • 它允许我们用 Pr(XY)Pr(X|Y) (通常更易评估或从因果关系获得) 来计算 Pr(YX)Pr(Y|X)

关于概率分布的表示,需要注意:Pr(X)Pr(X) 指变量 XX 的边际分布;Pr(XY)Pr(X|Y) 指关于 XX 的一系列条件分布,对 YY 的每个取值 yDom(Y)y \in Dom(Y) 都有一个;Pr(X=d)Pr(X=d) 是一个数值,而 Pr(X)Pr(X) 是一个函数,接受 xDom[X]x \in Dom[X] 返回 Pr(X=x)Pr(X=x)

三、贝叶斯推断

四、多因子下的贝叶斯推断 (朴素贝叶斯分类器)

当有多个证据(属性)时如何推断?给定一个样本,具有属性 (A1,A2,,An)(A_1, A_2, \dots, A_n),目标是预测其类别 CC。我们希望找到使后验概率 P(CA1,A2,,An)P(C | A_1, A_2, \dots, A_n) 最大化的类别 CC

根据贝叶斯定理: P(CA1,,An)=P(A1,,AnC)P(C)P(A1,,An)P(C | A_1, \dots, A_n) = \frac{P(A_1, \dots, A_n | C) P(C)}{P(A_1, \dots, A_n)}

要最大化上式,只需最大化分子 P(A1,,AnC)P(C)P(A_1, \dots, A_n | C) P(C),因为分母 P(A1,,An)P(A_1, \dots, A_n) 对所有类别 CC 都是相同的。

核心难点:如何估计 P(A1,,AnC)P(A_1, \dots, A_n | C)?这个联合概率分布的参数空间非常大。

因此,最大化目标变为:

CNB=argmaxCP(C)i=1nP(AiC)C_{NB} = \arg\max_C P(C) \prod_{i=1}^n P(A_i|C)

参数估计

  • P(C)P(C): 类别 CC 的先验概率,可从训练数据中该类别的样本频率估计,Nc/NN_c/N
  • P(AiC)P(A_i|C):
    • 离散属性: P(Ai=vCk)=Nik/NkP(A_i=v | C_k) = N_{ik}/N_k,即类别 CkC_k 的样本中属性 AiA_i 取值为 vv 的频率。
    • 连续属性:
      1. 离散化: 将连续值划分为区间,然后按离散属性处理。

      2. 概率密度估计: 假设属性服从某种分布(如正态分布),从数据中估计分布参数(如均值 μik\mu_{ik} 和标准差 σik\sigma_{ik}),然后用概率密度函数 f(Ai=vCk)f(A_i=v | C_k) 代替 P(Ai=vCk)P(A_i=v | C_k)

        例如,正态分布: P(Ai=vCk)=12πσikexp((vμik)22σik2)P(A_i=v|C_k) = \frac{1}{\sqrt{2\pi}\sigma_{ik}} \exp\left(-\frac{(v-\mu_{ik})^2}{2\sigma_{ik}^2}\right)

朴素贝叶斯分类器的特点

  • 实现简单,计算效率高。
  • 在很多实际问题中表现良好,即使独立性假设不完全成立。
  • 对孤立的噪声点和不相关属性具有一定的鲁棒性。

朴素贝叶斯分类器的不足

  • 独立性假设:在现实中往往不成立(如邮件中某些词语倾向于一起出现)。
  • 对先验概率敏感:先验概率 P(C)P(C) 的选择可能影响结果。
  • 数据稀疏问题:零概率问题需要平滑处理。

五、贝叶斯学派与频率学派

统计学中存在两种主要的思想流派:

  • 频率学派 (Frequentist Statistics):认为概率是大量重复试验中事件发生的频率。他们基于样本信息进行推断,认为参数是固定但未知的。
  • 贝叶斯学派 (Bayesian Statistics):认为概率是认识主体对事件发生可能性大小的相信程度(主观概率)。他们结合样本信息和先验信息进行推断,认为参数是随机变量,有其自身的分布。

贝叶斯方法一度被忽视,直到计算机算力发展和抽样算法(如MCMC)的进步,才重新得到广泛应用。

贝叶斯方法的历史趣闻

  • 《联邦党人文集》作者公案:Mosteller 和 Wallace 使用贝叶斯方法分析词频,成功推断出存在争议的12篇文章的作者(主要是麦迪逊)。
  • 天蝎号核潜艇搜救:John Craven 使用贝叶斯方法,结合多领域专家的主观猜测(先验)和搜索结果(证据)不断更新潜艇位置的概率分布图,最终成功定位。这种方法后来成为海难空难搜救的通行做法 (Bayesian Search Theory)。

六、从完全独立到条件独立

在朴素贝叶斯中,我们假设所有属性在给定类别时是条件独立的。这是一个很强的假设。如果变量之间确实存在依赖关系,我们需要一种更精细的方式来表示它们。

  • 完全独立:假设布尔变量 X1,,XnX_1, \dots, X_n 彼此完全独立。

    • 指定联合分布仅需 nn 个参数 (如 Pr(Xi=true)Pr(X_i=\text{true}))。
    • 例如,Pr(X1¬X2X3)=Pr(X1)(1Pr(X2))Pr(X3)Pr(X_1 \land \neg X_2 \land X_3) = Pr(X_1)(1-Pr(X_2))Pr(X_3)
    • 复杂度从 O(2n)O(2^n) 降到 O(n)O(n)
    • 然而,完全独立在现实中很少见。
  • 条件独立:幸运的是,大多数领域表现出相当程度的条件独立性。贝叶斯网络 (Bayesian Networks, BNs) 正是利用这种条件独立性来进行表示和推理。

七、什么是贝叶斯网络 (Bayesian Network, BN)?

例如,一个包含11个布尔变量的BN,若显式表示联合分布,需要 2111=20472^{11}-1 = 2047 个参数。若使用BN,假设每个CPT的条目数总和为27个参数,则大大减少了存储和计算需求。

八、构建贝叶斯网络

九、使用贝叶斯网络进行推理

那么,贝叶斯网络能做什么呢?给定一个贝叶斯网络(结构和CPTs)和一些证据 E (即某些变量的观测值),我们希望计算某个(或某些)未观测变量 XkX_k后验概率分布 Pr(XkE)Pr(X_k | E)

也就是说,我们想知道 Pr(Xk=dE)Pr(X_k=d | E) 对所有 dDom[Xk]d \in Dom[X_k] 的值。

应用场景

  • 医疗诊断:根据症状(证据)计算不同疾病(查询变量)的概率。
  • 故障诊断:根据观测到的系统行为推断故障原因。
  • 天气预测:根据气象数据(证据)预测冰雹(查询变量)的概率。

例如,在警报网络中,我们可能想计算: Pr(B=trueM=true,J=false,E=false)Pr(B=\text{true} | M=\text{true}, J=\text{false}, E=\text{false}) (Mary 打电话了,John 没打电话,没有地震,那么发生入室盗窃的概率是多少?)

贝叶斯网络中的推理算法(如变量消除、信念传播、MCMC采样等)用于执行这些计算,利用网络结构中的条件独立性来提高效率。这部分内容通常在后续课程中详细介绍o

课后作业

答案(仅供参考)

(1)

P(E=F,S=F,M=F,B=F)=P(S=FE=F,M=F)P(B=FM=F)P(E=F)P(M=F)=0.60.93=0.4374P(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\cdot 0.9^3 = 0.4374

(2)

P(B=T)=k{T,F}P(B=TM=k)P(M=k)=10.1+0.10.9=0.19P(B = T) = \sum_{k\in \{T, F\}} P(B = T|M = k)P(M = k) = 1\cdot 0.1 + 0.1 \cdot 0.9 = 0.19

(3)

P(M=TB=T)=P(M=T,B=T)P(B=T)=10.190.5263P(M = T | B = T) = \frac{P(M=T, B = T)}{P(B = T)} = \frac{1}{0.19} \approx 0.5263

(4)

P(M=TS=T,B=T,E=T)=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) = \frac{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(E=T)P(M=T)P(S=TE=T,M=T)P(B=TM=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.4P(E=T) = 0.4

P(M=T)=0.1P(M=T) = 0.1

P(S=TE=T,M=T)=1.0P(S=T|E=T,M=T) = 1.0

P(B=TM=T)=1.0P(B=T|M=T) = 1.0

分子 =0.40.11.01.0=0.04= 0.4 \cdot 0.1 \cdot 1.0 \cdot 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) = \sum_{m \in \{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) = 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)P(S=T, B=T, E=T, M=T) 就是我们刚计算的分子,即 0.040.04

第二项 P(S=T,B=T,E=T,M=F)=P(E=T)P(M=F)P(S=TE=T,M=F)P(B=TM=F)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.4P(E=T) = 0.4

P(M=F)=0.9P(M=F) = 0.9

P(S=TE=T,M=F)=0.8P(S=T|E=T,M=F) = 0.8

P(B=TM=F)=0.1P(B=T|M=F) = 0.1

第二项 =0.40.90.80.1=0.360.08=0.0288= 0.4 \cdot 0.9 \cdot 0.8 \cdot 0.1 = 0.36 \cdot 0.08 = 0.0288

分母 =0.04+0.0288=0.0688= 0.04 + 0.0288 = 0.0688

所以,P(M=TS=T,B=T,E=T)=0.040.0688=400688=100172=25430.5814P(M=T|S=T, B=T, E=T) = \frac{0.04}{0.0688} = \frac{400}{688} = \frac{100}{172} = \frac{25}{43} \approx 0.5814

(5)

P(E=TM=T)P(E=T|M=T)

根据贝叶斯网络的结构,E 和 M 是独立的父节点(它们之间没有直接的边,也没有共同的父节点)。因此,一个变量的发生不影响另一个变量的先验概率。

所以,P(E=TM=T)=P(E=T)P(E=T|M=T) = P(E=T)

P(E=T)=0.4P(E=T) = 0.4