論文筆記 Computing Machinery and Intelligence

Paper Link

今天是台灣九合一縣市長選舉隔天,決定要來看一篇 1950 年,由計算機科學之父 A.M. Turing 所寫的 Computing Machinery and Intelligence。

這篇 paper 提出了電腦智能當中幾個重要的想法,數學描述不多,主要著重在理論上的描述。

圖靈測試(Turing test)是 AI 領域中,一項著名且具爭議的測試方法。這是以 Alan Turing 在 1950 第一份論文「運算機器與智能」(Computing Machinery and Intelligence)為基礎所設計的問答,目標在分辨機器是否具備人類所具有的智能(Intelligence)。

文本很長,又是 1950 年的英式英文,但我會試著去翻譯並整理這經典的 paper。

1. The Imitation Game

首先圖靈提出了一個問題:

“Can machines think?”

這個應該要從主詞(machines)和動詞(think)的定義出發。

但圖靈認為重新給 machines 和 think 定義是危險的,所以他選擇了提出另一個問題,而這個問題和原問題緊密相關,最重要的是明確性

新的問題稱之為 imitation game(模仿遊戲)。需要三個人來玩這個遊戲:

  • A:一個男人
  • B:一個女人
  • C:一個詢問人(男女皆可)

C 待在一個與另外兩人隔離的屋子裡。

遊戲的目標是:C 判斷出外面的人哪個是 A?哪個是 B?

C 用標籤 X、Y 代表外面的兩個人。

遊戲結束時,他要說出「X 是 A,Y 是 B」或者「X 是 B,Y 是 A」。

A 的目標是盡可能的騙過 C,而 B 的目標是幫助 C 做出正確判斷。

現在我們提出一個問題:

「如果在這遊戲中,用一個機器擔任 A 的角色」

將會發生什麼情況?同與一男(A)一女(B)玩這個遊戲相比,C 判斷錯誤的頻率是否發生變化?這個問題取代了原先的問題:“Can machines think?"。

2. Critique of the New Problem

新問題的優勢在於:它把一個人的體力和智力完全區分開來。新的評判標準的其它優勢在下面的樣例問題和回答中顯示了出來:

  • Q:請寫一首以 Forth Bridge 為主題的詩。
  • A:我無能為力,我從來都不能寫詩。
  • Q: 34957 加 70764 等於多少?
  • A:(停了三十秒鐘後給出答案) 105621。
  • Q:你玩象棋嗎?
  • A:玩。
  • Q:我的王在 K1,沒有別的棋子了,你只有王在 K6,車在 R1。換你走,你走哪步?
  • A:(十五秒鐘的停頓後)車移動到 R8,將軍。

這種問答形式幾乎適用於我們想要包括的人類行為的一切形式。我們不希望因為一個機器不能在選美比賽中勝出就認為它無能;正如我們不能因為一個人不能在和飛機賽跑的比賽中勝出就認為他無能一樣。我們的遊戲設定讓這些無能變得無關緊要。只要參與者認為合適,他們可以吹牛。可以把自己描述成魅力無限、強壯無比、英勇無畏。而 C 無法要求他們做實際的展示。

對這個遊戲的批評可能是:機器在遊戲的成敗中占有了過多的比重。如果一個人試圖假裝成一個機器的話,他肯定是一個蹩腳的演員。他會由於算術方面的緩慢和不準確立即暴露。機器會不會解決了一些應該是思考的問題,其解決方式卻和人的方式相差甚遠?這個反對意見確實很棘手。但是,至少我們可以說,儘管如此,機器可以被設計得可以很好的玩這個模仿者遊戲。我們不需要對這個問題過分擔心。

有一種情況是機器在玩模仿者遊戲時的最佳策略是做別的事而不是模仿人的行為。這種情況是可能的。但是我認為這樣的情況並沒有付出多大的努力。不管怎樣,本文並不試圖研究這個遊戲的理論。我們假定機器的最優策略是努力提供和人一樣的答案

3. The Machines Concerned in the Game

只有在我們確定「機器」這個詞的意義之後,我們在 1. 中提出的問題才是定義完成。

我們希望能符合以下三點要求:

  1. 一切工程科技都允許使用在我們的機器上。
  2. 一個或一組工程師製造出一個可以工作的機器,但因為他們使用了基於實驗的方法來設計他,以至於這個機器的工作方法不能被它的建造者很好的描述。
  3. 把通過生育誕生的人從機器的概念中排除出去。

要讓定義同時滿足這三個要求是困難的。例如,你可能會要求這些工程師都是同一個性別,但是這實際上也是無法滿足要求。因為通過單個人的一個皮膚細胞產生一個完整的個體不是完全不可能的。這將是生物科技的具有劃時代意義的突破,但是我們並不希望把他概括在「建造了一個思維機器」中。這就要求我們放棄允許一切的科技的打算。我們更願意將「思維機器」的研究集中在一種被稱為「電子計算機」或「數字計算機」的機器上。因此,我們僅僅允許「數字計算機」參加我們的遊戲。

