【原著解讀】丹尼特的《心靈的演化》:兩種奇怪的倒置推理
達爾文和圖靈是如何打破魔咒的
假設你看到一個水泵,你一定不會認為這個水泵是天然形成的。水泵這種東西,是人為設計出來,實現控制水流功能的工具。
但如果你看到一顆動物心臟,卻可以認為沒有人刻意設計出了動物心臟。動物心臟是大自然經過億萬年自然選擇所設計出來的。
設計者本身是有智能的,而被設計出來的東西就是設計者的智慧結晶。但是達爾文卻發現了一個倒置推理:不需要任何智能意圖,也能設計出精妙的工具。
由於大多數中國讀者在中學都學過演化論,那我也就不多說演化論了。我們重點來看看圖靈的貢獻。
計算機這個詞的英文是computer,但computer最初不是指我們桌子上的那個機器,而是指從事計算工作的人。有點像中國的賬房先生。不過英國最初大多是僱傭學過數學的女孩子作為computer,可能是這些女孩子比較細心,不容易算錯。
圖靈後來想,能不能發明一種機器,讓這種機器來實現計算功能,這樣那些女孩子不就可以愉快地玩耍了,不用從事枯燥無聊的計算工作了。
我們一般人是理解某個具體的演算法的,比如問2+3=?,人們脫口而出5。剛學數學的小孩子會想一想,然後給出答案5。但是計算機本身不理解演算法,它只是機械化地執行一系列命令,不過它一樣能實現計算效果。
在計算機的發明過程中,圖靈和馮諾伊曼可能是功勞最大的兩位天才。前者也被名副其實地稱之為計算機之父,原因就在於,圖靈成功想到了如何把計算這一抽象的思維過程變成具體的機械化過程。如此一來,本來需要學過數學且智力正常的女孩子才能完成的計算任務,可以由一台沒有任何智力,只懂得按照指令行動的機器來實現計算功能。
這就是可編程式計算機。程序就是一系列很死板的指令,比如「看到格子里有X就用Y來代替X,然後往右移動一個格子」等等「如果……那麼」式語句。執行這一系列條件句,不需要任何智力。
這就是圖靈的倒置推理:一個系統本身不需要有任何智能,也能實現計算功能。
這就是丹尼特所說的無需理解的能力。常識會認為,我們必須先理解某個功能背後的理論,然後才能實現這個功能。但丹尼特認為,我們不需要理解,也能實現同樣的功能。這其實也是一個教育學上很奇怪的說法。我們送孩子們去讀大學,就是希望他們能理解更多複雜的理論,然後就有了更強的能力。但丹尼特認為,這不是必要的。我們完全可以在不理解理論的情況下具備同樣強的能力。比如把一些不懂高等數學的孩子送到軍隊去訓練,讓他們操作雷達、為艦艇導航,經過一段實習訓練,他們就能做得很好。但他們還是不懂雷達和航海導航背後的數學理論。
如果考慮人工智慧軟體,那麼無需理解的能力其實很好理解。下棋軟體本身不懂如何下棋,但它的下棋能力比人類這種理解下棋的機器還要強。這也說明了,哪怕沒有作為高階功能的反思理解,某個結構一樣能實現令人嘆為觀止的功能。
人類也正是通過專業分工才實現了今天的文明程度。在專業分工的情況下,我們不需要理解所有的事情,也能具備特定的能力。
本體論和顯象圖景
本體論是一個哲學術語。問「你的本體論是什麼?」就是問「你認為什麼東西存在?」。
你認為鬼魂存在嗎?你認為原子存在嗎?你認為國家存在嗎?你認為空氣存在嗎?你認為桌子存在嗎?
人類假定存在的東西多種多樣。對於人類來說,「假期」是存在的,因為我們人為地將時間分割為工作期和假期。但對於北極熊來說,不存在「假期」這種東西。同樣,對於北極熊來說,國家、原子、桌子都是不存在的。但是雪是存在的。
簡言之,對於一個系統來說,凡是其在運作過程中需要假定為存在的東西,就是其本體論承諾。對於一個GPS導航系統來說,必須要預設衛星、電磁波等東西存在。而對於生活在太平洋上某個島嶼的土著人來說,衛星和電磁波都是可以不承諾的存在。
Wilfrid Sellars將人類常識中假定為存在的東西稱之為顯象圖景。常識差不多就是上完小學6年後所知道的那些東西。對於一個12歲的正常小孩來說,其顯象圖景中有很多東西,比如顏色、彩虹、人、植物、動物、傢具、汽車、日落、聲音、理髮、錢、問題、機會、錯誤等等。我們和這些東西有互動,可以創造它們,可以愛它們,也可以討厭它們。
顯象圖景說的就是人類常識理論中所假定存在的東西,與之相對的叫科學圖景。科學圖景中只有原子、分子、引力、夸克、暗能量、弦等科學理論所設定存在的東西。
顯象圖景是所有人的共識,而科學圖景僅僅是少數科學家所相信的東西。科學家會說「幫忙把鉛筆遞給我」,而不是「請將那個物質集移動到另一個時空區域之下」。科學家同時假定常識中存在的東西,也假定普通人不理解的東西。
當代科學的重要任務就是給出一套更精緻的科學圖景。然而,科學圖景和顯象圖景的差異也變得越來越大,因為大多數人的數學水平很有限,而且就日常生活而言,不需要知道科學圖景,也能很好地生存下去。在丹尼特看來,哲學家的任務就是調和科學圖景和顯象圖景之間的矛盾和衝突,這個任務非常難。
電梯的自動化
升降電梯剛發明的時候,是由人來操作的。在電梯箱里,有一個操作員,他來負責開關門,負責電梯往上或往下或停止,負責檢查電梯零件是否正常工作,負責檢查電梯是否超重。
可以設想一本事無巨細的電梯操作指令,由無數「如果X那麼Y」這樣的條件句合成。比如,「如果電梯乘客超過10,那麼請最後一位乘客出去」,「如果電梯乘客要去的樓層大於目前的樓層,那麼操作電梯往上運行」,「如果電梯自上一次檢查運行了10個周期,那麼檢查一次電梯零件的損耗程度」……
程序員朋友們都知道,如果一項任務可以由事無巨細的規則書來描述,那麼就可以編寫一套自動化的程序來實現整個任務。事實上,電梯生產商們也正是這麼做的,他們讓程序員設計出了自動化的電梯,不需要人工操作,也能實現同樣好甚至更好的功能。比如,自動化電梯中有許多感測器,可以直接記錄電梯內的載重,可以記錄零件損耗程度,還可以檢測門口是否有人以便決定要不要自動關門。
自動化的電梯和生命體有相似之處。比如,我們可以說某個自動化電梯很聰明,它設置了正確的本體論,也就是一系列重要的變數。電梯內的載重n是一個重要的變數,電梯當前的樓層x也是重要的變數,電梯的速度v也是重要變數。而乘客的性別、富裕程度等等,就是不重要的變數。注意,電梯自己並不理解這一系列規則和變數的變化,電梯只是機械化地執行程序操作而已。如果程序編寫得好,而且電梯也執行得很好,那麼這台電梯就是好電梯,反之就是壞電梯,
對於生命體來說,如果它能維持自身的存活,並且成功地自我複製,那麼它就是一個好生命體,繁殖就是糟糕的生命體。對於植物來說,氧氣濃度、土壤營養等等,都是重要的變數。如果一個植物能設置很好的本體論,考慮到應該考慮到的所有重要變數,那麼這個植物就是一個好植物。這裡的「好」和「壞」都是基於目的的評價。不過,植物只是執行那個目的,植物本身不知道自己的目的。
要注意,人類程序員在編程的時候,是帶著意圖的。人類程序員常常給源代碼做出評註,解釋自己之所以這麼編寫,是想要實現什麼效果。這樣其他人類程序員就能看懂那個源代碼,或者這個人類程序員在忘記自己當初寫代碼的意圖後,可以通過評註來想起自己當初為什麼要這麼寫。基因就是所有生命體的源代碼,但是基因本身不帶任何評註。只有人類可以通過逆向工程的方式,去猜測那些源代碼為什麼要那樣編寫。
原子彈和GOFAI的智能設計者
美國是第一個研發出原子彈的國家,而研發原子彈的項目被稱之為曼哈頓計劃。這個計劃大部分在美國田納西州的橡樹嶺完成的,最多僱傭了13萬人。然而,這卻是一個保密計劃。
大家可能會覺得奇怪,有13萬美國平民被僱傭幹活,但其中絕大部分都不知道自己在造原子彈。他們還以為自己在打造飛機零部件。這是為什麼呢?
這就是情報系統中常見的按需知情原則。一個系統中執行任務的個體並不需要知道系統的全貌,每個個體只需要知道自己要幹什麼,要在什麼情況下按什麼按鈕,在什麼情況下拉動什麼槓桿,就可以了。可以說,每個工人都不需要知道自己在造原子彈,只要整個系統的設計者知道整個過程可以製造原子彈,就足以了。這其實也是無需理解的能力:表現出某種能力的系統本身不需要理解這個能力。
設想整個曼哈頓計劃,其中沒有一個人理解了整個計劃的所有理論細節。工程師理解要造出某塊耐高溫金屬板所需要的理論細節,物理學家理解核裂變反應的理論細節,後勤人員理解食堂管理的理論細節,將軍理解將這群科學家和工程師集合在一起管理的理論細節。Leslie Groves將軍是整個曼哈頓計劃的負責人,但他自己可能完全不懂複雜的物理學。
同樣的思路也被用來發明人工智慧機器。圖靈自己在1950年時設想,只要將智能分解成機器可以執行的指令集,就能讓機器真正像人一樣思考問題。剛開始的時候,大家都非常樂觀。人們認為,只要把人類專家所知道的知識,寫成機器能執行的很死板的條件句式指令集,然後再搭建一個資料庫,稱之為「世界知識庫」,這樣就能發明人工智慧了。這就是Good Old-Fashioned AI,一條自上而下式的智能設計路線。
簡單來說,這條自上而下式的路線,就是再造一個能理性思考的笛卡爾。這個笛卡爾式的機器能從公理和推理規則中推出許多定理,還能自動化排除矛盾。總之,很多人認為,人工智慧就是發明擁有巨型資料庫的理性推理機器。
這條路子也取得了很多成果,比如飛機的自動駕駛,電梯的自動駕駛,輔助醫學診斷,寫作拼寫檢查等等。但大家也都知道,這樣的人工智慧離人類智能還有很遙遠的距離。人工智慧只能在特定環境下,經過複雜的指令集,表現出看起來很厲害的能力。人工智慧就是典型的無需理解的能力,而人類與機器不一樣,人類有理解能力,人類還有自我意識。
丹尼特認為,要想發明更接近人類智能的人工智慧,要採取更像演化演算法一樣的自下而上的方式。但我們不應該去試著發明強人工智慧,因為那時候就要考慮強人工智慧的倫理地位了。人類智能是自然選擇這種無智能的過程所設計出的產物,同時也是無智能的圖靈式機械化計算系統的產物。而「理解」這種特殊的理由表徵能力,不是那麼容易完全理解的。
筆者的補充
丹尼特假定的讀者是完全不懂計算機科學和編程的,而我假定的讀者至少對計算機有那麼一點點了解。所以我這裡寫得比較簡略。簡言之,丹尼特是想讓讀者們明白,competence without comprehension,comprehension和understanding是同義詞,只是丹尼特用前者顯得更押韻。其實,所有的內隱能力都是無需理解的,常見的有騎自行車、游泳、彈鋼琴等動作技能。如果把心理技能也算作動作技能,那麼絕大多數能力都是無需理解的。這點的哲學基礎,可以參見郁振華的《人類默會知識的維度》
關於本體論,因為我以前也寫過很多相關文章,所以這裡也就寫得比較簡略了。這對新讀者可能不太友好,但對於老讀者來說,這麼做會有一定的連續性,我也不用重複以前強調過無數次的知識點。
最後,competence without comprehension是全書最重要的主張之一,所以再反覆強調一下。competence就是能力,comprehension就是理解,這個短語的意思就是不需要理解也能有能力,或者叫「無需理解的能力」。很多程序員都知道,我們編寫出來的程序,發明出來的虛擬機器,它就是能實現某種效果,但我們不知道它為什麼能實現這種效果。總之,我們不理解它,但它依然能表現出相應的能力。同樣,我們這些不懂認知神經科學的普通人,不知道大腦是如何工作的,但大腦依然能表現出思考能力。換言之,我們不需要理解 ,也能表現出特定的能力。
下一章是關於「理解(understanding)」的,這是很重要的一個章節,我會寫得更詳細一些。
歡迎關注微信公眾號:認真想
致力於普及批判性思維與通識教育
認真想小助手微信號:Reason-A
推薦閱讀: