計算機和萬物有靈論

本文試圖介紹一種理解世界和意識的視角,它也許和泛計算主義(pancomputationalism)非常接近,但當然不會達到學術上的嚴謹,僅供感興趣的讀者參考。

心靈哲學上的計算主義(computational theory of mind)認為,人的意識是一種計算過程,而這種計算過程在物理上由大腦的神經網絡實現。這裏的兩個關鍵的概念是「計算」和「實現」,我們接下來對它們逐一進行說明。

所謂的計算,即是指根據某些規則對符號進行操作,例如我們計算1+1會得到2,其中的數字和加號都是符號,然後我們的規則告訴我們1+1可以代換到2,於是我們產生了另一個符號2。對更復雜一些的(1+2)*3,按規則我們會先計算括號裏面的,然後代換成3,再乘上3,代換為9。

我們可以想象計算就是按照一個流程,一步一步地操作,這在計算機領域也稱之為算法。例如各種用來排序的算法,就是一個步驟,只要根據這個步驟一步一步操作,就可以得到一個排序好的數組。用來求最大公約數的輾轉相除法也是計算的例子,給定兩個數,當我們按照規則一步步操作的時候,就可以得到兩個數的最大公約數。

但也有一些不那麼顯然的計算的例子,例如菜譜。我們可以把蛋糕的原料看作符號,麪粉、黃油、糖、雞蛋,當我們按照一些規則操作它們的時候,它們會被代換成一些中間符號,例如打發後的黃油、打散的雞蛋。再根據一些規則對它們進行操作,我們就得到了最終的符號成品蛋糕。

計算機即是設計用來計算的機器,只要輸入規則,它就會按照規則進行操作。因此一個電飯煲也是計算機,因為它按規則執行了一個計算過程。從這個角度看,廚師,呃,包括各種類型的社畜也統統都是計算機。舊時候的數學家往往看不上計算,因為計算只需要看懂規則,而不需要知道為什麼,因此可以發放給工人(往往是女工)去做。馮諾依曼有一句臭名昭著的話是,計算這種可以用廉價人力堆砌的工作,完全不值得用寶貴的機器來處理。

一個做菜的算法可以同時被一個做菜機器和一個廚師實現。儘管一個機器和一個人顯然是不同的,但是在執行一個菜譜的意義上,他們都是一樣的,可以相互替代。實現關注的是如何在現實世界執行一個算法,而算法則被認為只是一種信息,不同的機器可以千差萬別,但只要能裝載同一個算法就是一樣的。這聽起來是不是很像靈魂和身體?算法是靈魂,而當一個身體擁有了廚師的靈魂,它就變成了一個廚師,無論這個身體是人,還是機器或者仿生人。

回到本文開頭的命題,如果人的意識是計算過程,那麼意味着人的意識可以脫離身體存在,它們只是信息,可以被寫到紙面上,做各種推導。大腦只是這種計算過程的一種實現,但是我們完全有可能把意識用其他的方式實現,也就是做出和人類有同等意識的機器人是完全有可能的。

計算主義的這個觀點並沒有明確的證明和實驗支持,也許最好的實驗支持就是真正地做出這樣的機器人。但是如果你覺得現在的機器學習已經做出了很多看上去有意識的例子,可能你會更信服這樣的觀點。目前所有的機器學習本質上都是在做計算,因為它們都實現在硅電子電路製成的計算機上,而這樣的計算機所做的事就是根據一個算法,以非常快的速度操作符號。

接下來進入本文的後半部分,討論萬物有靈論(animism)。如果我們把算法考慮成靈魂,那麼我們實際上可以發現靈魂無處不在,因為物理定律就是一種算法。一個蘋果會下落,實際上就是預言了它會下落的萬有引力定律的實現。物理定律規定了一個物體會按什麼樣的規則改變狀態,而這些定律完全可以在紙上描述,並且一步步推導。它們實際上都是計算過程。而同一個蘋果,作為一個身體,完全有可能裝載另一個算法,例如萬有斥力定律,它不但不會下落,而且會向上加速遠離。