第一眼看上去,這個限制過於嚴格。事實上並非如此。首先我們需要簡要的了解一下這些計算機及其它們的一些性質。

你可能會說:如果達不到我們為「思考」定的評判標準,這樣的數字計算機只會令人失望,且在遊戲中表現不佳。

目前已經有許多數字計算機在工作。人們可能會問:「為什麼不拿一台直接作實驗?很容易就能滿足遊戲的要求。可以同時有許多的 C 參加遊戲,然後統計出判斷正確的機率」。對這個問題的簡要回答就是:我們並不是要問是不是所有的數字計算機都能在遊戲中表現良好,也不是要問現在的計算機中有沒有機器能夠通過實驗。而是要問:

是否存在一台想像中的機器能夠通過遊戲。

這僅僅是一個簡要回答,後面將從另一個角度考慮這個問題。

4. Digital Computers

數字計算機可以被解釋成:

可以執行一切計算人員能夠進行的操作。

一個計算人員應該嚴格遵守規則。他在一切細節上,都沒有一絲偏離的權力。我們可以假設這些規則寫在一本書上。每次被分配新的任務的時候,將會改變執行步驟。他有無限的紙進行計算,他可以用「算盤」進行乘法和加法運算,這並不重要。

如果使用上述解釋定義數字計算機,我們可能陷入循環定義。為防止這種情況發生,我們列出期望結果得出的方式。一個數字計算機通常由一下三個部分組成:

i. 存儲器(Store) ii. 執行單元(Executive unit) iii. 控制器(Control)

存儲器用來存貯信息,對應於計算員的紙。紙上既記錄了他的計算過程,也記錄了他所遵循的計算步驟。同樣,如果計算員進行心算的話,一部分存儲器將對應於他的記憶

執行單元是一次計算中單個操作進行的場所。操作對象隨著機器的不同而不同。通常一個相當長的操作可能是:「3540675445 乘以 7076345687」,但是一些機器可能僅能夠執行「寫下 0」一類的簡單操作。

上面曾經提到計算員的「記錄操作步驟的書」由機器中的一部分存儲器代替。不妨把它們稱為「指令列表」。控制器的職能就是保證這些指令按照正確的順序得到正確的執行。控制器的設計使得這成為可能。

存儲器上的信息通常被分為許多的小包存放。例如,在一個機器中,一個包由十個十進制數組成。每個存儲信息的包都以某種系統的方式分配了數字。

以下介紹幾種典型的指令(有點像是計概課所教過的):

add

6809 4302 17:把存放在 6809 的數和存放在 4302 的數相加,並把結果存入後一個存儲位置。

這裡,17 指的是可以對這兩個數進行的所有操作中的其中一個操作。這裡的操作如上所示是「進行加法操作」

loop

現在執行存儲在 5606 的指令,並從那裡繼續執行。

如果 4505 位置是 0,那麼執行存儲在 6707 的指令,否則繼續。

後面這種指令非常重要,因為它使得我們能夠反覆執行一段指令直到滿足一些條件。

讀者必須接受計算機可以按照我們所提出的原則所建造的。這些計算機幾乎能夠完全模仿一個計算員。

編程(programming)

上面我們提到的計算員要遵守的寫在書上的步驟實際上僅僅是一個設想。一個真正的計算員能夠記得他們需要做什麼。如果一個人想讓機器模仿計算員執行複雜的操作,他必須告訴計算機要做什麼,並且把結果翻譯成某種形式的指令表。這種構造指令表的行為通常被稱為「編程」(programming)。給一個機器編程使之執行操作 A,意味著把合適的指令表放入機器以使它能夠執行 A。

random

數字計算機的一個有趣變化是讓其成為「帶有隨機元素的數字計算機」。它們有特定的指令進行擲色子或者別的等價電子過程。例如其中一個是「擲色子並把結果存入位置 1000。」有些時候這樣的機器被描述為具有自由意志,(儘管我自己並不使用這個表述)。通常並不能通過觀察判斷出一個機器有沒有隨機元素。因為一個相似的效果可以通過依據圓周率 $\pi$ 的小數部分進行選擇來產生。

絕大多數的數字計算機具有有限的存儲空間。讓一個計算機獲得無限的存儲空間並不存在理論困難。當然,在任何時候都只有有限的部分被使用。同樣,只有有限的存儲空間被建造。不過我們可以想像越來越多的存儲空間可以根據要求添加。這樣的計算機具有特殊的理論價值,將被稱為無限容量計算機。

