關於文章

1971 年 JOHN McCARTHY 的圖靈獎演講「人工智慧的通用性」(Generality in Artificial Intelligence) 從未發表。以下是作者在 1986 年撰寫的後記,旨在反映原演講的精神,並根據過去 15 年的發展進行評論。

後記

我 1971 年圖靈獎演講的標題是「人工智慧的通用性」(Generality in Artificial Intelligence)。這個主題結果雄心勃勃,因為我發現當時我無法將我的想法以令人滿意的書面形式表達出來。回顧過去的工作會比嘗試新的東西更好,但那時候這不是我的習慣。

我很感謝 ACM 再次給予我機會嘗試。不幸的是,對於我們的科學而言,雖然對於這個專案來說或許是幸運的,人工智慧 (AI) 中的通用性問題幾乎仍未解決,儘管我們現在有許多 1971 年時沒有的想法。本文很大程度上依賴這些想法,但這遠非對實現通用性方法的 1986 年全面調查。討論想法的篇幅與我對它們的熟悉程度成正比,而不是根據某些客觀標準。

通用性不足的跡象

在 1971 年甚至 1958 年,AI 程式缺乏通用性是顯而易見的。現在它仍然顯而易見,並且有更多細節。第一個明顯的跡象是,對程式構想的小幅增補往往需要從資料結構開始徹底重寫。在資料結構模組化方面取得了一些進展,但搜尋策略的小幅修改則更不可能在不重寫的情況下完成。

另一個跡象是,沒有人知道如何建立一個通用常識知識資料庫,可供任何需要這些知識的程式使用。除了其他資訊外,這樣的資料庫將包含機器人需要知道的關於移動物體的效果、一個人對於其家庭可以預期知道的事情,以及買賣的相關事實。這不取決於知識是以邏輯語言還是其他形式表示。當我們採用邏輯方法來處理 AI 時,通用性不足體現在我們設計的用於表達常識知識的公理,其適用範圍過於有限,無法用於通用常識資料庫。在我看來,找到一種語言來表達包含在通用資料庫中的通用常識知識,是 AI 通用性的關鍵問題。

以下是一些在 1971 年之前和之後提出的、用於實現通用性的想法。我再次聲明本文並不全面。

以程式碼表示行為

Friedberg [7, 8] 討論了一種完全通用的表示行為的方式,並提供了一種學習改進行為的方法。也就是說,行為由電腦程式表示,而學習是通過對程式進行隨機修改並測試修改後的程式來實現的。Friedberg 的方法僅成功學會如何將一個位元從一個記憶單元移動到另一個,而他通過降低成功執行中涉及的指令被修改的概率來獎勵這些指令的方案,被 Simon [24] 證明不如徹底測試每個程式並完全廢棄任何不完美的程式。似乎沒有人嘗試跟進通過修改整個程式來學習的想法。

Friedberg 方法的缺陷在於,雖然以程式表示行為是完全通用的,但通過對程式進行小幅修改來修改行為則是非常特殊的。行為上的一個小的概念性修改通常不是通過對程式的小幅修改來表示的,特別是如果使用機器語言程式,並且程式文字的任何一個小幅修改都被認為是同樣可能的。

嘗試一些更類似於基因演化的東西可能值得一試;會創建子程式的副本,一些副本會被修改,而另一些則保持不變。然後學習系統會實驗將原始子程式的某些呼叫更改為修改後的子程式的呼叫是否有利。最有可能的是,即使這樣也不會奏效,除非相關的小幅行為修改可以通過呼叫稍微修改過的子程式來獲得。可能需要提供修改子程式引數數量的方法。

雖然 Friedberg 的問題是從經驗中學習,但所有通過程式表示知識的方案,在目標是結合不同的知識或製作修改知識的程式時,都會遇到類似的困難。

通用問題解決器 (GPS) 及其後繼者

AI 中的一種通用性包括獨立於問題領域的尋找解決方案的方法。Allen Newell、Herbert Simon 及其同事和學生開創了這種方法,並持續追求。

