因果革命-AI的未來 Part 4
從證據到原因 — 貝氏網路
本文是該書閱讀的筆記與心得。
人類在理解是事物時可以分為演繹與歸納。而用假設進行事務推理時最厲害的不是演繹而歸納。大偵探福爾摩斯最有名的名言透漏了他對歸納的方式:
排除所有不可能之後,剩下的即使再不可能,也一定是真相。
福爾摩斯先歸納出幾種假設,再一一排除(用排除法),演繹出正確的假設。歸納和演繹是一體兩面的,但歸納對一般人來說可能是很困難的作業。由於這個緣故福爾摩斯或一些厲害的顧問才有工作可以做。
然而近年來,在由證據產生假設、以及由結果的知原因的流程自動化領域,AI專家已經有了大幅的進展,因為貝氏網路(Bayesian network)這種基本工具的產生。這一章作者將會說明貝氏網路是甚麼,貝氏網路目前的幾種用途。
貝氏網路在日常生活中影響我們甚鉅,但大多數人沒有察覺。使用貝氏網路的地方包括語音辨識軟體、垃圾郵件過濾程式、氣象預報、探勘油井,以美國及食品藥物管理局批准醫療器材的流程等。而我們使用的手機也有所謂的手機代碼,它必須以置信度傳播(belief propagation)解碼,以便從幾千個通話中分辨屬於這個門號的通話,而這種演算法為貝氏網路所設計。而Google的網路行銷長則說Google是貝氏方法的超級使用者。
因果圖就是貝氏網路,因果圖中的箭頭代表直接或可能存在的因果關係,以箭頭方向為準。貝氏網路不一定具有因果性,但這在許多用途中不重要。然而,如果打算提出關於貝是網路在因果階梯第二或第三層的查詢(問題),就必須非常注意因果性並繪製因果圖。
逆機率問題
1750年代,一個長老會牧師 湯瑪斯.貝斯(同時應該也是數學家)基於他研究的議題提出了一個方程式。議題是: 兩個事件的機率,其中一個事件(假設)發生在另一個事件(證據)之前。之後貝斯牧師著手分析了逆機率(inverse probability)的主要因素 — -因果。
貝斯牧師會研究這個問題是基於他的兩種身分,比較數學與神學。會提出這個問題是因為在這之前,一位蘇格蘭哲學家修謨提出了一個論點 : 本質上不可靠的證據,無法否定"人死不能復生"這類擁有自然定律後盾的命題(說的是耶穌復活這件事)。所以這帶出一個問題:
需要多少證據才能讓我們相信,某件我們認為不太可能發生的事真的發生過?一個假設何時會從"不可能發生 →不太可能發生→可能發生 →幾乎一定會發生"?
這個問題雖然已機率語言表達,但刻意融入了神學意義。貝斯牧師去世後,同個教會的牧師 理查.普萊斯發現了這一篇論文,將它連同自己寫的導讀一起發表更清楚地說明了這點:
我的目的是證明: 我們有甚麼理由萬物之中有固定法則,而萬事都是依這些法則發生?我們何以相信世界必然是某個智性之因的智慧與權能所導致的結果,從而肯定從最終因導出的推論足以證明上帝的存在?這篇論文解決的逆問題,能更直接適用於上述目的,這點很容易理解。因為它明確告訴我們,在具備特定順序或週期的事件中,我們用甚麼理由認為這種週期或秩序,是源自於自然界中穩定的原因或規則,而非源自機率的任何不規則性。
由於貝斯牧師這篇論文證明我們可由結果"演繹"出某個原因的機率。如果知道原因,要估算結果的機率相當容易,這是正向(positive)機率。反要反過來演繹(在貝斯的時代成為"逆機率"問題),則困難得多。貝斯沒有解釋為什麼如此,而是把它視為不證自明,證明這是可行的。作者舉一個貝斯論文中的撞球檯例子來讓我們理解此問題的本質。
假設我們在撞球檯打出一顆球,它會反彈很多次,因此我們無法確定球最後停在哪一個位置上。哪球會提在距離球桌左端(我們面對球桌較長的一邊來看)小於x英尺的機率是多少?如果是一個正常完全平滑的球桌可以用數學的方式來解不是難事。例如球桌是12英尺長,這個球停在球桌左端小於1英尺處的機率是1/12。而在8英尺的花式撞球桌,機率則是1/8。
用物理學來理解,如果球桌長度是L英尺,則球停在距離球桌左端小於x英尺處的機率為x/L。球桌長度(L)越長,球可能停留的範圍越大,所以機率變低。但如果x變大,符合停留的範圍也變大,機率就升高。
但如果反過來(也就是逆機率問題)。我們已知球停留的位置為距離球桌左端 x=1英尺,但不知球桌長度L。哪球桌長度為100英尺(假設)的機率為何?用常識來思考,50英尺的機率一定比100英尺的機率高,原因是球桌長度越長,球越不容易距離球桌的左端哪麼近,但機率究竟高出多少?直覺與常識無法提供明確的指引。
正向機率(已知L時計算x的機率)為何在心理上,遠比已知x時回去推算L容易得多?原因是L是原因,x是結果。人類的認知是朝原因 →結果的方向演繹。但如果只知道結果,人類需要更多的資訊才能演繹出可能的原因。一般狀況下,我們可能需要有福爾摩斯的頭腦才能解題。但貝斯的解說讓我們一般人可以進行逆機率的估算。
貝氏機率的範例
作者用一個飲料店的範例來說明。假設手上我們有一些會員顧客的飲料偏愛資料(如下圖)。本書第一章有提到,資料不受因果不對稱的影響,因此資料應該能夠提供方法,協助我們解決逆機率問題。
有2/3客戶(客戶1,5,6,7,8,9,10,12)點了茶(T),這些點茶的客戶其中有另一半也點了蛋糕(C)-客戶1,5,8,12。所以同時點茶跟蛋糕的客戶比例是:
(1/2) x (2/3) = 1/3。
貝氏法則也能反過來分析資料。觀看資料有 5/12的顧客(1,2,5,8,12)點了蛋糕,其中有4/5點了茶(1,5,8,12)。因此同時點茶與蛋糕一樣是整體比率的 (4/5) x (5/12) = 1/3。結果一樣,但是是反過來計算。
為了有通用法則,我們可以令P(T)代表點茶的機率、P(C)代表點蛋糕的機率。如果已知某位客戶點了茶,則P(C | T)代表他點蛋糕的機率(算式的垂直線代表已知)。同樣地,P( T | C),代表顧客點了蛋糕又點茶的機率。因此,第一項計算是:
P(C AND T) = P( C | T) P(T)
第二項計算是:
P(C AND T) = P(T | C) P(C)
兩千多年前的歐幾里德說過,如果a和b分別等於c,則a和b彼此相等。因此:
P(C | T) P(T) = P(T | C) P(C) — -方程式 3.1
上面的方程式3.1稱為貝氏法則(Bayes’s rule)。這個方程式提供了逆機率問題的通解。它告訴我們,如果我們已經知道T(茶)時C(蛋糕)的機率,應該就能得知已知C時T的機率,當然前提是我們已經知道P(T) and P(S)。這應該是貝氏法則在統計學中最重要的功能:
我們可以根據自己的判斷選擇比較確定的方向,直接估算這個方向的條件機率,再運用數學求出自己判斷比較不明確的方向機率。
這個方程式在貝氏網路中的功能也是如此。我們告訴電腦正向(positive)機率,需要時再讓電腦算出逆機率。
在上面的茶飲範例中就是運用貝氏法則來隨時更新對某個事件的置信度。這是貝氏法則的核心,因為人類大多依循同類或類似事件過去發生的頻率,來判斷未來事件是否會發生。當一個顧客走進店裡,依據以往接待類似顧客的經驗,我們會猜想顧客應該會點茶。但如果顧客先點了蛋糕,我們會更加確定顧客會加點茶。事實上,服務生甚至可以直接建議: 需要點茶來配蛋糕嗎?貝氏法則讓我們在這個推理過程中數字化。根據上面的顧客喜好表可以知道,顧客想點茶(走進店裡但還沒點東西)的事前機率是2/3。但如果顧客先點了蛋糕,我們就有進一步的資訊。因此,已知一名顧客以經點了蛋糕時,點茶的機率會是P(T|C) = 5/4。
但由上面的範例中,由資料推出貝氏法則時,有兩個重要缺陷:
- 理論缺陷
把機率解釋成置信度(如上面範例)。但誰說置信度等於(或應該等於)資料中的比例 - 實際缺陷
從神學進入科學。因為每個人的經驗值對某種事的判斷各不相同
理論爭議的關鍵是:我們是否能把"已知我們的得知的"這句話。轉換成機率語言?即是我們認同非條件機率P(C)、P(T)和P(C AND T)代表我們對這些命題的置信度,誰又敢說自己對T的置信度應該一如貝氏法則所說,等於P(C AND T) / P(T)這一比例?"已知我得知T"和"T發生的所有例子中"是否相同?以P(S)這些符號表達的機率語言,通常會傳達機率賽局中的概念頻率,但"已知我得知T"這個敘述是具知識性,應該受知識邏輯規範,而不是頻率和比例邏輯。
從理論觀點來看,貝斯收先把條件機率正式定義為P(C|T) = P(C AND T) / P(T)。貝斯不是用條件機率這一詞彙,而是用"第一件事發生時,第二件事發生的機率"。
就型式而言,貝氏法則是貝斯的條件機率定義的初階結果,但就知識論而言,它一點也不初階。它其實是依據證據隨時更新想法的基準法則。換句話說我們不應該只把貝氏法則是為"條件機率"這個新概念的簡便定義,而應該視為忠實呈現"已知我得知"這個敘述的經驗主張。這個主張指出,一個人發現T之後對C的置信度,永遠不低於他發現T之前對C與T兩者的置信度。此外貝氏法則還指出,證據T越令人驚奇(也就是P(T)越小),我們應該相信它的原因C。
以撞球案例來看貝氏法則的實際缺陷。如果要把這法則套進撞球案例上,要計算出P(L|x),我們需要一個無法由物理學求出的量。這個量就是撞球桌長度L的事前機率,跟我們想得知的P(L|x)一樣難以估算。因為每個人第一次看花式與斯諾克球桌的人都有不同對球桌大於或小於10英尺的機率猜測。這樣的差異稱為主觀性(Subjectivity),有時會被視為貝氏推論的缺陷,但也有人認為它是優點,讓我們能以數學呈現個人經驗,並且已有條理又清晰明瞭的方式與資料結合。在一般直覺無法發揮作用或情緒可能誤導我們時,貝氏法則可喚起我們的理性思考。在某個大家都孰悉的狀況下,我們會展現這個力量。
例如我們醫院做檢查,想知道我們有沒有得某種癌症,檢驗(例如X光掃描)的結果是陽性(positive),哪麼真的得病的可能性有多少?在此範例中,正向機率是已知罹患這種疾病時,檢驗結果為陽性的機率P(檢驗|疾病)。這是醫師所謂醫學檢驗的敏感度(sensitivity) — 這種檢驗對正確檢驗該疾病的能力。敏感度通常對各種患者都相同,因為他們僅取決於檢驗與疾病相關之生理異常的儀器之技術能力。逆機率則是我們比較關心的部分: 已知檢驗的結果是陽性,確實換這種疾病的機率有多少? 這個機率是P(疾病|檢驗),代表非因果方向的資訊流,由檢驗結果指向罹病機率。這個機率不一定每個患者都相同。即使檢驗結果為陽性,我們看待有家族病史的患者,一定會看待沒有家族病史的患者更加警覺。
檢驗疾病的案例已經讓我們開始討論因果與非因果方向。在飲料店中沒有提到這一點,是因為先點茶或先點蛋糕不是重點,重點是先點茶或先點蛋糕的哪一個條件機率比較好估算。但因果背景說明我們為什麼覺得逆機率比較不好估算。
假設一名47歲男性接受X光檢查,檢查是否罹患癌症,檢驗結果為陽性。假設D(疾病)為罹癌,證據T(檢驗結果)。這一位男性應該多相信這個假設?他應該動受術嗎?我們可以改寫貝斯法則來回答此問題:
(D的修正後機率) = P(D|T) = (概似比Likelihood ratio) x (D 的事前機率)
概似比(Likelihood ratio) 的計算方式是P(T|D) / P(T),用以計算患者檢驗結果為陽性的可能性比一般人高出多少。因此上面的方程式告訴我們,無論事前機率是多少,新證據T都以固定比率提高D的機率。
再從這個範例繼續延伸,來證明概似比的重要概念。(以下都是假設的數字)以40–50歲之間的男性而言,次年罹癌的機率大約是1/700,我們就以這個值當作事前機率。
要計算概似比,我們還需要知道P(T|D)和P(T)。在醫學中,P(T|D)是癌症X光的敏感度,也就是罹癌時,檢驗結果為陽性的機率。根據某協會的資料庫,40–50歲的男性X光攝影敏感度是73%。
分母P(T)比較困難一點。檢驗結果為陽性T可能來自罹癌患者,也可能來自沒有罹癌的。因此P(T)應該是P(T|D)(罹癌檢驗為陽性者)和P(T|~D)(未罹癌檢驗結果為陽性者)的加權平均。根據該資料庫的資料,平均40–50歲男性出現假陽性的比例大約是12%。
為什麼是加權平均?因為健康男性(~D)比罹癌的男性(D)多出許多。每700個人才一個人罹癌,其他699個都沒有。所以任意一個男性檢驗結果為陽性的機率,受699個未受罹癌的影響應該遠大於一位罹癌的男性。
在數學上,我們以這個方式計算加權平均:
P(T) = (1/700) x (73%) + (699/700) x (12%) 約等於 12.1%
需要加權的原因是,每700百名男性中只有一位有73%的機率檢驗結果為陽性。其餘699位的機率則是12%。這告訴我們P(T)非常接近假陽性率。
現在我們已經知道P(T),可以開始計算更新後機率,也就是某位男性檢驗結果為陽性時,罹癌的機率。概似比是 73%/12.1%約為6。先前提過,我們必須以這個係數提高這位男性的事前機率。計算他罹癌的更新後機率。由於事前機率是1/700,所以更新後機率是6X(1/700)約為1/116。換句話說這位女性罹癌的機率依然略少於1%。
上面的案例就是少數的真陽性被大量假陽性給遮蓋。如果我們對這個結果感到驚訝,是因為我們經常弄混正向機率與逆機率。我們對正向機率的研究和記錄相當徹底,但做出個人決定的依據則是逆機率。
然而如果患者具有某種基因,因而成為某種癌症的高危險群(假設次年罹癌機率為1/20),則陽性檢查結果將使罹癌機率提高接近1/3。哪麼正常人可能是每3年做一次,該高危險人員可能就需要每年做一次檢查。
這個案例證明,P(疾病|檢驗)並非對每個人都相同,而是取決於個人狀況。如果原本就知道自己是某種疾病的高危險群,貝氏法則可讓我們把這項因素考量進去。或者,如果知道自己對某種疾病免疫,就完全不用檢查了!相反的P(檢驗|疾病)則不受我們是不是高危險群影響。它"無視於"這類差異,因此可以說明醫生為何採用正向機率整理醫學知識和與病人溝通。醫學知識是疾病本身的特性、進程或檢測儀器的敏感性,因此比較不容易受疾病原因(傳播、飲食、衛生、社經地位、家族病史)影響。逆機率P(疾病|檢驗)則容易受這些狀況的影響。
教科書對科學方法的說明分為以下四個步驟:
- 提出假設
- 就假設演繹出可檢驗的結果
- 做實驗及收集證據
- 修正我們對假設的置信度
教科書通常只會介紹簡單的是非驗證和修正,證據不是肯定假設就是否定假設。但生活和科學絕對沒有哪麼簡單!任何證據都有一定的不確定性,貝氏法則可以告訴我們,在真實世界中該如何執行步驟四。
從貝氏法則到貝氏網路
人工智慧一直以來的主要建構方法一直是規則式系統,又稱為專家系統(expert system)。這類系統是把人類的知識整理成具體的通用事實,以及連結這些事實的推論法則。舉例來說,蘇格拉底是人類(具體事實)。人都會死(通用事實)。所以可以推論一個共同法則,由這個知識庫(或AI)推論出蘇格拉底會死:如果A是B,且x是A,則x也是B。
理論上這法則可以套用大部分的情況,但會缺乏彈性並很難傳達真實知識。我們可能沒有察覺,但事實我們經常遭遇與法則例外的狀況、或證據不確定的情形。1980年時,專家系統顯然已經很難由不確定的知識做出正確推論。由於人類專家無法用機器在使用的語言表達自己的思考過程,電腦無法模仿人類專家的推論過程。
1970年代末,AI的專家們為了解決不確定性,各種點子百家爭鳴,例如:
- 模糊邏輯(fuzzy logic) — 敘述不真也不假,而是具有一組可能真值
- 置信度函數(belief function) — 函數對每個事實指定兩個機率,其中一個代表這個事實"可能成立"的機率,另一個則代表這個事實"可證明"的機率
- 確定因子(certainty factor) — 在推論的確定性法則中加入數值表示的不確定性
上面這些方法都有一個共同缺點: 它們模仿了專家,但不是模仿真實世界,因此容易產生意料之外的結果。舉例來說,它們無法同時既分析又預測,但這卻是貝氏法則的特長。
當時機率也在研究之列,但當時需要極大的儲存量與大量地處裡時間,這在當時其成本是天文數字,時機未到。作者在1982年進入機率領域並根據類神經網路先驅-大衛.盧梅哈特的文章提出一個新想法:
我們不需提出新的不確定性理論,而是讓機率維護常識,並解決它在運算上的缺陷。更具體的說,我們不像以前一樣用龐大的資料庫列出機率,而是以一組鬆散耦合變項來代表。如果只讓每個變項和少數鄰近變項交互作用,或許就能克服其他機率專家無法跨越的障礙。至於類神經網路概念相關的文章,在這裡不在說明,網路上一堆有興趣讀者可上網尋找。
類神經網路的訊息傳遞架構中的訊息是在某個方向的條件機率,另一個方向是概似比。更精確地說,作者假設這個類神經網路為階層式,箭頭由層級較高的神經元指向層級較低的神經元,或者說由親節點(parent node)指向子節點(child node)。每個節點都把訊息傳送鄰近所有節點(包括上一層和下一層),說明目前對它記錄的變項有多大的置信度(例如 : 我認為這個字母是J的確定程度是75%)。接收者依據訊息傳遞方向,以兩種方式處裡這個訊息。如果訊息由親節點傳向子節點,子節點會運用條件機率更新置信度,如同飲料店案例。如果訊息由子節點傳向親節點,親節點則會把自己的置信度乘以概似比,將結果當成新的置信度,如同癌症X光案例。
把上面兩個案例的兩種原則反覆套用在類神經網路中的每個節點,稱為置信度傳播(belief propagation)。規則很簡單,但挑戰在於確保這些訊息無論以甚麼順序傳送,狀況最後都能達到平衡。最終平衡將正確的變項置信度狀態。這裡所說的"正確",是如同我們依據教科書的方法來運算,而不是藉由訊息傳遞來運算。
貝氏網路: 原因 →資料線索
貝氏網路與這本書中講的因果圖不同,不假設箭頭具有因果意義。箭頭只代表我們知道正想機率P(蛋糕|茶)或P(檢驗|疾病)。貝氏法則告訴我們如何把事前機率乘於概似比,藉此反轉這個程序。
無論箭頭是否具有因果性,置信度傳播在形式上的運作方式都相同。盡管如此,我們(人類)憑直覺還是會認為,在因果關係中進行的事物比較有意義。這是因為人類的大腦具有理解因果關係的特殊機制(如癌症與X光檢驗),但對一般關聯性(如蛋糕與茶)就沒有這種機制。
貝氏網路的三種類型
作者用三個節點和兩個連結的網路來說明,這個連結作者稱為連接(junction)。連接是所有貝氏網路(以及因果網路)的建構單位。
第一種: A →B →C
這類連接(junction)是最簡單的鏈結或中介。在科學概念中,我們通常認為B是把A的影響傳達給C的機制或"中介變項"。"鏈結"的重要概念是: 中介B把關於A的資訊與C"隔離"開來,也等於把C的資訊與A隔離。
也就是說我們知道B的值,則知道A的值不會讓我們提高或降低對C值的置信度。置信度的穩定性是第一層概念,因此如果有資料可看,應該也可以從資料看出。假設我們有一組資料庫完整記錄ABC的值,如果只看B值為1,哪麼C值也永遠都是1,不論A值是零或一。即使影響並非絕對,這種隔離型態依然存在。例如,某個IT監控系統故障,有5%的時間無法正確示警。如果只看B值(系統關機)=1的資料,會發現"告警"=1的機率依然相同(95%),不受A值(監控正常)等於0或1的影響。
只看資料中B值= 1,這種方法稱為將某個變項條件化(conditioning)。同樣地,我們可說已知B值時,A與C為條件獨立(conditioning independent)。如果要讓機器自動修正置信度,這點非常重要。條件獨立讓機器取得許可,能專注於相關資訊,能捨棄其餘資訊。我們(人類)在日常生活中都需要這樣的許可,否則會浪費時間處裡錯誤訊息。
不過,如果每項新資訊都會改變相關與無關資訊間的界線,我們又該如何決定該捨棄那些資訊?對人類而言,這種理解是與生俱來的。三歲小孩即使講不出是甚麼,但都能理解隔離效應。他們的直覺一定來自某種心智表徵,這類表徵可能很像因果圖。但機器沒有這樣的直覺,因此我們必須以因果圖加以輔助。
第二種: A←B →C
這類連結(junction)稱為分叉(fork)。B通常稱為A與C的共同原因或干擾因子。干擾因子可在沒有直接因果連接的A與C之間,產生統計相關。一個例子是"鞋子大小←兒童年齡 →閱讀能力"。鞋子size較大的兒童,閱讀能力也比較好,但鞋子跟閱讀能力沒有因果關係。讓小朋友穿大鞋不會讓閱讀能力變好。但這兩個變項都能以第三變項(兒童年齡)解釋,年齡較大的兒童鞋子比較大,閱讀能力也比較好。
我們可以將兒童的年齡條件化,消除這一類假性相關。例如只看七歲大兒童就會發現鞋子大小與閱讀能力無關。如同鏈結的案例,已知B時,A與C為條件獨立。
我們在觀察這些連接(junction)時,都看得出剛剛提到的條件獨立性。如果周圍還有其他的因果路徑,這些路徑必須列入考量。貝氏網路神奇之處在於,作者介紹的三種連接,都可以呈現貝氏網路指出的各種獨立性,無論有多複雜。
第三種: A →B←C
這種連接稱為衝突(collider)。這裡以明星的三種特質來舉例"才華 →成名←外貌"。在這裡,我們認為才華跟外貌能讓明星成功,但在一般大眾身上,外貌和才華彼此完全無關。
將中間的變項條件化時,衝突的作用和鏈或分叉相反。如果A和C一開始完全無關,則將B條件化將使A和C變成相依。例如,如果我們只觀察名演員(也就是觀察項"成名"=1),會發現才華與外貌間負相關,也就是我們若覺得某名人外貌平庸,會更相信這個名人更有才華。這類負相關有時稱為衝突偏誤或是自圓其說。
小結
鏈、分叉和衝突這三種連接就像鑰匙孔,可以借助他們,通過分隔因果階梯的第一層與第二層大門。通過它們,可以得知產生我們所見資料的因果過程,每一種鏈接代表一種因果流動方式,並在資料中留下條件相依和條件獨立的標記。
貝氏網路、因果圖與條件機率
上面的一堆敘述只討論了貝氏網路的一個面向,也就是因果圖以及由原因指向結果的箭頭。因果圖就像貝氏網路的發動機,但發動機也需要燃油。它的燃油就是條件機率表(conditional probability table)。
另一個說法是因果圖以定性方式說明變項間的關係,但如果想取得定量答案,就需要量化輸入。在貝氏網路中,我們必須依據每個節點的親代,指定此節點的條件機率(節點的親代是提供資料的其他所有節點)。這些是正向機率P(證據|假設)。
A為根結點且沒有箭頭指向它時,我們只需指定每個A狀態的事前機率。在"疾病 →檢驗"網路中,疾病是根結點。因此我們指定某人罹病與未罹病的事前機率(案例中分別為1/700與699/700)。
以A為根結點時,不是A節點沒有過往的原因。不是任何變項都能設定成這種狀態。真的的意思是: A的過往原因能以A為真的事前機率P(A)來總結。在”疾病 →檢驗”案例中,家族病史或許是疾病的原因。但只要能確定這家族病史不影響變項"也就是檢驗"(只要知道疾病的狀態),我們就不需要再因果圖中把它標成節點。然而如果"疾病"的某個因素也會直接影響"檢查",哪麼就必須在圖中明確標出這個原因。
節點A有親代時,A必須"探聽"親代,才能決定自己的狀態。在X光癌症案例中,"檢驗"的親代是"疾病"。我們可以用以下的2x2表格說明這個探聽過程。
舉例來說,如果"檢驗T""知道"D=0,則它的值會有88%等於0,12%的時間等於1。
從貝氏網路到因果圖
貝氏網路是讓因果圖與資料兩者結合的關鍵要素。貝氏網路的所有機率性質,以及為貝氏網路開發的置信度演算法,在因果圖中依然有效。貝氏網路與其他機器演算法的差別在於,其他機器演算法都有難以理解的黑盒子。貝氏網路是透明的,我們能夠觀察每個步驟,了解每項證據如何以及為何改變網路的置信度。
貝氏網路與因果圖之間的主要差別,在於建構方式和用途。貝氏網路其實就是一大張機率表的簡明呈現。因果圖中的箭頭,則僅代表子代節點與親代節點代入特定方程式之值的機率,而且此關係是充分的。也就是說,知道子代的其他上代不會改變方程式。同樣地,兩個節點之間沒有箭頭,代表如果我們知道親代的值,則這兩個節點互相獨立,前述提到的三種鏈結與其之間的節點連接中的隔離效應時,提到這個簡單的描述。在鏈A →B →C中,A呵C之間沒有箭頭,代表如果我們知道A和C的親代,則A和C互向獨立。因為A沒有親代,C唯一的親代是B,所以如果我們知道B的值,則A和C互相獨立。
然而把上面這個範例畫成因果圖,則建構和解譯最終圖形的想法都會改變。在建構階段,我們必須檢視每個變項(例如C),搞清楚它必須得知那些變項,再產生C的值。鏈結構A →B →C代表B僅探知A,C僅探知B,而A則沒有探知對象,也就是說A由模型以外的力量決定。
這個探知比喻囊括因果網路傳達的所有知識,其餘都可推論而得,有時也可借助資料的得出。但要注意,如果倒轉鏈中的箭頭方向,變成A←B←C,則結構中的因果讀值將大幅改變,但獨立狀況維持不變。這裡有兩個重要的意義。
- 因果假設不能任意創造,必須接受資料檢驗,而且可能遭到否決。例如,如果觀察資料沒有呈現A和C互相獨立,而是以B為條件,則可斷定這個鏈模型與資料不符,必須捨棄(修改)。
- 因果圖的圖形特性說明了那些因果模型能由資料區別,哪修模型無論資料有多少都無法區分。例如分叉A←B →C和鏈A →B →C代表相同的獨立狀況,所以我們無法單單由資料區分這兩種圖形。
另一個探究因果模型的簡便方法,是透過假想實驗。每個箭頭可以視為一個敘述,說明假想實驗的結果。從A指向C的箭頭代表只微調A,則C的機率應該也會改變。沒有箭頭從A指向C代表在同一個實驗中,如果維持C的親代(也就是B)不變,則C不會改變。需要注意,機率表達式:
- 如果知道B的值
被敘述成
- 如果維持B不變
給取代,這表示不讓B改變,同時使A指向B的箭頭失效。建構因果網路的因果思考能發揮一定的作用,強化因果網路可解答問題的種類。
貝氏網路只能告訴我們,當我們觀察到某個事件(第一層資訊)時,另一事件發生的機率,因果圖則可解答"介入和反事實"問題。例如,因果分叉A←B →C直接明確的呈現,微調A對C沒有影響,無倫調整的程度有多大。另一方面,貝氏網路無法處理"微調"或分辨觀察和進行行動間的差別,或是分辨"分叉和鏈"。換句話說,鏈和分叉都預測,我們觀察到A改變時,C也會同時改變,但無法預測"微調"A的結果。
貝氏網路對因果圖第二個也是最重要的影響
我們找出因果圖的圖形結構和資料間的關係後,就能模擬微調效果而不需實際操作。具體地說,我們可以執行一連串簡短的條件化作業,預測行動或介入的結果,不需實際進行實驗。例如,在回頭看一次因果分叉A←B →C,這個分叉指出A和C之間是假性相關。要驗證這一點,可以試著微調A,會發現A和C之間沒有相關。但還有更好的方法。可以讓因果圖模擬這個實驗,告訴我們是否有條件化作業能在實驗中產生相關。答案是肯定的:
- 將B條件化後產生的AC相關等於實驗中所見的相關
這種相關可由資料估算出來,這驗證了我們直覺判定的微調A不會影響B。我們可以決定必須測量那些變項的值,以便由觀察研究預測"介入"的效果,此外也能回答"為什麼"的問題。例如,有些人或許想知道微調A為什麼會使B改變。這是A的直接效果,還是中介變項B的效果?如果兩者皆是,我們是否能估算B中介的效果佔了多少比例?
要解答這些中介問題,必須想像有兩項介入同時發生:
- 微調A
- 維持B不變(以便與"將B條件化"區分)
如果能實際執行介入,就可得到答案。但如果我們只能進行研究觀察,就必須執行模擬並加以觀察。同樣地,也可借助因果圖的圖形化特性,得知是否能這麼做。
作者提到從開章談到現在已經談到了"觀察性與實驗性"研究時,就已經離開了AI領域進入到麻煩的統計學領域,因為這是因果性脫離統計學的結果,進入到新領域。
要進入這些新領域,必須了解正統統計學家學習處裡因果關係的方法,以及這些方法的限制。作者提出的直接與間接效果問題不屬於主流統計學,主要原因是統計學創立者把因果語言排除在統計學外。但統計學家容許在隨機控制實驗(RCT)中討論因果。RCT隨機指定某些人採用療法A、但其他人不使用,再比較B的改變,此時,正統統計學和因果推論對"A是B的原因"這句話的意義看法相同。
改用因果模型的新科學之前,應該先理解不採用因果模型的舊科學有哪些優點與限制:
- 為什麼必須隨機化才能斷定A是B的原因?RCT排除的威脅(稱為干擾)有甚麼特質?
在作者的經驗中,統計學家與現代資料分析專家大多都不喜歡討論這些問題,因為他們無法運用以資料為中心的詞彙表達這些問題。事實上,這些專家連"干擾"的意義都缺乏共識。
運用因果圖檢視這些問題之後,可以把RCT放進適當的脈絡。可以把RCT視為推論發動機的特例,或是把因果推論視為規模較大的RCT。這兩種看法都可以,但把RCT視為因果關係仲裁者的人,或許會發現因果關係比較容易處理。