一個謎題:兩個黑盒子#

從前,有兩個大型黑盒子 A 與 B,由一條長長的絕緣銅線相連。盒子 A 上有兩個按鈕,標為 α 與 β;盒子 B 上有三盞燈:紅、綠、琥珀色。

圖 1:兩個黑盒子——A 盒的 α、β 按鈕經銅線接到 B 盒的 R(紅)、G(綠)、A(琥珀)三盞燈

科學家研究這兩個盒子的行為,觀察到一個規律:

  • 按下 A 的 α 按鈕,B 的紅燈就會短暫閃爍。
  • 按下 A 的 β 按鈕,B 的綠燈就會短暫閃爍。
  • 琥珀色的燈似乎從不亮起。

他們做了數十億次試驗,在各種條件下都找不到例外,於是歸結出一條因果律:

  • 所有 α 都造成紅(all α’s cause reds)
  • 所有 β 都造成綠(all β’s cause greens)

這條因果作用是透過銅線傳遞的:剪斷銅線,B 盒的一切反應就停止;只要不剪斷,把兩個盒子相互屏蔽也不影響規律。於是科學家自然想知道:這條規律究竟怎麼透過銅線傳遞?

這是丹尼特(Daniel Dennett)設計的一個直覺幫浦(intuition pump)。表面上是科幻故事,真正的標靶是「意義(meaning)能不能被純物理/純語法的描述取代」這個哲學問題。閱讀時不妨先自己猜猜謎底。

線裡到底傳了什麼?#

科學家起初有直覺的假設:或許 α 送出低電壓脈衝、β 送出高電壓脈衝;或許 α 送單一脈衝、β 送雙脈衝。總之,按 α 時線裡一定固定發生某件事,按 β 時固定發生另一件不同的事——找出那是什麼,謎題就解開了。

但竊聽銅線後,事情比想像複雜得多:

  • 每次按鈕,都會有一長串脈衝與間隔——也就是位元(bit),精確地說是 10,000 個位元——飛快送往 B 盒。
  • 但每一次的位元樣式都不一樣。

那麼,一定有某個「特徵或性質」讓某些位元串觸發紅燈、另一些觸發綠燈。到底是什麼特徵?

科學家決定打開 B 盒。裡面是一台普通的數位序列超級電腦,配有大容量記憶體、一個龐大的程式與龐大的資料庫(當然也是用位元串寫成)。追蹤位元串進來後的效應,一切都平淡無奇:輸入串進入 CPU,觸發數十億次運算,幾秒後總是以兩種輸出訊號之一收場——輸出 1(點亮紅燈)或輸出 0(點亮綠燈)。每一步的微觀因果都能毫無爭議地解釋清楚,沒有任何神秘力量。同一串 10,000 位元反覆輸入,B 盒永遠給出相同的紅或綠。

一個小小的耐人尋味處:B 盒雖然對同一輸入總給相同輸出,卻幾乎每次都經過不同的中間物理狀態才抵達該輸出。原因不神秘——程式會保存每個收過的輸入副本,所以同一串第二次、第一千次進來時,記憶體狀態都略有不同。但最終輸出不變。

三種位元串:紅、綠、琥珀#

科學家開始把觸發紅燈的稱為「紅串」,觸發綠燈的稱為「綠串」,並忍不住假設:所有位元串不是紅串就是綠串。但他們其實只測過 A 盒發出的串。

於是他們把 A 與 B 暫時斷開,故意插入 A 輸出串的各種變體來測試。結果令人困惑又沮喪:只要竄改 A 的串,幾乎總是亮起琥珀燈,彷彿 B 盒察覺到了人為介入。

  • B 盒願意接受人造的紅串(照樣亮紅)、人造的綠串(照樣亮綠)。
  • 但只要把紅串或綠串中的任一個位元改動,琥珀燈幾乎必定亮起。

