📑 本页目录(点开跳转)
16 · 不确定性下的推理
⏱ 35 分钟 | ⭐ 逻辑的世界只有真和假,可现实里最有用的那个词是「多半」
🎯 一句话
规则已知、但世界只看得见一部分的时候,纯逻辑要么不敢开口,要么吐出一个长得没法用的「或」;概率就是为这种情况准备的语言。
前面十几章里 agent 的世界模型是一组事实,从这一章起它变成一组概率:观察到新东西不再是「加一条事实」,而是把这些数往上或往下调。
🕳 一、前面那套在哪里卡住
回到 Wumpus World。你站在 (1,1),往右走一格闻到微风,往上走一格也闻到微风。微风的意思是相邻某格有坑。纯逻辑能给你的最强结论是:
$$\text{Pit}_{1,3} \lor \text{Pit}_{2,2} \lor \text{Pit}_{3,1}$$
这句话完全正确,而且完全没用 —— 你要决定往哪迈一步,它一个字也没帮上。逻辑推理的两种失败方式,你刚好撞上第二种:
| 失败方式 | 长什么样 |
|---|---|
| 推不出结论 | 信息不足,知识库里没有能用的规则 |
| ⭐ 结论没法用 | 一个又长又真的析取式,每一支都可能,没有哪一支更可能 |
讲义第二个例子更贴近日常。设 $A_t$ = 「起飞前 $t$ 分钟出发去机场」。$A_{30}$ 能赶上飞机吗?纯逻辑只有两条路:① 冒着说假话的风险断言「一定赶得上」,一次爆胎就打脸;② 退成一句做不了决定的话 ——「赶得上,如果桥上不出事故、而且不下雨、而且轮胎不爆、而且……」,前提列不完。$A_{1440}$ 倒是安全,代价是在机场过夜。
出路有两条。默认逻辑 / 非单调逻辑:先假设轮胎没爆,有反证再撤回 —— 麻烦在于「什么假设算合理」「两条默认打架了怎么办」都没好答案。概率:直接给每个动作一个数。
$$P(A_{30}\text{ 准时}) = 0.04,\quad P(A_{90}) = 0.70,\quad P(A_{120}) = 0.95$$
同一套办法用回 Wumpus:假设每格独立有 20% 的概率是坑,两阵微风之后可以算出 $P(\text{Pit}_{1,3}) = 9/29 \approx 0.31$、$P(\text{Pit}_{2,2}) = 25/29 \approx 0.86$ —— 析取式里的三支终于分出了高下,往 (1,3) 走。
⭐ 概率不是在说世界有多随机,而是在说「我知道多少」: 坑要么在 (2,2) 要么不在,这件事本身没有随机性。0.86 描述的是你手上的信息, 不是坑的性质。多闻一格风,这个数就会变。
🎲 二、够用的最小词汇表
样本空间 $\Omega$(骰子的 6 个面),每个 $\omega$ 是一个样本点,$0 \le P(\omega) \le 1$ 且 $\sum_\omega P(\omega) = 1$。事件是 $\Omega$ 的子集,概率是里面样本点相加:$P(\text{点数} < 5) = 4/6 = 2/3$。随机变量是从样本点到取值的函数,$\text{Odd}(3) = \text{true}$,于是 $P(\text{Odd}) = 1/2$。先验是看证据之前的信念,后验是看之后的。
联合分布给所有取值组合各一个数。三个布尔变量 —— $C$ 有蛀牙、$T$ 牙疼、$K$ 探针钩住 —— 就是 8 格,和为 1:
| $T,K$ | $T,\lnot K$ | $\lnot T,K$ | $\lnot T,\lnot K$ | |
|---|---|---|---|---|
| $C$ | .108 | .012 | .072 | .008 |
| $\lnot C$ | .016 | .064 | .144 | .576 |
有了这张表,三个操作就够用:
① 边缘化(求和消元) —— 想去掉哪个变量,就沿着它求和:$P(T) = .108 + .012 + .016 + .064 = 0.2$。
② 条件概率与乘法法则 —— 条件概率就是「把分母换成 $B$ 这一块」:
$$P(A \mid B) = \frac{P(A \land B)}{P(B)} \quad\Longleftrightarrow\quad P(A \land B) = P(A \mid B)\,P(B)$$
代进去:$P(\lnot C \mid T) = (.016 + .064)/0.2 = 0.4$。
③ 归一化 —— 算 $P(C \mid T)$ 和 $P(\lnot C \mid T)$ 时分母是同一个 $P(T)$,所以先算两个分子再让它们和为 1 就够了:$0.12 : 0.08 \to 0.6 : 0.4$。⭐ 这招后面天天用 —— 分母往往是最难算的那项,能绕就绕。
乘法法则连用就是链式法则:$P(A,B,C,D) = P(A \mid B,C,D)\,P(B \mid C,D)\,P(C \mid D)\,P(D)$。下一章整个贝叶斯网都建在它上面。
🔄 三、贝叶斯定理:把因果方向翻成诊断方向
$P(a \land b)$ 可以从两边拆:$P(a \mid b)P(b) = P(b \mid a)P(a)$,两边同除 $P(b)$ 就得到
$$P(a \mid b) = \frac{P(b \mid a)\,P(a)}{P(b)} \qquad\Longleftrightarrow\qquad \textbf{后验} = \frac{\textbf{似然} \times \textbf{先验}}{\textbf{证据}}$$
把 $a$ 读成「因」、$b$ 读成「果」,它就是从观察到的结果反推原因的公式。
⭐ 它为什么值一个名字:你想知道的永远是诊断方向(看到这个症状,是什么病), 能可靠收集到的永远是因果方向(得了这个病,多大比例会有这个症状)。 因果方向的数由机理决定、跨人群稳定,诊断方向的数换个人群就变。 贝叶斯定理就是两个方向之间的兑换公式。
🩺 四、完整手算:一次筛查阳性意味着什么
题目(讲义原题):某种癌症的人群发生率是 1%,检测灵敏度 98%(有病的人 98% 测出阳性)、特异度 97%(没病的人 97% 测出阴性)。某人测出阳性,他得癌的概率是多少?
记 $A$ = 有癌、$+$ = 检测阳性。已知 $P(A) = 0.01$、$P(+ \mid A) = 0.98$、$P(- \mid \lnot A) = 0.97$,于是 $P(+ \mid \lnot A) = 0.03$。换成 10000 个人来数更好懂:
| 人数 | 阳性 | 阴性 | |
|---|---|---|---|
| 有癌(1%) | 100 | 98 | 2 |
| 没癌(99%) | 9900 | 297 | 9603 |
| 合计 | 10000 | 395 | 9605 |
阳性一共 395 人,其中真有癌的只有 98 人:$98 / 395 = \mathbf{24.8\%}$。写成公式是同一件事:
$$P(A \mid +) = \frac{0.98 \times 0.01}{0.98 \times 0.01 + 0.03 \times 0.99} = \frac{0.0098}{0.0395} = 0.248$$
(讲义把它约成 $\frac{0.01}{0.01+0.03} = \frac14$,那是把 0.98、0.99 都当 1 的近似;精确值 24.8%。)
⭐ 冲击点在这里:检测准确率高达 97–98%,可阳性结果里四份有三份是假的。原因一句话 —— 健康人基数太大:假阳性 $99\% \times 3\% = 2.97\%$,是真阳性 $1\% \times 98\% = 0.98\%$ 的三倍。
💀 基础率谬误(base rate fallacy):多数人(包括医生)会答「97% 左右」,因为他们把 $P(+ \mid A)$ 当成了 $P(A \mid +)$ —— 条件读反了,先验被完全忽略。代价有多大?讲义第二题:乳腺癌基础率 0.02%,敏感度 85%、特异度 95%,
$$P(A \mid +) = \frac{0.85 \times 0.0002}{0.85 \times 0.0002 + 0.05 \times 0.9998} = \frac{0.00017}{0.05016} = \mathbf{0.34\%}$$
⭐ 先验从 1% 换成 0.02%,后验就从 24.8% 掉到 0.34% —— 同一份「阳性」报告,含金量差 73 倍,差别全在先验。 这就是为什么全民普筛和高危人群筛查是两回事:换了人群,同一台机器给的结论就换了含义。
🧵 五、条件独立:把指数压回线性
联合分布能回答一切问题,但有个致命缺点:$n$ 个布尔变量要 $2^n$ 个格子。20 个变量就是一百万个数 —— 存不下是小事,这些数你从哪里来?
独立是最省事的情况:$P(A \mid B) = P(A)$,等价于 $P(A,B) = P(A)P(B)$。天气和蛀牙就是,$P(C \mid \text{晴}) = \frac{0.144}{0.144 + 0.576} = 0.2 = P(C)$ —— 知道今天晴,对「有没有蛀牙」一点信息都不提供。于是加上天气(4 个取值)的 $2\times2\times2\times4 = 32$ 项大表,可以拆成 $8 + 4 = 12$ 项两张小表。
可惜完全独立太罕见。条件独立才是真正管用的那个:
⭐ 有蛀牙时探针钩住的概率是 0.9,没蛀牙时是 0.2,跟疼不疼完全无关。 写成式子:$P(K \mid T, C) = P(K \mid C)$。一旦知道有没有蛀牙, 牙疼对探针就再没有新内容 —— 它俩共同的原因被挡住了。
代进链式法则:$P(C,T,K) = P(C)\,P(T \mid C)\,P(K \mid C)$。
账:8 格联合表有 $8-1 = 7$ 个自由参数,拆开后是 $1 + 2 + 2 = 5$ 个。推广开来就是朴素贝叶斯(一个原因 $C$,$n$ 个条件独立的结果 $E_i$):
$$P(C, E_1, \dots, E_n) = P(C) \prod_{i} P(E_i \mid C)$$
⭐⭐ 参数从 $2^{n+1}-1$ 掉到 $2n+1$ —— 指数变线性。 这就是下一章的全部动机:贝叶斯网络无非是把「哪些变量在给定谁之后互不相干」画成一张图。
🎯 六、光有概率还不够:决策论一句话
$P(A_{120}) = 0.95$、$P(A_{1440}) = 0.9999$,该选哪个?概率本身答不了 —— 它取决于「误机」和「在机场过夜」在你心里各值多少分。$\textbf{决策论} = \textbf{概率论} + \textbf{效用理论}$,动作按期望效用挑:$a^* = \arg\max_a \sum_s P(s \mid a)\,U(s)$。
「遇到随机就算期望」听着理所当然,其实是一条需要证明的结论。
🔗 这一章连到哪里
| 去哪 | 为什么 |
|---|---|
| 17 · 贝叶斯网络 | 本章那笔账(指数 → 线性)的正式版本:把条件独立画成一张图,31 个数压到 10 个 |
| 博弈论与集体决策 08 · 不确定性与期望效用 | 「算期望」凭什么合法?那一章用 von Neumann–Morgenstern 定理证明:只要偏好满足理性 + 连续性 + 独立性,比较随机结果就必然等价于比较期望效用 |
| 机器学习的数学原理 01 · 最大似然 | 本章的概率都是给定的。那些数从哪来?从数据里估 —— MLE 是最常用的那把尺子 |
| 机器学习的数学原理 02 · MAP 与正则化的真身 | 贝叶斯定理用在参数上会怎样:先验 × 似然 = 后验,而那个先验项正是正则化的真身 |
| 机器学习的数学原理 01b · KL 散度 | 两个概率分布差多远要用 KL 量,讲近似推理时绕不开 |
✅ 检查点
- Wumpus World 里纯逻辑推出的 $\text{Pit}_{1,3} \lor \text{Pit}_{2,2} \lor \text{Pit}_{3,1}$ 哪里不够用?
- 机场那个例子里,「纯逻辑的两条死路」分别是什么?
- 用那张 8 格联合分布表算 $P(T)$ 和 $P(\lnot C \mid T)$,并说明你用了哪两个操作。
- 贝叶斯定理为什么值钱?「因果方向」和「诊断方向」哪个的数更好收集、更稳定?
- 癌症筛查题里,为什么灵敏度 98% 却只得到 24.8% 的后验?
- 接着算:某照明厂 60% 的灯泡在 A 厂造、40% 在 B 厂造;A 厂 1% 次品,B 厂 2% 次品。随手拿到一个次品,它来自 A 厂的概率是多少?
- 「独立」和「条件独立」差在哪?条件独立把牙齿这个例子的自由参数从几个降到了几个?
👀 答案
- 它正确但没用:三支都可能,没有哪一支更可能,而 agent 现在就得迈一步。逻辑只有真/假两档,装不下「多半」。
- ① 冒着说假话的风险断言「$A_{30}$ 一定赶得上」;② 退成一句加满前提、做不了决定的话。$A_{1440}$ 虽安全但要在机场过夜。
- 边缘化:$P(T) = .108 + .012 + .016 + .064 = \mathbf{0.2}$;条件概率定义:$P(\lnot C \mid T) = 0.08/0.2 = \mathbf{0.4}$。
- 它把能测的方向翻成想知道的方向。因果方向由机理决定、跨人群稳定;诊断方向先验一变结果就变。
- 健康人基数太大:假阳性 $99\% \times 3\% = 2.97\%$,是真阳性 $1\% \times 98\% = 0.98\%$ 的三倍。395 个阳性里只有 98 个真有病。
- $\dfrac{0.01 \times 0.6}{0.01\times0.6 + 0.02\times0.4} = \dfrac{0.006}{0.014} = \mathbf{3/7 \approx 0.43}$。⭐ A 厂先验大(0.6)但次品率低,两股力量对冲,结果不到一半。
- 独立是 $P(A\mid B) = P(A)$,$B$ 对 $A$ 永远没用(天气 vs 蛀牙);条件独立是 $P(A \mid B, C) = P(A \mid C)$,$B$ 只在不知道 $C$ 时有用。自由参数从 7 降到 5($1+2+2$)。
🛑 可以停在这里
⚡ 走神救援
规则已知但世界只看得见一部分时,纯逻辑不够用,要换成概率。 Wumpus World 里两阵微风只能推出 $\text{Pit}_{1,3} \lor \text{Pit}_{2,2} \lor \text{Pit}_{3,1}$,正确但没法拿它迈步;机场那题里逻辑要么冒险断言「一定赶得上」,要么退成一句挂满前提的废话。概率直接给数:$P(A_{30}) = 0.04$、$P(A_{120}) = 0.95$;用回 Wumpus 则是 $P(\text{Pit}_{1,3}) = 0.31$ 对 $P(\text{Pit}_{2,2}) = 0.86$,三支终于分出高下。⭐ 这些数描述的是你知道多少,不是世界有多随机。
工具箱只有三件:边缘化(沿一个变量求和消掉它,$P(T) = .108+.012+.016+.064 = 0.2$)、乘法法则($P(A\mid B) = P(A\land B)/P(B)$,连用就是链式法则)、归一化(分母一样就先算分子再让和为 1,$0.12:0.08 \to 0.6:0.4$)。贝叶斯定理 $P(a\mid b) = P(b\mid a)P(a)/P(b)$ 的价值是把能测的因果方向翻成想知道的诊断方向。
最该记住的数字是 24.8%:发生率 1%、灵敏度 98%、特异度 97%,阳性之后真有癌的概率只有 24.8% —— 10000 人里 98 个真阳、297 个假阳,假阳性 2.97% 是真阳性 0.98% 的三倍,因为健康人基数太大。先验换成 0.02%(乳腺 X 光,85%/95%)后验掉到 0.34%,同一份报告差 73 倍。这就是基础率谬误:把 $P(+\mid A)$ 读成了 $P(A\mid +)$。
下一章的引子:联合分布 $n$ 个布尔变量要 $2^n$ 格,20 个变量一百万个数,存不下也估不出。条件独立是出路 —— 有蛀牙时探针钩住 0.9、没蛀牙 0.2,跟疼不疼无关,自由参数从 7 降到 5;推广成朴素贝叶斯 $P(C)\prod_i P(E_i\mid C)$,参数从指数变线性。⭐ 贝叶斯网络就是把「谁在给定谁之后互不相干」画成一张图。
下一节 👉 17-贝叶斯网络.md