Newell et al. 於 1957 年首次提出 GPS [18]。最初的想法是將某些通用類別的問題表示為通過一組允許的規則將一個表達式轉換為另一個的問題。甚至 [20] 中也建議,改進 GPS 可以被視為這類問題。在我看來,GPS 作為一個通用問題解決器並不成功,因為問題通常不採取這種形式,並且解決問題和實現目標所需的大部分知識無法簡單地以轉換表達式的規則形式表示。然而,GPS 是第一個將目標和子目標的問題解決結構與特定領域分開的系統。

如果 GPS 確實實現了真正的通用性,或許 Newell 和 Simon 對 AI 快速成功的預測就會實現。

Newell 目前 [22] 對通用問題表示的候選者是 SOAR,據我理解,它關注的是將一個狀態轉換為另一個狀態,其中狀態不一定由表達式表示。

生成系統

第一個生成系統是由 Newell 和 Simon 在 1950 年代完成的,這個想法寫在了 [21] 中。通過對所有問題使用相同的目標尋找機制,只改變特定的生成規則,實現了一種通用性。早期的生成系統已經發展成目前蓬勃發展的專家系統外殼。

生成系統以事實和規則的形式表示知識,並且規則之間幾乎總是有明確的語法區別。事實通常對應於邏輯公式的地面實例,也就是說,它們對應於應用於常數表達式的謂詞符號。與基於邏輯的系統不同,這些事實不包含變數或量詞。新的事實是通過推論、觀察和使用者輸入產生的。變數保留用於規則,規則通常採用模式-動作形式。規則由程式設計師或「知識工程師」放入系統中,在大多數系統中,規則不能通過系統的動作產生。作為接受這些限制的交換,生成系統的程式設計師獲得了一個相對快速的程式。

生成系統的程式很少使用領域的基礎知識。例如,MYCIN [2] 有許多關於如何根據症狀和實驗室測試結果推斷哪種細菌引起疾病的規則。然而,它的形式無法表達細菌是體內生長的生物這一事實。事實上,MYCIN 無法表示時間中發生的過程,儘管其他生成系統可以表示大約與下一節將描述的情境演算同等水平的過程。

生成系統模式匹配的結果是將常數替換為規則模式部分的變數。因此,生成系統不會推斷出通用命題。例如,考慮容器如果密封以防止細菌進入並且其中所有細菌都已死亡,則該容器是無菌的定義。生產系統(或邏輯程式)只能通過替換特定的細菌來使用這一事實,它無法推斷加熱密封容器將使其無菌,前提是加熱的細菌會死亡,因為它無法對容器中未列舉的細菌集合進行推理。這些問題在 [14] 中進一步討論。

以邏輯表示知識

在 1958 年,在我看來,行為上的小幅修改最常可表示為對世界信念的小幅修改,這需要一個明確表示信念的系統。

如果希望機器能夠發現一個抽象,則最有可能的是機器必須能夠以某種相對簡單的方式表示這個抽象。[11, p. 78]

1960 年增加通用性的想法是使用邏輯來表達事實,其方式與這些事實隨後可能被使用的方式無關。當時和現在看來,人類主要以陳述句進行交流,而不是以程式語言進行交流,這是出於良好的客觀原因,無論交流者是人類、來自半人馬座阿爾法星的生物,還是電腦程式,這些原因都適用。此外,陳述性資訊的優勢也適用於內部表示。陳述性資訊的優勢在於通用性。兩個物體碰撞會發出聲音這一事實,在特定情況下可以被用來製造聲音、避免製造聲音、解釋聲音,或解釋聲音的 ausencia(我猜那些車沒有相撞,因為我聽到了煞車的尖銳聲,但沒聽到碰撞聲)。

一旦決定構建一個以陳述方式表示資訊的 AI 系統,仍然需要決定允許哪種類型的陳述性語言。最簡單的系統只允許應用於常數符號的常數謂詞,例如,on(Block1, Block2)。接下來,可以允許任意的常數項,由函式符號常數和謂詞符號構成,例如,location(Block1)= top(Block2)。Prolog 資料庫允許任意包含自由變數的 Horn 子句,例如,P(x, y) A Q(y, z) D R(x, z),以標準邏輯符號表示 Prolog。更進一步是完整的一階邏輯,包括存在量詞和全稱量詞以及任意的一階公式。在一階邏輯中,一個理論的表達能力取決於變數允許在哪個領域中變化。使用集合論帶來重要的表達能力,集合論包含理論中任何物件集合的表達式。