有人看到一個被竄改的紅串變成琥珀串,脫口而出:「你把它殺死了!」這引發一陣猜測:紅串與綠串在某種意義上是「活的」(甚至分公母?),琥珀串則是「死的」。這假設雖迷人卻毫無出路。不過大量隨機變體實驗確實強烈顯示:位元串真的有三類——紅、綠、琥珀,而琥珀串在數量上遠遠壓倒紅串與綠串好幾個數量級。幾乎所有可能的串都是琥珀串。這讓紅/綠規律更顯得既刺激又神秘。

逐案可解,通則卻找不到#

紅串為何點紅燈、綠串為何點綠燈?在每個個別案例中毫無神秘:科學家能追蹤每一串通過 B 盒超級電腦的因果,看它以令人滿意的決定論方式產出紅、綠或琥珀。

問題出在預測:他們找不到任何辦法,光是「檢視」一個新串(不實際「手動模擬」它在 B 盒裡的效應)就能預言它會造成三種效應中的哪一種。

科學家從經驗資料只知道:任意一個新串,如果不是 A 盒發出過的串,幾乎必是琥珀;如果是 A 盒發出過的串,則有超過十億比一的機率是紅或綠——但到底是紅是綠,非得放進 B 盒跑一遍才知道。逐案都能解釋,卻無法給出可供預測的通則,這正是全篇謎題的核心張力。

打開 A 盒也沒有答案#

謎底或許藏在 A 盒?打開後,裡面又是一台超級電腦,只是廠牌型號不同、跑著另一套巨大程式——依然只是普通數位電腦。

科學家發現裡頭有個內部「時鐘」,每秒滴答數百萬次。每次按下按鈕,電腦第一件事就是讀取時鐘的「時間值」(例如 101101010101010111),切成小段,據此決定呼叫哪些子程式、以何順序、先存取記憶體哪一部分,再據以拼出要送下線的位元串。

正是這個「查時鐘」(效果等同隨機)幾乎保證同一位元串永遠不會送出兩次。但即使有這種(偽)隨機性,規律依舊成立:按 α 拼出的串總是紅串,按 β 拼出的串總是綠串。唯一的瑕疵是:約十億分之一的機率,按 α 卻送出綠串、按 β 卻送出紅串。這個近乎完美中的微小瑕疵,反而更吊足了科學家想解謎的胃口。

謎底:真與假#

(想自己解謎的讀者,先別往下看。)

有一天,造出這兩個盒子的兩位 AI 駭客來了,把一切都說清楚了。

  • Al 造了 A 盒。他多年來開發一套「專家系統」(expert system):一個裝滿關於萬事萬物「真命題」的資料庫,外加一個能從公理推導出更多蘊涵的推論引擎。裡面塞了大聯盟棒球數據、氣象紀錄、生物分類、各國歷史,以及一大堆瑣事。
  • Bo(一個瑞典人)造了 B 盒。同一時期,他為自己的專家系統建了一套對打的「世界知識」資料庫。

兩人各自把畢生所能收集的「真理」塞進自己的資料庫。但隨著歲月流逝,他們對專家系統都膩了,也都認定這門技術的實用前景被大大高估——這些系統其實不擅長解決有趣的問題、不會「思考」、不會「找出創意解法」。它們唯一擅長的,靠推論引擎,就是產生大量真句子,以及測試輸入句子相對於自己「勉強算是知識(sorta knowledge)」而言的真假。

於是 Al 與 Bo 決定把這些「白費的心血」拿來做個哲學玩具

  1. 選一種通用語在兩套表徵系統間翻譯(其實就是英語,以標準 ASCII 碼傳送)。
  2. 用一條線把兩台機器接起來。
  3. 按 A 的 α 按鈕:A 隨機挑一條自己的「信念」(某條存好的公理,或推導出的蘊涵),翻成英語,在句號後補上隨機位元湊足 10,000 位元,送給 B。
  4. B 把輸入翻成自己的語言(瑞典 Lisp),拿去對照自己的「信念」資料庫測試真假。

由於兩套資料庫裝的都是真理、而且大致是同一批真理,所以:

  • A 送來 A「相信」的東西 → B 也「相信」→ 閃紅燈(真)。
  • A 送來 A 認定為假的東西 → B 判定為假 → 閃綠燈(假)。
  • 任何人竄改傳輸,幾乎必定破壞英語句子的良構性(除非只動到末尾那堆隨機垃圾位元);B 對打字錯誤零容忍 → 閃琥珀燈。隨機挑的位元串幾乎不可能剛好是良構的英語真句或假句,這就是琥珀串壓倒性多數的原因。

