本書第一章對因果推斷作出更近一步描述,刻畫了一個因果梯模型用于區(qū)分生物,機器(未來可以統(tǒng)稱為物種?)所處層級對應(yīng)的不同的認知能力:消極觀察,干預(yù)和反事實。這章還告訴我們讀者怎么用因果圖去實現(xiàn)干預(yù)和反事實,最后比較了概率統(tǒng)計和因果推斷的區(qū)別和聯(lián)系。有關(guān)干預(yù)和反事實在因果推斷中的重要性,可以查看我的前言筆記(ps:前言筆記總結(jié)得不完善,完全因為個人認知水平有限,且在寫之前還沒開始閱讀后續(xù)章節(jié),權(quán)當(dāng)拋磚引玉的效用)??偨Y(jié)來說本章三個要點如下:
-
什么是因果梯
-
運用因果圖實現(xiàn)干預(yù)和反事實
-
概率統(tǒng)計和因果推斷的區(qū)別和聯(lián)系
什么是因果梯
咳咳,我騙了你,其實我回答不了什么是因果梯,因果梯這個名字也是谷歌翻譯給出來的!但湊合著看!作者在書中給出了一個反映認知能力的三層模型,如下圖:

可以用三個詞描述著三個層級:seeing,doing,imagining
作者說了,這本書不是去證明因果是什么,而是告訴讀者掌握因果推斷的方法能干些什么。或許會有這樣的疑問:如果連因果都無法定義清楚,怎么在此之上運用因果推斷去解決問題?我覺得這個問題在一定程度上沒有意義,如作者所說這是徒勞的。一個類比是:歐幾里得在描述他的幾何學(xué)時,同樣沒有做出這樣的說明:什么是點,什么是線。但不妨礙他基于點和線構(gòu)建出來的理論解決了相當(dāng)一部分的問題。
it bypasses long and unproductive discussions of what exactly causality is and focuses instead on the concrete and answerable question “What can a causal reasoner do?”
好了回到因果梯模型。第一層級:關(guān)聯(lián)。被描述為如果事件X發(fā)生(觀察到X發(fā)生)改變了另外一個事件Y的概率,那么認為事件Y和事件X是關(guān)聯(lián)的,用數(shù)學(xué)語言描述為條件概率P(Y|X),一個刻畫關(guān)聯(lián)的提問句式,正如圖上所示:"what if i see......"。如果觀察到X發(fā)生的確增加了Y的概率變動,是不是意味著X導(dǎo)致Y呢?這是個很有意思的問題,且將這個問題留給該筆記的第三部分。第二層級:干預(yù),刻畫為P(Y|(do X)),指在對事件X做出變動情況下事件Y發(fā)生的概率。就基于概率統(tǒng)計的機器學(xué)習(xí)為例,作者認為現(xiàn)實中的"raw data"已經(jīng)無法實現(xiàn)干預(yù)這一層級,因為現(xiàn)實生活可能會缺少“事件X做出變動”這樣的數(shù)據(jù),對此帶有先驗隱喻的因果推斷模型可以基于假設(shè)的數(shù)據(jù)發(fā)揮巨大的作用。
More interesting and less widely known—even in Silicon Valley—is that successful predictions of the effects of interventions can sometimes be made even without an experiment.
一個刻畫干預(yù)的句式是:"what if i do......"。如果機器掌握了"what if i do......",也相當(dāng)于掌握了"how to do......"。但知道如何去做并不意味著知道為什么要這樣做,這是仍需要第三個層級:反事實。提問的句式:"what if i had done......"。指的是事件Y已經(jīng)發(fā)生的條件下,如果對事件X做出變動,會影響事件Y的概率嗎?這個描述聽起來很奇怪,事件Y已經(jīng)發(fā)生的前提下,研究其他因素對事件Y的影響(引起事件Y的概率變動),這在現(xiàn)實世界中不存在,但假想存在一個反事實世界,這些變量簇(X,Y)是存在的,作者認為,在因果關(guān)系的作用下,這些反事實的數(shù)據(jù)是可以和現(xiàn)實的數(shù)據(jù)同等地位存在的,這些數(shù)據(jù)也反映了事件的因果聯(lián)系。
All of these different worlds, where the weight is x pounds and the length of the spring is Lx inches, are treated as objectively knowable and simultaneously active, even though only one of them actually exists.
關(guān)于想象一個反事實世界的好處,作者寫道:
The advantage we gained from imagining counterfactuals was the same then as it is today: flexibility, the ability to reflect and improve on past actions, and, perhaps even more significant, our willingness to take responsibility for past and current actions.
運用因果圖實現(xiàn)干預(yù)和反事實
在尋找獲得數(shù)據(jù)的方法之前,先解決怎么去表示,儲存這些數(shù)據(jù),就因果推斷來說,尋找良好的結(jié)構(gòu)有利于剔除大部分冗余的信息(比如明顯沒有因果聯(lián)系的數(shù)據(jù)),避免大量數(shù)據(jù)涌入導(dǎo)致存儲空間需求的指數(shù)上漲(或者更糟糕的空間復(fù)雜度),并且能指導(dǎo)我們尋找數(shù)據(jù)的更佳方式。
作者提出了一個非常簡潔的結(jié)構(gòu):因果圖。它由兩部分組成:圓點和有向箭頭,圓點表示事件,有向箭頭表示因果關(guān)系,如果A指向B,表示A事件導(dǎo)致了B事件發(fā)生。這里用文中一個很有趣的例子說明干預(yù)和反事實是怎么從算法意義上實現(xiàn)的。