表達能力的每一次增加都伴隨著所需推理和問題解決程式的複雜性增加。換句話說,接受對陳述性資訊表達能力的限制可以簡化搜尋程序。Prolog 在這個連續體中代表一個局部最優,因為 Horn 子句具有中等表達能力,並且可以直接由邏輯問題解決器解釋。

一個通常接受的主要限制是將新事實的推導限制在沒有變數的公式,也就是說,用常數代替變數,然後進行命題推理。似乎大多數人類日常活動只涉及這類推理。原則上,Prolog 稍微超出此範圍,因為 Prolog 程式找到的變數值本身可以包含自由變數。然而,除了中間結果之外,這種功能很少使用。

沒有比 Prolog 更多謂詞演算就無法完成的事情是全稱泛化。考慮罐頭製造的原理。我們說一個容器是無菌的,如果它被密封並且其中的所有細菌都已死亡。這可以用 Prolog 程式的一個片段表示如下:

sterile(X) :- sealed(X), not alive-bacterium(Y, X).
alive-bacterium(Y, X) :- in(Y, X), bacterium(Y), alive(Y).

然而,直接包含此片段的 Prolog 程式只能通過單獨殺死每個細菌來使容器無菌,並且需要程式的另一部分連續產生細菌的名稱。它不能用於發現或合理化罐頭製造——密封容器然後加熱以一次殺死所有細菌。合理化罐頭製造的推理本質上涉及量詞的使用。

我個人的意見是,推理和問題解決程式最終將不得不允許完全使用量詞和集合,並具有足夠強大的控制方法來使用它們而不至於產生組合爆炸。

雖然 1958 年的想法受到好評,但在隨後幾年中,很少有人嘗試將其程式化實現,主要的嘗試是 Black 於 1964 年的 Harvard 博士論文。我大部分時間花在我認為是初步的專案上,主要是 LISP。我沒有嘗試實現的主要原因是我想先學習如何在邏輯中表達常識知識。這仍然是我的目標。如果追求非邏輯方法的人在實現通用性方面取得了顯著成功,我可能會灰心喪氣。

McCarthy 和 Hayes [12] 區分了 AI 問題的認識論和啟發法方面,並斷言通用性更容易從認識論角度研究。這種區別在於,當現有事實的結果是某種策略適合實現目標時,認識論就完成了,而啟發法問題涉及尋找合適策略的搜尋過程。

[11] 中隱含著建立一個通用常識知識庫的想法。人類擁有的常識資訊將以邏輯句子寫入並包含在知識庫中。任何目標尋求程式都可以諮詢知識庫,獲取決定如何實現其目標所需的事實。在知識庫中最突出的是關於行動效果的事實。廣泛研究的例子是一組關於機器人試圖將物體從一個位置移動到另一個位置的效果的事實。這在 1960 年代導致了情境演算 [12],旨在提供一種表達行動後果的方法,獨立於問題。

情境演算的基本形式主義是

s' = result(e, s),

它斷言 s' 是事件 e 在情境 s 中發生後產生的情境。以下是一些用於移動和繪製塊的情境演算公理。

合格行動結果公理 (Qualified Result-of-Action Axioms)

Vx l s.clear(top(x), s) A clear(l, s) A tooheavy(x) D loc(x, result(move(x, l), s))= l. Vx c s.color(x, result(paint(x, c), s))= c.

框架公理 (Frame Axioms)

V x y l s.color(y, result(move(x, 1), s))= color(y, s). V x y I s.y Cx D loc(y, result(move(x, l), s))=loc(y, s). V x y c s.loc(x, result(paint(y, c), s)) = loc(x, s). Vx y c s.y C x D color(x, result(paint(y, c), s)) =color(x, s).

請注意,所有對行動執行的限定都在前提中明確列出,並且關於行動執行時不變的事實陳述(稱為框架公理)也明確包含在內。如果沒有這些陳述,就無法對 result(e2, result(el, s)) 進行太多推斷,因為我們不知道在 result(el, s) 中是否滿足了事件 e2 產生預期結果的前提。

