首页 / 章节目录 / 第 5 章
CHAPTER · 05

不确定性推理

Reasoning under Uncertainty

现实世界中,证据往往不全、规则常有例外、概念本身模糊——"今天可能下雨""他有点发烧""服务很周到"。 本章讨论在不确定条件下如何度量与传播信念:从贝叶斯概率方法、主观贝叶斯、可信度 CF 模型,到证据理论, 再到处理模糊概念的模糊集合与模糊推理。章末提供可实时调节的 Mamdani 模糊推理演示。

5.1

不确定性推理概述

第 3 章的确定性推理建立在"前提非真即假、规则绝无例外"的理想之上。但真实世界并不如此配合:医生看到的症状可能由多种疾病引起,传感器读数带有误差,"年轻人""高个子"这样的概念根本没有清晰边界。不确定性推理研究的就是如何在知识与证据不确定时,仍然给出尽可能合理的结论及其可信程度。

不确定性的主要来源

类型含义示例
随机不确定性事件是否发生服从概率规律投掷硬币、设备故障、明天下雨
模糊不确定性概念边界不清晰,隶属程度渐变"天气很热""车速很快"(扎德模糊集合)
不完全性证据或知识缺失、无法获知全部信息问诊时检查结果尚未出来
不精确性观测或表示存在误差仪器误差、"大约三米远"
不一致性多来源证据或专家意见相互冲突两位医生给出不同诊断

不确定性推理要解决的基本问题

① 不确定性的表示

用什么量描述证据与规则的不确定程度?概率、几率、可信度、隶属度各成体系。还需确定其取值范围与语义。

② 证据不确定时的匹配

规则前提与证据不能精确匹配时,匹配度如何计算?阈值如何设定?

③ 组合证据的不确定性

多个证据以 AND / OR 组合时,整体不确定度如何合成?(如取最小、最大或概率公式)

④ 不确定性的传递与更新

证据的不确定度与规则强度相结合,如何计算结论的不确定度?多条规则推出同一结论时如何合成?

围绕这些问题,形成了两大类方法:基于概率的方法(贝叶斯、主观贝叶斯、证据理论、可信度模型)处理随机性;模糊推理处理边界模糊性。

5.2

概率方法与贝叶斯网络

从条件概率到贝叶斯公式

概率推理以概率论为基础,用 0~1 之间的概率表示信念强度。核心工具是贝叶斯公式:

贝叶斯公式 P(Hi|E) = P(E|Hi) P(Hi) / P(E), 其中 P(E) = Σj P(E|Hj) P(Hj)
  • P(Hi):先验概率,证据出现前对假设 Hi 的原有信念;
  • P(E|Hi):条件概率(似然),若 Hi 成立,观察到证据 E 的可能性;
  • P(Hi|E):后验概率,观察到 E 之后对 Hi 的更新信念。
◆ 实例:疾病诊断

设某地区人群中患病率 P(H)=0.001;检测的真阳性率 P(E|H)=0.99,假阳性率 P(E|¬H)=0.05。若某人检测呈阳性,他真正患病的概率是多少?

P(H|E) = 0.99×0.001 / (0.99×0.001 + 0.05×0.999) ≈ 0.0194,尚不足 2%。这个反直觉的结果说明:当疾病罕见时,先验概率对后验有决定性影响,阳性结果更多来自健康人群中的假阳性。这正是贝叶斯思维的精髓——用证据修正先验,而非被直觉绑架。

贝叶斯网络(信念网络)

直接用联合概率分布推理时,变量一多,概率表将爆炸式增长。贝叶斯网络是一张有向无环图(DAG):节点表示随机变量,有向边表示直接因果依赖,每个节点附带一张在其父节点条件下的条件概率表(CPT)。利用图所表达的条件独立关系,联合分布可被紧凑地分解:

P(X1,…,Xn) = ∏i P(Xi | Parents(Xi))