讓我們來考察圖一,該圖模擬一個犯人被執(zhí)行死刑的流程,CO代表法官,C代表指揮隊長,A和B代表士兵,D代表犯人。整個流程是:法官發(fā)出執(zhí)行指令,指揮隊長對士兵發(fā)出開火的信號,士兵開火射擊,犯人死亡。首先做一些關(guān)于該模型的假設(shè):整個流程不存在意外因素,比如士兵開槍射擊后犯人不死亡,指揮隊長發(fā)出開火信號,而士兵不執(zhí)行指令,諸如此類。圖一反映了整個流程的因果流動關(guān)系,比如犯人死亡是因為士兵射擊,而不是反過來。士兵之所以開槍射擊是因為指揮隊長發(fā)出開火指令,以此類推。那么干預(yù)是怎么實現(xiàn)的?在回答這個問題前,有人會疑惑,為什么需要干預(yù)?現(xiàn)實生活中,你可能會就這個流程問機器類似這樣的問題:如果士兵A在沒有收到隊長C的指令前提下主動開火(可能是私仇),犯人D會死嗎?看起來非常簡單的問題,基于圖一的因果圖,機器是做不出回答的,因為如果士兵A射擊,那一定是收到了隊長C的開火指令。所以現(xiàn)實中機器讀入了大量行刑的數(shù)據(jù),極有可能找不到"士兵A私自開火"這樣的數(shù)據(jù),機器不能在數(shù)據(jù)缺少的情況下,訓(xùn)練出一個符合預(yù)期的模型用來應(yīng)答該問題。

那么干預(yù)能達到什么效果呢?干預(yù)的操作方法:當(dāng)要考察A做出狀態(tài)變化對D的影響(比如:士兵私自開火),首先刪除掉所有因果圖中指向A的所有箭頭,然后去考察新形成因果圖,比如圖二。這時C指向A的箭頭已經(jīng)被刪除,C的狀態(tài)變動不會對A造成影響。從圖中可以容易看出,如果士兵A主動開火,犯人D會死亡,因為A有指向D的箭頭。這樣的操作是有意義的,盡管可能在現(xiàn)實中不會出現(xiàn)士兵A主動開火這樣的事件,但如果士兵A開火,犯人D會死亡是一個因果的描述,不依賴于該事件是否能發(fā)生。掌握類似的干預(yù)能讓機器不那么死板,更具有靈活性(更能表現(xiàn)出智慧的特征?)。