進一步注意,情境演算僅適用於對離散事件進行推理合理的情況,每個事件都會導致一個新的整體情境。連續事件和並發事件不在其涵蓋範圍內。

不幸的是,即使對於符合其限制的問題,也無法很可行地按照建議的方式使用情境演算。首先,使用通用定理證明器使得程式執行過慢,因為 1969 年的定理證明器 [9] 沒有控制搜尋的方法。這導致了 STRIPS [6],它將邏輯的使用限制在情境內的推理。不幸的是,STRIPS 的形式化比完整的情境演算特殊得多。必須巧妙地選擇包含在公理中的事實,以避免由於未能刪除在行動產生情境中不為真的句子而導致矛盾的產生。

非單調性

情境演算公理的第二個問題是它們再次不夠通用。這是限定問題 (qualification problem),直到 1970 年代末才發現一種可能的解決方法。考慮在常識知識庫中放入一條公理,斷言鳥類會飛。顯然,這條公理必須以某種方式進行限定,因為企鵝、死鳥和腳被混凝土固定住的鳥不能飛。仔細構建公理可能成功地包含企鵝和死鳥的例外情況,但顯然我們可以想像出任意多的額外例外情況,比如腳被混凝土固定住的鳥。形式化的非單調推理(參見 [4]、[15]-[17] 和 [23])提供了一種形式化的方式來表達鳥類除非存在異常情況,否則會飛,並推理只有其存在從正在考慮的事實中推斷出的異常情況才會被考慮。

非單調性極大地增加了在情境演算中表達關於事件效果的通用知識的可能性。它也提供了一種解決框架問題 (frame problem) 的方法,這是阻礙通用性的另一個障礙,在 [12] 中已經指出。框架問題(這個詞有各種用法,但我先提出它)發生在有多個行動可用,每個行動都改變情境的某些特徵時。不知何故,需要說明一個行動只改變它直接涉及的情境特徵。當有一組固定的行動和特徵時,即使可能需要很多公理,也可以明確說明哪些特徵不隨行動而改變。然而,如果我們想像可以將情境的額外特徵和額外行動添加到知識庫中,我們就面臨著一個行動的公理化永不完成的問題。McCarthy [16] 指出了如何使用 Circumscription 來處理這個問題,但 Lifschitz [10] 已表明 Circumscription 需要改進,並為此提出了建議。

以下是一些使用 Circumscription 的情境演算公理,用於移動和繪製塊,取自 [16]。

關於位置和移動物體效果的公理 (Axioms about Locations and the Effects of Moving Objects)

Vx e s.-,ab(aspectl(x, e, s)) D loc(x, result(e, s))=loc(x, s). V x l s.ab(aspectl(x, move(x, /), s)). V x l s.-~ ab(aspect3(x, l, s)) D loc(x, result(move(x, I), s)) = l.

關於顏色和繪製的公理 (Axioms about Colors and Painting)

V x e s.~ ab(aspect2(x, e, s)) D color(x, result(e, s))=color(x, s). V x c s.ab(aspect2(x, paint(x, c), s)). V x c s. "-i ab(aspect4(x, c, s)) D color(x, result(paint(x, c), s)) = c.

這解決了限定問題 (qualification problem),因為任何數量的可能阻礙移動或繪製的條件都可以稍後添加,並斷言它們暗示相應的 ab aspect…。它解決了框架問題 (frame problem),因為我們不必說移動不影響顏色,繪製不影響位置。

即使有了形式化的非單調推理,通用常識知識庫似乎仍然遙不可及。問題在於撰寫滿足我們關於納入現象一般事實的觀念的公理。每當我們暫定決定一些公理時,我們就能想到不適用這些公理的情境,這就需要泛化。此外,想到的困難往往是特例性的,就像腳被混凝土固定住的鳥一樣。

實體化

對知識、信念或目標進行推理需要擴展推理對象的領域。例如,對目標進行反向鏈接的程式直接將它們用作句子:on(Blockl, Block2);也就是說,符號 on 被用作語言的謂詞常數。然而,一個程式如果想直接說 on(Blockl, Block2) 應該延後,直到 on(Block2, Block3) 達成,就需要一個類似 precedes(on(Block2, Block3), on(Blockl, Block2)) 的句子,如果這要成為一階邏輯的句子,那麼符號 on 必須被視為一個函式符號,並且 on(Blockl, Block2) 被視為一階語言中的一個物件。