如果我們和蘋果都是計算機,物理定律像是一套所有計算機都預裝的程序,也就是我們都共同擁有的一部分靈魂。這種萬物都在做計算,甚至我們的宇宙本身就是一個大計算機的觀念,可以被稱作泛計算主義(pancomputationalism),或者我更喜歡計算泛靈論(computational animism)。一位比較知名的支持者可能是Stephen Wolfram(就是那個狼內存)。

從這個角度看,我們和萬物本質上並沒有太大不同,無非都是執行某種算法的機器,只不過有些算法基礎一點,有些算法特別一點。而有些算法甚至會讓機器覺得自己是自由的,因此並不是一個算法的結果,但這可能只是低估了算法的能力所造成的幻覺。

如果說算法是信息,那麼這種信息到底是什麼?或者說靈魂的本質是什麼?我們可以在紙面上描述這種信息,就如同描述菜譜一樣,但是這並不是必須的。一個廚師在一步一步做菜的過程中也表達了這種信息。理想情況下,一個人既可以通過菜譜學做菜,也可以通過觀看一個廚師的操作學做菜,這兩種途徑傳遞的信息是等同的。如果要我來給這種信息的本質做一個猜測,我覺得那應該是一個關於時間的狀態序列。

算法描述了狀態如何根據時間(一步一步地)變化,當執行數學算法的時候,紙面上的符號是狀態,計算機內存裏存儲的是狀態。而實際的算法,是由這些狀態的一步步變化體現出來的。這裏的時間和變化都很關鍵,因為如果只有一個瞬間,我們在不知道狀態會怎麼變化的時候,不可能看出它究竟在執行什麼算法,或者是根本就沒有算法。

那麼如何才算學會了一個算法呢?就是可以模仿這種狀態變化的時候。當一個新手廚師可以模仿老手廚師做菜的時候,他實際上就加載好了做菜的程序。某種意義上說,這是一種鬼上身的情況,老廚師身上的一部分靈魂進入了他的身體裏。當我們對一個計算機程序進行排錯的時候,我們被計算機鬼上身了,而當我們讀一本書的時候,我們被書的作者鬼上身了。如果你從頭追隨我的推論到現在,那麼也許應該說你也被我鬼上身了。

通過模仿,我們可以擁有其他事物的靈魂。如果我們模仿一個石頭一動不動,那麼我們實際上就擁有了石頭的靈魂,因為我們加載了它的算法。而想要理解另一個人的行為和感受,也許模仿也是唯一的辦法。擁有同一塊靈魂,可能就是相互理解的本質。當然外在的行為的模仿,不一定能還原出所有內在的感受狀態的變化,儘管這可能是我們最多可做的。

如果你發現了這篇文章實際上是一連串滑坡謬誤組成的,那麼你可能很有當哲學學者的潛質。雖然說大部分哲學推論本身就在幹這事,但我還是應該對一些顯著的問題誠實一些。在前面的議論中,我們基本都把實現看作是無所謂的,而算法的信息才是本質,但是有一些例子,實現的不同卻能產生很大的差異。

實現除了代表了一個算法是怎麼在現實世界裏執行的,也同時關注了一個符號在現實世界中的映射關係,例如什麼樣的現實物件才應該對應到菜譜裏的雞蛋,而什麼樣的現實物件能對應到菜譜裏的成品蛋糕?在紙面上合成一個蛋糕,或者說我們在紙面上計算一個化學反應的結果,和在現實中做一個化學反應是不一樣的。紙面上我們能得到的只是符號,而現實中我們能得到實際的產物。因此不同的實現對我們來說有不同的現實意義。

我們可以在廚房模擬器裏做一道菜,也可以在現實裏做一道菜,儘管它們的步驟是完全一樣的,但是我們對這兩者究竟是不是等同卻有所懷疑。因為後者做出來的菜我們真的可以吃到,而菜的香氣並不能被菜譜所捕捉。

菜這個符號可以映射到模擬器裏的虛擬的菜,也可以映射到現實中的一盤菜,但這兩種映射方式包含了差別很大的額外信息。這可能意味着算法始終只是現實世界的抽象,因為它只記載了有限的信息,而現實中的實現可以補全非常多尚未被記載的信息,這些差異僅僅是因為映射關係的不同造成的。

儘管這並不影響我們去設想萬物有靈,但靈魂和身體的關係可能確實比我們能做的各種描述都複雜得多,也許人類能做的只是在二者之間選取一個合適的重心。