什么是圖靈測試?
在一篇1950年發表的著名論文《Computing Machinery and Intelligence》中,數學家阿蘭·圖靈詳細討論了“機器能否擁有智能?”的問題。有趣的是,作為計算機科學與人工智能領域共同的先驅,圖靈成功定義了什么是機器,但卻不能定義什么是智能。正因如此,圖靈設計了一個后人稱為圖靈測試的實驗。圖靈測試的核心想法是要求計算機在沒有直接物理接觸的情況下接受人類的詢問,並盡可能把自己偽裝成人類。如果“足夠多”的詢問者在“足夠長”的時間里無法以“足夠高”的正確率辨別被詢問者是機器還是人類,我們就認為這個計算機通過了圖靈測試。圖靈把他設計的測試看作人工智能的一個充分條件,主張認為通過圖靈測試的計算機應該被看作是擁有智能的。
具體就操作層面來說,圖靈在他的論文原文中是這樣定義圖靈測試的[2]:
“我們稱下面這個問題為“模仿游戲”。游戲參與者包括一個男人,一個女人,以及一個任意性別的詢問者。詢問者與另兩個人待在不同的房間里,並通過打字的方式與他們交流,以確保詢問者不能通過聲音和筆跡區分二者。兩位被詢問者分別用X和Y表示,詢問者事先只知道X和Y中有且僅有一位女性,而詢問的目標是正確分辨X和Y中哪一位是女性。另一方面,兩位被詢問者X和Y的目標都是試圖讓詢問者認為自己是女性。也就是說,男性被詢問者需要把自己偽裝成女性,而女性被詢問者需要努力自證。現在我們問:如果我們把“模仿游戲”中的男性被詢問者換成計算機,結果會怎樣?相比人類男性,計算機能否使詢問者更容易產生誤判?”
這里有幾個細節值得注意,它們在很大程度上決定了圖靈測試的有效性。
(1)首先,圖靈測試中詢問者與被詢問者之間進行的並不是普通的日常聊天,詢問者的問題是以身份辨別為目的。這種情況下詢問者通常不會花費時間寒暄和拉家常,而是會開門見山地說“為了證明你的身份,請配合我回答下面問題…”。事實上,目前網絡上聊天機器人有時能夠以假亂真,往往是采用了在用戶在不知情的情況下盡量把談話引到沒有鑒別力的話題上的策略(例如“談談你自己吧”)。
(2)其次,圖靈測試中人類被詢問者的參與是必不可少的,她的存在是為了防止計算機采取“消極自證”的策略,例如拒絕正面回答問題,或者答非所問閃爍其詞,就像一個真正的不合作的人所做的一樣。在這種情況下,另一個積極自證的人類被詢問者可以保證詢問者總是有足夠的信息做出判斷。類似的情況也適用於當計算機試圖模仿正在牙牙學語的幼童或頭腦不清的病人等“特殊人類”時。
(3)另外,圖靈測試的原則是要求詢問的交互方式本身不能泄露被詢問者的物理特征。在圖靈所處的年代這幾乎只能全部通過基於文本的自然語言來完成,因此圖靈限定測試雙方基於打字進行交流。但在多媒體技術發達的今天,視頻、音頻、圖片等等“虛擬內容”都可以通過計算機以非物理接觸的形式呈現(這當然是60年前的圖靈不能預知的!)。因此,允許詢問者在圖靈測試中使用多媒體內容作為輔助材料進行提問(例如“請告訴我這個視頻的笑點在哪兒”)似乎是對原始圖靈測試定義的一個自然合理的補充[3]。
(4)最后,今天一般意義上理解的圖靈測試不再嚴格區分人類參與者的性別。通常我們允許人類被詢問者是任意性別,而詢問者的目標也隨之變成辨別哪一位被詢問者是人類。
除此之外,完成一次具體的圖靈測試還要注意很多操作細節,例如多少人參與測試算“足夠多”,多長的訊問時間算“足夠長”,多高的辨別正確率算“足夠高”,如何挑選人類詢問者和被詢問者才能代表“人類”的辨別和自證能力,等等。由於圖靈測試的巨大影響力,幾十年來一直有人嘗試挑戰它,不時就會傳出“某某計算機程序成功通過圖靈測試”的消息。我想,正是對於意義深遠的實驗,我們才理應格外審慎。只有在仔細檢查上面所列和其他一些重要細節之后,我們才能對其結果的有效性做出正確判斷。類似幾年前“超光速實驗”那樣的鬧劇應該盡量避免。
圖靈測試與人工智能是什么關系?
如果有一天機器真的通過了圖靈測試,這到底意味着什么?這個問題涉及到圖靈測試與人工智能的關系。的確,幾乎所有有關人工智能的書籍都會談到圖靈測試,但一個經常被誤解的地方是,圖靈測試是作為一個人工智能的充分條件被提出的,它本身並沒有,也從未試圖定義智能的范疇。這一點圖靈在他的論文里寫的很清楚:
“機器能否擁有智能,為了回答這個問題我們應該首先定義‘機器’和‘智能’。一種可能性是根據大多數普通人的日常理解去定義這兩個概念,但這樣做是危險的。… … 在這里我並不打算定義這兩個概念,而是轉而考慮另一個問題,它與原問題密切相關,同時可以被更清楚無疑地表達。… …(圖靈測試的描述)… …可能有人會說這項測試對機器而言過於嚴格——畢竟人類也無法反過來成功偽裝成機器,這只需檢查算術的速度和正確度即可辨別。難道被認為擁有智能的機器就不能表現出和人類不同的行為么?這是一個很有力的反對意見,但至少不管怎樣,假如我們有能力制造出一個可以成功通過測試的機器的話,也就無需為這個反對意見煩惱了。”
借助集合的概念我們可以更容易地理解圖靈測試與人工智能的關系。如圖1所示,“所有智能行為”對應的集合和“所有人類行為”對應的集合既有交集又互有不同。在全部智能行為中有一些是人類靠自身無法做到的(比如計算出國際象棋中白棋是否必勝),但無論如何人類都被認為是有智能的,因此,在各方面都能達到“人類水平”— 也就是完成兩個集合的交集部分—就應該被認作是“擁有智能”的。[4]另一方面,人類行為並不總是和智能相關。圖靈測試要求機器全面模擬“所有人類行為”,其中既包括了兩個集合的交集,也包括了人類的“非智能”行為,因此通過圖靈測試是 “擁有智能”的一個有效的充分條件。
圖靈本人對機器能夠通過他的測試相當樂觀,他大膽預測“到2000年左右時,一台擁有1GB內存或類似規模的計算機可以在接受普通人5分鍾的詢問之后,使他們的判斷正確率不超過70%”。然而直到2014年的今天,仍然沒有任何機器被公認為已經通過圖靈測試。有趣的是,這一失敗事實反而還帶來了一個我們再熟悉不過的應用 - 圖形驗證碼。(每一次輸入驗證碼都是一次圖靈測試!)
圖靈測試問題的進展緩慢與目前人工智能學界對圖靈測試這個“充分條件”的研究熱情不高有關。[5]這一部分上由於主流人工智能研究與圖靈測試所追求的目標之間存在差異,同時也因為圖靈測試本身難度巨大。下面我們通過人工智能研究的三個重要特征來進一步討論圖靈測試與人工智能之間的異同,以及為什么圖靈測試不大可能在短時間內解決。
一、主流人工智能研究關注智能體的外部行為,而不是產生該行為的內部過程
在這方面圖靈測試的思想和人工智能學界是完全一致的。只關注外部行為是一個典型的功能主義/行為主義風格的做法,事實上這也是一個人工智能經常被外界所指摘的地方。嚴格的“主觀思考”定義要求智能體具有自我意識。但一方面,從嚴格的科學方法講,我們甚至並不真的確定是否有客觀證據證實 “意識”的存在。更重要的是,人們發現智能行為和主觀思考完全可以被看作是兩個獨立的問題來考慮,二者並不必要糾纏在一起。具體來說,可以從數學上證明任何一台數字計算機的行為都可以用查表的方式機械地模擬。假設我們真的制造了一台具有“意識”的機器A,我們總可以制造另一台機器B以查表的方式來機械地模擬A的內部運行,問題是B是否具有意識?如果每一台“擁有”意識的機器都能被一台B這樣的“機械查表式”的機器所模擬,那么我們就無法通過外部行為來斷定一個機器在內部上是真的在“思考”還是只是在模擬“思考”的過程,[6] 因此“是否擁有意識”從行為主義的角度也就成了相對獨立的“另外一個問題”。同時,“擁有意識的機器總可以被沒有意識的機器模擬”也說明“擁有意識”並不能給機器帶來額外的“行為能力”,這進一步降低了“擁有意識”在行為主義者眼中的重要性。
基於外部行為與主觀思考之間的獨立性,主流人工智能研究和圖靈測試把實現外部行為作為唯一目標,這樣的觀點被稱為弱人工智能觀點。我們知道每個學科的研究都基於一個“基本假設”展開。比如支撐物理研究的基本假設是“萬物運轉都受一套普適的、永恆的規律所約束”,而物理研究的目的“只是”找出這套規律是什么。類似的,“弱人工智能假設”(weak AI hypothesis) 認為經過良好設計的計算機可以表現出不低於人類智能水平的外部智能行為。可以說主流人工智能研究是以弱人工智能假設為出發點,研究如何實現這樣一個計算機。
二、主流人工智能研究關注如何模擬人類的純粹智能活動,而不是全部腦力活動
就像前面提到的,人類的腦力活動 (mental process) 不僅包括智能,同時具有情感、審美能力、性格缺陷、社會文化習慣等等一系列“非智力特征”。因為圖靈測試的模仿對象是普通人,事實上它對這些非智力特征的要求甚至可能還高過對純粹智力的要求——作為一個普通人,他/她完全有可能對國際象棋一竅不通,但卻不大可能從照片分辨不出美女/帥哥來。
當然,“非智力特征”的引入本身並不妨礙圖靈測試成為一個有效的充分條件,但除非我們假設所有這些“非智力特征”都是擁有智能之后的必然產物,否則不得不承認圖靈測試確實在機器智能這個核心問題之外加入了過多充滿挑戰卻又顯得不那么相關的因素。就像《人工智能》這本經典教科書里寫到的,“航空領域試圖制造性能良好的飛機,而不是使飛機飛得如此像鴿子以至於可以騙過其他鴿子。”人工智能研究確實應該更多關注與智力活動相關的抽象功能和一般原則。
三、人工智能的最終目標是能夠綜合適應“人類所在環境”的單一智能體,而不是專門解決特定數學問題的算法
在這一點上圖靈測試與人工智能研究的最終目標也是一致的,只不過現有的人工智能水平離這一目標還相去甚遠。事實上“綜合模擬人類的智力活動”正是人工智能區別於其他計算機科學分支的地方。我們通過比較人工智能軟件與傳統軟件來說明這一點。首先從最廣義的角度看,傳統軟件也應屬於人工智能的范疇:實際上很多早期的計算機科學家,比如圖靈,就是以人工智能為動力展開對計算機科學的研究。所謂“計算”本來就是諸多人類智能活動中的一種。一個從未接觸過計算機的人也許很難說清 “從一個數列中找出所有素數” 和“從一張照片中找出一只狗”哪個更有資格代表“智能”(前者屬於傳統軟件范疇,后者屬於傳統人工智能范疇)。但另一方面,傳統軟件並不代表人工智能的全部內涵。粗略講,我們可以認為傳統軟件對應了這樣一類“計算問題”,它們的共同特點是,問題本身是用一個算法(或非構造性的數學描述)來描述的,而對它們的研究主要關注在如何找到更好的算法。[7]而我們稱之為“人工智能問題”的問題可以理解為另一類“計算問題”,它們的共同特點是無法用算法或從數學上對問題進行精確定義,這些問題的“正確答案”從本質上取決於我們人在面對這類問題時如何反應。對於人工智能問題,我們可以基於數學模型或計算模型來設計算法,但問題的本質並不是數學的。
通用人工智能(Artificial General Intelligence)基於弱人工智能假設,以全面模擬人類的所有智力行為為目標。注意到圖靈測試作為一個充分條件,是不可能在通用人工智能真正實現之前得到解決的。另一方面,可以說現有每一個AI分支的成功都是通過圖靈測試的必要條件,而它們中的大部分還沒有達到“人類水平”。因為我們不可能窮盡所有人類智能行為,必須依賴有限個具有通用性的模型和算法來實現通用智能。目前人們仍然只能基於一些簡單初等的模型來設計學習、推理、和規划算法。這些AI分支的研究都默認基於針對自己領域問題的弱人工智能假設,而支撐這些子領域研究的動力往往是其巨大的社會實用價值。它們固然已經在很多具體應用領域成績斐然,但看起來離圖靈測試所要求的水平仍然相差甚遠。
(本文部分摘錄自發表於《NEWTON科學世界》2014年第3期的文章“什么是人工智能?”。文中圖片部分引自互聯網。)
[2] 為清楚起見,這段摘錄並非逐字翻譯,且語句順序也稍有調整,具體可參考原文第一節。
[3] 參見Total Turing Test及相關工作。
[4] 但反之未必,不一定非要達到人類水平才能被認作是智能的。
[5]一般認為人工智能學科正式成型於1956年的一次著名的研討會前后,也就是說圖靈測試實際上提出於人工智能領域誕生之前。正如Stuart Russell和Peter Norvig在一本人工智能的經典教科書中所寫,在隨后的60年間,整體而言“人工智能研究者們在圖靈測試方面只投入了很少的精力”。
[6]一個有趣的不同是,人類研究“動物意識”(包括人類自身)的方法恰恰是通過觀察動物在特定環境下的外在行為。這背后隱含的假設是我們相信沒有意識的動物並不會“有意識地”裝出一副有意識的樣子(當然!),而這一假設對機器(或者機器的制造者)而言卻並不一定成立。
[7]需要注明是,對傳統軟件的研發同樣也並不是計算機科學的全部內涵,就像“計算機”的概念遠遠不只是“電子硬件”。計算機科學的根本問題是“什么是計算”。而人工智能,作為計算機科學的重要分支,可以認為主要研究“智能是不是計算”的問題。