有關計算機設想的很早就產生了。在 1828 至 1839 年擔任劍橋大學的 Lucasian 數學教授的 Charles Babbage 設想了這樣的機器,並稱之為分析機,但是並沒有完成它。儘管 Babbage 有了所有的關鍵思想,他的機器在那個時代卻沒有吸引人的前景。它能夠達到的運算速度肯定比一個計算員要快,但是僅相當於曼徹斯特機的百分之一,而曼徹斯圖機也是現代計算機中相當慢的一個。分析機的存儲全部由用輪子和卡片組成的機械實現。

事實上,全部由機械組成的 Babbage 分析機幫助我們破除了一個迷信。通常我們對現代計算機是電子的這個事實給予相當的重視。同樣,神經系統也是基於電的。因為 Babbage 的機器是沒有使用電,又因為數字計算機在某種意義上都是等價的,我們就會明白是否使用電的理論上並不重要。當然,當需要高運算速度的時候,就需要使用電氣結構。因此,我們就會發現在這些地方使用電是理所當然的。在神經系統中,化學過程至少和電過程同樣重要。某些計算機的存儲器主要基於聲學原理。計算機和神經系統都使用電僅僅是表面的相似。如果我們希望尋找這樣的相似,倒不如對函數進行數學分析。

5. Universality of Digital Computers

上一部分給出的數字計算機可以被歸類為「離散狀態機」。這類機器可以

從一個確定狀態向另一個狀態突然跳變。

為了不會有混淆這些狀態的可能,它們之間要有足夠的差別。嚴格的說,這樣的機器是不存在的。一切事件實際上都是連續的。但是有許多種機器能夠被看作離散狀態機器。例如在照明系統中的開關,我們可以把開關看成只有開和關兩個狀態。它們之間肯定有轉換過程,但是在絕大多數情況下可以忽略它們。作為離散狀態機器的例子,我們可以考慮一個每秒嘀嗒 120 度的輪子,這個輪子可能因一個槓桿的阻擋而停下來,在輪子上有一個發光的燈。這個機器可以被抽象的描述為下面的形式。機器的內部狀態(通過輪子的位置來描述)可以是 $q_1$、$q_2$ 和 $q_3$。輸入信號是 $i_0$ 或 $i_1$(槓桿的位置)。任何時候的內部狀態可以根據上一次狀態和輸入信號由下表描述:輸出信號可以用下表描述,

\begin{array}{c|ccc} & q_1 & q_2 & q_3 \\
\hline i_0 & q_2 & q_3 & q_1 \\
i_0 & q_1 & q_2 & q_3 \end{array}

輸出信號,唯一能夠被外部觀測的內部狀態指示器,如下表描述:

\begin{array}{c|ccc} \text{State} & q_1 & q_2 & q_3 \\
\text{Output} & o_0 & o_0 & o_1 \end{array}

這個例子是一個典型的離散狀態機。只要它們的狀態是有限的,它們就可以用這樣的表格描述。

可以看出,只要給出初始狀態和輸入信號,所有的未來狀態都是可以預測的。這讓我們想起了 Laplace 的觀點。那就是,只要給出宇宙中任意時刻所有粒子的位置和速度,就能夠預知未來的所有狀態。我們考慮的預測和拉普拉斯相比較更接近於實用性。因為「宇宙是一個整體」的系統,所以只要初始條件的一個很小的誤差,就會引起系統在一段時間以後變得完全不同。某個時刻一個電子位置的億萬分之一厘米的偏移,將決定一個人會在雪崩中死去還是逃生。我們稱為「離散狀態機」的機械系統的一個核心性質就是,這樣的現象並不會發生。即使是考慮一個實際的物理系統,而不是理想機器,只要知道了某個時刻足夠精確的狀態信息,就可以足夠精確的預測未來的一切狀態。

正如我們所提到的,數字計算機屬於離散狀態機。但是這樣的機器所能夠達到的狀態通常是相當大的。例如,現在在曼徹斯特工作的機器可以有 $2^{165000}$ 個狀態,也就是大約 $10^{50000}$。而在上面的嘀嗒輪的例子中,僅有三個狀態。找到有如此多狀態的原因並不困難。計算機具有一個存儲器,對應於計算員的紙。這些存儲器中應該能夠寫入任何能夠寫入計算員所用紙上的符號。為了簡單起見,假設僅僅使用從 0 到 9 的數字作為符號。忽略手寫體的差別。

假如計算機具有 100 張、每張 50 行、每行 30 個數字的存儲空間。那麼狀態的數目就會是 $10^{100 \times 50 \times 30}$,即 $10^{150000}$。這大約是三個曼徹斯特機狀態的總和。狀態數的基為 2 的對數通常被稱為機器的「存儲大小」。因此曼徹斯特機的存儲大小是 165000 而上面例子中輪子的存儲大小是 1.6。如果兩個機器加在一起,他們的存儲大小應該是原來存儲大小的和。因此我們可以說」曼徹斯特機具有 64 個磁帶存儲器每個存儲器的大小是 2560,還有 8 個電子管,每個容量為 1280。各種各樣存儲器加在一起大約是 300 個,總共 174380。

