第四章 機器人與其合理性
行而不思者,因莽撞而滅亡;
思而不行者,因懈怠而滅亡。
——威斯坦·休·奧登(Wystan Hugh Auden)
哲學家托馬斯·庫恩(Thomas Kuhn)在其1962年出版的著作《科學革命的結構》一書中指出,隨著科學認知的發展,有時候舊有科學體係會麵臨全盤崩潰的危機,新的科學體係誕生,取代傳統的、既定的科學體係,這就意味著科學的範式將發生變化。到了20世紀80年代末期,專家係統興盛的時光日漸式微,一場新的人工智能革命悄然臨近。誠然,人工智能仍然因期望太高、過度炒作、實現困難等問題為人詬病,但這一次,被動搖的不僅僅是專家係統的根基——“知識就是力量”學說,更是自20世紀50年代以來支撐人工智能,尤其是符號人工智能發展的基礎設定。說來有趣,在80年代末期,對人工智能領域批評得最激烈的人士,恰好是來自該領域本身。
澳大利亞機器人學家羅德尼·布魯克斯(Rodney Brooks),是彼時對人工智能範式批評得最激烈,也是最富影響力和權威的專家。出生於1945年的布魯克斯曾在斯坦福大學、麻省理工學院和卡內基-梅隆大學這三大人工智能研究中心學習和工作,照理說不可能成為人工智能的批判者。布魯克斯夢想著製造能夠在現實世界中執行有用任務的機器人,在20世紀80年代初期,他就開始質疑當時流行的一種機器人理論——製造機器人的關鍵是將現實世界的知識編碼成某種可以被機器人識別的形式,作為推理和決策的基礎。80年代中期,他在麻省理工學院擔任教員時,開始重新思考人工智能最基礎層麵的問題。
布魯克斯革命
要理解布魯克斯的觀點,我們得重新回到積木世界。回想一下,積木世界是一種由各種模擬元素組成的桌麵,桌麵上堆疊著不同的對象——人工智能的任務則是以特定的方式重新排列對象。乍一看,積木世界作為人工智能的試驗場是完全合情合理的:它聽起來像是一個豐富的倉庫環境,我敢肯定,多年來人工智能研究的諸多提案中也明確提到了這一點。但對布魯克斯以及他的追隨者而言,積木世界是沒有意義的。原因很簡單,它的積木隻是模擬元素,而現實世界中的問題比模擬元素組成的積木複雜得多。能夠在積木世界裏解決問題的係統,無論它看起來有多麽智能,回歸到現實的倉庫環境中,都毫無價值。因為在物理世界中,人工智能麵臨的真正困難是處理感知問題,而在積木世界中,感知問題完全被忽略。(在20世紀70至80年代,積木世界最終被確認為人工智能研究謬誤的發展方向,然而這並沒有使人們停止對積木世界的研究,即使在今天,我們仍然可以找到各種有關積木世界的研究論文。我承認,我自己也寫過幾篇。)
布魯克斯提出了三個關鍵原則,確定了他的理論體係:首先,他確信,人工智能要取得有意義的進步,隻能通過與現實世界中的係統互動來實現——它們必須直接處於某個現實環境,感知並與之互動。其次,他認為,不管是以知識還是以邏輯為基礎的人工智能,清晰而全麵的知識儲備及推理並不是它們智慧行為產生的必要條件,尤其是以邏輯為基礎的人工智能。最後,他認為,智慧是一種湧現性質[7],來源於實體與它所處環境發生的各種交互行為。布魯克斯用了一個發表於1991年的諷刺寓言來闡明自己的觀點[44]:
假設19世紀90年代爆發了研究人工飛行(Artificial Flights, AF)的熱潮,科學界、工程界和風險投資界都瘋狂投入其中。一群AF研究人員奇跡般地乘上了時間機器,穿越到20世紀80年代,在一架商用波音747飛機的客艙裏度過了難忘的幾個小時。回到19世紀90年代,他們感到無比興奮和狂熱,畢竟確定了空中飛行是能夠實現的。於是,他們立即著手研究所看到的一切,在設計傾斜座椅、雙層玻璃方麵取得了巨大的進步。AF研究員們堅信,隻要研究出那些神奇的“塑料”,就能在人工飛行領域登頂稱王。
這個寓言的重點在於,當我們思考人類智慧有關問題的時候,往往更關注那些迷人的、具象的方麵,比如推理、解決問題或者下棋等智力活動。這些是學術界重視並且希望人工智能可以擅長的領域——相關研究也因為這樣的偏向性而走了彎路。布魯克斯和他的團隊認為,推理和解決問題的能力或許會在智能行為中起到作用,但它們並不是研究如何構建人工智能的正確起點[45]。
回到布魯克斯的寓言中,他還對“分而治之”的設定提出了異議,這一設定是自人工智能誕生之初就默認的基礎:人們認為應該將人工智能行為分解為各個組成部分(推理、學習、感知)來研究,而忽略了這些組件如何協同工作:
(人工飛行研究人員)一致認為,這個項目太大了,不可能由單一團體完成,而且他們必須成為不同領域的專家。畢竟,在穿越的那幾個小時裏麵,他們詢問過同機乘客,波音公司可是要雇用超過6000人來製造這麽一架飛機呢。
……每個人都忙得不可開交,但是小組之間並沒有太多交流。
最後,他指出那群研究人員天真地忽視了“重量”問題,他在寓言中寫道:
……製造座椅的人用了最好的實心鋼作為骨架,有人就犯嘀咕了,應該用空心鋼管做啊,這樣明顯會減輕不少重量。可是眾所周知,如果這麽一架又大又重的飛機能夠在天上飛行,這點重量隻是九牛一毛。
這裏的“重量”,布魯克斯是在暗喻計算量。特別是,他強烈反對將所有的決策過程都簡化成邏輯推理這種需要大量消耗計算機處理時間和內存的想法。
布魯克斯為這則寓言選擇的題目是“無表征智能”。作為一名研究人工智能的大學生,在20世紀80年代中期專家係統蓬勃發展的階段,我所接受的教育都認為邏輯推理才是人工智能的核心。布魯克斯的文章似乎從根本上否定了我以為自己所知道的有關這個領域的一切,感覺就像是異端。1991年,一名年輕的同事從澳大利亞大型人工智能研討會上回來,興奮地瞪大眼睛告訴我,斯坦福大學(麥卡錫故鄉學院)和麻省理工學院(布魯克斯所在學院)的博士生之間展開了一場激烈的辯論。一方堅持既定的傳統——邏輯、知識表述和推理;另一方則倡導新的人工智能運動,他們不僅無禮地、公然地背棄了神聖的傳統,還大肆地嘲笑它。
布魯克斯或許是新研究方向知名度最高的倡導者,但他並非孤軍奮戰。也有許多研究人員得出類似結論,雖然在細節上有所偏差,但在不同的研究方法得到的最終的結果相當一致。
其中最重要的一點,是將知識和推理從人工智能的核心角色中抹去。在麥卡錫的人工智能係統設想中,邏輯模型是其核心,所有的人工智能行為都圍繞這一核心進行(如上一章的圖8所示),而這個設想遭到了強烈抨擊。當然也有一些比較中立的觀點,認為推理和知識表述仍然可以在人工智能係統中發揮一定作用,雖然可能不是核心和主導作用。但更極端的聲音認為應該完全摒棄它們。
這一點值得詳細探討。我們來回顧一下麥卡錫的邏輯派人工智能係統遵循的特定循環:感知其所在環境,推理其該做什麽,然後采取行動。但是,以這種方式運行的係統,與環境是分離的。
現在,放下手裏的這本書,花點時間四下觀察。你可能身處候機室、咖啡廳、火車車廂、家裏,或者躺在陽光下的小河邊。當你環顧四周時,並沒有從環境中脫離,你的感知和行為是與環境融為一體並保持協調的。當然,在某些情況下,你會脫離眼前的環境,陷入沉思。但這種情況並非常規狀態,隻能算偶然現象。
問題在於,基於知識的人工智能並沒有反映出這一點。假設我給你介紹一個按照麥卡錫模型的邏輯人工智能設計的機器人,它通過一個持續的“感知—推理—行為”循環模式運行,利用處理器處理和解析感應器接收到的數據,將感知數據更新到信念庫,然後推理應該進行什麽操作,再執行它選擇的行為,然後再次啟動決策循環。現在,我自豪地告訴你,我設計的機器人,不管在執行什麽任務,總是會選擇最優的執行方式。讓我們考慮一下這個機器人在一段時間裏的運行模式:
圖9 機器人在一段時間裏的運行模式
機器人應當選擇最合適的行動時間,但是具體是什麽時間呢?是感知周圍環境的時候,還是最終決定執行什麽操作的時候?
在t0到t1之間,機器人感知周圍環境,然後用t1到t2的時間來處理傳感器數據並更新信念庫。在t2到t3之間,機器人對需要執行的動作進行推理,最後,t3才是機器人開始行動的時間點。
現在我宣稱自己設計的機器人總是采取最優的執行策略,但是想出最優策略對應的時間呢?是t1還是t3?機器人所掌握的環境信息是在t1之前的,但在t3以後它才可以基於這些信息開始正式行動。這種方法其實是不切實際的,但令人驚訝的是,直到20世紀80年代末,幾乎所有的人工智能都還在沿用這樣的方式:人工智能研究者一直致力於製造能夠在理論上做出最佳抉擇的機器(前提是假設外部環境不會發生變化,同時又能弄清楚它到底應該做什麽),而不是實踐中的最佳決策[46]。
因此,當時出現了另一個關鍵性的研究主題,即人工智能係統所處的環境和它所表現的行為之間,應該存在一種緊密的耦合關係。
基於行為的人工智能
如果布魯克斯僅僅是一個批判人工智能的學者,那他的想法不會這麽吸引人。畢竟,到了20世紀80年代中期,人工智能從業人員早就習慣無視批評的聲音,不顧反對地繼續自己的研究工作。布魯克斯之所以從眾多步休伯特·德萊弗斯(即第二章裏出現的,撰寫《煉金術與人工智能》的美國哲學家)後塵的批評家中脫穎而出,是因為他用令人信服的方式建立了另一種範式,並在隨後的幾十年裏用一些令人印象深刻的係統證明了它。
人工智能的新範式被稱為基於行為的人工智能,正如我們接下來要討論的,它強調了特定的個體行為的重要性,這些行為有助於智能係統的整體運行。布魯克斯采用的特殊方法被稱為包容式體係結構,在當時出現的所有方法中,它似乎是影響力最持久的。現在我們來看看使用包容式體係結構製造的一種低調但實用的機器人:智能掃地機器人[8]。掃地機器人需要在屋子裏四處遊走,避開障礙物,並且在探測到垃圾或者灰塵的時候進行清潔——當機器人電量不足或者垃圾收納盒裝滿時,我們希望它返回到固定位置並且關機。
包容式體係結構最基礎的步驟是識別出機器人行為所需要的單個行為組件,然後用逐步添加組件的方式創造機器人。該結構的關鍵難點在於思考這些組件行為是如何相互關聯的,並用何種方式組織它們,讓機器人在正確的時間裏表現出最恰當的行為。這通常需要對機器人進行廣泛的實驗,以確保組件行為以合理方式組合工作。
我們的掃地機器人需要六種基本的行為組件。
·避開障礙物:如果我發現前進方向有障礙物,我會改變行進方向,隨機選擇一個新的方向行進。
·關機:當我返回到充電座並且電量不足的時候,我會關機。
·清空垃圾收納盒:如果我在充電座上,並且垃圾收納盒有東西,就清空垃圾收納盒。
·返回充電座:如果我的電量不足或者垃圾收納盒已滿,就返回充電座。
·執行清潔:如果我在當前位置檢測到灰塵汙物,則吸入垃圾收納盒。
·隨機移動:隨機選擇一個方向,然後朝該方向移動。
接下來要解決的問題是如何將這些組件行為組織起來。布魯克斯建議使用他命名為包容式體係結構的方式組織(見圖10)。包容式層次的結構決定了行為的優先級,層次結構中的組件行為越靠近底層,就擁有越高的優先級。在掃地機器人中,避開障礙物是優先級最高的行為,如果遇見障礙物,機器人會第一時間選擇避開,始終優先執行這個操作。不難看出,這六種基本的組件行為組成了圖10中的層次結構,將用以解決機器人的實際問題:機器人搜索所在區域的汙物,如果有所發現,隻要它不處於低電量或垃圾收納盒已滿的狀態,則將汙物吸入垃圾收納盒;若是電量不足或者收納盒已滿,它會返回充電座。
圖10 掃地機器人包容式體係結構的簡單示意圖
雖然掃地機器人的行為看上去像是由規則控製的,但實際運作要簡單得多。在機器人中實現這些行為,不需要像邏輯推理那樣費勁。事實上,它們可以直接用簡單電路的形式實現,這樣一來,機器人將對傳感數據的變化做出非常迅速的反應:它能快速響應環境變化。
隨後的幾十年,布魯克斯使用包容式體係結構作為框架,開發了一係列令人矚目的機器人。例如,他的“成吉思”機器人[47],現陳列在美國國家航空航天博物館中,外形就像六條腿的昆蟲,采用包容式體係結構來組織57種基本的組件行為。如果用基於知識的人工智能技術來構造“成吉思”機器人,那會困難到令人驚訝——假設可以實現的話。在經曆了幾十年的邊緣化之後,這些發展推動了機器人技術重新回到人工智能的主流。
基於智能體的人工智能
20世紀90年代初,我遇見了一位人工智能革命中的主角,他是我心目中的英雄人物。我很好奇他究竟如何看待那些他極力反對的人工智能技術——知識表述與推理、問題解決還有計劃等。他真的相信這些技術在未來的人工智能中毫無作用嗎?“當然不是,”他回答,“但是我不能賭上我的名聲讚同它們的現狀啊。”真是一個令人沮喪的回答,盡管事後看來,他也許隻是想給一位天真的年輕研究生留下深刻印象。但不管這位教授所說的是否是肺腑之言,其他人肯定會認為,基於行為的人工智能也無法逃脫被寄予過高期望的泥潭。不久後,人們開始清晰地意識到,雖然基於行為的人工智能對人工智能領域的基礎假設提出了重要更新,但它仍然有非常嚴重的局限性。
問題就在於它無法擴展規模。如果我們隻是想做個掃地機器人,那麽基於行為的人工智能就能滿足需求。掃地機器人無須推理,也不需要用自然語言跟人交互,或者解決複雜的問題。因為不需要考慮這些問題,所以它能夠使用包容式體係結構(或者其他類似結構——當年有不少與之相類似的方式)來獲取有效的解決方案。不過,雖然基於行為的人工智能在某些問題上(主要是機器人技術)取得了極大成功,但它並沒有為人工智能提供靈丹妙藥。一旦基礎行為數量太多,就很難設計出行為係統,因為理解各個行為之間可能存在的相互作用會變得非常困難。使用基於行為的方法構建係統是一門類似於黑魔法的藝術——真想知道這個係統是否實用,唯一的方式是構建出來並使用它,這種實踐方式不僅昂貴、耗時,而且不可預測。另外,使用基於行為的方法構建的解決方案,雖然能夠針對某個非常具體的問題提出精準有效的方法,但從中所積累的經驗,很難應用到新問題上。
布魯克斯表示知識基礎和推理等能力並不是構建智能行為必需的基礎,這無疑是正確的,他的機器人也向我們展示了純行為模式可以達到的高度。但我認為,若是因此機械地認為推理和知識表述在人工智能領域毫無用處,那就錯了。有些情況下,推理是無法避開的(不管是邏輯推理還是其他形式的推理),試圖否認這一點,就像試圖用邏輯推理來構造一個掃地機器人一樣荒謬。
雖然新型人工智能的某些支持者態度強硬——嚴禁在人工智能中加入任何類似邏輯表達和推理的東西,但大多數人則采取了一種更溫和的方式,這種溫和路線似乎一直盛行至今。溫和派吸取了基於行為的人工智能的主要優點,但他們認為正確的解決方式是將行為和推理的方法相結合。一個新的人工智能發展方向開始出現,它吸收了布魯克斯學說的精華,同時也接受此前被證明在人工智能推理和知識表述方麵取得成功的因素。
人工智能研究的焦點再一次轉移,從專家係統、邏輯推理機等脫離實體的係統轉向構建智能體(Agent)。智能體指的是一個完整的人工智能係統,它是一個獨立的、自主的實體,嵌入某個環境之中,代表用戶執行特定的任務。一個智能體應該能提供一套完整的、集成的能力,而不僅僅是類似邏輯推理那樣孤立的、脫離實體的能力。重點在於,將開發目標專注於構建完整的智能體,而不僅僅是智能的組成部分。人們希望這樣的人工智能可以避開那個激怒過布魯克斯的謬論——人工智能可以通過分離智能行為的組成部分(如推理、學習等),彼此孤立地開發,然後組合在一起,取得成功。
基於智能體的人工智能觀點直接受到行為人工智能的影響,但又弱化了它的主旨。這一風潮在20世紀90年代初開始初現端倪,當時的人工智能界花費了不少工夫明確當我們提到“智能體”這個詞的時候,確切的意指是什麽。而一直到90年代中期,人們才達成共識,所謂的智能體應該具備以下三種特性:首先,它們必須反應靈敏,必須迅速適應自己的環境,並且能夠在環境變化中適時地調整自己的行為;第二,它們必須積極主動,能夠係統地完成用戶賦予它們的任務;最後,智能體需要有協作性,即在需要的時候能夠和其他智能體合作。人工智能的黃金年代強調的是積極主動,即計劃和解決問題;而基於行為的人工智能則強調反應靈敏的重要性,體現在適應所處環境並與之協調。基於智能體的人工智能要求兩者兼而有之,此外,還向混合體中注入了一些新的東西:智能體必須和其他智能體合作。為此,它們需要社交技能——不僅是溝通技能,還有和其他智能體的協作、協調、談判以推進任務完成的能力。
正是出於這種考慮——人工智能體需要社交化,使得基於智能體的人工智能範式從所有人工智能模式中脫穎而出。事後看來,人工智能界花費了這麽多年才開始認真思考人工智能係統如何相互協作,以及當它們彼此協作時會出現什麽問題,這似乎太奇怪了。雖然研究人員從圖靈測試就開始強調社交能力,但它隻是指代人工智能通過自然語言與人進行互動和日常對話的能力。在基於智能體的人工智能中,最受關注的並不是如何與人交流,而是如何跟其他的智能體一起協同工作。
圖11為我們展示了一個典型的智能體設計。這個智能體被稱為“旅行機”[48],它的總體控製分為三個子係統:快速反應子係統的運行方式類似於布魯克斯的包容式體係結構,它負責處理需要迅速響應並且無須推理的情況,例如避開障礙物;規劃子係統負責規劃如何實現智能體的目標;另外,建模子係統負責處理與其他智能體的交互。控製係統會聽取三個子係統的建議,並決定遵循哪一個的。通常是非常直接的決定:如果快速反應子係統說“停止!”那麽控製係統會迅速停止智能體的運動。在20世紀90年代初,人們開發了不少類似這樣的智能體係統。
圖11 一個典型的智能體結構:旅行機
HOMER:一個完整的智能體
HOMER是我最喜歡的例子,它是一種存在於二維“海洋世界”的模擬機器人潛水艇[49],在海洋世界裏完成一係列任務,通常負責收集包裹並將其從一個地點移動到另一個地點。顯然,HOMER繼承了SHRDLU的傳統,並且有著同樣的關鍵限製——它是一個模擬係統。但比起SHRDLU,它要複雜得多。
HOMER可以接受英語指令,不過用戶指令的詞匯表裏隻有800個單詞。它可以計劃如何完成指令,然後執行計劃,並根據需要調整。為了了解HOMER的功能,我們來看看用戶與它的對話。第一個問題涉及HOMER看到在它麵前漂浮著的一根原木。(用戶輸入采用普通字體,HOMER的回複采用斜體字,我的注釋放在括號中。)
你麵前是什麽?
一根原木。
它是屬於你的嗎?
不是。
它屬於你。
哦。(HOMER用這個詞表示被告知了以前不知道的事情)
……
轉過身背對你的原木。
好的,我正在轉身。
(用戶把原木移除)
轉回來。
好的,我正在轉身。
我的原木不見了!
這段對話展示了一些簡單但重要的常識性推理:HOMER記得那根原木,當它轉身回來的時候,會期待看到它,當它發現原木不見了的時候,會表示驚訝。
下一個場景從HOMER在碼頭上等待任務開始,碼頭上有一個包裹,HOMER的任務是收集包裹並將其運送到駁船上。
下周六晚上9點把包裹放到駁船上。
好的。
(HOMER開始製訂計劃。)
你下周六會去碼頭嗎?
是的。
你為什麽要去碼頭?
我要去取包裹。
你打算什麽時候去取?
晚上8點56分。
下周日包裹會在哪裏?
在駁船上。
一周以後包裹會在碼頭上嗎?
不會。
在這裏我們看到HOMER展示了它對時間的常識性理解,以及它的行為是如何影響環境的——當它把包裹送到駁船上以後,包裹將不會出現在碼頭。它還表明了它理解自己的計劃是需要時間來執行的——它需要在晚上8點56分到碼頭取包裹,才能趕得上9點把它放到駁船上。
人工智能助手
雖然基於智能體的人工智能起源於機器人學,但許多研究人員很快意識到它在軟件世界有著非凡的應用前景。沒有人聲稱它是通用人工智能——就像專家係統的情況一樣,人們隻是想通過構建軟件智能體來代替我們完成有用的任務。軟件智能體的運行需要軟件環境,如台式計算機和網絡。最重要的想法是讓人工智能驅動軟件跟我們一起完成日常工作,就像助手一般能夠處理電子郵件和上網。
為了弄明白軟件智能體的概念是如何產生的,我們需要了解人類與計算機交互的方式,以及關於交互方式的思考是如何隨著時間的推移而演變的。
最初的計算機用戶,如艾倫·圖靈,通常是幫助設計和製造計算機的科學家和工程師,他們製造的人機交互接口也就非常粗糙。圖靈在20世紀40年代末使用的電腦“曼徹斯特寶貝”,其中每一個單獨的計算機內存位置都必須通過開關來設置,以指示“0”或者“1”。計算機的一切都向用戶公開,用戶必須了解機器的工作原理才能編程。現在幾乎沒有人能掌握這種編程技術了,而即使在當時,如果你想換台機器編程,你從曼徹斯特寶貝身上學到的一切技術都毫無用處,因為編程的對象不同,程序也完全不同。
到了20世紀50年代末,這種情況開始發生改變,這一時期的主要創新是高級編程語言的開發,這些語言之所以被稱為“高級”,是因為它們向程序員隱藏了一些機器語言的細節,因此程序員無須去了解某台計算機是怎樣工作的,就能對其進行編程。這些高級語言獨立於機器,從某種意義上來說,在一台計算機上用(比如)COBOL語言編寫的程序可以在另一台計算機上運行——或許不一定能完美運行,或多或少出點錯之類的,但編程技能開始可以中轉了。這些創新極大地提高了計算機的可用性,標誌著我們與計算機的交互方式開始從“以計算機為中心”轉向“以人為中心”。
這種趨勢在隨後的60年一直在持續,從以機器為導向的人機交互模式穩步發展到越來越以人為中心的模式。到了20世紀80年代,隨著蘋果電腦公司於1984年推出麥金塔電腦(Mac電腦),人機交互的方式又有了巨大的飛躍。Mac電腦是第一台麵向大眾市場的電腦,它明確地表示不需要專業的計算機技能即可使用。它的主要賣點是用戶界麵,Mac擁有基於桌麵的圖形用戶界麵(GUI),這就意味著Mac用戶的界麵上顯示著代表文檔和文件夾的圖形圖標(時至今日也是如此),用戶通過移動鼠標來操作這些桌麵元素。雖然我們已經很熟悉用“桌麵”這個詞來描述自己的計算機界麵,但你可能沒想過,用這個詞的原因是你的屏幕看起來像真實的桌麵——你電腦上的文檔應該像現實世界中的文檔一樣放在桌麵上,文件夾也是現實中文件夾的類似物,可以幫助你整理文檔。這樣的類比還有:你像把廢紙扔進垃圾桶一樣把不要的文檔或者文件夾拖進垃圾桶圖標裏……(現在這個比喻有點誇張了,我想很多年輕人隻是模糊地意識到了這一點。)
1984年Mac電腦開創的圖形用戶界麵,直至今日仍然是標準的[50],而在硬件方麵,從1984年到現在已經更新換代無數次了。我懷疑當年的Mac用戶使用現代的Mac或Windows界麵時不會存在任何困難。
因此,關於人機交互界麵的要點是,用戶需要使用他們熟悉的概念(如桌麵、文檔、文件夾、垃圾桶)與計算機交互,這能使得人機交互的過程更加自然,從而讓用戶訪問計算機變得更加容易。
由於Mac的成功,在80年代末期,時任蘋果公司CEO的約翰·斯庫裏(John Sculley)開始思考下一個類似Mac的人機交互創新可能是什麽。他決定實現自己命名為知識導航器的想法,它預見了好幾項新興的計算機技術(尤其是萬維網的出現,那時候距離萬維網出現還有好幾年時間)。為了說明知識導航器的想法,蘋果公司委托製作了一段同名概念視頻,於1987年發布[51]。這段視頻是高度概念化的,意在展示一種願景,而不是展示產品本身。
在視頻中,我們看到一位大學教授,使用與現代的平板電腦高度相似的產品。這款平板電腦的界麵看上去像是傳統的桌麵,但有一處關鍵的不同:教授與平板電腦的交互是通過軟件智能體來實現的。與HOMER一樣,這個智能體可以使用英文跟人進行交互,但與HOMER不同的是,該智能體在平板電腦的顯示屏上是以動畫人形的方式呈現的。智能體禮貌地提醒教授他的日程安排,查詢一些有關教授正在計劃的講座材料,並負責管理來電。
這段視頻別出心裁(其中包含了不少蹩腳的幽默),但它卻有著重要的曆史意義,原因有好幾個。首先,它暗示了互聯網將成為我們工作環境的常規部分。在視頻製作的年代,互聯網還沒有普及到個人應用層麵,甚至大多數公司都無法用到,它主要是學術機構和政府機關(尤其是軍事機構)的專用品。另外,這段視頻預示了平板電腦的普及。不過,對人工智能領域而言,視頻最重要的一點是建立了通過智能體與計算機交互的思想。
基於智能體的交互界麵代表了一種與從前截然不同的人機交互模式。當我們使用Microsoft Word或者IE瀏覽器之類的應用程序時,這些程序扮演的是被動的、隻會響應的角色。這類應用程序不會控製,沒有主動性。當你使用Microsoft Word的時候,它隻會因為你選擇了某個菜單或者點擊了某個按鈕而執行該操作,你和Microsoft Word之間的交互隻有一個智能體,就是你自己。
基於智能體的交互界麵則改變了這一點。計算機隻能被動地等待用戶告知它做什麽,與此不同,一個智能體扮演的是更積極主動的角色,就像一個人類助手那樣。智能體會以助手的身份與使用者合作,積極配合使用者做他想做的事情。
知識導航器視頻中的智能體是以動畫人物形式出現的,外形像視頻會議中人物頭像,用流利的英語發言。人工智能的能力遠遠超出了當時的技術,但這並不是核心思想的關鍵點,而是人工智能可以使軟件成為使用者的合作者,不再是被動的仆人。這個中心思想隨著視頻深入人心,到了90年代中期,在萬維網迅速擴張的刺激下,人們對軟件智能體的興趣迅速增長。
比利時裔麻省理工學院媒體實驗室教授帕蒂·梅斯(Pattie Maes)發表了一篇廣受讀者歡迎的文章,文章的標題抓住了時代精神:“智能體能夠幫助人們減少工作量和信息過載[52]。”它描述了帕蒂實驗室開發的許多原型智能體——電子郵件管理、會議日程安排、新聞過濾和音樂推薦等。比如,電子郵件助手會在收到電子郵件的時候觀察用戶的行為(立即閱讀、將其歸檔、直接刪除等),並使用機器學習算法,嚐試預測用戶會怎麽處理新到的電子郵件。當智能體對它的預測有足夠滿意時,就會主動行動,根據它的預測來為用戶處理電子郵件。
隨後的10年裏,上百種類似的智能體問世,其中許多都基於互聯網。在萬維網早期,搜索工具還處於初級階段,互聯網連接比現在慢得多。在網絡上執行許多任務都非常耗時,人們希望智能體能夠自動完成這些煩瑣的工作[53]。對於20世紀90年代後期開始迅速發展的網絡而言,軟件智能體似乎是一種很有前景的技術,而一大批軟件開發公司,也很快成了網絡泡沫的一部分。
事實上,我也是這個故事的一部分。1996年夏天,幾位同事邀請我加入倫敦一家雄心勃勃的初創公司,他們給了我三倍於學校的工資,我大概思考了半秒鍾就同意了。我們的計劃是使用智能體來加強網絡搜索效率,我們希望能把萬維網變成一個圖書館。但我們對商業一無所知,實話說,我們不懂怎麽開發商業軟件。很快我們就明白了一個殘酷的真相:我們以驚人的速度燒掉投資者的錢,但真不知道怎麽把它賺回來。那是一段痛苦的時光,我在加入公司9個月以後就離開了它,再過僅僅8個月後,公司倒閉了。
我那悲劇的創業經曆也預示著幾年後全球範圍內所發生的事情,眾所周知,互聯網泡沫從1995年持續到2000年初。隨著那些雄心勃勃、身價不菲的互聯網初創新貴紛紛陷入資金窘境,未能實現盈利,2000年初,網絡市場開始崩潰。
軟件智能體隻是互聯網故事的一小部分,但它也是跟人工智能相關的最明顯的部分了。其實人工智能研究者倡導的夢想並沒有錯,隻是太超前而已。20年後,蘋果公司iPhone智能手機的一款應用橫空出世,Siri。它是由斯坦福國際研究院開發的——沒錯,就是30年前開發SHAKEY的同一機構。Siri是20世紀90年代軟件智能體工作的直接產物,許多人工智能界人士立即將其與蘋果公司的知識導航器視頻聯係起來。Siri的構想是一個基於軟件的智能體,用戶可以用自然語言與之交互,並且代替用戶執行簡單的任務。其他大眾市場的應用商迅速跟進:亞馬遜的Alexa、微軟的Cortana和穀歌助手都實現了類似的功能。他們都將開發起源追溯到基於智能體的人工智能,當然,實際上它們不可能是20世紀90年代出現的,因為當時的硬件不足以支持它們運行。至少在2010年後,移動設備的計算能力才足以支持。
理性行事
基於智能體的範式提供了另一條有關人工智能發展道路的思考:構造能夠有效代替我們行動的智能體。不過這又引發了一個有趣的問題,圖靈測試確立了一個觀點:人工智能的目標是產生與人類相似到無法分辨的行為。但這跟智能體開發的思路不一樣,其實我們隻是想讓智能體代替我們執行最優的選擇,它的選擇跟人類是否一樣,那就無關緊要了。我們真正想要智能體做的是最正確的選擇,至少盡可能做出最好的選擇。因此,人工智能開發的目標從構建做出跟人類一樣選擇的智能體轉向做出最優選擇的智能體。
智能體理論的出發點是用戶的偏好。如果你的智能體要代替你做事情,那麽它需要明白你的希望是什麽。你當然想讓智能體盡可能做出你喜歡的選擇,那麽,我們如何讓智能體明白用戶的偏好呢?假設,你的智能體要代替你在買蘋果、橘子或者梨之間做出選擇,它首先需要知道你對這三種不同結果的期望值。例如,假設你的偏好如示例一這樣的:
橘子比梨好
梨比蘋果好
在這種情況下,你的智能體在蘋果和橘子之間做出選擇,它選了橘子,你會很高興;如果它選擇蘋果,你就會失望。這就是最簡單的偏好示例,你的偏好關係描述了你如何對每一對備選結果進行排序。馮·諾依曼和摩根斯坦的理性決策需要偏好關係滿足某些一致性的基本要求。例如,假設你的偏好是示例二這樣的:
橘子比梨好
梨比蘋果好
蘋果比橘子好
這麽看來你的喜好就有些奇怪了。因為從橘子比梨好、梨比蘋果好能推斷出你在橘子和蘋果中更喜歡橘子,但這就和你的聲明相矛盾。因此,你的偏好不滿足一致性。這就讓你的智能體沒辦法為你做出最優決策。
下一步就是將符合一致性的偏好進行賦值,使用被稱為實體程序的方式。實體程序的基本思想是為每一種備選項賦予一個數字值:數字越大,就代表偏好程度越高。例如,我們可以將橘子的偏好程度賦值為3,梨子為2,蘋果為1,這樣就可以描述前文第一個示例的情況了。因為3大於2,2大於1,這樣的話,實體程序就能夠正確地捕捉到第一例中的偏好關係。同樣地,我們也可以用實體程序將橘子賦值為10,梨賦值為9,蘋果賦值為0。在這種情況下,這個賦值的具體數值並不重要:重要的是賦值大小引起的結果排序。關鍵點在於,偏好設置必須滿足一致性,才可以使用這種實體程序賦值的方式,用數值來表示偏好程度。看看前文所舉的第二個示例,試試你能不能給蘋果、橘子和梨賦值來表示這個偏好關係。
用賦值關係來表示偏好程度的唯一目的是使其可以用數學計算的方式做出最優選擇。我們的智能體就可以選擇偏好值最大的選擇項,這就意味著它的選擇可以達成我們最喜歡的結果。類似這樣的問題被稱為優化問題,在數學中得到了廣泛的研究。
我們舉例來說明這個問題,下麵的場景,你的智能體必須在兩個選項中做出選擇[55]:
選項1:擲一枚硬幣,如果是正麵,你的智能體獲得4英鎊;如果是背麵,你的智能體獲得3英鎊。
選項2:擲一枚硬幣,如果是正麵,你的智能體獲得6英鎊;如果是背麵,你的智能體什麽都不獲得。
這種情況下,你的智能體應該選擇1還是2?我認為選項1是更好的選擇,但是,為什麽呢?
為了理解原因,我們需要一個叫作預期效用的概念,此處的預期效用可以等價於在此選擇下獲得的平均收益。
所以,考慮到選項1。我們擲硬幣的概率是對半的(不考慮正麵和反麵的細微重量差別),所以我們預期正麵和反麵出現的次數平均下來應該是相等,即一半正麵,一半反麵。所以,你的智能體一半的時間會收到4英鎊,一半的時間會收到3英鎊。因此,你的智能體從選擇1當中獲得的預期效用是(0.5×4)+(0.5×3)= 3.5(英鎊)。
當然,從實際上來說,你的智能體選擇1的時候不可能得到3.5英鎊的收益,隻是如果選擇的次數足夠多,獲得收益的平均值就是3.5英鎊。
同樣的道理,我們能計算出選擇2的預期效用是(0.5×6)+(0.5×0)= 3(英鎊),所以平均來說,選擇2隻能給你帶來3英鎊的預期效用。
馮·諾依曼和摩根斯坦的理論中,理性決策的基本原則就是會做出預期效用最大化的行為。在這種情況下,預期效用最大化的選擇是選項1,因為它的預期效用為3.5英鎊,大於選項2中3英鎊的預期效用。
請注意,選項2中提供了誘人的獲得6英鎊的可能性,這比方案1中的任何結果收益都高,但是,將這個誘人的可能性與同樣可能獲得0收益的概率相權衡,就不難明白為什麽選項1的預期效用比較高了。
預期效用最大化的想法經常被人們誤解,有些人認為用數字計算人類的偏好和選擇是一種令人厭惡的行為。這種厭惡通常來自一個錯誤的概念,即收益就等於金錢,或者預期效用最大化理論從某種意義上來說是自私的(因為假設一個使預期效用最大化的智能體行為是隻考慮到自己的收益)。但收益這個東西不過是獲取偏好數值的一個定義而已,馮·諾依曼和摩根斯坦的理論在對於個人偏好究竟是什麽或者應該是什麽這個問題上完全保持中立,這個理論同樣也適用於天使和魔鬼的偏好。如果你是一心為別人犧牲的人,那也沒關係,如果你的利他主義偏好被賦值表達,那麽預期效用最大化理論同樣適用於你,就如它也適用於世界上最自私的人那樣。
應對不確定性
人工智能還有一個長期存在的問題——如何處理不確定性,在20世紀90年代這個問題變得尤為重要。任何一個現實的人工智能係統都必須處理好不確定性問題,有時甚至會處理許多。舉個例子,無人駕駛汽車從傳感器獲取數據流,但傳感器並非完美的,例如測距儀說“前方沒有障礙物”,這個結論不能保證百分百準確。測距儀掌握的信息當然有重要價值,但是我們不能百分百信任它。那麽,考慮到會出錯的可能性,我們又該怎麽利用它呢?
在人工智能的曆史上,出現過許許多多應對不確定性方案的特別發明或者再發明,但到了90年代,一種特定的方法占據了主導地位,這種方法被稱為貝葉斯推斷。貝葉斯推斷是由18世紀英國神學家、數學家托馬斯·貝葉斯(Thomas Bayes)發明的,使用了同樣由貝葉斯提出的貝葉斯定理。貝葉斯定理關注的是在新的信息麵前,我們應該怎麽理性地去調整既有認知。在無人駕駛汽車的案例中,認知與我們前麵是否有障礙物相關,而新的信息就是傳感器傳來的數據。
另外,貝葉斯定理很有趣,因為它強調了人們在處理涉及不確定性的認知決策時有多麽糟糕。為了更好地理解這一點,請考慮如下場景:
一種新的致命的流感病毒開始流行,感染概率為千分之一。人們研究出了一種新的流感檢驗方法,準確率為99%。你突發奇想去參加檢測,結果呈陽性。
你該如何麵對這個結論?
檢測結果呈陽性,我想大多數人都會擔心,畢竟,這個測試的準確率可是99%。所以,現在我問你,如果檢測結果呈陽性,罹患該流感的概率是多少,我猜大多數人會說0.99(與測試的準確率一致)。
事實上,這個答案錯得離譜。你罹患該流感的概率隻有十分之一。這似乎違反了直覺,到底是怎麽回事呢?
假設我們隨機選擇1000人做流感測試。我們知道實際感染概率,這1000人中大約有1個人會感染流感。所以我們假設這1000人中確實有1個人感染了流感,而999人沒有。
首先我們考慮一下那個罹患流感的可憐人,由於測試準確度是99%,它將有99%的概率檢測出患了流感的人。所以,我們可以預期這個結果是正確的(0.99的概率)。
因此,如果我們對1000人進行流感測試,可以預計其中10到11人的檢測結果是呈陽性的。但我們知道,隻有一名檢測結果呈陽性的人是真患病者。
簡言之,由於流感的感染率很低,所以假陽性的被檢測者遠遠多於真陽性(這就是醫生為什麽很不喜歡依靠單一檢測做出診斷的原因之一)。
我們來看看貝葉斯推斷在機器人學科中的應用。假設有一個機器人正在探索未知區域,比如一個遙遠的星球,或者一片被地震摧毀的廢墟之類。我們希望機器人能夠探索未知區域並繪製地圖。機器人可以通過傳感器感知周圍環境,但是有一個問題:傳感器會錯誤報告。因此,當機器人進行觀察的時候,傳感器說“這個位置有障礙物”,可能是正確的,也可能是錯誤的,我們無法確定。如果機器人默認傳感器數據總是正確的,那麽它繪製的地圖就會出現很大偏差,並且它還有可能根據錯誤的信息做出移動的決定並撞上障礙物。
這裏可以像剛才的流感測試案例一樣使用貝葉斯推斷,我們利用傳感器數據的正確率來更新機器人的信念,通過多次觀察來確認障礙物位置,然後逐步完善地圖繪製[57]。隨著時間的推移,機器人對障礙物所在的確切位置的判斷就會越來越精準。
貝葉斯推斷的重要性在於為我們提供了處理不完美數據的正確方法:我們既不丟棄數據,也不全盤相信它是正確的。我們利用它來更新機器人的信念庫,通過概率來確定信念庫的正確性。
盡管貝葉斯推斷的功能強大,但由於人工智能係統經常需要處理大量複雜且相關聯的數據,所以要使得貝葉斯推斷在人工智能領域得以應用,還需要做大量的工作。為了捕捉數據間的相互關聯,人工智能研究人員開發了貝葉斯網絡,簡稱貝氏網絡,即用圖像化的方式來表達數據之間存在的相互關聯。貝葉斯網絡主要來自朱迪亞·珀爾(Judea Pearl)的研究工作,她是一位非常有影響力的人工智能領域研究專家,在理解和闡明人工智能中概率的作用方麵作出了任何人都無法超越的貢獻[58]。圖12為我們展示了簡單的貝葉斯網絡示意,這個貝葉斯網絡捕捉到了三個假設之間的關係:你得了普通感冒;你流鼻涕;你頭痛。從一個假設到另一個假設的箭頭表示它們之間的影響關係。粗略地說,從假設x到假設y的箭頭表示假設x的真實性會對假設y的真實性產生影響。例如,你得了普通感冒會影響到你是否流鼻涕,如果你流鼻涕,你有可能得了感冒。這些不同概率之間的關係是通過貝葉斯推斷來得到的。如果你想深入了解細節,請參見附錄C。
當Siri遇見Siri
雖然2000年的時候互聯網熱潮退卻了,但研究者對智能體的興趣仍然存在,人們開始關注智能體故事有可能出現的新轉折點。研究人員想,如果智能體之間可以相互交流,那又會怎樣?這個想法倒不是全新的:在以知識為基礎的人工智能時代,研究人員就考慮過專家係統之間如何相互分享它們的專業知識,並開發出人工智能的語言讓它們能夠相互分享知識和查詢對方所擅長的領域。但是在多智能體係統下,會出現一個關鍵性的差別:我希望我的智能體是盡力為我服務的,而你希望你的智能體是盡力為你服務的,既然你我之間存在興趣愛好或偏好不一致的情況,那麽我們的智能體之間肯定也存在不一致。在這樣的情況下,智能體就需要具備類似社交的能力。人們在日常生活中都會應用到這樣的能力,人工智能所麵臨的新挑戰就是構建具備社交能力的智能體[59]。
事後看來,之前開發者沒怎麽考慮過人工智能的社交屬性似乎挺奇怪的。但是,在多智能體係統出現之前,人們的注意力都集中在開發單個的智能體上,而沒有考慮到它會如何跟其他人工智能體交互。假設存在多個人工智能體,而不僅僅是一個,那就從根本上改寫了人工智能發展的故事。智能體必須解決的問題是知道自己要做什麽——該為自己所代表的用戶做什麽。如果一個智能體能夠為我做出正確的選擇,我會非常高興。但如果周圍存在其他智能體,那麽我的智能體所選擇的行為是好還是壞,至少在一定程度上取決於其他智能體的選擇。因此,我的智能體在做選擇的時候必須考慮到其他人的智能體會如何選擇,同樣,其他人的智能體也必須考慮到我的智能體的行為。
智能體在做決策的時候需要考慮對方的偏好和可能的行動,這樣的推斷實際上屬於博弈論的研究範疇。博弈論以前主要是研究戰略決策的經濟學分支[60],但正如其名所示[9],博弈論起源於對象棋和撲克牌之類遊戲的研究。其實,在多個智能體同時存在的情況下,它也是非常有實用價值的。
或許博弈論中最著名的中心思想,也是形成多智能體係統中決策基礎的思想,就是納什均衡。納什均衡的概念是由小約翰·福布斯·納什提出來的,我們在1956年被邀請參加約翰·麥卡錫達特茅斯人工智能暑期學校的學員名單中能找到他的名字。正是因為納什均衡的提出,他與約翰·哈薩尼(John Harsanyi)和理查德·塞爾騰(Richard Selten)一同被授予1994年諾貝爾經濟學獎。
納什均衡的基本思想是很容易理解的。假設我們有兩個智能體,每個都需要做出選擇。智能體1選擇x,智能體2選擇y,那麽我們如何判斷它們是否做出了正確的選擇呢?如果兩個智能體都不後悔自己的選擇,那它們的決策就是好的(從技術上講,它們的決策形成了納什均衡)。即:
納什均衡之所以被稱為均衡,是因為它捕捉到了決策過程中的穩定性:兩個智能體都沒有任何動機去做別的選擇。
多智能體係統研究迅速采用了如納什均衡的博弈論的思想作為係統決策研究的基礎,但是一個熟悉的難題出現了。當納什在20世紀50年代提出這個獲得諾貝爾獎的想法時,他並不關心如何計算納什均衡。不過,如果我們想讓智能體在做決定時能夠使用這個想法,這就一定是一個必須解決的重要問題。而且,也許可以預見,納什均衡很難計算。尋找有效的方法來計算納什均衡仍然是當今人工智能的一個主要課題。
人工智能開始成熟
到了20世紀90年代末,智能體範式已經成為人工智能中的主流正統理論:我們構建智能體,並賦予它們用戶的偏好,智能體用理性的方式代表用戶去做執行工作,使用如馮·諾依曼和摩根斯坦的預期效用理論之類的理性方式作為決策基礎。智能體使用貝葉斯推斷理性地管理它們對世界的信念庫,通過貝葉斯網絡或者其他方式捕捉對世界的理解。如果存在多個智能體,我們會借助博弈論來提供決策框架。這並非通用人工智能,也沒有給出一條通往通用人工智能的光明大道,但到了20世紀90年代末,這些理念、工具和應用被接受的程度越來越高,致使人工智能界內部對人工智能本身的看法發生了重大變化。這是第一次,我們真實地感受到,自己並非在黑暗中拚命抓住所發現的任何東西。我們研究的領域已經有了明確而堅實的科學基礎,從概率論到理性決策,這些都是經過時間檢驗、值得尊敬的技術。
這一時期的兩項成就,標誌著人工智能研究開始走向成熟。第一項已經成為全世界的頭條新聞,而第二項,意義比第一項更為重大,但除了人工智能界內部人士以外,並不為人所知。
占據全世界頭條新聞的突破來自IBM, 1997年,IBM證明了名叫“深藍”(DeepBlue)的人工智能係統能夠在國際象棋比賽中擊敗俄羅斯大師加裏·卡斯帕羅夫(Garry Kasparov)。1996年2月,深藍第一次從卡斯帕羅夫手裏贏下棋局,不過他們一共下了六局棋,卡斯帕羅夫最終以4∶2的總比分獲得勝利。一年多後,升級的深藍係統再次對陣卡斯帕羅夫,而這一次,人類的世界冠軍被擊敗了。似乎當時的卡斯帕羅夫對此表示非常不滿,並懷疑IBM公司存在作弊行為,但後來他也提到那是他國際象棋生涯中無法忘卻的一次愉悅體驗。從那以後,國際象棋無論從任何意義上來說,都是一場已經沒有懸念的遊戲:人工智能可以戰勝優秀的人類棋手。
可能你也聽說過深藍戰勝卡斯帕羅夫的新聞,但我認為你不太可能聽說當時的第二個重大成就,盡管它的影響可能更為深遠。不知道你是否還記得,在第二章裏,我們提到過某些計算問題本質上是複雜的——用技術語言來說,就是NP完全問題——人工智能領域許多亟待解決的問題都屬於這一類。到了20世紀90年代初,人們開始清楚地認識到,解決NP完全問題的算法在進步,使得這個問題不像20年前一樣成為人工智能不可逾越的障礙[61]。第一個被證實為NP完全問題的問題,就是SAT問題〔即satisfiability(可滿足性)的縮寫〕,這是一個檢查簡單邏輯表達式是否一致的問題——是否有任何方式表達它們都為真。SAT是所有NP完全問題中最基礎的一個,你應該還記得,如果你能找到一個有效的方法解決某一個NP完全問題,那麽你就自動找到了解決所有NP完全問題的方法。到了90年代末,“SAT求解器”,即解決SAT問題的程序已經足夠強大,開始解決工業規模的問題了。在我寫本書的時候,SAT求解器已經高效到在編程過程中可以隨時調用了——它們已經成為我們解決NP完全問題的一個工具。不過這並不意味著NP完全問題已經被徹底解決,總會出現一些案例,讓最好的SAT求解器都屈膝臣服。但我們不再害怕NP完全問題了,這是人工智能在過去40年裏所取得的一項悄無聲息的重大突破。
盡管人工智能領域剛剛重新獲得了科學界的認可,但並不是所有人都為90年代末的主流人工智能感到高興。2000年7月,我在波士頓參加會議,聆聽了一名人工智能領域研究新星的演講。當時有一位同行前輩坐在我旁邊,他在黃金年代就從事了人工智能領域的研究,和麥卡錫、明斯基是同一時期的人物。他很輕蔑地質問:“這就是現在所謂的人工智能嗎?魔法去哪兒了?”我能理解這句話的來曆:現代的人工智能從業人員,需要的背景不再是哲學、認知科學和邏輯學,而是概率論、統計學和經濟學。看上去就不那麽具有……嗯……詩意了,對吧?但事實是,它成功了。