林澤民:回溯推論法、貝氏定理、及推理小說
Published by 劉正山,
Photo Credit: DQ Global
「你要知道,我親愛的華生,」他把試管放回架子上去,開始用教授對他班上的學生講課的口氣往下說,「作出一串推理來,並且使每個推理取決於它前面的那個推理而本身又簡單明瞭,實際上這並不難。然後,只要把中間的推理統統去掉,對你的聽眾僅僅宣佈起點和結論,就可以得到驚人的、也可能是虛誇的效果。所以,我看了你左手的虎口,就覺得有把握說你沒有打算把你那一小筆資本投到金礦中去,這真的不難推斷出來。」
「我看不出有什麼關係。」
「似乎沒有,但是我可以馬上告訴你這一密切的關係。這一根非常簡單的鏈條中缺少的環節是:第一,昨晚你從俱樂部回來,你左手虎口上有白粉;第二,只有在打台球的時候,為了穩定球桿,你才在虎口上抹白粉;第三,沒有瑟斯頓作伴,你從不打台球;第四,你在四個星期以前告訴過我,瑟斯頓有購買某項南非產業的特權,再有一個月就到期了,他很想你跟他共同使用;第五,你的支票簿鎖在我的抽屜裡,你一直沒跟我要過鑰匙;第六,你不打算把錢投資在南非。」
「這太簡單了!」我叫起來了。
——柯南.道爾《跳舞的人》
一、回溯推理的偵探:杜彭、福爾摩斯、馬婁
所謂「回溯推論法」(abduction)是有別於演繹法(deduction)和歸納法(induction)的一種推理方法,但它常被與演繹法或歸納法混淆。
回溯推論法被提出為一種科學研究的推論方法,就我個人所知,最早見於美國哲學家 Charles Sanders Peirce (1839-1914)1878年發表的科普文章〈Illustrations of the Logic of Science - Deduction, Induction, and Hypothesis〉。但在這篇文章裡,Peirce用了hypothesis(假說)這個字來稱呼回溯推論法。後來他改用retroduction,而且一直到1896年都還用這個字。要在他1903年的文章,我才看到abduction這個字的出現。但不論使用哪個名詞,他都把它與演繹法及歸納法並列,作為推論方法的一種形式。
其實就在Peirce還在掙扎著釐清他用不同字眼所指涉的回溯推論法的時候,這個方法的基本形式早就廣泛地被推理小說中虛構的偵探有意識地用作辦案的方法了。這包括埃德加.愛倫.坡(Edgar Allan Poe)筆下的杜彭(Dupin)和柯南.道爾(Conan Doyle)筆下的福爾摩斯(Holmes)。杜彭號稱小說界第一位偵探,但他只出現在1841-1844出版的三篇短篇小說中。反觀福爾摩斯,他一共出現在4篇長篇及56篇短篇裡,其出版年份縱貫1887-1927。當華生(Watson)已經很清楚地介紹福爾摩斯的探案方法的時候,Pierce還沒拿定用哪個字眼來稱呼這個方法較恰當。
這就難怪華生把福爾摩斯的推理方法稱為「演繹的科學」(the science of deduction)囉。
不僅小說家會把回溯推論法與其它推論方法混淆,即便學界大師也會搞錯。因果論大師朱迪亞.珀爾(Judea Pearl)便把福爾摩斯的方法稱為歸納法。他在《因果革命:人工智慧的大未來》(The Book of Why: The New Science of Cause and Effect)一書中寫道:「但福爾摩斯真正厲害的,不是由假說演繹出結論,而是歸納。歸納法的運作方向和演繹法相反,是從證據產生假說。」
沒錯,回溯推論法簡單說是「從證據產生假說」。但歸納法是要從統計資料產生通則,而回溯推論法則是要從不斷更新的事實推出最可能的解釋。這些解釋不必是通則:它們可能只是無法觀察到的事實。
科學家要建立通則;偵探對通則沒有興趣,他們有興趣的是事實,特別是未能觀察到的事實。
也是偵探小說作家的雷曼.錢德勒(Raymond Chandler)透過他筆下的偵探馬婁(Marlowe)說:「有些事情是事實:在統計的意義上、寫在紙上、錄在帶上、作為證據的事實。而有些事情之所以為事實是因為缺少了它其它的事情就無法解釋了。」(《回播》)
當然馬婁這話令人想到福爾摩斯的名言:
「當你把一切不可能的情況都排除之後,那剩下的,不管多麼離奇,也必然是事實。(When you have eliminated the impossible, whatever remains, however improbable, must be the truth.)」(《四簽名》)
在《血字的研究》一書中,福爾摩斯進一步地對華生解釋他的方法:
我已經對你說過,凡是異乎尋常的事物,一般都不是什麼阻礙,反而是一種線索。在解決這類問題時,最主要的事情就是能夠用推理的方法,一層層地回溯推理。這是一種很有用的本領,而且也是很容易的,不過,人們在實踐中卻不常應用它。在日常生活中,向前推理的方法用處大些,因此人們也就往往容易忽略回溯推理這一層。如果說有五十個人能夠從事務的各個方面加以綜合推理的話,那麼,能夠用分析的方法推理的,不過是個把人而已。
我也很難指望你能夠弄得清楚。讓我試試看我是否能夠把它說得更明確一些。大多數人都是這樣的:如果你把一系列的事實對他們說明以後,他們就能把可能的結果告訴你,他們能夠把這一系列事實在他們的腦子裡聯繫起來,通過思考,就能得出個什麼結果來了。但是,有少數的人,如果你把結果告訴了他們,他們就能通過他們內在的意識,推斷出所以產生出這種結果的各個步驟是什麼。這就是在我說到『回溯推理』或者『分析的方法』時,我所指的那種能力。
偵探小說中,逆向推理首見於愛倫.坡的杜彭。《血字的研究》中福爾摩斯嘲笑杜彭「賣弄」(showy)、「膚淺」(superficial)、「不入流」(inferior),但也不得不承認杜彭分析問題的天才。我們讀杜彭的故事,讀到他在首次出現時,精準逆推敘述者思路的情節,可以想像道爾完全是在模仿愛倫.坡。如果那是賣弄,那福爾摩斯逆推華生思路的賣弄比起杜彭只有過之。
二、演繹法、歸納法、回溯推論法
回溯推論法與演繹法、歸納法的區別可以用不同組合的三段論來闡釋。
演繹法
- 前提 1: 若A則B
- 前提 2: A
- ---------------------
- 結論: B
歸納法
- 前提 1: A
- 前提 2: B
- ==========={p}
- 結論: 若A則B
回溯推論法
- 前提 1: 若A則B
- 前提 2: B
- ============={p}
- 結論: A
這裡「==={p}」代表結論不是絕對的, 而是只有機率0<p<1的「確定性」。
以邏輯學常用的例子A=「天雨」、B=「地濕」來看。如果演繹法的兩個前提(「若天雨,則地濕」及「天雨」)都成立,其結論(「地濕」)是百分之百(p=1)確定的,不必用「==={p}」的符號來表示。
歸納法則無法引申出百分之百確定的結論。歸納法的目的是要從經驗事實來建立通則。但經驗事實不能是單一事件,它必須是具有代表性的資料。以統計術語來說,做為歸納法前提的事實資料必須是隨機樣本。但即使如此,因為抽樣誤差的關係,歸納法的結論仍然可能不具p=1的確定性。我們即使在很多不同的時空裡觀察到「天雨」跟「地濕」的連結,但我們仍然不能藉由資料本身就確定「若天雨,則地濕」是一個放諸四海皆準的通則。歸納法出錯的有名例子是「黑天鵝」事件。當1967年荷蘭探險家Willem de Vlamingh在澳洲看到黑天鵝的時候,歐洲人才知道他們以有限的經驗事實歸納出的「所有的天鵝都是白色的」的結論是錯誤的。
回溯推論法同樣不能導出百分之百確定的結論,但上述回溯推論法的三段論與歸納法有明顯的不同。光以三段論來看,回溯推論法與演繹法毋寧是比較接近的:它們都以通則「若A則B」為前提,只是演繹法是由A來推論B,而回溯推論法是由B來推論A。從邏輯上來說,回溯推論法當然是不對的。我們都知道「若A則B」只能引申出「若¬B則¬A」(¬是邏輯中「非」的符號),亦即「以否定後項來否定前項」(modus tollens)而不能以肯定後項來肯定前項。「地濕」無法推出「天雨」的結論,這是明顯的道理:因為「地濕」有許多原因,「天雨」只是其中之一而已。既然如此,那回溯推論法究竟有沒有邏輯上的價值?
回溯推論法的價值不是建立在單一的三段論上面,它仰仗的是當新事實出現時,這三段論的反覆應用。舉例來說,假設有而且只有三個事實A1、A2、A3能產生B的結果,但它們各自也能分別產生B1、B2、B3的結果。如此則我們有三個通則:「若A1則B1及B」、「若A2則B2及B」、「若A3則B3及B」。當我們只觀察到B時,回溯推論法讓我們得到A1、A2、或A3的結論,但卻無法告訴我們其中何者為真。但當我們觀察到更多的事實時,我們也許就能得到較為確定的結論。例如我們在觀察到B的同時也觀察到B1,則結論為A1的確定性將會提高。但即使我們未觀察到B1,如果能觀察到B2、B3的反證,則A2、A3可以被否定,A1的確定性將提高至p=1。後者的推論方法可以示意如下:
- 前提 1: 若A1則B1及B
- 前提 2: 若A2則B2及B
- 前提 3: 若A3則B3及B
- 前提 4: B
- 前提 5: ¬B2
- 前提 6: ¬B3
- ------------------------------
- 結論: A1
在福爾摩斯的方法論中,他把A1、A2、A3稱作「理論」(theory),有時也稱作「假說」(hypothesis)或「解釋」(explanation),把B1、B2、B3稱作「資料」(data)。登門求助的客戶訴說犯罪現場的狀況後,福爾摩斯有了基本資料。如果基本資料足夠,他會形成幾個有待進一步驗證的理論。但如基本資料不夠,他通常不願立刻提出理論,而寧可等待到現場蒐集進一步資料後再提出理論。此時理論可能仍有好幾個,他會不斷地努力追求新資料,例如拿放大鏡匍匐在地上觀察足跡、塵土、煙灰等等。這些動作雖然常被蘇格蘭場的警探嘲弄,他的目的就是要有更多的事實資料來讓他增加或減少某些理論的確定性。到最後如果某理論達到p=1,他就破案了。
三、福爾摩斯在《皮膚變白的軍人》案中的推理過程
道爾的福爾摩斯故事中,福爾摩斯都用了這種方法破案。其中把這方法的應用說得最清楚的,莫過於《皮膚變白的軍人》。這個故事寫於1926年,是道爾晚年的作品。一般讀者對它印象可能不深,但它有一個特色:它是所有福爾摩斯小說中唯二華生未親自出現的一篇。所以,小說中推理方法的描述,是由福爾摩斯本人娓娓道來的。
故事中來向福爾摩斯求助的客戶是退伍軍人,他因與昔日同袍好友失聯,心中不安。寫信給好友父親,父親說好友周遊世界去了,一年之內不會回來。但客戶不相信好友出遊會不告知他,非常疑惑。於是轉而寫信給好友母親,詳述軍中友情,欲前往拜訪。好友母親熱情歡迎,他遂前往,並蒙留宿。但好友父親仍然冷漠相待,只重複好友出國周遊的說法。當晚,夜深時,他彷彿看到好友隔著落地窗戶從室外看他,臉色慘白,有如鬼魂。他急忙追出,其身影已經消失在黑暗中。第二天,他厚顏要求再宿一宵,乘機觀察附近環境,發現園子盡頭有一棟房屋,有人看守,頗為神秘。他疑心好友被幽禁在此,但他的窺伺行動被好友父親發現,對他下了逐客令。他只好來求福爾摩斯相助追查真相。
福爾摩斯在揭發真相後,如此跟主人解釋他的推理過程:
「我的方法,」我說道,「就建立在這樣一種假設上面:當你把一切不可能的結論都排除之後,那剩下的,不管多麼離奇,也必然是事實。也可能剩下的是幾種解釋,如果這樣,那就要一而再、再而三地加以證實,直到最後只剩下一種具有足夠根據來支持的解釋。現在我們就用這個方法來研究一下當前這個案子。起初,提到我面前的有三種可能的解釋,可以說明為什麼這位先生在他父親莊園的小屋裡被隔離或禁錮起來。可以認為他是由於犯罪而逃避,或者是由於精神失常而不願住瘋人院,最後是因為有某種疾病而需要隔離。我想不出其它解釋。那麼,就需要把這幾個結論加以對比和甄別。
犯罪之說是不能成立的。本地區並沒有尚未破案的犯罪報告,這我十分清楚。如果說是尚未暴露出來的犯罪,那從家族利益來說應該是把他弄走或是送出國外,而不是藏在家裡。我看不出這條思路有什麼可能成立的地方。
精神失常的可能性要更大一些。小屋裡有的第二個人可能是看守人。他走出來以後把門倒鎖上,這就加強了上述假設,說明可能是強行禁閉。但另一方面,強制不可能是很嚴的,否則這個青年就不會跑出來去看一眼他的朋友了。多德先生,你記得我曾探索論據,比如問你肯特先生讀的是什麼報紙。如果是《柳葉刀》或《英國醫學雜誌》,那會幫助我思索。但是,只要有醫生陪同並上報當局,把瘋人留在家裡是合法的事。為什麼這樣拚命保密呢?因此精神失常的設想也不能成立。
剩下的第三個可能,看來雖然稀奇,卻是完全符合實際情況的。麻瘋在南非是常見病。由於特殊的機遇,這位青年可能受到感染。這樣一來,他的家屬處境就十分困難了,因為他們不願把他交給麻瘋隔離病院。為了不露風聲、不受當局干涉,必須嚴守秘密。如果給以適當報酬,不難找到一位忠實的醫生來照顧病人。也沒有理由在晚上不讓病人出來。膚色變白是這種病的普通症狀。這個假設的論據是十分充足的,以致使我決心把它當做已被證實了那樣來行動。當我初到這裡,發現給小屋送飯的拉爾夫戴著浸了消毒水的手套,這時候我連最後的疑點也消除了。先生,我只寫了一個詞,就告訴你秘密已被發現了,我之所以寫而沒有說出來,是為了向你證明可以信任我的謹慎。
四、貝氏回溯推理者福爾摩斯
福爾摩斯因客戶的敘述而提出三個可能的假設,這固然是回溯推論法,但他排除其中兩個而達到一個確定的結論,其方法卻不脫演繹法。這是因為「以否定後項來否定前項」其實是具有絕對確定性的演繹邏輯:
- 前提1: 若A2則B2及B
- 前提2: ¬B2
- ----------------------------
- 結論: ¬A2
- 前提1: 若A3則B3及B
- 前提2: ¬B3
- ----------------------------
- 結論: ¬A3
如果福爾摩斯能確定他提的三個理論是互斥而且窮盡所有可能性的(mutually exclusive and exhaustive),則他所謂「當你把一切不可能的結論都排除之後,那剩下的,不管多麼離奇,也必然是事實」可以示意如下:
- 前提1: 若¬A2及¬A3則A1
- 前提2: ¬A2及¬A3
- ---------------------------------
- 結論: A1
這樣的推論沒有任何不確定性,當然是十足的演繹法。也許這是道爾把福爾摩斯的方法稱為「演繹的科學」的原因吧?
但是這種演繹法成立的條件,除了理論必須互斥而且窮盡所有可能性之外,還得他的前提特別是對B2、B3(或¬B2、¬B3)的鑑識都是百分之百確定的。如果其中有任何不確定性,例如疑犯自白、證人證詞、甚至科學鑑識的可信度不足,則使用「以否定後項來否定前項」的邏輯也就無法達到p=1的結論了。《皮膚變白的軍人》案中,福爾摩斯亟想知道小屋看守人是否在讀《柳葉刀》等醫學刊物,但客戶沒去注意這些細節,隨口答了比較像《觀察家》。這種「證詞」能有多少確定性?如何足以讓福爾摩斯百分之百否定精神失常的假說?而且難道痲瘋病患者的看守人就不會讀《柳葉刀》嗎?當0<p<1時,我們就又回到回溯推論法了。此時因為不止一個理論無法完全排除,必須仰賴貝氏定理來算各理論的後驗機率。
貝氏定理的計算必須要假設先驗機率,其值由福爾摩斯依客戶的敘述及他自己的專業知識可以主觀判斷。以下的例子假設犯罪逃亡(理論1)、精神失常(理論2)、傳染疾病(理論3)三個理論的先驗機率分別為Pr(1)=0.2、Pr(2)=0.3、Pr(3)=0.5。福爾摩斯到現場調查之後,依鑑識結果判定資料支持各理論的程度。這是假設理論為真時,觀察到所得資料的條件機率。這裡依據故事中福爾摩斯自己的分析假設了下列條件機率,其中「+」代表調查所發現的資料與理論相符,「-」代表調查所發現的資料與理論不符:
- 調查結果與犯罪逃亡的理論完全不符,Pr(+|1)=0.0,Pr(-|1)=1.0。
- 調查結果與精神失常的理論不盡相符,Pr(+|2)=0.5,Pr(-|2)=0.5。
- 調查結果與傳染疾病的理論大致相符,Pr(+|3)=0.9,Pr(-|3)=0.1。
這些調查結果可以讓福爾摩斯用貝氏定理來更新他的先驗機率,其結果就是所謂後驗機率,也就是回溯推論法結論的確定性。計算的結果顯示:如福爾摩斯所說,犯罪逃亡的理論的確是不能成立的(Pr(1|+)=0),但其它兩個理論都不能完全排除。經過調查之後,資料證據稍微減少了精神失常的可能性(Pr(2|+)=0.25),但大大加強了傳染疾病的可能性(Pr(3|+)=0.75)。見表一。這結果雖然無法保證每案必破,卻比較合乎現實情況。
貝氏定理的計算,請參考我的文章:
從這個例子可以看出:不論先驗機率如何,只要資料與理論完全不符(即條件機率為零),該理論就可以完全排除。如果資料不只與犯罪逃亡的理論不符,也與精神失常的理論不符,那剩下的當然就只有傳染疾病的理論了。這就是「當你把一切不可能的結論都排除之後,那剩下的,不管多麼離奇,也必然是事實」。這個結論雖然在特殊的條件下用演繹法就可推出,但它其實是回溯推論法的一個特例,用貝氏定理也可算出,只是不需要那麼麻煩而已。見表二。當鑑識資料與理論的符合程度不是那麼確定時,光靠演繹法就行不通的,還是要仰賴回溯推論法及貝氏定理!
五、諾伯里!
太過於相信自己的判斷曾經給福爾摩斯帶來失敗的教訓。在另一個與《皮膚變白的軍人》有點類似的疑案《黃面人》中,從倫敦西南諾伯里(Norbury)區專程來求助的客戶懷疑自己的婚姻出了可怕的問題。他有次經過住家附近的一棟空屋,發現空屋的一扇窗戶裡有一張詭異的面孔也正在看著他:
我背上似乎冒出了冷汗。我站得稍微遠了一點,所以看不清面貌如何。不過這張面孔有點不自然而且不像人臉。這就是我那時的印象。我便急忙走向前去,以便把窺視我的那個人看得更清楚些。但我走近以後,那張面孔突然不見了,彷彿突然被拉到室內的暗處。我站了足有五分鐘,仔細考慮這件事,打算把我得到的印象分析一下。我很難說明這究竟是一張男人的面孔,還是女人的,它離我太遠了。可是這張面孔的顏色給我留下的印象卻是很深的。它就像青灰色的白堊土一樣,而且有點僵硬呆板,不自然得嚇人。
客戶心中不安,可是接下來發生的事更令他焦急:他發現他的美國妻子進出這棟空屋,行為異常,卻堅決不肯透露實情,只請求他相信她的愛情和苦衷。可是客戶忍不住了,來請福爾摩斯協助。
聽過客戶敘述案情之後,福爾摩斯在華生催問下,提出了他的唯一一個理論:客戶妻子的前夫住在空屋裡。華生難得地不以為然,說那完全是臆測,但福爾摩斯說:「可是它至少符合所有的事實。假使再發現了不相符合的新情況,我們重新考慮也還來得及的。」
可是福爾摩斯和華生搭火車到達當地之後,在月台等待的客戶「面色蒼白,憂心忡忡,渾身顫抖」已經忍無可忍了,要求兩人為證,直接闖入空屋。這才發現黃面人是妻子與美國具非洲血統的前夫所生的小女孩。前夫雖然膚色不黑,小孩卻黝黑得多,妻子怕鄰居的流言蜚語,給女孩戴上黃色的面具,讓她至少可以在窗戶後面窺視戶外景物。客戶諒解妻子的苦衷,抱著小孩與妻子攜手回家。
福爾摩斯不發一言回到倫敦,直到夜晚,才對華生說:「如果以後你覺得我過於自信我的能力,或在辦一件案子時下的功夫不夠,請你最好在我耳旁輕輕說一聲『諾伯里』,那我一定會感激不盡的。」