這種將句子和其他實體轉化為物件的過程稱為實體化 (reification)。對於表達能力來說,它是必要的,但又會導致推理的複雜化。這在 [13] 中進行了討論。

形式化上下文概念

每當我們寫一條公理時,批評者都可以說這條公理只在特定上下文中為真。稍加巧思,批評者通常可以設計一個更普遍的上下文,其中公理的精確形式不成立。觀察語言中反映的人類推理強調了這一點。考慮對「on」進行公理化,以便從句子「這本書在桌子上」表達的資訊中得出適當的結論。批評者可能會對「on」的精確含義進行爭辯,發明一些難題,比如書和桌子之間可以放什麼,或者在太空船裡需要多少重力才能使用「on」這個詞,以及離心力是否算在內。因此,我們遇到了關於概念在完全普遍性下意味著什麼的蘇格拉底式難題,並遇到生活中從未出現的例子。根本不存在最普遍的上下文。

反之,如果我們以相當高的通用性水準進行公理化,那麼公理通常會比在特殊情況下方便的公理更長。因此,人類發現說「這本書在桌子上」很有用,省略了對時間以及具體是哪本書和哪張桌子的提及。這種通用程度的問題,無論通用常識知識是以邏輯、程式或其他形式表示,都會出現。(有些人認為知識只以例子的形式內部表示,但使用類比和相似性的強大機制允許其更普遍的使用。我祝他們在提出這些機制是什麼的精確建議方面好運。)

一種可能的解決方法涉及形式化上下文的概念,並將其與非單調推理的 Circumscription 方法結合。我們在公理中的函式和謂詞中添加一個上下文參數。每條公理都對特定上下文做出斷言。進一步的公理告訴我們,事實會被繼承到更受限制的上下文,除非斷言存在例外。每個斷言也非單調地被假設應用於任何特定的更普遍的上下文,但那裡也存在例外。例如,關於鳥類飛行的規則隱含地假設存在大氣供其飛行。在更普遍的上下文中,這可能不被假設。仍有待確定繼承到更普遍上下文與繼承到更特定上下文有何不同。

假設每當電腦記憶體中存在一個句子 p 時,我們將其視為在一個特定上下文中,並且是句子 holds(p, C) 的縮寫,其中 C 是上下文的名稱。有些上下文非常具體,例如 Watson 在 Sherlock Holmes 故事的上下文中是一名醫生,在一部關於心理學史的悲劇歌劇中則是一名男中音心理學家。

存在一個關係 cl < c2,表示上下文 c2 比上下文 cl 更普遍。我們允許像 holds(cl < c2, cO) 這樣的句子,以便即使是與上下文相關的陳述也可以有上下文。該理論不會像 Zermelo-Frankel 集合論那樣提供任何「最普遍的上下文」。

一個使用上下文的邏輯系統可能提供進入和離開上下文的操作,產生我們可以稱之為超自然演繹 (ultranatural deduction) 的推理序列,例如:

holds(p, C)
ENTER C
P
q
LEAVE C
holds(q, C).

這類似於通常的邏輯自然演繹系統,但由於超出本次演講範圍的原因,將上下文視為等同於假設集(即使是無限假設集)可能是不正確的。

所有這些都令人不愉快地模糊,但比 1971 年能說的多得多。