圖三對應(yīng)的是基于干預(yù),但比干預(yù)更進一步的因素:反事實。正如上一篇文章所說:反事實是道德行為的基石,也是科學(xué)思想的基石。反思自己過去的行為和設(shè)想其他方案的能力是自由意志和社會責(zé)任的基礎(chǔ)。怎么去理解?在這個例子中,不妨做出這樣的一個提問:行刑結(jié)束后(犯人已經(jīng)死亡),如果士兵A在想,假如我當(dāng)時沒有開火(A=False),犯人D會死亡嗎?機器在基于圖三的因果圖會發(fā)現(xiàn),D仍然會死亡,不管A本身是否開火(因為B開火了導(dǎo)致D死亡)。這反映了一個這樣的道德事實:即使A開火,致使D死亡,D的死亡也不是因為A(是因為犯人觸犯了法律的禁區(qū)),就算A不開火,也會有某個執(zhí)行者去開火。清楚這一事實在一定程度上減緩了A的道德困惑。圖二圖三這些假設(shè)事件不是來自真實世界的數(shù)據(jù),而是來自反事實世界,但這些假設(shè)的數(shù)據(jù)是有意義的,因為它反映了因果關(guān)系,這些假設(shè)數(shù)據(jù)和現(xiàn)實數(shù)據(jù)一般有用。
概率統(tǒng)計和因果推斷的區(qū)別和聯(lián)系
在第一部分還有一個問題沒解決對應(yīng)哲學(xué)家提出了一個"probability raising"模型:如果觀察到X發(fā)生的確增加了Y的概率增加,是不是意味著X導(dǎo)致Y呢?數(shù)學(xué)形式對應(yīng)條件概率:P(Y|X)>P(Y)。作者在文中舉了一個有意思的例子:假設(shè)事件Y對應(yīng)一個城市的犯罪率增高,事件X對應(yīng)該城市冰淇淋銷售量上升,有統(tǒng)計的數(shù)據(jù)發(fā)現(xiàn),觀察到冰淇淋銷量增加的前提下,該城市的犯罪率增高了?;?em>"probability raising"模型,冰淇淋銷量增加導(dǎo)致了城市的犯罪率增高(P(Y|X)>P(Y),嗯哼,吃貨們注意一點,少吃冰淇淋)。但因果推理告訴我們不是這樣的。
問題出現(xiàn)在哪里?這個模型沒有考慮其他因素對考察事件的影響,比如上面例子里面:天氣!可能是氣溫升高導(dǎo)致冰淇淋銷量上升,同時犯罪率也上升了,天氣可能是指向這兩個事件的因,而上述兩個事件沒有因果關(guān)聯(lián)。基于此哲學(xué)家們又對"probability raising"模型進行改進,如果改為P(Y|X,K=k)>P(Y|K=k)呢?K=k包含了控制變量的思想,在限定其他因素不變情況下,考察事件X發(fā)生是否提升了事件Y發(fā)生的概率。這樣不是就可以考察事件X和事件Y是否有因果聯(lián)系了嗎?我是認同這一想法的,但這只能是哲學(xué)意義上。這個模型有一個很大的問題:可實現(xiàn)性??刂谱兞縆不變,到底哪些變量才是K呢?難道要控制現(xiàn)實世界的所有變量?如果不是,到底要找哪些變量作控制呢?為什么是這些變量,而不是其他的變量?可以從這些疑問中,挖掘出一個這樣的線索:一定有一種更本質(zhì)的關(guān)系,決定了控制變量集中應(yīng)該考慮哪些因素,而其他因素不需要被考慮。
作者認為是事件的因果關(guān)系。這是作者提出P(Y|(do X))的原因,也就是干預(yù)。可以看出,干預(yù)是修正版"probability raising"模型的一種符合現(xiàn)實的操作方法,也反映了事件間更本質(zhì)的因素:因果關(guān)系。作者在書中是這樣刻畫概率統(tǒng)計和因果推斷的區(qū)別和聯(lián)系的:
The main point is this: while probabilities encode our beliefs about a static world, causality tells us whether and how probabilities change when the world changes, be it by intervention or by act of imagination.