2.2 人工智能的經典問題
2.2.1 圖靈測試
在一篇1950年發表的著名論文Computing Machinery and Intelligence中,數學家圖靈(1912—1954年)(圖2-1)詳細討論了“機器能否擁有智能”的問題。有趣的是,作為計算機科學與人工智能領域共同的先驅,圖靈成功定義了什么是機器,但卻不能定義什么是智能。正因如此,圖靈設計了一個實驗,即圖靈測試。圖靈測試的核心想法是要求計算機在沒有直接物理接觸的情況下接受人類的詢問,并盡可能把自己偽裝成人類。如果“足夠多”的詢問者在“足夠長”的時間里無法以“足夠高”的正確率辨別被詢問者是機器還是人類,就認為這個計算機通過了圖靈測試。圖靈把該測試看作人工智能的一個充分條件,主張認為通過圖靈測試的計算機應該被看作是擁有智能的。
假設有一臺計算機,其運算速度非常快,記憶容量和邏輯單元的數目也超過了人腦,而且還為這臺計算機編寫了許多智能化的程序,并提供了合適種類的大量數據,那么,是否就能說這臺機器具有思維能力?
圖靈測試是這樣進行的,如果一個人(代號C)使用測試對象皆理解的語言去詢問兩個他不能看見的對象任意一串問題。這里的對象,一個是正常思維的人(代號B)、一個是機器(代號A)。如果經過若干詢問以后,C僅根據通過這個儀器提問收到的答案辨別出哪個是計算機,哪個是人。如果C不能區別出機器和人,那么根據圖靈的理論,就可以認為這個機器A是智能的,則此機器A通過圖靈測試,如圖2-2所示。

圖2-1 艾倫·麥席森·圖靈

圖2-2 圖靈測試
這就是著名的“圖靈測試”(Turing Testing)。當時全世界只有幾臺計算機能夠通過,其他所有計算機根本無法通過這一測試。圖靈稱,要分辨一個想法是“自創”的思想還是精心設計的“模仿”是非常難的,任何自創思想的證據都可以被否決。他試圖解決長久以來關于如何定義思考的哲學爭論,提出了一個雖然主觀但可操作的標準:如果一臺計算機表現、反應和互相作用都和有意識的個體一樣,那么它就應該被認為是有意識的。
因此,圖靈采用“問”與“答”模式,即觀察者通過控制打字機向兩個測試對象通話,其中一個是人,另一個是機器。要求觀察者不斷提出各種問題,從而辨別回答者是人還是機器。圖靈還為這項測試親自擬定了幾個示范性問題:
問:請給我寫出有關“第四號橋”主題的十四行詩。
答:不要問我這道題,我從來不會寫詩。
問:34957加70764等于多少?
答:(停30秒后)105721。
問:你會下國際象棋嗎?
答:是的。
問:我在我的K1處有棋子K;你僅在K6處有棋子K,在R1處有棋子R。輪到你走,你應該下哪步棋?
答:(停15秒鐘后)棋子R走到R8處,將軍!
圖靈指出:“如果機器在某些現實的條件下,能夠非常好地模仿人回答問題,以至提問者在相當長時間里誤認它不是機器,那么機器就可以被認為是能夠思維的。”
從表面上看,要使機器回答按一定范圍提出的問題似乎沒有什么困難,可以通過編寫特殊的程序來實現。然而,如果提問者不遵循常規標準,編寫回答的程序是極其困難的事情。例如,提問與回答呈現出下列狀況:
問:你會下國際象棋嗎?
答:是的。
問:你會下國際象棋嗎?
答:是的。
問:請再次回答,你會下國際象棋嗎?
答:是的。
你多半會想到,面前的這位是一部笨機器。如果提問與回答呈現出另一種狀態:
問:你會下國際象棋嗎?
答:是的。
問:你會下國際象棋嗎?
答:是的,我不是已經說過了嗎?
問:請再次回答,你會下國際象棋嗎?
答:你煩不煩,老提同樣的問題?
那么,你面前的這位,大概是人而不是機器。上述兩種對話的區別在于,第一種可明顯地感到回答者是從知識庫里提取簡單的答案,第二種則具有分析綜合的能力,回答者知道觀察者在反復提出同樣的問題。圖靈測試沒有規定問題的范圍和提問的標準,如果想要制造出能通過試驗的機器,以當前的技術水平,必須在計算機中儲存人類所有可以想到的問題,儲存對這些問題的所有合乎常理的回答,并且還需要理智地做出選擇。
那么,一臺機器要通過圖靈測試,它需要有下面的能力。
1)自然語言處理:實現用自然語言與計算機進行交流。
2)知識表示:存儲它知道的或聽到的、看到的。
3)自動推理:能根據存儲的信息回答問題,并提出新的結論。
4)機器學習:能適應新的環境,并能檢測和推斷新的模式。
5)計算機視覺:可以感知物體。
6)機器人技術:可以操縱和移動物體。
圖靈測試具有遠大的發展意義,它考慮的是一個智能只能由其他智能來識別,代表著機器對人類知識體系/交互的理解程度。如果機器能理解人,再有高效的控制系統,那總有一天能讓人類完全脫離體力勞動,生存不再那么困難,可以做自己想做的事情。事實上,每個人對于智能的理解都不同,有些人可能覺得會解數學題就是智能了,有些人還要求智能有自我學習的能力……圖靈測試顯然沒有展開討論這些情況。作為計算機科學與人工智能領域共同的先驅,圖靈成功定義了什么是機器,卻不能定義什么是智能。這也反映了一個困局:我們試圖創造智能,但我們連智能應是怎樣都不知道。測試一個系統是否具有強智能應該有更好的準則,但目前我們首先要做的是去理解更廣義的智能。