參考文獻

  1. Black E A deductive question answering system. Ph.D. dissertation, Harvard Univ., Cambridge, Mass., 1964.
  2. Buchanan, B. G., and Shortliffe, E. H., Eds. Rule-Based Expert Systems: The MYCIN Experiments of the Stanford Heuristic Programming Project. American Elsevier, New York, 1984.
  3. Davis, R., Buchanan, B., and Shortliffe, E. Production rules as a representation for a knowledge-based consultation program. Artif Intell. 8, 1 (Feb. 1977).
  4. Doyle, J. Truth maintenance systems for problem solving. In Proceedings of the 5th International Joint Conference on Artificial Intelligence. 1977, p. 247.
  5. Ernst, G. W., and Newell, A. GPS: A Case Study in Generality and Problem Solving. Academic Press, Orlando, Fla, 1969.
  6. Fikes, R. and Nilsson, N. STRIPS: A new approach to the application of theorem proving to problem solving. Artif Intell. 2, 3,4 [Jan. 1971}, 189-208.
  7. Friedberg, R. M. A learning machine. IBMJ. Res. 2, 1 (Jan. 1958), 2-13.
  8. Friedberg, R. M., Dunham, B., and North, J. H. A learning machine, p.II. IBMJ. Res. 3, 3 {July, 1959), 282-287.
  9. Green, C. Theorem-proving by resolution as a basis for question answer- ing systems. In Machine Intelligence 4, B. Melter and D. Michie, Eds. University of Edinburgh Press, Edinburgh, 1969, pp. 183-205.
  10. Lifschitz, V. Computing circumscription. In Proceedings of the 9th Interna- tional Joint Conference on Artificial Intelligence, vol. 1, 1985, pp. 121 - 127.
  11. McCarthy, J. Programs with common sense. In Proceedings of the Tedding- ton Conference on the Mechanization of Thought Processes. Her Majesty's Stationery Office, London. Reprinted in Semantic Information Processing, M. Minsky, Ed. M.I.T. Press, Cambridge, Mass., 1960.
  12. McCarthy, J., and Hayes, P. J. Some philosophical problems from the standpoint of artificial intelligence. In Machine Intelligence 4, D. Michie, Ed. American Elsevier, New York, N.Y., 1969.
  13. McCarthy, J. First order theories of individual concepts and propositions. In Machine Intelligence 9, D. Michie, Ed. University of Edinburgh Press, Edinburgh, 1979.
  14. McCarthy, J. Some expert systems need common sense. In Computer Culture: The Scientific, Intellectual and Social Impact of the Computer, vol. 426, Pagels, Ed. Annals of the New York Academy of Sciences, New York, 1983.
  15. McCarthy, J. Circumscription -- A form of non-monotonic reasoning. Artif Intell. 13, 1, 2 {Apr. 1980).
  16. McCarthy, J. Applications of circumscription to formalizing common sense knowledge. Artif Intell. {Apr. 1986).
  17. McDermott, D., and Doyle, J. Non-monotonic logic I. Artif Intell. 13, 1, 2 (1980), 41-72.
  18. Newell, A., Shaw, J. C., and Simon, H. A. Preliminary description of general problem solving program- IiGPS-I). CIP Working Paper 7, Carnegie-Mellon Univ., Dec. 1957.
  19. Newell, A., Shaw, J. C., and Simon, H. A. Report on a general problem- solving program for a computer. In Information Processing: Proceedings of the International Conference on Information Processing IParis). UNESCO, 1960, pp. 256-264. {RAND P-1584, and reprinted in Computers and Automation, July 1959.)
  20. Newell, A., Shaw, J. C., and Simon, H. A. A variety of intelligent learning in a General Problem Solver. In M. C. Yovits and S. Cameron, Eds. Self- Organizing Systems, Pergammon Press, Elmsford, N.Y., 1960, pp. 153- 189.
  21. Newell, A., and Simon, H. A. Human Problem Solving. Prentice-Hall, Englewood Cliffs, N.J., 1972.
  22. Laird, J. E., Newell, A., and Rosenbloom, R S. Soar: An architecture for general intelligence. To be published.
  23. Reiter, R. A logic for default reasoning. Artif Intell. 13, 1, 2 {Apr. 1980}.
  24. Simon, H. Still unsubstantiated rumor, 1960. GENERA[W86,JMC] TEXed on May 27, 1986, at 11:50 p.m.

分類與主題描述

Categories and Subject Descriptors:

  • 1.2.3 [Artificial Intelligence]: Deduction and Theorem Proving -- logic programming
  • 1.2.4 [Artificial Intelligence]: Knowledge Representation Formalisms and Methods -- representation languages
  • 1.2.6 [Artificial Intelligence]: Learning -- concept learning

General Terms:

  • Languages
  • Theory

Additional Key Words and Phrases:

  • General problem solver
  • Prolog
  • nonmonotonicity
  • reification