例如"下雨 → 草地湿 ← 洒水车开启"的网络中,草地是否湿只需以"下雨"和"洒水车"为条件。已知证据后,可通过变量消元、信念传播等推理算法求任意节点的后验概率。贝叶斯网络把因果图结构与概率论严格结合,是医疗诊断、故障分析、风险评估的经典工具。

5.3

主观贝叶斯方法

贝叶斯公式要求给出大量精确的条件概率,而专家往往只对"如果出现某证据,假设的可能性增加多少"有主观判断。1976 年杜达(R. O. Duda)等人在地质勘探专家系统 PROSPECTOR 中提出主观贝叶斯方法,用充分性度量 LS与必要性度量 LN刻画规则强度。

几率(Odds)与 LS / LN

几率把概率变换为"有利比不利"的形式:O(X) = P(X)/(1−P(X)),与概率一一对应(P>0.5 时 O>1)。规则 IF E THEN H 携带两个参数:

LS = P(E|H) / P(E|¬H) (E 出现对 H 的支持力度)
LN = P(¬E|H) / P(¬E|¬H) (E 不出现对 H 的支持力度)

证据出现或不出现时,假设的几率按下式更新(形式极其简洁):

O(H|E) = LS · O(H)   O(H|¬E) = LN · O(H)
  • LS > 1:证据 E 支持 H;LS 越大支持越强;LS = 1 表示 E 与 H 无关;
  • LN < 1:证据缺失时会削弱 H;LN = 0 表示 E 是 H 的必要条件(故 LN 又称必要性度量)。