只要給出對應於離散狀態機器的表格,就能夠預測出機器將會做什麼。這樣的計算當然能夠通過電子計算機進行。只要執行的足夠快,電子計算機就能夠模擬任何離散狀態機的行為。這樣,模範者遊戲就變成機器作被問者 B,善於模擬的計算機作 A,那麼詢問者 C 就不能區分它們。當然,數字計算機必須有足夠的存儲空間,運行的足夠快。而且它在模範不同的機器之前必須被重新編程。

這樣可以模擬任意離散狀態機器的性質的數字計算機被表述為他們是通用機器。具有這樣性質機器的存在帶來的一個重要結果就是,不考慮速度,我們並不需要設計出不同的新機器來執行不同的問題。它們都可以用一個數字計算機來實現,只要根據每種情況進行適當的編程。這表明所有的數字計算機在某種意義上是相互等價的。

現在重新考慮在第三部分末尾提出的問題。暫時把問題 “Can machines think?” 用「是否存在假想中的機器能夠在模範遊戲中表現良好」代替。如果我們願意,我們還可以問「是否存在能夠表現良好的離散狀態機」,但是由於通用性,我們可以看出這兩個問題都等價於「讓我們把注意力集中在一個數字計算機 $C$上。如果我們可以讓它具有足夠大的存儲空間,足夠快的計算速度,而且對它進行適當的編程。$C$ 扮演模仿遊戲中 A 的角色,人扮演 B 的角色,$C$ 能不能在這個遊戲中表現良好?」

6. Contrary Views on the Main Question

6.1. The Theological Objection

思維是人的不朽靈魂的一種功能。上帝賦予每一個男人和女人以一顆不朽的靈魂,但從未將它賦予任何其他的動物或機器。因此,動物或者機器不能思維。

6.2. The “Heads in the Sand” Objection

機器思維後果太令人恐懼了。但願機器永遠不會有思維。

6.3. The Mathematical Objection

在數學邏輯里有一些結論,可以用來證明離散狀態機器的能力有一定限度。這些結論中最著名的是 Godel’s theorem (1931),此定理聲稱,在任何一個足夠有力的邏輯系統里,都能形成陳述,而所該陳述在該系統範圍之內既不能被證明是對的,也不能被證明是錯的,除非這個系統本身就不一致。

6.4. The Argument from Consciousness

Professor Jefferson’s Lister for 1949

若要我們承認機器與大腦是一樣的,除非機器能夠因為感受了思想與感情,而不是符號的偶然塗抹寫出十四行詩或協奏曲來。也就是說,它不僅寫了,而且也應知道自己確實這樣做了。任何機器都感覺不到(不只是屬於簡易發明之類的人工信號)成功的喜悅,也不會因困難而沮喪,因受奉承而沾沾自喜,因犯錯誤而悶悶不樂,因見異性而神魂顛倒,也不會因慾望得不到滿足而暴跳如雷或一蹶不振。

6.5. Arguments from Various Disabilities

我擔保,你可以使機器干任何你剛才提到的事情,可你永遠也不能使一台機器有 X 類的行為。

6.6. Lady Lovelace’s Objection

分析引擎沒有任何意圖要想創作什麼東西。它能做我們知道該怎樣去指揮它做的任何事。

6.7. Argument from Continuity in the Nervous System

神經系統不像離散狀態的機器。若是關於撞擊神經原的神經脈沖規模的信息有誤,那麽關於外沖脈沖的規模的信息就會有很大誤差。既然這樣,就可以論證:我們不可能用一個離散狀態系統去模仿神經系統的行為。

6.8. The Argument from Informality of Behaviour

我們不可能總結出一套規則來囊括一個人在所有可想象的環境中的行為。比方說,我們可以有這樣一條規則:行人見到紅燈止步,見到綠燈行走,但是,由於某種錯誤,紅綠燈同時亮了,那該怎麽辦?我們也許會這樣決定,為安全起見,最好止步。但是,這個決定還會有其他問題。要想總結出一套可行囊括一切人類行為的規則,哪怕是有關紅綠燈的規則,看來都是不大可能的。對這些看法我全贊同。

6.9. The Argument from Extrasensory Perception

我想讀者都很熟悉超感官知覺的說法,熟悉它的四種方式即心靈感應、千里眼、先知和精神運動的意義。

7. Learning Machines

在模擬一個成人的思想的工作中,我們將集中於思考一個好辦法來使它成長到此狀態。我們可能需要註意這樣三個組件:

  1. 思想的初始狀態,就像出生
  2. 能夠影響它的教育
  3. 其他的能夠影響它的非教育的經驗