1988 - Pearl 貝葉斯網路(Probabilistic Reasoning in Intelligent Systems)#
案件摘要#
1988 年 Judea Pearl 出版《Probabilistic Reasoning in Intelligent Systems》,提出貝葉斯網路,用「有向無環圖 + 條件機率表」馴服了 AI 中的不確定性。這本書不只奠定了機率圖模型,更在 2011 年為 Pearl 贏得圖靈獎,並開啟了因果推論(do-calculus)的新學科。
前因 -- 為什麼會有這個案子#
- 早期 AI(1960–70 年代)的專家系統依賴符號邏輯(規則、IF-THEN),面對現實世界的不確定性束手無策。
- 當時主流的處理方式:
- MYCIN 的確定因子(certainty factors):經驗性規則,缺乏機率基礎,會產生矛盾推論。
- 模糊邏輯(fuzzy logic):處理「程度」而非「隨機性」,無法統一進機率架構。
- 完整的聯合機率表需要 \(2^n - 1\) 個參數( \(n\) 個二元變數),指數爆炸使機率方法在大型系統中不可行。
- 統計學家雖有機率理論,但缺乏「如何在圖結構上高效推論」的工具;AI 學家雖有演算法,卻缺乏機率基礎——Pearl 在兩個世界的交會處破案。
線索與推理 -- 數學式、程式、理論#
貝葉斯網路:DAG + 條件機率表#
貝葉斯網路是一個有向無環圖(DAG) \(G = (V, E)\) ,每個節點 \(X\) 有一個條件機率表:
聯合分布鏈式分解:
若每個節點的父母很少(如 \(\le k\) 個),參數量從 \(2^n - 1\) 降為 \(O(n \cdot 2^k)\) ——這就是打敗指數爆炸的關鍵。DAG 的結構編碼了條件獨立性,是參數節省的來源。
d-分離(d-separation)與條件獨立性#
給定集合 \(Z\) ,節點 \(X\) 與 \(Y\) 之間的資訊流被「阻斷」的判定規則:
- 鏈(chain) \(X \to M \to Y\) :若 \(M \in Z\) ,則阻斷。
- 分岔(fork) \(X \leftarrow M \to Y\) :若 \(M \in Z\) ,則阻斷。
- 對撞(collider) \(X \to M \leftarrow Y\) :若 \(M \notin Z\) (且其後代都不在 \(Z\) 中),則阻斷;觀察對撞節點反而打開通路(explaining away 效應)。
若所有 \(X\) - \(Y\) 路徑都被阻斷,稱 \(X \perp Y \mid Z\) (d-分離)。d-分離定理:圖上的 d-分離蘊含機率上的條件獨立(在 faithful 分布下反之亦然)。
信賴傳播(belief propagation)#
Pearl 提出訊息傳遞演算法:在樹狀結構上,每個節點與鄰居交換訊息 \(\lambda\) (證據向上)、 \(\pi\) (因果向下),可在 \(O(n)\) 時間內算出每個節點的後驗。在一般有環圖上,迴圈展開或 junction tree 演算法可處理。
訊息更新:
因果推論的誕生:do-calculus#
Pearl 的更深洞察:觀察 \(X=x\) 與干預 \(do(X=x)\) 是兩回事。
- 觀察: \(P(Y \mid X = x)\) ——被動看見。
- 干預: \(P(Y \mid do(X = x))\) ——主動改變世界,截斷所有指向 \(X\) 的因果箭頭。
do-演算三條公理(Pearl 1995)允許在因果圖上把干預表達式化約為可從觀察資料估計的形式:
- 插入/刪除觀察: \(P(Y \mid do(Z), X, W) = P(Y \mid do(Z), W)\) 若 \(Y \perp X \mid do(Z), W\) 。
- 動作/觀察交換: \(P(Y \mid do(Z), do(X), W) = P(Y \mid do(Z), X, W)\) 若 \(Z\) 阻斷所有 \(X \to Y\) 的後門路徑。
- 插入/刪除動作: \(P(Y \mid do(Z), do(X), W) = P(Y \mid do(Z), W)\) 若沒有 \(X \to Y\) 的因果路徑。
對照:傳統的後門調整公式
( \(z\) 遍歷滿足後門準則的協變數集合)。這是現代因果推論(含反事實、中介分析)的基石。
Python 實作:雨–灑水器–草地貝葉斯網路#
經典案例:下雨(R) → 灑水器(S)(下雨時灑水器關閉,為對撞前驅),下雨(R) → 草地濕(W) ← 灑水器(S)( \(W\) 是對撞節點)。
import numpy as np
from itertools import product
# 網路結構:R → W ← S(R 與 S 之間還有 R → S 這條邊)
# P(R=1) = 0.2
# P(S=1 | R=0) = 0.4, P(S=1 | R=1) = 0.01 (下雨時灑水器關閉)
# P(W=1 | R, S) = 1 - (1 - R * 0.9) * (1 - S * 0.8) (兩條來源任一有效即濕)
p_R = {0: 0.8, 1: 0.2}
p_S_given_R = {(0, 0): 0.6, (0, 1): 0.4, (1, 0): 0.99, (1, 1): 0.01}
def p_W(r, s, w):
base = 1 - (1 - r * 0.9) * (1 - s * 0.8)
return base if w == 1 else 1 - base
# 建立聯合分布(鏈式分解)
joint = {}
for r, s, w in product([0, 1], repeat=3):
joint[(r, s, w)] = p_R[r] * p_S_given_R[(r, s)] * p_W(r, s, w)
assert abs(sum(joint.values()) - 1) < 1e-12 # 驗證機率總和為 1
def query(cond, target):
"""cond: dict 變數→值(證據),target: 變數名"""
num = den = 0.0
for (r, s, w), p in joint.items():
state = {"R": r, "S": s, "W": w}
if all(state[k] == v for k, v in cond.items()):
den += p
if state[target] == 1:
num += p
return num / den
print(f"P(草地濕) = {query({}, 'W'):.4f}")
print(f"P(下雨 | 草地濕) = {query({'W': 1}, 'R'):.4f}")
print(f"P(下雨 | 草地濕, 灑水器關) = {query({'W': 1, 'S': 0}, 'R'):.4f}")
print(f"P(灑水器開 | 草地濕) = {query({'W': 1}, 'S'):.4f}")
# do-calculus:主動打開灑水器 vs 觀察灑水器開
def do_query(do_val, target):
"""干預:截斷指向 S 的邊,S 被強制設為 do_val"""
num = den = 0.0
for r, w in product([0, 1], repeat=2):
s = do_val
p = p_R[r] * p_W(r, s, w) # P(R) * P(W | R, do(S))
den += p
state = {"R": r, "W": w}
if state[target] == 1:
num += p
return num / den
print(f"--- 干預 vs 觀察 ---")
print(f"P(下雨 | 灑水器開) [觀察] = {query({'S': 1}, 'R'):.4f}")
print(f"P(下雨 | do(灑水器開))[干預] = {do_query(1, 'R'):.4f}")
執行結果展示了 explaining away:觀察到草地濕後 \(P(R)\) 上升,但若同時觀察到「灑水器關閉」, \(P(R)\) 又進一步上升(兩個解釋互相競爭)。而「觀察灑水器開」會降低 \(P(R)\) (下雨時灑水器通常關閉,兩者負相關),但「主動打開灑水器」( \(do\) )則完全不影响 \(P(R)\) ——因為干預截斷了 \(R \to S\) 的因果箭頭。這正是 Pearl 說的「觀察與干預是兩回事」。
結案 -- 後果與影響#
- 貝葉斯網路成為機率圖模型(PGM)的基礎:Markov 隨機場、因子圖、動態貝葉斯網路(DBN)、隱馬可夫模型皆屬此家族。
- 因果推論的誕生:do-calculus、結構因果模型(SCM)、反事實推論、中介分析,深刻影響流行病學、經濟學、社會科學。Pearl 因此獲 2011 年圖靈獎。
- 應用:診斷系統(微軟 Windows 的故障診斷)、基因網路、風險評估、推薦系統。
- 現代延續:causal discovery(從資料學習因果圖)、causal machine learning、do-calculus 的完備性證明(Shpitser & Pearl 2006)。
- Pearl 的《Causality》(2000)、《The Book of Why》(2018) 使因果思維普及到大眾。
關鍵人物與文獻#
- Judea Pearl(UCLA):貝葉斯網路之父、2011 年圖靈獎得主、因果推論奠基者。
- Pearl, J. (1988). Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference. Morgan Kaufmann.
- Pearl, J. (1995). Causal diagrams for empirical research. Biometrika 82(4), 669–688.
- Pearl, J. (2000). Causality: Models, Reasoning, and Inference. Cambridge University Press.
- Pearl, J., & Mackenzie, D. (2018). The Book of Why. Basic Books.
- Koller, D., & Friedman, N. (2009). Probabilistic Graphical Models. MIT Press.