因果革命-AI的未來 Part 1
事物的因果性或相關性
本文是該書閱讀的筆記與心得。
古典統計學的限制
現今的AI是從歷史資料(也是過去發生的事)去推導未來,也就是相關性(Correlation),哪麼可以從結果資料(也就是果)去推導為什麼(也就是因)會發生嗎?也就是因果關係(Causality)。
哪麼一些過去的資料科學家相關領域的大神們為什麼沒有發展相關的資料科學的因果論呢?
作者認為是: 我們用來描述因果問題的詞彙,與傳播科學理論時使用的傳統詞彙,基本上有所差異。而其巨大差異在於在表述某些顯而易見的因果關係時,可以用方程式、比例常數、代數法則輕易地呈現出來。例如氣壓計與大氣壓力的因果關係。但是,怎麼呈現我們相信是大氣壓力改變了氣壓計的數字,而不是壓力計改變了大氣壓力呢?
說白了,無法這樣子的呈現是因為沒人使用過因果關係的數學語言。因為這些因果關係大部分都是直覺式(如上案例)、不證自明的。因為這些直覺式的反應在日常生活中,所以不需要數學式來運作。因為數學式是應用在科學議題上。而統計學的大神們在資料科學的領域中無法解答因果論的問題,所以才轉向稱為"統計學"的學科,統計學只能指出相關性。
基礎統計學的第一句話是:
相關不是因果(Correlation is not causation)。
統計學認為不需要數學工具來處理因果問題。
統計學在意的只有如何總結資料,而不是解釋資料。
而路徑分析(Path Analysis)則是這一本書所有的起點。作者繼而提出了因果微積分的理論,該理論分為兩個部分:
- 因果圖(causal diagram) — 用來描述已知事物。這一個圖的呈現會是"點與線或說是箭頭",概略說明現有的科學知識。"點"代表我們想知道的量,稱為變量(variable)。箭頭代表變量之間的已知或可能存在的因果關係,也就是變量X會影響變量Y。
- 類似於代數的語言符號 — 用來描述我們想知道的事物。
描述因果的方式除了本書說的因果圖之外,其他領域的專家也有不同的表達方式,也就是不同的模型。但無論採用哪種方式,模型都應該以"定性"方式描述資料產生的過程。也就是在我們身處環境中進行"運作與形塑"資料的因果力。
而數學表達式,作者則用病人服用藥物為例:
- P(L | do (D))
- P(L | do (not-D))
- P(L | D)
其中L 代表存活年限,P代表機率,D代表藥物,Do則代表執行。第一項與第二項代表服藥物與不服藥物的機率,這些都是刻意為之,是介入該事件的。而第三項則是觀察服藥的人。基本上介入事件與在旁觀察事件是不同的,區別這兩者非常重要,不然會造成一些矛盾。
因果革命的一大成就,是說明如何不需實際介入,就能預測這項介入行動的後果。不過要做到這點必須滿足兩個條件:
- 定義do這個運算符號 — 這是要能夠提出"正確問題"
- 找出以非侵入性的方式模擬此項介入行動
不過如果是探討過去的科學問題,則必須使用另一種專屬的因果推論 — 反事實(counterfactual)。從上面的服藥案例延續,假設A君服用藥物D一個月之後死亡。哪造成此人此亡的原因是不是該藥物呢?
要討論此問題就要提出另一種假設:
哪A君當時如果不服用該藥物是不是就不會死?
上面這一類的問題是古典統計學無法回答的,因為它只能總結資料。而因果論可以提供一種標記,並且能提供解答。作者提到說: 反事實推理探討的是
如果….會怎麼樣?
但同時也說,這種方式不是所有人認同它是科學的作法。但是反事實是反映這個世界的架構,兩個人若思考的因果模型相同,反事實判斷也會相同。例如我們都知道就算早上的鬧鐘沒有響,太陽還是會升起。
在現實中進行
如果能夠以數學方式呈現因果關係,哪麼教會AI進行因果模型的推論應該是可行的。這一類的AI也就是強AI(也稱通用AI — artificial general intelligence — AGI),這一種AI的因果推理模組可讓AI本身反省錯誤,指出自身軟體中的缺點、具備道德本體,並與人類自然地談論自己的選擇與意圖。
作者在此提出了因果推論發動機(causal inference engine)來協助AI進行因果推論作業(如下圖),該動機可以告訴我們這個因果模型如何與資料交互。
- 背景知識:
是推理者本身過往的經驗,其本身的行動、教育和文化習慣等。它是內含在推理這的思維裡,模型不會明確說明。 - 假設大多存在人的思維中,而它必須納入模型才能進行推論。
- 因果模型路徑呈現聽從狀態,通常會在資料中觀察到其相依性(Dependency)或型態。這類模式可用來檢驗模型,稱為可檢驗的含意(testable implication)。這些型態是類似"D和L之間沒有路徑連結"的描述,用統計學的話來說就是"D與L相互獨立(也就是D不會改變L)"。如果資料與此含意互相牴觸,就要修改模型。
- 被估量(estimand)的意思是"有待估計的量"。它是以資料估計的統計量,估計完成後就能回答該查詢。被估量雖然寫成機率公式(如P(L | D, Z) x P(Z)),但其實是依據現有資料種類解答查詢因果的方法,前提是資料種類必須經過發動機檢定。現狀的因果模型可能仍有無法回答的問題,在此狀態下,無倫收集多少資料都是做白工。需要做的是回頭改進模型、加入新的知識或是提出簡化假設。
- 資料只是被估計量中的一部分。再次強調: 單只有資料不會理解到因果關係。資料是觀察性的事物,而被估計則把這些資料統計化成表達式。也就是上面數學表達式中有沒有"Do"而已。
- 最後的結果就是估計值(查詢的答案),但資料只是理論上無限多個值中的有限樣本,因為這是古典統計學的特質,所以估計值只是近似值。所以樣本資料計算出的資料可能不等於全體資料的比例。不果統計學因為現代機器的幫助下,有很多方法來處理這種不確定性,包括最大概度計量(maximum likelihood estimator)、傾向分數(propensity score)、信賴區間(confidence interval)、顯著性檢驗(significance test)。
上面這麼複雜的圖文都是要教機器知道因果推論要怎麼進行,但人類在現世界中,一切的因果推論都是下意識中完成的。與傳統統計學預先收集大量的資料繼而進行推論而言,因果論是倒過來的。一定是:
- 需要先確定因果模型
- 提出科學的解答查詢
- 以及確定被估計量之後
才確定要花多少時間收集資料。對AI而言,當我們要回答"如果採取不同的行動選項會怎樣"這一類的反事實最具挑戰性。因果模型還有一項特性是資料探勘與深度學習所沒有的,哪就是適應能力。在上圖流程中,被估計量只根據因果模型計算,不需要檢視資料的特性。所以計算出來的被估計量適用於可用於定性模型的任何資料,不受變量間的數值關係影響。