第二部分 我們是怎麽走到這一步的 第二章 黃金年代
圖靈在他發表的論文《計算機器與智能》中介紹了圖靈測試,為人工智能學科邁出第一步做出了重大貢獻。隻是在當年,這個劃時代的貢獻顯得頗為孤獨。那時候,人工智能還沒有命名,沒有形成一門學科,也沒有研究團隊。彼時圖靈的貢獻都隻是概念性的,比如圖靈測試——因為人工智能係統還未出現。僅僅過了10年,到了20世紀50年代末,一切都發生了天翻地覆的改變:新的學科建立,並有了專屬的名稱,研究人員可以自豪地展示用以揭示智能行為基礎組成部分的第一個試驗性係統。
接下來的20年是人工智能的第一個繁榮期。1956年到1974年間,人工智能研究領域掀起了樂觀積極、迅速發展的浪潮,這一時期被稱為人工智能的黃金年代。在這個年代裏,研究人員不知失望為何物,一切皆有可能。這一時期構造的人工智能係統,堪稱人工智能史上傳奇的經典標準。它們擁有奇奇怪怪的名稱,比如SHRDLU、STRIPS或者SHAKEY——都是簡短的名字,很多來源於首字母縮寫,全用大寫字母表示。這大概是源於當時計算機文件名的限製(以這種方式命名人工智能的習慣一直沿用至今,盡管已經毫無必要)。按照現代標準,用來建立這些人工智能的計算機運行速度慢得難以想象,內存也小得難以置信,使用起來也麻煩得難以忍受。今天我們開發軟件理所當然會使用到的那些工具,當時並不存在,事實上,即使存在,也沒法在當時的計算機上運行。那時候“黑客”文化已經悄悄抬頭,人工智能研究人員大多在晚上工作,因為他們需要的計算機資源在白天要用在更重要的工作上。他們還必須發明各種巧妙的編程技巧[14],讓複雜的程序能在當時簡陋的計算機上運行——許多技巧後來成為各種技術標準,它們起源於20世紀60到70年代的人工智能實驗室,現在的人們隻能模糊地回憶起來——如果還有人記得的話。
但到了20世紀70年代中期,人工智能的研究開始停滯不前,除了最初的簡單試驗,並沒有多少有意義的進展。這門初生的學科幾乎被研究資助者扼殺於搖籃中,科學界也逐漸開始相信,人工智能這種被寄予了無限希望的新生兒,實則前途渺茫。
本章將回顧人工智能發展的前20年,我們將研究在此期間構建的一些關鍵係統,並討論當時在人工智能領域最重要的技術之一:被稱為“搜索”的技術。即使時至今日,它仍然是諸多人工智能係統的核心組件。我們還會接觸到一個抽象的數學理論——計算複雜性,這是在20世紀60年代末到70年代初建立並發展起來的理論,用以解釋為什麽人工智能所麵臨的諸多問題從本質上來說難以解決。計算複雜性給人工智能的發展蒙上了一層陰影。
我們將從公認的黃金年代起點開始:1956年的夏天,一位名叫約翰·麥卡錫(John McCarthy)的年輕美國學者,為這一領域命了名。
人工智能元年的盛夏
麥卡錫生活在美國現代科技創建的年代,在20世紀50到60年代,他以近乎不可能的才華,為計算機領域貢獻了一係列新的理念。這些理念在現代被認為理所當然,以至於我們很難想象當年如果不是因為這些理念,計算機科學就不可能有進一步發展。他最著名的成就應該是被稱為LISP的編程語言,幾十年來,LISP一直是人工智能研究人員首選的編程語言。雖然編程語言一向是難以閱讀的,即使以我這種專業程度為標準來看,LISP語言也是個怪胎。因為在LISP語言中,(所有(程序(看(起來(都(是(這樣的)))))))。一代又一代的程序員總是開玩笑說LISP就是“一堆毫無關聯的傻括號”[15]。
麥卡錫在20世紀50年代中期發明了LISP語言,令人驚訝的是,近70年後,全世界仍然在教授和使用它(反正我每天都要用)。想一想吧,麥卡錫發明LISP語言時,美國總統還是德懷特·戴維·艾森豪威爾,尼基塔·謝爾蓋耶維奇·赫魯曉夫還是蘇聯共產黨總書記;在中國,毛澤東主席正在如火如荼地領導第一個五年計劃,全世界電腦總數才幾台。而時至今日,LISP語言竟然還在廣泛使用中!
麥卡錫出生在波士頓的一個移民家庭,在很小的時候就展露出非凡的數學天賦。從加州理工學院數學專業畢業以後,這個20歲出頭的小夥子被任命為新罕布什爾州達特茅斯學院的副教授。麥卡錫在加入達特茅斯學院之前就對計算機產生了濃厚興趣,1955年,他向洛克菲勒研究所提交了一份提案,希望獲得資金來在達特茅斯學院開辦一所暑期學校。如果你不是一名學者,成年人的暑期學校聽上去似乎還挺奇怪的。不過即使在今天,這也是一個久負盛名且受人喜愛的學術傳統,主要目的是召集世界各地有共同興趣的研究人員,讓他們有機會在一段時間裏見麵交流及共事。之所以選擇暑期,顯然是因為一年的教學任務已經結束,學者們大多可以卸下沉重的教學壓力,輕鬆一下。當然啦,既然選擇在如此迷人的地方組織暑期學校,必要的社交活動也是不可缺少的。
對一所令人難忘的暑期學校來說,另一個不可或缺的要素就是一張星光四射的學員名單。當時的人們可能沒預見到,達特茅斯暑期學校會集了未來幾十年內在人工智能領域起決定性作用的大部分關鍵人物。不過邀請名單上還有一個特別令人沉痛的名字:普林斯頓大學數學家小約翰·福布斯·納什(John Forbes Nash, Jr)。他於6年前剛剛取得博士學位,在一篇論文(隻有短短28頁)中引入了一個叫作“非合作博弈”的概念。納什提出的概念在隨後的幾十年裏成為經濟理論的基石,並最終在1994年榮獲諾貝爾經濟學獎。但納什本人並沒有享受到他這項工作的樂趣:就在獲得博士學位的幾年後,他就被妄想症和偏執狂等精神疾病所吞噬,這使得他在之後幾十年都遠離了學術生活。不過令人高興的是,他憑著驚人的毅力恢複良好,最終在1994年獲獎。他的故事被寫成了書籍《美麗心靈》,同名電影於2002年榮獲奧斯卡金像獎最佳影片獎等多項殊榮[16]。
達特茅斯暑期學校名單令人好奇的原因還有一個。除了學術界的大佬們,暑期學校還接待了來自工業界、政府及軍方的代表(甚至還有蘭德公司——這家以加州智囊團為班底的智庫公司,在20世紀60年代因為毫無感情地爭辯如何“贏得”核戰爭而臭名昭著。而僅僅在十來年前,學術界、工業界、政府和軍方聯合起來執行曼哈頓計劃,製造出了全世界第一顆原子彈——這也是美國科技實力的明確體現)。這種聯合體——學術界、工業界、政府和軍方聯合,是美國在第二次世界大戰後幾十年裏計算機技術發展的特色,也是美國在未來60年內確立人工智能領域國際領先地位的核心。
1955年,麥卡錫向洛克菲勒研究所撰寫計劃書申請經費的時候,他不得不給這項活動起個名字,他選擇了“人工智能”這一名稱。麥卡錫對他的活動抱有不切實際的高度期待——這也成了人工智能領域令人生厭的傳統——他高呼:“我認為我們可以取得重大進展……如果這些經過精挑細選的科學家能在一起共事一個夏天的話[17]。”
到暑期學校結束之時,共事的科學家們也沒取得什麽重大進展,但麥卡錫選擇的名字卻流傳下來,逐漸形成了一門新生的學科。
不幸的是,麥卡錫選擇的這個名字在很長的時間裏受到了無數詬病。首先,人工智能中的“人工”一詞,英文為“artificial”,它還有一層意思是“虛假”“贗品”——誰會樂意研究虛假的智能呢?另外,“智能”(intelligence)這個詞匯來源於“智力”(intellect),而事實上,自1956年以來,人工智能界一直在努力完成的諸多挑戰,人類去做的時候似乎並不需要太高的智能。相反,正如我們在上一章所討論的,過去60多年中,人工智能一直致力於解決的許多最重要也是最困難的問題,似乎一點都體現不出智能——這樣的事實一再讓那些新入該領域的人感到驚愕和困惑。
不過,“人工智能”這個由麥卡錫選擇的名字,至今仍然沿用。那些參與暑期學校的學者,以及他們的學術繼承人,多年來不斷地致力於人工智能領域的研究,直至今日。那年夏天,是公認的人工智能學科誕生元年,當時,它聽上去前途無量。
達特茅斯暑期學校之後那些年是人工智能令人興奮的成長期,並且,在某段時間裏似乎處於飛速發展狀態。幾十年裏,四名暑期學校的成員主導著人工智能的發展。麥卡錫本人在斯坦福大學創立了人工智能實驗室,位於現在的矽穀中心地帶,馬文·明斯基在馬薩諸塞州劍橋市的麻省理工學院也創立了一個實驗室,艾倫·紐維爾(Alan Newell)和他的博士生導師赫伯特·西蒙(Herbert Simon)則去了卡內基-梅隆大學。這四位天才帶領著他們的學生建立的人工智能係統,是我們這一代人工智能研究工作者的圖騰。
然而,黃金年代也有著幼稚、盲目樂觀的特點,研究人員對這個領域可能的發展速度做出了魯莽的預測,令人工智能的實際發展受到阻礙。到了20世紀70年代,美麗的夢幻結束了,一場惡性循環開始——人工智能的繁榮和蕭條不斷上演,在未來幾十年內反複交替。但是,不管曆史如何去批判這一時期,我都滿懷喜愛之情去思考這一時期湧現出的人物,以及他們所做出的偉大成就。
分治策略
正如我們所知,通用人工智能是一個龐大而模糊的目標,很難直接達成。因而,黃金年代采用的策略是分而治之。也就是說,與其一口氣嚐試構建完整的通用智能係統,不如識別出通用人工智能係統所需的各項不同能力,分別構建具備這些能力的體係。這一概念隱含的假設是,如果我們能夠成功構建通用人工智能所必需的每一種智能係統,那麽,以後將它們組合成一個整體,比起直接構建完整的通用智能係統簡單得多。這一基本假設——通用人工智能的研究方向是將精力集中在解決智能行為的各種組件上——成為人工智能研究的標準方案。人們爭先恐後地建造各種能夠表現智能行為能力的組件。
那麽,研究人員關注的主要問題有哪些?首要的也是最難解決的問題,又偏偏是我們認為理所當然應該具備的:感知。一台機器要在特定的環境中智能地工作,就必須能夠獲取周圍環境的信息。我們人類通過各種機製感知世界,包括五種感覺:視覺、聽覺、嗅覺、觸覺和味覺。因此,就得研究製作能夠感知外界的傳感器。如今的機器人使用各式各樣的人工傳感器來接收有關環境的信息——雷達、激光雷達、紅外線測距儀、超聲波測距儀等。但是製造這些傳感器本身就是一項複雜的工程,但這還隻是問題的一部分。不管數碼相機的光學係統有多好,不管相機的圖像傳感器有幾百萬還是幾千萬像素,最終相機所做的事情隻是把看到的圖像解析成一個個網格,然後為網格中的每一個單元格分配數字,表示它的顏色和亮度。所以,哪怕配備了質量最好的數碼相機的機器人,最終它收到的信息也隻是一連串的數字。因此,感知領域的第二個挑戰是如何解析這些原始的數字,理解它所“看到”的圖像。這項挑戰遠比製作傳感器難得多。
通用智能係統的另一個關鍵能力是通過學習積累經驗,這引出了一個名叫機器學習的人工智能研究分支。就像“人工智能”這個名字本身一樣,機器學習也是一個極其不恰當的術語,聽起來像是一台機器自己在引導自己學習,從無知開始,變得越來越聰明。事實上,機器學習跟人類學習是完全不同的,它的學習指的是解析和預測數據。例如,在過去數十年裏,機器學習的一個巨大成就是出現了可應用的人臉圖像識別技術,通常的實現方法是給予程序諸多希望它學習的例子。因此,通過許多人臉圖片以及對應人名來訓練人臉圖像識別程序,最終達到的效果是給它呈現一張圖片時,程序就能正確地給出所示圖片對應的人名。
問題解決和製訂計劃是兩個相關聯的能力,它們也與智能行為有關。它們都要求用給定的動作組合來達成目標,而實現的關鍵在於找到正確的動作序列。例如,象棋或者圍棋之類的棋盤遊戲,目標是贏得比賽,行動是在棋盤上移動(或放置)棋子,挑戰是要找出正確的下棋步數以達到贏得比賽的目的。而如我們所了解的,在解決問題和製訂計劃中最根本的難點在於,隻需要考慮移動棋子的所有可能結果,雖然從原理上看起來很容易做到,但是實際上執行起來卻非常困難,因為棋子可能移動的步驟實在是太多了。
推理也許是諸多與智能相關的行為中最令人崇拜的一種:它基於現有的事實,用強大的邏輯方式獲取新的知識。舉一個著名的例子,若你知道“所有的人都是凡人”,你也知道“邁克爾是一個人”,那麽就可以推理得出“邁克爾是凡人”的結論。一個真正的智能係統很容易做到這一步,然後,利用新的知識做出進一步推理。例如,知道“邁克爾是凡人”之後,就能推論出“邁克爾有朝一日會死去”“邁克爾死去以後,將不會複活”等等。自動推理就是賦予計算機這樣的邏輯推理能力。在第三章中,我們將看到,長期以來,人們都認為這種推理能力應該是人工智能的主攻方向。雖然現在已經不是主流了,但自動推理仍然是人工智能領域中一個重要的分支。
最後是自然語言理解,這涉及讓計算機理解人類的語言,比如中文或者英文。目前,計算機程序員為計算機編程時,必須使用人造的機器語言:某種有著精確定義、明確規則、專門為計算機構造的語言。這些語言(目前最著名的應該是Python、Java和C語言)比起自然語言(如中文或英文)簡單得多。很長一段時間以來,讓計算機理解自然語言的主要方法是試圖為自然語言加以精準的定義和明確的規則,就像我們定義計算機語言一樣。而事實證明,這是不可能的。自然語言太過靈活、模糊和易變,無法用這種方式嚴格定義,而語言在日常生活中的使用方式更是阻礙了對其進行精確定義的嚐試。
SHRDLU和積木世界
SHRDLU係統是黃金年代最受歡迎的成就之一(這個奇怪的名字來源於當時印刷機上的字母排列——程序員就喜歡弄點晦澀的笑話)。1971年[18],斯坦福大學博士生特裏·威諾格拉德(Terry Winograd)開發了SHRDLU係統,旨在展示人工智能的兩個關鍵能力:解決問題和自然語言理解。
SHRDLU的問題解決組件是基於人工智能界最著名的實驗場景之一:積木世界。積木世界是一個包含了許多彩色物體(方塊、盒子和錐體)的模擬環境。使用模擬環境而不是真實環境去構建機器人,初衷在於將問題的複雜性降低到可管理的程度。在積木世界中,SHRDLU的問題解決模塊可以根據用戶的指令來排列對象,也可以使用模擬機械手臂來操作對象。我們可以在圖2中看到積木世界的初始狀態和目標狀態。人工智能要完成的挑戰是如何將初始狀態轉換為目標狀態。並且,你隻能使用固定的操作集合來完成狀態轉換:
圖2 積木世界上圖是初始狀態,下圖是目標狀態,你要怎麽轉換呢?
·從桌麵拾取對象x。此處指的是用機械臂將對象x(可能是積木或者錐體)從桌麵上拿起來,隻有當同時滿足對象x在桌麵上,以及機械臂當前為空的時候,才能執行此操作。
·將對象x放在桌麵上。隻有當機械臂攜帶對象x的時候,才能執行此操作。
·從對象y上拾取對象x。隻有滿足機械臂當前為空,對象x必須在對象y的上方,並且對象x上方沒有其他對象的時候,才能執行此操作。
·將對象x放在對象y的上麵。隻有當機械臂攜帶對象x,以及對象y的頂部沒有其他物品的時候,才能執行此操作。
積木世界裏的一切行為,最終都會簡化為這四個操作步驟,且隻能執行這四種操作。所以,要實現圖2中的狀態轉化,可以先按照如下步驟執行:
·從對象B上拾取對象A
·將對象A放在桌麵上
·從桌麵上拾取對象B
上述行動完成以後,積木世界會是什麽狀態?你能補寫出剩下的操作步驟嗎?(當然,這不難,但是挺無趣。)
積木世界可能是整個人工智能領域中研究得最多的場景,因為在積木世界中,機械臂完成拾取物品並移動它的操作,聽上去與現實世界中我們為機器人設想的任務類似。但是,在SHRDLU(以及諸多後續研究)的積木世界,如果要作為開發使用人工智能技術的場景,還有著嚴重的局限性。
首先,積木世界是一個封閉的世界,這意味著引起世界變化的唯一因素就是SHRDLU。這就像你一個人住的時候可以篤定地相信,你睡覺前把房門鑰匙放在哪裏,醒來以後它仍然在原處。如果你家裏還有其他人,就會存在別人拿走你鑰匙的可能。因此,當SHRDLU把對象 x放在對象 y上麵之後,就可以篤定地認為對象 x一定位於對象 y的上方,除非它對相關對象進行過操作。而現實世界並非如此,人工智能係統不能假設自己是世界上唯一的行動者,這樣的假設隻會讓運行結果錯誤百出。
其次,也是更重要的一點,積木世界是模擬世界,SHRDLU並沒有真正操作一個機械臂來拾取對象並移動它們——它隻是作為程序假設這麽做而已。它模擬了一個世界,並模擬出自己的行為對這個世界產生的影響。SHRDLU從來沒有構建一個基於真實世界的模型,也沒有檢查模擬世界的模型是否和現實世界相匹配,這就是一個極簡的假設而已。積木世界是否忽略了機器人在現實世界中運行所麵臨的絕大多數困難,這也是一個後來研究人員爭論頗多的話題。
為了更好地理解這一點,我們以“從對象 y上拾取對象 x”為例,考慮它的操作。站在SHRDLU的角度,這就是一個簡單、明了的動作:機器人隻需要徑直從指定的目的地拿起指定的對象就算執行完成,無須考慮這個動作涉及的其他東西。因此,程序隻需要找到執行任務所需的正確方法和步驟順序,就能“控製”整個過程,它不會考慮在執行任務的過程中所遇見的各種麻煩事。但想想現實世界,假設機器人在倉庫的環境裏,那麽它就必須識別出哪個是對象 x,哪個是對象 y,這才能成功執行這條命令。好吧,即使解決了對象識別的問題,單單抓取這最後一步,也不是件簡單的事情——讓機器人在現實世界中操作哪怕是最簡單的物件,困難都遠比想象的大,即使在今天都是一個富有挑戰性的難題。1994年,我以一個年輕學者的身份前往西雅圖參加美國人工智能協會會議時,就對這個問題有了一定的了解。我仍然清晰地記得那些參加“清理辦公室”競賽的機器人,其不稱職的程度簡直令人驚訝。顧名思義,競賽的目的是製造一個機器人,它可以在類似辦公室的環境中安全地移動,識別和收集垃圾——這個環境就類似於現實版的積木世界。此時已經是SHRDLU問世20年後了——結果,哪怕是在比賽中表現最好的機器人,它的執行速度也慢得令人發指,讓人差點以為無法完成任務。當然,問題不在於機器人,而在於人們天真地低估了這些問題的難度。事實上,我們錯誤地以為,某些人類執行起來輕而易舉的任務,機器人執行起來也應該同樣輕鬆。
因此,積木世界之所以引起人們關注,是因為它直觀且易於理解。看上去它構造出了類似現實世界的機器人工作環境,其實都是我們自己臆想出來的。深入研究一下就能發現,積木世界所研究和解決的,隻是用一係列可執行的動作來解決問題的方法。雖然這確實是一個值得關注的領域,但這隻解決了機器人在現實環境所麵臨的問題中極小的一部分,並且絕不是最困難的那部分。
SHRDLU最為人稱讚的特性之一,是用戶可以向係統發送指令,並且能從係統中接收到類似自然語言的反饋。下麵是一段人類與SHRDLU的對話(SHRDLU的話用斜體字表示):
拾取一個大的紅色方塊。
好的。(執行命令)
抓取一個錐體。
我不明白你指的是哪個錐體?
尋找一個比你拾取的方塊更高的物塊,並把它放進盒子裏。
我想你所說的“它”指的是比我拾取的方塊更高的那個。
好的。(執行命令)
盒子裏麵有什麽東西?
藍色的錐體和藍色的方塊。
藍色的錐體由什麽支撐?
由盒子支撐。
有幾個積木不在盒子裏?
四個。
至少有一個比我叫你拾取的那個更窄嗎?
是的,紅色立方體。
它有支撐嗎?
有,桌子。
桌子能拾取方塊嗎?
不能。
一個錐體能被一個方塊支撐嗎?
能。
這段對話遠比ELIZA有意義得多——這個係統更加自然、豐富,能夠處理複雜結構的句子(比如“至少有一個比我叫你拾取的那個更窄嗎?”)以及明白代詞“它”在對話中指代的具體對象[19]。正是SHRDLU係統的類似自然語言的交互方式,讓它在20世紀70年代初受到了熱烈的追捧。然而,後來人們發現,SHRDLU之所以能夠產生如此豐富的對話,僅僅是因為它處於一個非常受限的環境——積木世界。雖然不像ELIZA那樣事先預設了各種處理對話的模式,但它的對話發生場景是受限的,所以對話內容的局限性非常明顯。這個係統首次出現時,人們希望它可以提供一條通向處理自然語言的道路,然而,這個希望落空了。
我們這些身在50年後的人很容易發現SHRDLU的局限性,但無論如何,它仍然是一個影響巨大的裏程碑式的人工智能係統。
機器人SHAKEY
機器人與人工智能一直密切相關——尤其對於媒體而言。1927年,弗裏茲·朗(Fritz Lang)在其導演的經典電影《大都會》中塑造的機器人形象,成為後世無數機器人熒幕形象的模板:長著一個腦袋、兩隻胳膊、兩條腿的類人的機器,再加點兒冷酷凶殘的性情。即使在如今,似乎大眾媒體上每一篇有關人工智能的文章都得配上機器人的圖,長得就像《大都會》裏機器人的直係後代。機器人,尤其是類人的機器人,成為人工智能的標誌,這並不讓人感到驚奇。畢竟,最能體現人工智能夢想的,就是有長得跟我們差不多、擁有類似我們智力的機器人,與我們同吃同住同勞動。再說了,我想大多數人都會樂意擁有一個機器人管家來幫忙處理生活中的各種問題。
不過在黃金年代,機器人隻是人工智能故事中占比相對較小的一部分。原因相當簡單:製造機器人又昂貴又費時,坦率地說,還很困難。一個在20世紀60或70年代獨立工作的博士生,絕對承擔不起建造一個研究級的人工智能機器人的費用。它需要一個完整的研究實驗室、專業的工程師、一整套生產車間流水線、專業的生產設備等。另外,能夠驅動人工智能係統的計算機太過龐大和沉重,機器人無法攜帶。所以,對研究人員而言,構建一個類似SHRDLU的程序要比構建一個現實的、可操作的機器人簡單得多,也經濟得多——反正係統的複雜性和混亂性是能滿足現實需求的。
不過,盡管實體機器人的研究很少,但在黃金年代,還是有一個光輝燦爛的人工智能機器人實驗成果:在1966年至1972年間斯坦福研究所開展的SHAKEY項目。
SHAKEY是人類第一次認真嚐試構建可移動的、實體的機器人,它可以在現實世界完成各項任務,並且自己想出完成這些任務的方法。要做到這些,SHAKEY需要感知所處環境,了解自己身處的位置和周圍的狀況;還要能接收任務,並自己製訂完成任務所需要的步驟;然後按步驟執行任務,同時確保在執行過程中一切順利,達到預期效果。它所需要完成的任務主要是在類似辦公室這樣的環境裏移動各種盒子。聽上去跟SHRDLU很像,不過SHAKEY可不是SHRDLU那樣虛擬的係統,它是一個真實的機器人,能夠真真正正地操作物體,這可是一項偉大的挑戰。
要想達成目標,SHAKEY要集成好多令人望而生畏的智能係統。首先,建造它的工程師得解決一個大難題:開發人員要自行建造機器人,它必須足夠小,足夠靈活,才能在類似辦公室的環境裏移動。還得擁有足夠強大和精準的傳感器,使機器人能夠了解周圍的情況。為此,SHAKEY配備了一個電視攝像機和激光測距儀,用來確定它和各物體之間的距離。為了探知障礙物,它還配備了一個名叫“貓須”的碰撞探測器。然後,SHAKEY必須擁有在環境中導航的能力,它還能夠製訂執行任務所需要的步驟。為此,開發人員設計了一個名為STRIPS(斯坦福研究所問題解決係統Stanford Research Institute Problem Solver的縮寫)[20]的係統,現在,人們公認STRIPS係統是人工智能規劃技術的鼻祖。最後,所有的智能係統必須流暢、完美地彼此配合,協同工作。任何人工智能研究人員都會告訴你,上述的所有係統,能成功實現其中一個,都是攻克了大難關;若是能讓它們作為一個整體工作,其難度會直線躍升好幾個數量級。
當然,聽上去SHAKEY很神奇,不過它也充分暴露了當時人工智能的局限性。為了讓SHAKEY正常工作,設計者不得不大大簡化機器人所處的環境,還要降低任務難度。比如,SHAKEY解析它自帶的電視攝像機的數據的能力非常有限,幾乎隻能用來探測障礙物。即便如此,它所處的環境都必須經過特別的粉刷,還需要精心的照明。因為電視攝像機功率太大,所以隻在有需要的時候才能打開,打開電源後10秒左右才能產生可用的圖像。當時的開發人員一直在與計算機的局限做鬥爭:比如SHAKEY需要花費15分鍾的時間才能設計好怎麽完成一項任務,在此期間,它像個傻瓜一樣站在那裏,一動不動,與周圍環境完全隔絕。由於能夠完成SHAKEY相關軟件運算的計算機體積都太大,重量也太重,所以得用無線電把SHAKEY連接到一台操控計算機上[21]。總之,SHAKEY這種機器人沒有任何實用意義。
SHAKEY可以說是第一個成為現實的自動移動機器人,它開創了一係列令人驚歎的人工智能新技術,和SHRDLU一樣,由於這些成就,它理應在人工智能曆史中獲得殊榮。但是SHAKEY的局限性,證明了人工智能離實用的、擁有自主能力的機器人夢想有多遙遠,完成這一挑戰有多艱巨。
問題解決與搜索
解決問題的能力無疑是區分人類和其他動物的關鍵能力之一。互聯網上充斥著鬆鼠[22]和烏鴉[23]的視頻,這些動物雖然可以解決一些複雜的問題以獲取食物,但就解決抽象問題而言,還沒有任何動物能夠接近人類的水平(哪怕沒有食物作為直接獎勵也會去解決問題)。當然,解決問題是需要智慧的,如果我們能構建某種程序,解決人類認為難以解決的問題,這算不算人工智能走向現實的關鍵一步呢?因此,在黃金年代,人們在解決問題這個領域投入了大量研究,當時研究人員的標準做法是讓電腦來解決人們經常在報紙趣味謎題版麵能夠看到的東西。我們以經典的漢諾塔為例:
在一個偏僻的寺院裏,立著三根柱子,還有64個金環。每一個金環的尺寸都不同,並且金環都可以套在柱子上。最初,所有的金環按照上小下大的順序,都套在最左邊的柱子上,然後,僧侶們要利用這三根柱子,一個一個移動金環。他們的目標是把所有金環都移動到最右邊的柱子上,移動的時候,僧侶們必須遵從兩個原則:
1. 一次隻能把一個金環從一根柱子移動到另一根柱子上。
2. 任何一個金環都不能位於比它小的金環之上。
要解決這個問題,僧侶們必須找到正確的移動順序,使得所有的金環從左邊柱子移動到右邊柱子,並且遵循大金環不能放在小金環之上的規則。
按照傳說,當僧侶們完成任務的時候,世界就會毀滅[1]。當然,我們很快就會知道,哪怕這個傳說是真的,也無須為此擔憂,因為宇宙在僧侶們移動完所有64個金環之前早就滅亡了。所以現實中的漢諾塔隻會有極少的金環,如圖3所示。
圖3 漢諾塔
人工智能黃金年代的經典謎題,圖a展示了漢諾塔的初始狀態(所有的金環都在最左邊的柱子上),圖b展示了目標狀態(所有的金環都被挪到最右邊的柱子上),圖c展示了錯誤的移動狀態(大金環放在了小金環上麵)。
那麽,我們將如何著手解決漢諾塔這樣的問題呢?答案是使用一種名叫搜索的技術。在這一點上,我得首先澄清,在人工智能領域使用“搜索”一詞時,並非指打開穀歌或者百度對網站進行搜索。人工智能領域的搜索,是一種基本的問題解決技術,它涉及讓係統全盤考慮所有進程。任何像下棋一樣的程序都是基於搜索技術的,汽車上的衛星導航係統也是。它一次又一次地出現在諸多領域,是人工智能技術的基石之一。
所有類似漢諾塔的問題都有著相通的解決方案。在積木世界裏,我們希望能夠找到相應的步驟,把初始狀態的物體轉變為指定的目標狀態。“狀態”這個術語在人工智能領域指的是某個事物或者問題在某個特定時刻呈現的結構。
用搜索的方式來解決類似漢諾塔的問題,我們可以遵照以下步驟:
·首先,從初始狀態開始,我們考慮每個可能的動作對初始狀態的影響,執行每一步操作都會將初始狀態轉換為一個新的狀態。
·如果其中某個新狀態是我們的目標狀態,那就意味著操作成功:這個問題的解決步驟就是從初始狀態達到目標狀態所執行的操作。
·否則,在每一個新狀態上,繼續考慮所有可能導致狀態變更的操作,重複這樣的過程,以此類推。
應用搜索的方法會得到一個樹狀的結構圖,被稱為搜索樹,圖4為我們展示了解決漢諾塔問題的搜索樹的一小部分片段。
·最初,我們隻能選擇移動最小的金環,隻有將它移動到中間或者最右邊的柱子上。所以對應第一步,我們隻有兩種移動可能,以及兩種不同的新狀態。
·如果我們選擇將最小的金環移動到中間柱子(初始狀態左下方箭頭對應的狀態),那麽我們隨後可以執行三種操作:將最小的金環移動到最左側或者最右側的柱子,或者將第二個金環移動到最右側柱子(不能將第二個金環移動到中間柱子,因為它會位於最小金環的上方,這就違背了移動規則)。
·以此類推。
圖4 漢諾塔問題搜索樹的一小部分片段
因為我們逐級逐級地在生成搜索樹,這就意味著我們考慮到了所有的移動可能性,因此,如果這個問題確定是有解決方案的,我們就可以確保使用搜索的方法最終能夠找到它(“最終”這個詞在句中是至關重要的,至於為什麽,很快就會揭曉)。
那麽,解決漢諾塔問題需要移動的最少次數是多少呢?也就是說,從初始狀態到目標狀態,最少需要移動多少次?對於三個金環而言,答案很簡單,是7次。你不可能找到少於7次的解決方案了。當然,也有很多方案可以用超過七步的方式解決問題(實際上是有無窮多方案),但它們不是最優的,因為我們想用最少的步驟、在最短的時間內解決問題。現在,考慮到我們所描述的搜索過程是詳細無遺漏的——考慮到了每一步搜索樹的所有可能性——搜索技術不光能保證尋找到解決方案,也能保證尋找到最優解決方案。
這就意味著,窮舉搜索的方式不僅能保證在問題可解的時候尋找到問題的解,還能保證尋找到問題的最優解。另外,作為計算機的算法,窮舉搜索非常簡單——編寫一個程序來實現它非常容易。
不過,哪怕我們隻是粗略研究圖4所示的片段都能夠看出來,如剛才所描述的那樣,采用窮舉搜索的方式來解決問題是個相當愚蠢的過程。比如,仔細看看搜索樹最左邊的分支,僅僅移動兩步以後,問題又返回到了初始狀態,這是在無謂地浪費精力。如果是你來研究解決漢諾塔問題,可能會在尋找解決方案的時候犯一兩次類似的錯誤,不過你會很快發現問題所在,並且學會避免做一些徒勞的移動。然而,一台簡單執行窮舉搜索的計算機卻無法做到:它隻能窮舉出所有移動下的所有新狀態,哪怕某些窮舉步驟就是在浪費時間,它也會走回頭路,回到已經被確認過失敗的狀態。
除了太多重複和低效率以外,窮舉搜索還有一個根本的問題。如果你做過一些實驗,會發現在大部分狀態下,漢諾塔問題都有三種移動的可能性,即分支因子為3。不同的問題對應著不同的分支因子。比如,圍棋的分支因子為250,這就意味著在遊戲給定的任意狀態下,每個玩家約有250種落子的可能性,當然,這隻是平均值。所以,我們來看看搜索樹隨著分支因子能增長到多大——對確定了分支因子數的搜索樹,在不同層級有多少種狀態。以圍棋為例[24]:
·搜索樹的第一級有250種狀態,因為在遊戲棋盤的初始狀態下,可以有250種新出現的狀態。
·第二級搜索樹有250×250 = 62 500種狀態,因為我們必須考慮到250種落子選擇後,每一種狀態都有250種可能出現的新狀態。
·第三級搜索樹有62 500×250,大約有1560多萬種狀態。
·以此類推,第四級搜索樹就會有大約39億種狀態。
到此為止吧,在我撰寫這篇文章的時候,一台普通的台式機已經沒有足夠的內存來存儲四級圍棋搜索樹的狀態了。而通常一局圍棋遊戲要走大概200步,在圍棋搜索樹中存儲200步走棋的搜索樹狀態數目,那是一個大到你我都無法想象的天文數字,它比我們宇宙中所有原子的數目還大幾百個數量級。無論對傳統計算機技術做出怎樣的改進,它們都無法完成這樣可怕的搜索樹。
搜索樹這種迅速、荒唐的增長速度導致了無法想象的問題,我們稱之為組合爆炸,它是人工智能所麵臨的最重要的實際問題,因為搜索技術在人工智能領域使用得非常廣泛[25]。如果你能夠尋找到一個快速並且萬無一失的辦法解決搜索樹的難題——發明一種方法,既能達成窮舉搜索的目標,又無須占用這麽恐怖的資源——恭喜你,你將青史留名,並且讓許多人工智能目前所麵臨的困難迎刃而解。可我不得不遺憾地說,你做不到。我們沒辦法回避組合爆炸的問題,隻能想辦法處理它。
在人工智能發展初期,組合爆炸被認為是根本性問題,麥卡錫將其確定為1956年人工智能暑期學校的重要研究課題之一。人們的關注點主要集中在提高搜索效率上,對此,有幾種不同的解決方案。
深度搜索的主要優點在於不用存儲整個搜索樹,隻需要存儲當前正在處理的分支即可。但它有一個很大的缺陷:如果選擇了錯誤的分支進行探索,可能會在錯誤的路上越走越遠,永遠找不到解決方案。所以,要想使用深度優先搜索,首先我們得確認哪個分支最值得搜索。這時候,我們就需要啟發式搜索來幫忙了。
啟發式搜索的概念就是使用所謂的“經驗法則”來指導搜索的重點。通常我們也無法尋找到直指正確搜索路徑的啟發式方法,但我們往往可以在感興趣的問題上找到啟發式搜索方向。當然,我們也明白,有些情況下,啟發式搜索的運行情況並不那麽盡如人意。
啟發式搜索是一個自然而然產生的概念,多年來它被重新定義了很多次,所以爭論到底是誰發明了它已經毫無意義。但是,我們可以確定,第一個應用在人工智能程序的啟發式搜索來自一個玩跳棋遊戲的程序[26],由IBM的亞瑟·塞繆爾(Aithur Samuel)於20世紀50年代中期創造。塞繆爾編寫的跳棋程序,在許多方麵為人工智能領域開辟了新天地。首先,以棋盤為人工智能技術的試驗場,這一傳統就是塞繆爾的跳棋程序開創的。即使在今天,這也是一種常見的技巧,雖然也有不少人提出反對意見。其次,正如我們所提到的,也是即將展開詳細討論的一點,該程序是基於啟發式搜索編寫的。最後,我們會在之後詳細討論,塞繆爾的跳棋程序是第一個真正意義上的機器學習程序:他的程序自學了怎麽玩跳棋。
塞繆爾跳棋程序的關鍵點在於給棋盤的各個位置賦予不同的權重,用以評估對選手而言位置“好”的程度:從直覺來說,某些“好”的位置可能讓某位選手更容易取得勝利,而一些“壞”的位置則會導致失敗。為此,塞繆爾用一係列特征值來計算棋盤上的點位價值。例如,某些比較關鍵的位置,能夠讓你形成連跳,這樣的連跳越多,就意味著你在棋盤上的形勢越占上風。然後,程序將不同的評估參數整合起來,給出棋盤位置的一個綜合評估價值分數,形成一個量化的評估標準。再根據啟發式搜索方法來選擇最佳的棋盤移動路徑。
在實踐中,要考慮比簡單的啟發式算法更複雜的情況:因為跳棋是一種對抗遊戲,你必須考慮到對手可能如何行動。塞繆爾的跳棋程序會認為你的對手會做出對你最不利的舉動。這種“最壞情況推理”的方法(即假設對手的行為會使得自己的得分最大化,讓你的得分最小化)稱為極大極小值搜索,是對抗性遊戲的基本概念。
大部分早期的啟發式搜索算法,包括塞繆爾的程序,都使用了某種特別的啟發方式——“嚐試—實踐—判斷”。20世紀60年代末,美國SRI人工智能研究中心的尼爾斯·尼爾森(Nils Nilsson)和他的同事取得了突破,他們開發出名為A*的技術,作為我們之前討論過的SHAKEY項目的一部分。A*定義了一些簡單的規則,讓我們可以確定哪些啟發是“有益的”。在A*之前,啟發式搜索不過是一個猜謎遊戲;而在A*之後,它是一個數學上很容易理解的過程[27]。A*現在被視為計算機科學中的基礎算法之一,並且在實踐中得到了廣泛的應用。其實,我們在生活中經常會遇見使用A*算法的程序,比如車載衛星導航係統等。盡管A*很驚豔,但它仍然依賴於使用特定的啟發式搜索:好的啟發能很快地找到解決方案,而差的啟發就沒什麽價值。對如何為特定問題找到更優秀的啟發,A*本身並沒有給出答案。
人工智能遇上了複雜性障礙
我們在上一章講過,計算機的出現源自艾倫·圖靈想解決一個彼時數學界的世紀難題。圖靈發明計算機可能算是計算機科學史上最大的諷刺之一,因為他的本意是證明有些事情計算機永遠也辦不到。
在圖靈的研究成果問世後的幾十年裏,探索計算機能做和不能做的事情的範圍形成世界各地數學係的小分支的研究方向。這項工作的重點在於把那些固有的不可判定問題(無法用計算機解決的問題)和可判定問題(能夠用計算機解決的問題)區分開來。從那時起,人們發現了十分有意思的現象——不可判定的問題存在層次結構:即存在某些問題,不僅不可判定,還是高階不可判定的(這對某些研究特定領域的數學家而言很棘手)。
不過在20世紀60年代,確定一個問題是否可判定,還遠遠不夠。一個問題在圖靈看來是可以解決的,並不意味著它在實際操作上是可以實現的:圖靈隻是從理論上證實某些問題有解,但是有些問題的解決方式需要消耗龐大的計算資源——需要動用的計算機內存大到不可估量,或者計算機的運行速度慢得出奇,能計算出結果的時間遙遙無期。很明顯,許多人工智能問題陷入了這樣尷尬的境地。
下麵就是一個例子,按照圖靈的理論,很容易證明它能被解決:
你能組建一支合適的隊伍嗎?
這道問題的答案顯然是“能”,你可以選擇約翰、喬治和林戈,或者保羅、喬治和林戈(請注意,這是該問題僅有的兩種解法)。
然後我們再加上一個限製:約翰和喬治不能一起工作。那麽答案就明顯了:保羅、喬治和林戈。
現在我們加上最後一個限製:保羅和喬治不能一起工作。那麽我們的答案就變為“不能”,因為沒有一種組合可以同時滿足三個“禁止組隊”的要求。
我們用抽象的方式來描述這個問題[28]:
首先給出一個包含n個人的列表(在上述例子中,這些人就是約翰、保羅、喬治和林戈,因此n = 4),以及一個“禁止組隊”的列表(例如,“約翰和保羅不能在一起工作”)。那麽,我們能否得到一個包含m個人的團隊,使得所有禁止組隊的條件都能得到滿足?(顯然,要使得這個問題有意義,m必須小於n。)
必須指出的是,這個問題在原則上是很容易解決的。簡單地列出所有含有m個成員的團隊名單,並檢查每一個團隊名單是否與禁止組隊列表有衝突即可。用計算機編程來做這個步驟非常容易。因此,在圖靈的觀念裏,這個問題很容易求解。
那麽,問題的關鍵來了,我們需要檢查多少種組合的可能性呢?如果是4人團隊裏麵選3人,那很容易,你需要檢查4個有可能的選擇。但當團隊人數增多,會出現什麽情況,我們來看看吧。
如果是10人團隊選5人,你就得檢測252種可能性。好吧,很枯燥,但是還能忍受。不過可以看到的是,選擇可能性的增長速度遠遠大於整個團隊成員或者目標團隊成員的數量增長的速度。
如果是100人團隊裏麵選50人,那你就得檢測大約1029這麽多種可能性了。一台當代的大型計算機每秒可以評估大約1010種可能性——聽起來挺多的,但是,稍微計算一下你就能意識到,即便算到宇宙末日,也無法檢測完畢。期待英特爾的工程師們提供計算速度更快的芯片也無濟於事:傳統計算機技術再怎麽突飛猛進,也無法在合理的時間內完成這個數量級的計算任務。
我們在這裏所看到的現象也是組合爆炸的例子。在研究搜索樹的時候我介紹過組合爆炸的概念,搜索樹中的每個層級都呈指數型增長。所以在層級增多的時候,組合爆炸會導致可能出現結果的增長速度超乎想象。在團隊建設的案例中,隻要團隊總人數增加1個人,我們必須考慮的潛在組合型就會翻倍。
所以,這種徹底列舉每一種組合可能性的方式,是不可行的。理論上它行得通(如果時間足夠,總會得到正確的答案),但在實踐中它毫無意義(因為對每種可能的組合做判斷需要的時間是天文數字)。
因為我們的問題是一個NP完全問題的案例[2]。恐怕這個首字母縮寫對不熟悉計算機編程的人而言太過陌生:“NP”代表“不確定多項式時間”,具體的技術定義相當複雜。幸運的是,NP完全問題背後的邏輯很簡單。
組合問題是一個NP完全問題,就像我們團隊建設的例子。在這個問題中你很難找到解決方案(我們在上文討論過,因為要徹底檢查每一種組合需要耗費無盡的時間),但是又很容易驗證是否找到了解決方案(在這個示例中,我們可以簡單地驗證它是否與禁止組隊的規則相衝突)。
NP完全問題還有一個重要特征,為了理解它,我們要引入另一個問題(請相信我,這個真的很有必要),這個問題相當著名,你可能聽說過它。它被稱為旅行推銷員問題[29]:
有一位推銷員要去被道路連接的若幹城市推銷商品,走完所有城市以後他必須回到起點。並非所有城市都有公路直接相連接,而有公路連接的城市,推銷員知道每條公路的具體長短。請問:推銷員走遍所有的城市,最終回到起點,怎樣選擇一條最短的路徑?
這個問題跟團隊建設類似,都是組合類問題。我們可以用蠻力計算來解決它,隻要列出所有可能的路線,並檢查每條路線的長短,然後選擇最短的一條即可。然而,正如你現在所想的那樣,隨著城市數量的增加,可能存在的行進路線會呈指數級增長:如果要走遍10座城市,就得考慮360多萬種可能性,11座城市就會激增為4000萬種。
所以,旅行推銷員問題和團隊建設問題一樣,都會麵臨組合爆炸的難題。但除此之外,這兩個問題似乎沒什麽共通之處,畢竟團隊建設和尋找最短路徑有什麽關聯呢?但是在NP完全問題的範疇內討論的話,這兩個問題,雖然看上去差別很大,但本質上是同一個問題。
我這句話的意思可以這麽理解:假設我已經發明了一種巧妙的方法,可以保障高效又準確地找到團隊建設問題的正確答案,現在你給我一個旅行推銷員問題的案例,我就可以把這個旅行推銷員問題轉化為團隊建設問題的一個特例,我的方法可以迅速解決它,你則可以得到想要的答案。這就意味著,如果你發明了一種可以高效又準確解決團隊建設問題的方法,那麽就等同於你發明了可以高效又準確解決旅行推銷員問題的方法。這種神奇的方法並不僅僅適用於這兩個問題,而是可以解決所有NP完全問題。
如果你發現自己要解決的問題是NP完全問題,這就意味著傳統意義上的計算機技術在解決該問題上是行不通的:從精準的數學意義來說,你的問題太難了。
NP完全問題的基本結構早在20世紀70年代就已成形。1971年美籍加拿大數學家斯蒂芬·庫克(Stephen Cook)的一篇論文確定了NP完全問題的核心思想,隨後美國人理查德·卡普(Richard Karp)證明了庫克NP完全問題的範疇比最初想象的要廣泛得多。整個20世紀70年代,人工智能領域的研究人員開始利用NP問題完全性理論來研究他們的課題,結果令人震驚。不管哪個領域——解決問題、玩遊戲、計劃、學習、推理任何方麵——似乎關鍵性的問題都是NP完全問題(甚至更糟)。這種現象普遍得成了一個笑話——所謂的“AI完全問題”[3]意味著“一個和AI本身一樣難的問題”,如果你能解決一個AI完全問題,你就能解決所有AI問題了。
發現你正在研究的問題是NP完全問題——或者更糟——真是個沉重的打擊,在NP完全性理論及其論證結果被理解之前,人們總是希望出現重大突破使得這些問題變得簡單——用術語來說就是易處理。從技術上講,這種希望還是存在的,因為我們還沒有明確地證明NP完全問題不可解。但到了20世紀70年代,NP完全性理論和組合爆炸成為籠罩在人工智能領域的陰影,以計算複雜性的形式阻攔在人工智能發展道路上,使它陷入停滯。黃金年代發展起來的技術似乎都無法擴大它們的使用範圍,走不出玩具或者特定小世界(比如積木世界)的範疇。50到60年代過於樂觀的預測遇到了現實難題,這讓人工智能領域的先驅者們無比困擾。
人工智能等於煉金術?
20世紀70年代初,人工智能的瓶頸讓科學界越來越沮喪,沒有太多有用的核心研究進展,而某些研究人員又大肆鼓吹人工智能的未來,於是,到了70年代中期,批評人工智能的風潮達到狂熱的程度。
雖然我們不讚成德萊弗斯批判人工智能的方式,但很難回避這個現實:他的某些觀點是有道理的,特別是關於人工智能先驅者們浮誇的觀點和宏偉的預測。赫伯特·西蒙(後來獲得了諾貝爾經濟學獎)在1958年寫道:
這並非聳人聽聞,但是……現在世界上出現了能夠思考、學習和創造的機器。在可以預見的未來,它們的能力將迅速增強,能夠處理的問題範圍將迅速擴大到人類思維的範圍。
在當時,這樣的說法很多,我引用西蒙的觀點是因為他最有名氣。雖然西蒙是人工智能樂觀主義者,但他絕不是最狂熱和不講理的倡導者。令人痛心的是,事後看來,他的樂觀預測是不切實際的。時至今日,人工智能界的一些成員認為,當時的研究人員之所以做出這樣的樂觀聲明僅僅是因為他們被興奮衝昏了頭腦——也有人持更為憤世嫉俗的觀點,稱這種大肆炒作的目的是吸引投資和研究基金。
不管怎麽說,我的專業敏感性讓我必須聲明一下,雖然當年的研究人員樂觀得近乎天真,但並沒有出現大規模蓄意欺騙或者歪曲人工智能研究狀態的事情。研究人員之所以樂觀過頭,是因為他們熱愛這門學科,並且真的相信——也希望其他人相信——他們確確實實建立了可以學習、計劃和推理的程序,盡管有諸多局限性。他們隻是樂觀地認為,擴大這些程序的應用範圍應該很容易。
所以,我認為某些樂觀過頭的情緒是可以被諒解的。尤其是,當年的研究人員沒有意識到正在研究的問題本質上是計算機無法處理的,因而總存在出現突破性進展,使得問題迎刃而解的可能性。但當NP完全問題無解的概念開始普及以後,社會各界才慢慢明白,人工智能所麵臨的問題有多艱難。
黃金年代的終結
1972年,英國一個重要的科研資助機構要求著名數學家詹姆斯·萊特希爾(James Lighthill)爵士評估人工智能的現狀和前景。據說因當年世界最先進的人工智能研究中心之一(如今也是)——愛丁堡大學人工智能社區出現學術鬥爭的相關報道,所以才要求做這樣的評估。萊特希爾榮列當年劍橋大學盧卡斯數學教授席位,這是英國數學家所能擔任的最負盛名的學術職務,斯蒂芬·霍金(Stephen Hawking)後來也曾擔任過。萊特希爾在實際應用數學方麵有著豐富經驗,時至今日,重讀萊特希爾報告,可以看出他為當年人工智能的繁榮感到相當迷惑:
萊特希爾在報告中對當時的主流人工智能相當不屑一顧,他明確指出組合爆炸是人工智能領域無法解決的關鍵問題之一。他的報告立刻導致英國各地對人工智能研究經費的嚴重削減。
在美國,人工智能研究的資金大多來自軍方,以國防高級研究計劃局(DARPA)及其前身高級研究計劃局(ARPA)為主。但到了20世紀70年代初,因為未能兌現諸多樂觀的承諾,美國對人工智能研究的資助也隨之削減。
20世紀70年代初到80年代初這10年被稱為人工智能寒冬,更確切地說應該是人工智能的第一個寒冬,因為此後還有類似事件發生。人們得出了一個普遍結論,人工智能研究人員對這一領域充滿了盲目樂觀和毫無根據的預測,結果什麽都沒有。當時人工智能的名聲就像醫學界的順勢療法[4],作為一門嚴肅的學科,它似乎正在走向衰落。