所以,那個神秘的因果性質「紅」,其實就是**「是一個英語真句」這個性質;「綠」就是「是一個英語假句」**。困擾科學家多年的搜尋,一旦知道謎底就成了兒戲:任何人都能隨手寫出紅串(例如「房子比花生大」「鯨魚不會飛」的 ASCII 碼),或綠串(例如「九小於八」「紐約是西班牙的首都」)。

哲學家很快玩出花招,例如找出「頭一百次是紅、之後變綠」的串——像是把「這個句子被送來評估的次數少於一百零一次」編成 ASCII。

語意能不能被消掉?一場哲學爭論#

謎題雖解,卻打開了哲學的爭辯。以下幾種立場一一登場,也正是這個直覺幫浦要逼問的重點。

「紅」到底是不是「真」?#

有哲學家挑剔:紅、綠這兩個位元串性質,並不「正好」等於英語裡的真與假。畢竟:

  • 有些英語真句的 ASCII 表達要好幾百萬位元(超過 10,000)。
  • Al 與 Bo 再努力也不可能只放進真事實——他們當年當作常識放進去的東西,有些後來被推翻了。

於是有人提議把「紅」改定義為:「B 盒(其勉強信念幾乎全為真)勉強相信為真的東西的一個相對簡短的英語 ASCII 表達」。這讓一些人滿意,另一些人仍挑毛病,說它不精確、有無法非特設地排除的反例……但正如 Al 與 Bo 所指出的:找不到比這更好的候選描述了,而這不正是科學家苦求多年的那種解釋嗎?謎不是已經徹底溶解了嗎?

而且一旦溶解,就能看出一件事:

若不動用某些語意的(semantical)或心智的(mentalistic)詞彙,根本沒有希望解釋我們一開始那條因果律——「所有 α 造成紅、所有 β 造成綠」。

抽象性質能當原因嗎?#

有哲學家反駁:真與假是語意性質,語意性質完全抽象,抽象的東西不能造成任何事——所以這根本不是「因果」規律。

其他人斥為胡說:按 α 造成紅燈亮,就跟轉動鑰匙造成汽車發動一樣確鑿是因果。假如當初線裡傳的真只是高低電壓、單雙脈衝,人人都會同意這是典範的因果系統。這系統結果是一台「魯布・戈德堡機械(Rube Goldberg machine)」般繞來繞去的怪東西,並不會讓 α 與紅燈之間那條可靠連結變得比較不因果——畢竟每一案都能追出精確的微觀因果路徑。

那它只是「非常複雜的語法」?#

被上面這番推理說服後,又有哲學家轉而主張:這說明紅、綠、琥珀根本不是真正的語意/心智性質,而只是**「彷彿(as if)」的語意性質**——它們真正的身分,是非常非常複雜的語法性質(syntactical properties)。理由是:這些因果系統「不過」是電腦,而電腦「不過」是語法引擎,做不出真正的「語意性」。

但這些哲學家拒絕進一步說明:那究竟是哪些語法性質?也拒絕解釋為何連小孩都能又快又準地產生、辨認這些性質的實例。丹尼特要點出的正是這個空頭支票——把語意重新命名為「複雜語法」,卻永遠開不出那張語法描述的支票。

Al 與 Bo 也回敬一問:「假設你們打開盒子,發現是我們本人躲在裡面照同一套規則耍你們,你們大概就會鬆口承認:起作用的因果性質是貨真價實的真(或至少是被相信的真)。那你們憑什麼在『人躲在裡面』和『電腦在裡面』之間畫一條界線?」

這一問引出兩種回應:有人宣稱在某種重要意義上,Al 與 Bo 確實就在盒子裡,因為那兩套資料庫正是他們自己信念的模型;也有人乾脆否認世上任何地方有語意或心智性質——他們說,內容(content)已經被消掉了。爭論持續多年,但我們一開始的那個謎,確實已經解開。