当证据本身不确定(以概率 P(E|E') 存在)时,方法通过分段插值的 EH 公式(杜达公式)在 P(H|¬E) 与 P(H|E) 之间平滑取值;专家无法直接给先验概率时,则用可信度—概率对应(CP 公式)转换。多条规则支持同一假设时,可在几率形式下连乘各规则的影响:

O(H|E1∧E2) = [ O(H|E1)/O(H) ] · [ O(H|E2)/O(H) ] · O(H)

主观贝叶斯方法理论基础较严谨、规则参数含义直观,但要求 LS、LN 与先验概率保持概率一致性,实际获取并不容易。

5.4

可信度方法(CF 模型)

可信度方法是医疗诊断专家系统 MYCIN(1972)使用的不确定性推理模型,因其简单、直观、便于专家估计,在工程中影响深远。它用可信度因子(Certainty Factor,CF)∈ [−1, 1] 表示信念:正值表示信任,负值表示不信任,0 表示与结论无关或一无所知。

知识与证据的可信度

不确定性规则写为:IF E THEN H (CF(H, E))。其中 CF(H, E) 由专家给出,可理解为信任增长度 MB 与不信任增长度 MD 之差:

CF(H, E) = MB(H, E) − MD(H, E), 取值范围 [−1, 1]
CF=1:E 使 H 绝对为真 CF=−1:绝对为假 CF=0:E 与 H 无关

证据的可信度记为 CF(E),初始证据由用户给出(如"CF(发烧)=0.8"),中间结论的 CF 由推理计算。

不确定性的合成与传递

情形计算方法
合取证据 E = E1 AND E2CF(E) = min{ CF(E1), CF(E2) }(短板原则)
析取证据 E = E1 OR E2CF(E) = max{ CF(E1), CF(E2) }
不确定性传递(单条规则)CF(H) = CF(H, E) × max{ 0, CF(E) }(证据为负时不触发规则)
两条独立规则合成同一结论设 CF1、CF2 同号:CF = CF1+CF2−CF1·CF2(同正);异号:CF = (CF1+CF2) / (1−min{|CF1|,|CF2|})
◆ 实例:两条规则推出同一结论

规则 R1:IF 发烧 THEN 感冒 CF=0.5;规则 R2:IF 咳嗽 THEN 感冒 CF=0.6。已知 CF(发烧)=0.9,CF(咳嗽)=0.8。
传递:CF1 = 0.5×0.9 = 0.45;CF2 = 0.6×0.8 = 0.48。
合成:CF(感冒) = 0.45 + 0.48 − 0.45×0.48 = 0.714。两条证据相互印证,对"感冒"的可信度超过了任何单条规则。

CF 模型计算简便、不需要先验概率、结论可解释,但合成公式带有一定的经验性,理论上不如概率方法严密,适合对精度要求适中、规则由专家提供的诊断型系统。

5.5

证据理论(D-S 理论)

由德普斯特(A. P. Dempster)提出、沙弗(G. Shafer)发展的证据理论(Dempster–Shafer Theory)是概率论的推广。它最大的特点是能够区分"不确定"(信息不足)与"不相信",并允许把信念分配给命题的集合而非单个命题。

基本概率分配、信任函数与似然函数

设 U 为互斥且穷举的命题集合(识别框架)。基本概率分配函数 m 把 [0,1] 的质量赋给 U 的每个子集 A,满足 m(∅)=0、ΣA⊆U m(A)=1。m(A) 表示证据直接、精确地支持子集 A 的程度;未明确分派的部分可赋给 U 本身,表示"不知道"。

  • 信任函数 Bel(A) = ΣB⊆A m(B):对 A 的总信任程度(下界);
  • 似然函数 Pl(A) = 1 − Bel(¬A) = ΣB∩A≠∅ m(B):不否定 A 的最大可能程度(上界)。
信任区间 Bel(A) ≤ P(A) ≤ Pl(A) ⟹ 区间 [ Bel(A), Pl(A) ]

区间宽度反映未知程度:[1,1] 表示确认为真,[0,0] 表示确认为假,[0,1] 表示完全无知——这是证据理论刻画"不确定"的精妙之处。

◆ 直觉示例

识别框 U = {感冒,流感}。传感器证据给出 m({感冒})=0.5,m({流感})=0.2,m(U)=0.3(30% 的信念处于"不知道是哪一种")。则 Bel({感冒})=0.5;Pl({感冒}) = m({感冒}) + m(U) = 0.8,即真实概率落在区间 [0.5, 0.8] 中。

Dempster 组合规则

当多个独立来源提供不同的概率分配 m1、m2 时,用正交和合成:对交集进行合取聚合,再用归一化因子 1−K 扣除冲突质量(K 为两证据完全矛盾部分的质量和):

m(A) = [ 1 / (1 − K) ] · ΣB∩C = A m1(B)·m2(C)

该规则能融合多传感器、多专家证据,在目标识别、信息融合中广泛使用;但当证据高度冲突时(K→1)可能产生违背直觉的结果,这也催生了一系列改进组合公式。

5.6

模糊推理

概率论处理的是"发不发生"的随机性,而模糊理论处理的是"程度如何"的模糊性。1965 年扎德(L. A. Zadeh)提出模糊集合,1974 年 Mamdani 首次把模糊逻辑用于蒸汽机控制,开启了模糊推理在工程中的广泛应用。

模糊集合与隶属函数

普通集合中元素"非此即彼";在模糊集合 A 中,元素 x 以程度 μA(x) ∈ [0,1] 属于 A,函数 μA 称为隶属函数。例如"高温"可以定义为:μ高温(20℃)=0,μ高温(30℃)=0.4,μ高温(38℃)=1。常用隶属函数形状有三角形、梯形和钟形(高斯形)。

模糊集合的并、交、补(扎德算子) μA∪B(x) = max( μA(x), μB(x) )
μA∩B(x) = min( μA(x), μB(x) ) · μ¬A(x) = 1 − μA(x)

模糊关系与合成

两个论域 U、V 之间的模糊关系 R 用隶属矩阵表示,元素 rij 表示 ui 与 vj 的关联程度。模糊关系的合成采用"∨−∧"运算(把矩阵乘法中的乘换为 min、加换为 max):

(A ∘ R)(v) = ∨u [ μA(u) ∧ μR(u, v) ]

模糊假言推理(Mamdani 方法)

模糊规则形如 IF x 是 A THEN y 是 B,例如"若服务好,则小费高"。给定模糊事实 A',推理步骤为:

① 输入模糊化

把精确输入经隶属函数映射为各模糊语言值(低、中、高)上的隶属度。

② 计算规则触发强度

前件含 AND 取 min(或乘积),含 OR 取 max,得到每条规则的权重 w。

③ 对后件进行"削顶"

以 w 为高裁剪后件的隶属函数(Mamdani 用 min 蕴含),得到各规则的输出模糊集。

④ 聚合与去模糊化

把所有规则的输出模糊集取并(max)聚合,再用重心法(面积中心)等方法化为一个精确输出值。

◆ 重心法(Centroid)去模糊化

对聚合后的输出隶属函数 μ(y),输出精确值 y* = ∫ y·μ(y)dy / ∫ μ(y)dy。它相当于让最终决策位于"模糊面积的平衡点"。

模糊推理无需精确数学模型、规则可用自然语言描述、对噪声和参数漂移鲁棒性强,广泛用于空调、洗衣机、地铁自动驾驶、摄像机防抖等控制系统,也用于医学评估、风险评级等决策支持场景。

5.7

交互演示:模糊小费推理

下面是模糊控制教科书的经典案例——餐厅小费问题。系统内置三条 Mamdani 规则:

  • R1:IF 服务差 OR 菜差 THEN 小费低(约 5%)
  • R2:IF 服务一般 THEN 小费中等(约 15%)
  • R3:IF 服务好 OR 菜好 THEN 小费高(约 25%)

拖动滑块改变评分(0~10),观察三条规则的触发强度、输出隶属函数被"削顶"后的形状,以及金色虚线标示的重心去模糊化结果。

Mamdani 模糊推理机

FUZZY · TIPPING
◆ 观察与思考

① 把服务固定在 5 分,单独拖动菜品评分:低小费与高小费权重为何会此消彼长?② 当服务极差(0 分)而菜品极好(10 分)时,R1 与 R3 同时触发,重心为何偏向中等?这正体现了 OR 规则与聚合取并的折中效果。③ 与"if 分数 > 6 then 高小费"这样的硬阈值规则相比,模糊推理的输出为何不会在边界处发生跳变?

5.8

自测与思考

随机性与模糊性的区别是什么?分别由什么数学工具处理?
随机性刻画"事件是否发生"的不确定,事件本身含义清晰(如"明天下雨"要么发生要么不发生),由概率论、贝叶斯方法处理;模糊性刻画"概念边界"的不清晰,元素以 0~1 的程度属于集合(如"雨下得大不大"),由扎德的模糊集合与模糊推理处理。
某病患病率 1%,检测灵敏度 95%、假阳性率 5%,求检测阳性者真正患病的概率。
P(H|E) = (0.95×0.01) / (0.95×0.01 + 0.05×0.99) = 0.0095 / 0.059 ≈ 0.161(约 16.1%)。即使检测看起来"很准",由于患病率低,阳性者中绝大多数仍是假阳性。
在 MYCIN 的 CF 模型中,规则 IF E THEN H (CF=0.7),证据 CF(E)=0.8,求 CF(H);若另有一条独立规则给出 CF=0.3,合成后是多少?
第一条规则传递:CF1 = 0.7×0.8 = 0.56。两条同号结论合成:CF = 0.56 + 0.3 − 0.56×0.3 = 0.692。
用自己的话描述 Mamdani 模糊推理的完整过程。
① 把精确输入经隶属函数模糊化,得到各语言值的隶属度;② 按规则前件用 min(AND)、max(OR)求每条规则的触发强度 w;③ 用 w 对后件隶属函数削顶(min 蕴含);④ 将各规则输出聚合(max 取并);⑤ 用重心法等方法把聚合模糊集去模糊化,得到精确输出。