这一章的核心是:
把自然语言中的事实与关系转换成形式化表达,再依据明确的规则完成推理;进一步用因果图表示随机变量之间的生成结构,并由图判断概率分解与条件独立性。
全章可以串成三条链:
-
命题逻辑
原子命题→复合命题→逻辑等价→推理规则→范式
-
谓词逻辑
个体、谓词、量词→谓词公式→量词推理→自然语言形式化
-
因果推理
关联→干预→反事实→结构因果模型→因果图→D-分离
命题逻辑和谓词逻辑属于符号推理:前提和规则确定后,推理结论也随之确定。老师将它与大语言模型作了对比:大语言模型通常依据条件概率分布进行采样,因此同一问题可能产生不同回答。
本章学习重点:
- 理解符号的含义,尤其要区分 →、⇒、≡;
- 会把蕴含和双向蕴含转换成只含 ¬,∧,∨ 的形式;
- 会使用归结法完成证明或判断命题集是否可满足;
- 会把自然语言翻译成谓词公式;
- 会根据因果图写联合概率分布,并用链、分连、汇连和 D-分离判断条件独立性。
逻辑与推理#
推理(inference)是由一个或若干已知判断,即前提,按照一定规则推出新判断,即结论的过程。
符号主义人工智能的基本思路是:
- 用符号表示概念;
- 用符号之间的关系表示知识;
- 用形式化规则构造证明;
- 根据证明判断结论成立或不成立。
逻辑推理推动了早期**专家系统(expert system)**的发展。专家系统通常存储领域事实、规则和其他知识,再根据用户输入调用推理规则得到结论。
命题逻辑#
**命题逻辑(propositional logic)**是利用形式化规则,对用符号表示的陈述进行推理的系统。
命题、原子命题与复合命题#
**命题(proposition)**是能够确定真假的陈述句。
- 命题的取值只有两种:真(True)或假(False);
- 疑问句、祈使句通常不是命题;
- 含有未确定自由变量、因而无法判断真假的陈述也不是命题。
原子命题#
**原子命题(atomic proposition)**是内部结构不再分析的最简单命题。
例如:
- p:北京是中国的首都;
- q:13 能被 6 整除。
复合命题#
**复合命题(compound proposition)**由若干原子命题通过逻辑联结词构成。
例:判断是否为命题#
| 陈述 | 是否为命题 | 真值及原因 |
|---|
| p:北京是中国的首都 | 是 | 真命题 |
| q:13 能被 6 整除 | 是 | 假命题 |
| r:x<8 | 否 | 真值依赖 x 的取值 |
| s:存在最大的素数 | 是 | 假命题 |
| t:m2≥0 | 是 | 在论域为实数时恒真 |
TIP判断一句话是否为命题,先问:在给定论域和语境下,它现在能否被唯一判断为真或假?
命题联结词#
设 p,q 为命题,常见联结词如下。
| 名称 | 符号 | 形式 | 含义 |
|---|
| 合取(and) | ∧ | p∧q | p 且 q |
| 析取(or) | ∨ | p∨q | p 或 q,这里是相容或 |
| 否定(not) | ¬ | ¬p | 非 p |
| 蕴含(conditional) | → | p→q | 如果 p,那么 q |
| 双向蕴含(bi-conditional) | ↔ | p↔q | p 当且仅当 q |
真值表#
| p | q | ¬p | p∧q | p∨q | p→q | p↔q |
|---|
| F | F | T | F | F | T | T |
| F | T | T | F | T | T | F |
| T | F | F | F | T | F | F |
| T | T | F | T | T | T | T |
其中最容易出错的是蕴含:
p→q 只有在 p 为真而 q 为假时为假,其余三种情况均为真。
蕴含命题为什么在前件为假时为真#
可以从两个角度理解。
角度一:承诺#
p→q 可以理解为一个承诺:
只要 p 发生,我就保证 q 发生。
只有出现“p 已发生,但 q 没发生”时,承诺才被违反。若 p 没发生,就没有证据说明承诺被违反。
角度二:集合包含#
把命题对应的真值集合记作集合,则 p→q 表示:
p⊆q若 p 为假,可把 p 看成空集,而空集是任意集合的子集,因此 p→q 为真。
WARNING“前件为假,所以蕴含为真”是形式逻辑的定义。它不表示前件与后件之间具有现实因果关系。
逻辑等价#
如果两个命题公式在所有真值组合下都具有相同真值,则称它们逻辑等价(logical equivalence),记作:
α≡β常用逻辑等价式如下。
| 名称 | 逻辑等价式 |
|---|
| 合取交换律 | α∧β≡β∧α |
| 析取交换律 | α∨β≡β∨α |
| 合取结合律 | (α∧β)∧γ≡α∧(β∧γ) |
| 析取结合律 | (α∨β)∨γ≡α∨(β∨γ) |
| 德摩根定律 1 | ¬(α∧β)≡¬α∨¬β |
| 德摩根定律 2 | ¬(α∨β)≡¬α∧¬β |
| 蕴含消除 | α→β≡¬α∨β |
| 双向蕴含消除 | α↔β≡(α→β)∧(β→α) |
| 双重否定 | ¬¬α≡α |
| 逆否命题 | α→β≡¬β→¬α |
| 分配律 1 | α∧(β∨γ)≡(α∧β)∨(α∧γ) |
| 分配律 2 | α∨(β∧γ)≡(α∨β)∧(α∨γ) |
蕴含消除#
α→β≡¬α∨β右侧只有在 α 为真、β 为假时为假,恰好与蕴含的真值表一致。
逆否命题#
α→β≡¬α∨β≡β∨¬α≡¬β→¬α
**图片占位符:**插入 PPT 第 10 页的德摩根定律集合图,用于直观展示“交集取补变并集”“并集取补变交集”。
四种符号的区别#
| 符号 | 所在层次 | 含义 |
|---|
| → | 命题公式内部 | 蕴含联结词,“如果……那么……” |
| ↔ | 命题公式内部 | 双向蕴含,“当且仅当” |
| ≡ | 两个公式之间 | 两个公式在所有情况下真值相同 |
| ⇒ | 推理过程 | 由左侧前提推出右侧结论 |
例如:
α→β, α⇒β左侧的 → 是命题的一部分;中间的 ⇒ 表示一次推理。
命题逻辑的推理规则#
假言推理(Modus Ponens)#
α→β, α⇒β与消解(And-Elimination)#
α1∧α2∧⋯∧αn⇒αi与导入(And-Introduction)#
α1,α2,…,αn⇒α1∧α2∧⋯∧αn双重否定消去#
¬¬α⇒α单项归结(Unit Resolution)#
α∨β, ¬β⇒α因为 α∨β 为真,而 β 为假,所以只能由 α 保证析取式为真。
归结(Resolution)#
α∨β, ¬β∨γ⇒α∨γ其中 β 与 ¬β 被消去。
更一般地,若一个析取式中含有 αk,另一个前提能够推出 ¬αk,则可从析取式中消去 αk。
TIP归结法的核心操作是:
- 先消去公式中的 → 和 ↔;
- 找到一对互补文字,如 β 与 ¬β;
- 消去该对文字,保留其余析取项;
- 重复操作,直到得到目标或推出矛盾。
归结法例题#
例 1:证明 γ 成立#
已知:
α∨β,α→γ,β→γ证明:γ。
先消去蕴含:
α→γ≡¬α∨γβ→γ≡¬β∨γ依次归结:
α∨β, ¬α∨γ⇒β∨γβ∨γ, ¬β∨γ⇒γ∨γ≡γ因此 γ 成立。
例 2:证明命题集不可满足#
命题集为:
α∨β,¬α∨β,α∨¬β,¬α∨¬β由前两个公式归结:
α∨β, ¬α∨β⇒β由后两个公式归结:
α∨¬β, ¬α∨¬β⇒¬β于是同时推出 β 和 ¬β,产生矛盾,所以该命题集不可满足。
例 3:证明另一个命题集不可满足#
已知:
α∨γ,¬β∨γ,¬γ∨α,¬α∨β,¬α∨¬γ推理:
α∨γ, ¬γ∨α⇒α¬α∨β, α⇒β¬β∨γ, β⇒γ¬α∨¬γ, γ⇒¬α最终同时得到 α 与 ¬α,所以命题集不可满足。
**范式(normal form)**是命题公式的一种标准表达形式,主要包括析取范式和合取范式。
析取范式(DNF)#
有限个简单合取式构成的析取式:
α1∨α2∨⋯∨αk其中每个 αi 是若干文字的合取。
例如:
(¬p∧q)∨r合取范式(CNF)#
有限个简单析取式构成的合取式:
α1∧α2∧⋯∧αk其中每个 αi 是若干文字的析取。
例如:
(p∨q)∧¬r
- 一个析取范式为假,当且仅当其中每个简单合取式都为假;
- 一个合取范式为真,当且仅当其中每个简单析取式都为真;
- 任一命题公式都存在与其逻辑等价的 DNF 和 CNF;
- DNF 和 CNF 一般都不唯一。
转换流程#
- 消去 → 与 ↔;
- 用德摩根定律把否定推进到原子命题前;
- 用分配律整理成 DNF 或 CNF。
例:求 DNF 与 CNF#
求:
¬(α→β)∨¬γ先消去蕴含:
¬(¬α∨β)∨¬γ用德摩根定律:
(α∧¬β)∨¬γ这已经是析取范式。
再用分配律:
(α∨¬γ)∧(¬β∨¬γ)这就是合取范式。
谓词逻辑#
为什么需要谓词逻辑#
命题逻辑把每个原子命题视为不可拆分的整体,因此无法表达:
- 个体与总体的关系;
- 一般与特殊的关系;
- 个体具有的属性;
- 多个个体之间的关系。
例如苏格拉底三段论:
- 所有人都会死;
- 苏格拉底是人;
- 所以苏格拉底会死。
若把三句话分别记作 α,β,γ,命题逻辑看不到三句话内部共同出现的“人”和“会死”这些结构,无法仅凭 α,β 推出 γ。
谓词逻辑会把原子命题继续拆分成:
- 个体(individual);
- 谓词(predicate);
- 量词(quantifier)。
个体、谓词与个体域#
个体是研究领域中能够独立存在的具体或抽象对象。
例如:
- Richard;
- 北京;
- 中国;
- 某个实数;
- 某个人。
个体变元、个体常项与个体域#
- x,y 等表示个体变元;
- Richard、北京、0.1 等具体取值称为个体常项;
- 个体允许取值的范围称为个体域或论域。
谓词用于刻画个体的属性,或描述多个个体之间的关系,其输出只能为真或假。
- 一元谓词 P(x):描述一个个体的属性;
- 二元谓词 R(x,y):描述两个个体之间的关系;
- n 元谓词 P(x1,…,xn):描述多个个体之间的关系。
例如:
P(x):x<x2Father(x,y):x 是 y 的父亲客观事实的符号化#
-
Richard 是国王:
King(Richard)
-
Lucy 和 Lily 是姐妹:
Sister(Lucy,Lily)
-
北京是中国的首都:
Capital(Beijing,China)
谓词与函数的区别#
函数和谓词都可以接受输入,但输出类型不同。
f:X→Y例如:
f(x)=x+10,f(2)=12输入个体后,函数输出另一个值。
P:X→{True,False}例如:
Car(x):x 是车将“吉普车”代入后,Car(吉普车) 已经成为一个能够判断真假的命题。
函数输出“值”,谓词输出“真假”。
全称量词#
全称量词用 ∀ 表示“一切”“所有”“任意一个”。
(∀x)P(x)表示论域中的所有个体都满足性质 P。
存在量词#
存在量词用 ∃ 表示“存在一个”“至少一个”“某些”。
(∃x)P(x)表示论域中至少存在一个个体满足性质 P。
例:用量词描述事实#
所有国王都是人:
(∀x)(King(x)→Person(x))所有国王都头戴皇冠:
(∀x)(King(x)→HeadOn(Crown,x))其中 HeadOn(Crown,x) 表示 x 头戴皇冠。形式化时要同时找出谓词及其输入对象。
WARNING量词的含义依赖论域。例如 (∃x)(x2=2) 在实数域中为真,在有理数域中为假。
自然语言中的常见量词结构#
这是自然语言形式化时最常用的模板。
所有 A 都是 B#
(∀x)(A(x)→B(x))全称命题通常使用蕴含:只有先满足 A(x),才要求其满足 B(x)。
有些 A 是 B#
(∃x)(A(x)∧B(x))存在命题通常使用合取:需要找到同一个个体,同时满足 A 和 B。
没有 A 是 B#
(∀x)(A(x)→¬B(x))等价地:
¬(∃x)(A(x)∧B(x))并非所有 A 都是 B#
¬(∀x)(A(x)→B(x))等价地:
(∃x)(A(x)∧¬B(x))TIP常见记忆:
- “所有……”常写成 ∀+→;
- “存在……”常写成 ∃+∧。
全称量词与存在量词的等价关系#
量词穿过否定符号时:
- ∀ 与 ∃ 互换;
- 谓词同时取否定。
四个基本关系为:
(∀x)P(x)≡¬(∃x)¬P(x)(∀x)¬P(x)≡¬(∃x)P(x)¬(∀x)P(x)≡(∃x)¬P(x)(∃x)P(x)≡¬(∀x)¬P(x)例如:
“并非所有学生都及格”等价于“至少有一个学生没有及格”。
约束变元、自由变元与作用域#
约束变元#
受到量词约束的变量称为约束变元。
例如:
(∀x)P(x)其中 x 是约束变元。
自由变元#
没有受到任何量词约束的变量称为自由变元。
例如:
P(x)∨Q(y)若前面没有量词,则 x,y 都是自由变元。
量词作用域#
量词只对其作用域中的变量生效。括号能够明确作用域:
(∀x)(P(x)→Q(x))一般不加括号时,量词只约束其后的第一个完整公式,因此书写时应尽量加括号。
若 B 中不含自由变量 x,则:
(∀x)(A(x)∨B)≡(∀x)A(x)∨B(∀x)(A(x)∧B)≡(∀x)A(x)∧B(∃x)(A(x)∨B)≡(∃x)A(x)∨B(∃x)(A(x)∧B)≡(∃x)A(x)∧B原因是 B 不依赖 x,所以量词是否包住 B 不改变 B 的真假。
量词的分配律#
成立的分配律#
全称量词对合取满足分配律:
(∀x)(A(x)∧B(x))≡(∀x)A(x)∧(∀x)B(x)存在量词对析取满足分配律:
(∃x)(A(x)∨B(x))≡(∃x)A(x)∨(∃x)B(x)一般不成立的分配律#
(∀x)(A(x)∨B(x))≡(∀x)A(x)∨(∀x)B(x)(∃x)(A(x)∧B(x))≡(∃x)A(x)∧(∃x)B(x)令论域为 {1,2},并设:
| x | A(x) | B(x) |
|---|
| 1 | T | F |
| 2 | F | T |
对于全称量词:
- 对每个 x,A(x)∨B(x) 都为真,所以 (∀x)(A(x)∨B(x)) 为真;
- (∀x)A(x) 为假,(∀x)B(x) 也为假,所以右侧为假。
对于存在量词:
- 没有同一个 x 同时满足 A(x) 与 B(x),所以 (∃x)(A(x)∧B(x)) 为假;
- 存在某个 x 满足 A,也存在某个可能不同的 x 满足 B,所以右侧为真。
这说明“存在一个人同时满足两个条件”与“分别存在人满足两个条件”含义不同。
多个量词的次序#
相同类型的量词可以交换次序:
(∀x)(∀y)A(x,y)≡(∀y)(∀x)A(x,y)(∃x)(∃y)A(x,y)≡(∃y)(∃x)A(x,y)不同类型的量词一般不能交换:
(∀x)(∃y)A(x,y)≡(∃y)(∀x)A(x,y)在论域非空时,PPT 还给出了以下常用的单向推理关系:
(∀x)(∀y)A(x,y)⇒(∃y)(∀x)A(x,y)(∀x)(∀y)A(x,y)⇒(∃x)(∀y)A(x,y)(∃y)(∀x)A(x,y)⇒(∀x)(∃y)A(x,y)(∃x)(∀y)A(x,y)⇒(∀y)(∃x)A(x,y)(∀x)(∃y)A(x,y)⇒(∃y)(∃x)A(x,y)(∀y)(∃x)A(x,y)⇒(∃x)(∃y)A(x,y)这些式子大多只能沿箭头方向使用,不能随意改成双向等价。
例如:
(∀x)(∃y)Great(y,x)表示:对每个 x,都可以找到一个大于它的 y;不同的 x 可以对应不同的 y。
而:
(∃y)(∀x)Great(y,x)表示:存在同一个固定的 y,它大于所有 x。两者显然不同。
项、原子公式与合式公式#
项(term)#
项是描述对象的逻辑表达式,递归定义为:
- 常量符号和变量符号是项;
- 若 f 是 n 元函数符号,t1,…,tn 是项,则 f(t1,…,tn) 也是项;
- 有限次使用上述规则得到的表达式是项。
原子谓词公式#
若 P 是 n 元谓词,t1,…,tn 是项,则:
P(t1,t2,…,tn)称为原子谓词公式。
合式公式由以下规则生成:
- 命题常项、命题变项、原子谓词公式是合式公式;
- 若 A 是合式公式,则 ¬A 也是;
- 若 A,B 是合式公式,则 A∧B、A∨B、A→B、A↔B 也是;
- 若 A(x) 是合式公式,则 (∀x)A(x) 和 (∃x)A(x) 也是;
- 只有有限次使用上述规则构成的表达式才是合式公式。
谓词逻辑推理规则#
设 A(x) 是谓词公式,x,y 是变元,a 是常量符号。
全称量词消去(UI)#
(∀x)A(x)⇒A(y)既然所有个体都满足 A,任取一个个体也满足 A。
全称量词引入(UG)#
A(y)⇒(∀x)A(x)这里的 y 必须代表任意个体,不能带有只对某个特殊对象成立的额外假设。
存在量词消去(EI)#
(∃x)A(x)⇒A(a)引入一个新的常量 a,表示某个满足 A 的对象。
存在量词引入(EG)#
A(a)⇒(∃x)A(x)已知某个具体对象满足 A,就能推出至少存在一个对象满足 A。
谓词逻辑推理例题#
例 1:证明蕴含关系的传递性#
已知:
(∀x)(P(x)→Q(x))(∀x)(Q(x)→R(x))证明:
(∀x)(P(x)→R(x))推理:
-
全称量词消去:
P(y)→Q(y)
-
全称量词消去:
Q(y)→R(y)
-
消去蕴含:
¬P(y)∨Q(y)
¬Q(y)∨R(y)
-
对 Q(y) 与 ¬Q(y) 归结:
¬P(y)∨R(y)
-
恢复为蕴含:
P(y)→R(y)
-
因 y 是任意个体,进行全称量词引入:
(∀x)(P(x)→R(x))
例 2:由存在条件推出新的存在结论#
已知:
(∀x)(F(x)→(G(x)∧H(x)))(∃x)(F(x)∧P(x))证明:
(∃x)(P(x)∧H(x))推理:
-
对全称命题实例化:
F(a)→(G(a)∧H(a))
-
对存在命题实例化:
F(a)∧P(a)
-
与消解得到:
F(a),P(a)
-
由假言推理:
G(a)∧H(a)
-
与消解得到 H(a);再与 P(a) 合取:
P(a)∧H(a)
-
存在量词引入:
(∃x)(P(x)∧H(x))
自然语言的形式化#
例:若干事实的谓词表示#
-
Tom 不仅喜欢踢足球,还喜欢打篮球:
Like(Tom,Football)∧Like(Tom,Basketball)
-
Tom 的所有同学都喜欢他:
(∀x)(Classmate(Tom,x)→Like(x,Tom))
-
不是所有男生都喜欢打篮球:
¬(∀x)(Boy(x)→Like(x,Basketball))
等价于:
(∃x)(Boy(x)∧¬Like(x,Basketball))
-
一个人是华侨,当且仅当他在国外定居且具有中国国籍:
(∀x)[OverseasChinese(x)↔(Overseas(x)∧Chinese(x))]
-
男生都爱看世界杯:
(∀x)(Boy(x)→Like(x,WorldCup))
例:每一个奇数都存在一个大于它的奇数#
定义:
Odd(x):x 是奇数Great(y,x):y>x形式化为:
(∀x)[Odd(x)→(∃y)(Odd(y)∧Great(y,x))]注意 ∀x∃y 的次序:对不同的 x,可以选择不同的 y。
例:苏格拉底三段论#
定义:
F(x):x 是人G(x):x 会死a 表示苏格拉底。
前提:
(∀x)(F(x)→G(x)),F(a)由全称量词消去:
F(a)→G(a)再由假言推理:
G(a)即苏格拉底会死。
例:飞机问题#
前提:
- 每架飞机或者停在地面,或者飞在天空;
- 并非每架飞机都飞在天空。
证明:有些飞机停在地面。
定义:
Plane(x):x 是飞机OnGround(x):x 停在地面InSky(x):x 飞在天空形式化前提:
(∀x)[Plane(x)→(OnGround(x)∨InSky(x))]¬(∀x)(Plane(x)→InSky(x))目标:
(∃x)(Plane(x)∧OnGround(x))证明:
由第二个前提:
¬(∀x)(Plane(x)→InSky(x))≡(∃x)¬(Plane(x)→InSky(x))≡(∃x)¬(¬Plane(x)∨InSky(x))≡(∃x)(Plane(x)∧¬InSky(x))存在量词消去,取某个 a:
Plane(a),¬InSky(a)由第一个前提进行全称量词消去:
Plane(a)→(OnGround(a)∨InSky(a))由 Plane(a) 和假言推理:
OnGround(a)∨InSky(a)再与 ¬InSky(a) 作单项归结:
OnGround(a)因此:
Plane(a)∧OnGround(a)最后使用存在量词引入:
(∃x)(Plane(x)∧OnGround(x))证毕。
因果推理#
相关关系不等于因果关系#
因果关系描述现象之间“引起”与“被引起”的关系:
- 引起某种现象的因素称为原因;
- 被引起的现象称为结果。
**因果推理(causal inference)**是在考虑数据生成过程的基础上,由观测结果追溯原因,或预测主动改变某个因素后会产生什么结果。
两个变量具有统计相关性,并不自动意味着其中一个导致另一个。
例如:
- 公鸡打鸣与太阳升起高度相关;
- 但公鸡打鸣并不是太阳升起的原因。
传统统计推断常研究:
P(B∣A)即观察到 A 后,B 的条件分布怎样。因果推理还会进一步问:
如果人为改变 A,B 的分布会怎样变化?
辛普森悖论#
**辛普森悖论(Simpson’s paradox)**是指:总体数据中呈现的一种关系,在按照某个变量分组后可能反转。
课堂中的新药例子如下。
总体结果#
| 不用药 | 用药 |
|---|
| 恢复人数 | 289 | 273 |
| 总人数 | 350 | 350 |
| 恢复率 | 83% | 78% |
总体看,不用药恢复率更高。
按性别分组#
| 不用药男性 | 不用药女性 | 用药男性 | 用药女性 |
|---|
| 恢复人数 | 234 | 55 | 81 | 192 |
| 总人数 | 270 | 80 | 87 | 263 |
| 恢复率 | 87% | 69% | 93% | 73% |
分组后:
- 男性中,用药组恢复率 93%>87%;
- 女性中,用药组恢复率 73%>69%。
出现反转的关键是:
- 男女性别本身与恢复率相关;
- 用药组与不用药组的性别构成严重不平衡;
- 性别成为影响“是否用药”和“是否恢复”关系的混杂因素。
因此,仅比较总体条件概率可能掩盖数据生成过程中的结构。
另一个经典例子是 1973 年加州大学伯克利分校的研究生录取数据:总体上男性录取率高于女性,但在若干主要院系内部比较时,女性录取率并不低。原因之一是不同性别申请院系的难度分布不同。
**图片占位符:**插入 PPT 第 45 页的药物恢复率表,以及第 47 页的伯克利录取率表,用于展示辛普森悖论的总体—分组反转。
因果推理的三个层次#
Judea Pearl 将问题区分为三个层次。
关联(Association)#
问题形式:
观察到 A 时,Y 会怎样?
数学形式:
P(Y∣A)它能够直接由观测数据中的联合分布计算。
干预(Intervention)#
问题形式:
主动把 A 设置为某个值时,Y 会怎样?
数学形式:
P(Y∣do(A=a))这里的 do(A=a) 表示人为干预,不等同于被动观察到 A=a。
反事实(Counterfactual)#
问题形式:
某件事已经发生;在同一对象、同一背景下,若当时采取另一种行动,结果会怎样?
它需要同时考虑已经观察到的事实和没有发生的替代情形。
三者的区别是:
| 层次 | 典型问题 | 信息要求 |
|---|
| 关联 | 看到了什么,会伴随什么 | 观测分布 |
| 干预 | 主动改变什么,会导致什么 | 因果结构 |
| 反事实 | 同一对象当时换一种做法会怎样 | 更完整的个体级因果模型 |
结构因果模型#
课程材料将因果模型的发展联系到两条重要路线:Neyman—Rubin 的潜在结果思想,以及 Judea Pearl 提出的因果图与结构因果模型。前者强调同一对象在不同处理下的潜在结果,后者用结构方程和有向图显式描述数据生成机制。
**结构因果模型(structural causal model, SCM)**由三部分组成:
M=⟨U,V,F⟩外生变量 U#
外生变量(exogenous variables)由模型外部决定,模型不解释它们如何产生。
它们通常表示:
- 未建模的背景条件;
- 外部扰动;
- 噪声;
- 个体差异。
内生变量 V#
内生变量(endogenous variables)由模型中的结构函数决定。
结构函数 F#
对每个内生变量 Vi,都有一个赋值函数:
Vi=fi(PAi,Ui)其中 PAi 表示会直接影响 Vi 的其他内生变量。
如果变量 X 出现在 Y 的结构函数 fY 中,则 X 是 Y 的直接原因。
例:治疗、肝脏功能与水污染#
设:
- X:治疗方案;
- Y:肝脏功能;
- Z:水污染。
若认为治疗方案和水污染都会影响肝脏功能,可用图表示为:
X→Y←Z其中水污染可能作为模型外部背景因素进入 Y 的结构方程。
例:商品销量#
设:
- X:商品与其他商品的价格差;
- Y:广告费;
- Z:商品销量。
一个完全指定的结构方程可以写为:
Z=2X+5Y因此 X 和 Y 都是 Z 的直接原因,因果图为:
X→Z←Y若具体函数未知,可写成部分指定模型:
X=fX(U1)Y=fY(U2)Z=fZ(X,Y,U3)其中 U1,U2,U3 表示未建模的外部因素。
TIP老师对这一部分的要求以“理解模型组成与箭头含义”为主;后面的概率分解和独立性判断更需要熟练掌握。
因果图与有向无环图#
因果图(causal diagram)通常用**有向无环图(directed acyclic graph, DAG)**表示。
- 节点表示变量;
- 有向边 X→Y 表示 X 是 Y 的直接原因;
- 图中不存在沿箭头方向出发又回到原节点的有向环。
相关术语:
- 若 X→Y,则 X 是 Y 的父节点,Y 是 X 的子节点;
- 若存在一条从 X 指向 Y 的有向路径,则 X 是 Y 的祖先,Y 是 X 的后代;
- 直接原因对应父节点;
- 潜在原因对应祖先节点。
当 DAG 被用于表示随机变量的联合分布时,常称为贝叶斯网络(Bayesian network)。
**图片占位符:**插入 PPT 第 54—55 页的商品销量结构因果模型图,展示 X,Y 对 Z 的直接作用,以及外生变量 Ui 的位置。
因果图中的联合概率分解#
在课程采用的因果马尔可夫假设下,对于含有 d 个变量的 DAG,联合分布可以分解为每个节点在其父节点条件下的条件概率之积:
P(x1,x2,…,xd)=j=1∏dP(xj∣xpa(j))其中 pa(j) 表示节点 Xj 的父节点集合。
写法步骤#
- 对图中每个节点写一个概率因子;
- 若节点没有父节点,写边缘分布 P(X);
- 若节点有父节点,写 P(X∣Parents(X));
- 把所有因子相乘。
例:气候、产量和价格#
因果图:
X→Y→Z其中:
- X:气候好;
- Y:水果产量高;
- Z:水果价格低。
联合概率分解为:
P(X,Y,Z)=P(X)P(Y∣X)P(Z∣Y)若:
P(X)=0.5,P(Y∣X)=0.9,P(Z∣Y)=0.5则:
P(X,Y,Z)=0.5×0.9×0.5=0.225例:复杂 DAG#
PPT 第 58 页的图可分解为:
=P(X1,X2,X3,X4,X5,X6,Xi,Xj)P(X2)P(X3)P(X1∣X2,X3,Xi)P(X4∣X2)P(X5∣X3)×P(X6∣Xi)P(Xi∣X4)P(Xj∣X1,X5,X6)
**图片占位符:**插入 PPT 第 58 页的复杂 DAG。读图时逐个寻找父节点,再写对应的条件概率因子。
图结构为什么能够降低参数量#
没有结构时,若有 100 个离散随机变量,每个变量有 4 种取值,则完整联合分布共有:
4100种可能状态。概率和为 1,因此需要:
4100−1个自由参数。
若它们构成马尔可夫链:
X1→X2→⋯→X100则:
P(X1,…,X100)=P(X1)i=2∏100P(Xi∣Xi−1)
- P(X1) 需要 4−1=3 个参数;
- 对每个 Xi−1 的 4 种取值,P(Xi∣Xi−1) 各需 3 个参数,所以一个条件概率表需要 4×3=12 个参数;
- 共 99 个条件概率表。
总参数量为:
3+99×12=1191这说明图结构通过条件独立性,能够把极高维的联合分布压缩为若干局部条件分布。
链结构#
链结构为:
X→Z→Y其联合分布为:
P(X,Y,Z)=P(X)P(Z∣X)P(Y∣Z)给定 Z:
P(X,Y∣Z)=P(Z)P(X,Y,Z)=P(Z)P(X)P(Z∣X)P(Y∣Z)=P(X∣Z)P(Y∣Z)因此:
X⊥Y∣Z即在给定中间节点 Z 后,链两端条件独立。
直观解释:X 对 Y 的影响必须经过 Z 传递;固定 Z 后,这条传递路径被阻断。
分连结构#
分连结构,又称 fork:
X←Z→YZ 是 X 与 Y 的共同原因。
联合分布为:
P(X,Y,Z)=P(Z)P(X∣Z)P(Y∣Z)给定 Z:
P(X,Y∣Z)=P(X∣Z)P(Y∣Z)因此:
X⊥Y∣Z直观解释:未给定 Z 时,X 和 Y 会因为共同原因而相关;固定共同原因后,这种相关性被消除。
汇连结构#
汇连结构,又称 collider:
X→Z←YZ 是 X 和 Y 的共同结果。
若图中只有这条路径,联合分布为:
P(X,Y,Z)=P(X)P(Y)P(Z∣X,Y)因此在没有给定 Z 时:
P(X,Y)=P(X)P(Y)即:
X⊥Y但给定 Z 后一般有:
P(X,Y∣Z)=P(X∣Z)P(Y∣Z)因此 X 与 Y 会变得相关。
同样地,若给定 Z 的任一后代,汇连路径也会被打开。
这种现象称为解释消除(explaining away):已经知道共同结果发生后,一个原因越可能,另一个原因往往越不需要。
WARNING三种基本结构的规律:
| 结构 | 默认状态 | 给定中间节点后 |
|---|
| 链 X→Z→Y | 路径通常打开 | 路径关闭 |
| 分连 X←Z→Y | 路径通常打开 | 路径关闭 |
| 汇连 X→Z←Y | 路径关闭 | 路径打开 |
**图片占位符:**插入 PPT 第 59、62、65 页的链、分连、汇连三种结构图,建议并排放置。
D-分离#
**D-分离(d-separation)**用于根据 DAG 判断任意两个节点在给定某些变量时是否条件独立。
第一步:找路径#
这里的路径先忽略箭头方向,只判断两个节点能否通过相邻边连接。
第二步:判断路径是否被限定集阻塞#
设限定集为 Z。一条路径被 Z 阻塞,当且仅当路径中出现以下任一情况。
情况 1:链或分连的中间节点被给定#
路径中含有:
A→B→C或:
A←B→C且中间节点:
B∈Z则该路径被阻塞。
情况 2:汇连节点及其后代都没有被给定#
路径中含有:
A→B←C且:
B∈/Z同时 B 的任何后代也都不在 Z 中,则该路径被阻塞。
换句话说:
- 对链与分连,给定中间节点会关闭路径;
- 对汇连,不给定汇连节点及其后代时路径关闭,给定后路径打开。
第三步:检查所有路径#
TIPD-分离做题流程:
- 写出限定集;
- 列出目标节点之间的所有无向路径;
- 对每条路径逐个检查链、分连和汇连;
- 所有路径都阻塞,才能判定条件独立。
D-分离例题#
考虑 PPT 第 69 页的因果图,分析 X 与 T 的关系。
主要路径为:
X→Z←Y→S→T且 Z→W,所以 W 是汇连节点 Z 的后代。
限定集为空集 ∅#
路径中包含汇连结构:
X→Z←YZ 及其后代均未被给定,因此该路径被 Z 阻塞。
所以:
X⊥T限定集为 {W}#
W 是汇连节点 Z 的后代。给定 W 会打开 Z 处的汇连路径。
路径上的其他中间节点没有阻断该路径,因此:
X⊥T∣W即给定 W 后,X 与 T 相关。
限定集为 {W,Y}#
给定 W 虽然打开了 Z 处的汇连,但路径中还包含分连结构:
Z←Y→S且 Y 已被给定,因此整条路径被 Y 阻塞。
所以:
X⊥T∣W,Y
**图片占位符:**插入 PPT 第 69 页的 D-分离例题图,标出路径 X→Z←Y→S→T 以及 Z 的后代 W。
本章总结#
| 模块 | 解决的问题 | 核心工具 |
|---|
| 命题逻辑 | 整个陈述之间如何进行真假推理 | 真值表、逻辑等价、归结法、范式 |
| 谓词逻辑 | 如何表达个体、属性、关系和数量范围 | 谓词、量词、合式公式、量词推理 |
| 因果推理 | 如何表示数据生成机制并判断条件独立 | SCM、DAG、概率分解、D-分离 |
最重要的对应关系:
-
蕴含消除
p→q≡¬p∨q
-
量词否定
¬∀xP(x)≡∃x¬P(x)
-
DAG 概率分解
P(x1,…,xd)=j∏P(xj∣xpa(j))
-
三种基本图结构
- 链:给定中间节点后独立;
- 分连:给定共同原因后独立;
- 汇连:默认独立,给定共同结果或其后代后相关。
-
D-分离
两个节点之间的每一条路径都被限定集阻塞,才能推出条件独立。