堵住逃生出口#

丹尼特承認:沒有哪個思想實驗清楚到不會被哲學家誤解。為了堵住幾種最誘人的誤讀,他特別點出幾個關鍵細節及其在直覺幫浦中的角色。

盒中裝置只不過是自動化百科全書——連「會走路的百科」都算不上,就是「真理之盒」。故事沒有預設或蘊涵它們有意識、會思考、甚至是行動者(agent),頂多是「恆溫器也算行動者」那種最低限度的意義。它們是極其無聊的意向系統(intentional system),死板地只追求一個單純目標。(IBM 的華生(Watson)也是如此。)

(1)為何兩套系統必須高度重疊? 兩系統獨立打造,不可能裝進完全相同的真理;但要讓惡作劇如故事所述般奏效,必須假設很大的重疊,使 A 產生的真理極不可能不被 B 認出。這之所以合理有二:(i) Al 與 Bo 也許國籍母語不同,卻住在同一個世界;(ii) 兩人都想做「有用的」資料庫,這保證了高度重疊——沒人會把「我二十歲生日那天左腳比右腳更靠近北極」這種瑣事放進通用百科。若還不放心,就補上一個不優雅的細節:他們當年寫程式時互相討論過該涵蓋哪些主題。

(2)為何 B 盒要用瑞典 Lisp? 為什麼不乾脆讓 B 盒裝一份 A 系統的複製品?因為故事的關鍵在於:不能有任何簡單、可實際發現的語法對應能解釋這條規律。把 B 做成瑞典 Lisp,就是要遮蔽兩套資料結構底層的語意共通性。

這裡是全篇的骨幹論證:

  • 電腦作為物理系統,充其量只能是語法引擎,直接回應可物理轉導的差異,而非意義。
  • 但 A 與 B 都被設計來盡量映射同一個假想的「全知者」——一個裝滿被理解之真理的語意引擎(semantic engine)
  • 當兩套盡可能不同的語法系統被設計來映射同一個語意引擎時,要解釋它們展現的驚人規律,唯一的辦法就是上升到語意層:在那一層,真理被相信、斷言被意圖。(這正是第 13 章的主題。)
延伸討論:這兩個盒子真能一直無法被逆向工程嗎?

有人會問:兩套系統真能隱晦到永遠禁得起逆向工程嗎?科學家真能被難倒這麼久嗎?

丹尼特的態度是謹慎的。密碼學已進入極艱深的領域,不宜輕率斷言存不存在「不可破解」的加密方案。但撇開加密不談,寫程式時放進原始碼的註解與路標,一旦編譯就全數消失,只剩下幾乎無法辨讀的機器指令糾結。「反編譯(decompiling)」有時實務上可行(但原則上是否永遠可行?),卻救不回註解,只能還原較高階語言的結構。若有必要,只要假設系統經過加密,就能強化「科學家反編譯與破解資料庫皆徒勞」這個設定。

此外,故事裡有個明顯漏洞:科學家竟從沒想過去看看線裡的位元流有沒有 ASCII 譯文,未免太遲鈍。丹尼特提出修補:把整套裝置(A、B 盒與連線)送到「火星」,讓火星科學家去解。α 造成紅、β 造成綠、隨機串造成琥珀的規律對他們一樣清楚可見,但他們對 ASCII 一無所知。這份來自外太空的禮物對他們將是徹底神秘的規律——除非他們想到:每個盒子裝著對某個世界的描述,而兩份描述說的是同一個世界。 正是「兩盒對同一批事物各自懷有繁多語意關係,只是用不同術語、不同公理化方式表達」,才奠定了那條規律。(火星人一旦想到這個假設,就能進行一種蒯因(Quine)式的「基進翻譯(radical translation)」,只是他們無法像對真人那樣舉起實物問「球?」「鉛筆?」,難度加倍。)

延伸案例:丹尼・希利斯的「一次性密碼本」與摩斯電碼版

丹尼特把這個思想實驗講給連結機(Connection Machine)的創造者丹尼・希利斯(Danny Hillis)聽時,希利斯立刻想到一個密碼學版的「解法」,並承認丹尼特的解可看成他那個解的特例:「Al 與 Bo 是把世界當成『一次性密碼本(one-time pad)』來用!」——這是對標準加密技術的巧妙比喻。

想像一個變體:你和摯友即將被敵對勢力(就說是太空海盜)俘虜,他們懂英語但不太懂你們的世界。你們都會摩斯電碼,臨時約定一套加密法:要打一個「劃」,就說一句真話;要打一個「點」,就說一句假話。

俘虜獲准聽你們說話。你要回答「不」(劃—點;劃—劃—劃),就說:「鳥會下蛋,而蟾蜍會飛。芝加哥是座城市,而我的腳不是錫做的,而棒球在八月開打。」下次要說「不」,就換另一組句子。即使俘虜懂摩斯電碼,只要他們無法判定這些句子的真假,就偵測不出代表點與劃的性質。

把這個變體加進寓言:不送電腦,改把 Al 與 Bo 本人裝進盒子送上火星。如果他們玩摩斯電碼把戲,火星人會跟面對電腦時一樣困惑——除非火星人得出那個對我們顯而易見的結論:盒子裡這些東西,是要被語意地詮釋的。

寓言的重點:意向立場無可取代#

寓言的道理很簡單:意向立場(intentional stance)無可取代。 你要嘛採取它,藉由找出語意層的事實來解釋這個樣式;要嘛就永遠被那條明明白白存在的規律——那條因果規律——所困惑。

同樣的教訓適用於詮釋演化史。即使你能鉅細靡遺描述每一隻長頸鹿一生中的每一個因果事實,除非你上升一兩個層次,去問「為什麼?」——去追尋大自然母親所認可的理由——你永遠無法解釋那個顯而易見的規律,例如長頸鹿為何演化出長脖子。

最後一道逃生出口:衍生的意向性#

到這裡,若你像許多哲學家,可能又想主張:這個直覺幫浦「有效」,只是因為 A、B 盒是人造物(artifact),它們那點意向性完全是衍生的、人造的。盒中資料結構的指涉(如果有的話),是間接依賴於其創造者 Al 與 Bo 的感官、生命史與目的。真正的意義來源在於這兩個人類工匠。Al 與 Bo 有原初的意向性(original intentionality),A 與 B 只有衍生的意向性(derived intentionality)。(這也正是「某種意義上 Al 與 Bo 就在盒子裡」那個提示的用意。)

丹尼特說,他大可換個講法:盒子裡裝的是兩個機器人 Al 與 Bo,各自花了漫長「一生」在世界裡四處奔走蒐集事實,然後才進盒子。他選了較簡單的路子,是為了先擋掉「A 盒或 B 盒是不是『真的在思考』」這類問題。

若你想把這個複雜化版本重新想一遍,請記得:關於「巨型機器人生存機器」的那個直覺幫浦,已經對「真正的意向性不可能出現在任何人造物中」這個看似有力的想法投下了疑問。換句話說,「原初 vs. 衍生」這道界線,並不像它初看那麼牢靠。

註:華生、CYC 與 ASCII/UTF-8 的補充
  • 華生(Watson):IBM 的華生剛好把丹尼特的科幻變成了近乎科學事實。你可以把華生當成 A 盒,B 盒則裝一個由 Bo 獨立開發的瑞典版對手。本思想實驗初次發表(Dennett, 1995a)時,現實世界最接近的例子是 Douglas Lenat 在 MCC 的龐大 CYC(取自 encyclopedia)計畫。與大量手工編碼的 CYC 不同,華生能自行在網路上「放牧」蒐集真理,並善用資料的統計性質。兩者都以各自方式「勉強理解」自家資料庫裡的資料——遠比其他擁有大型資料庫的電腦更甚。
  • ASCII 與 UTF-8:本篇初寫時,ASCII(美國資訊交換標準碼)是文書處理、電子郵件與網路語言的標準格式。它後來被向後相容的擴充格式 UTF-8(8 位元通用字元集轉換格式)取代——也就是說,ASCII 至今仍是 UTF-8 的一部分。