李加寧 陳艷娟 肖偲迪
摘 要:人工智能早在17世紀時,巴斯卡和萊布尼茨就有了思想的萌芽.到了1956年,號稱“人工智能之父”的McCarthy以及一大批對此感興趣的軟硬件科學家和工程師在Dartmouth大學召開的會議上首次提出這一概念。后來經過幾十年的發展,人工智能也有了不同的研究方向,人工智能工作者們也解決了前進道路上一個又一個的難題。
關鍵詞:人工智能;自然智能;PROLOG;LISP
1 人工智能的發展背景
最近,AI的興起也帶動了一大批科學家去研究它的設計、實現、算法和實用性等方面。人工智能理論是以自然智能理論為基礎,也就是說如果我們可以搞清楚自然智能的工作機制以及其各個功能部件的結構關系,就可以通過已知的電子或生物領域的器件構筑類似的結構并對其進行模擬、延伸和擴展等,從而實現人工智能。但遺憾的是,人們至今還沒有搞清楚人類大腦的內部結構和工作機理,導致對自然智能研究的總體進度十分緩慢。因而人工智能的主流已經從結構模擬道路走向了功能實現道路。所謂功能實現就是將自然智能的結構看作黑箱,而只控制黑箱的輸入輸出關系,只從輸入輸出關系上看實現所要模擬的功能而不去研究黑箱的內部結構以及實現原理。
2 發展中的問題
2.1 基本問題
AI研究者們最關心的兩個基本問題就是知識表示(knowledge representation)和搜索(search)。知識表示針對的是如何以一種正式的語言來表征智能行為所需的全部知識。應用謂詞演算語言應運而生,它可以描述問題域中對象間的屬性和關系,這種問題需要進行定性推論而不是算數計算,使用PROLOG和LISP則可以表示復雜情況和模糊性,如常識推理和自然語言理解。搜索是一種探索問題狀態空間的問題求解技術,問題狀態(problem state)就是問題求解過程中的各種連續或備擇步驟。例如,博弈中的不同棋局或推理過程的各種中間步驟,也或者機器人的路徑選擇和最優模式問題。我們可以搜索這些備擇所組成的空間以找到最終的最優解。紐厄爾與西蒙(Newell and Simon 1976)認為這也是人類求解問題的關鍵基礎。
2.2 自動學習問題
學習一直是AI中最重要也是最具挑戰的領域。學習的重要性是毋庸置疑的,因為這種能力是智能行為的最重要的特征。專家系統如果第二次遇到相同或者類似的問題,通常不是像人類一樣去回憶上一次的解法,而是再執行一次相同的計算過程,對于第三次、第四次甚至任何次的重復出現,它的處理方式都是如此——很難說這是一個智能程序的行為。而在解決這個問題的時候,大多數的AI科學家都被其問題求解策略的死板性和修改大量代碼的艱難性所阻礙。解決這些問題最明顯也是最簡單的辦法就是讓程序自己學習——就像人類的學習一樣,可以通過其經歷、類比和例子進行學習,也可以通過被人“告訴”如何去做來學習。雖然讓程序自己學習是一個很難的領域,但是很多程序說明了這是可能的。例如,AM就是一個用來發現數學定律的程序,AM即“自動數學家”(Lenat 1977,1982)。在被賦予了集合理論的概念和公理后,AM就能夠智能地導出很多重要的數學概念,如集合的基數、算術整數以及數論的很多結果等。AM猜想新定理的方法是修改目前的知識庫,然后啟發式地從大量備擇定理中搜尋“最佳者”,這個“最佳者”就有可能是一個新的定理,然后再使用各種數學算法對其加以驗證后得出結論。
2.3 智能語言識別問題
自然語言理解也是人工智能中的另一個非常困難的任務,其原因有很多,其中最重要的原因是完美理解自然語言要大量使用語言方面的知識、能力和經驗,而且成功的語言理解需要理解自然界、人類心理和社會習俗等很多方面的知識并相互結合。例如,在識別一個人的語音時要考慮到方言問題、此人講話的語境和語氣問題以及讀音錯誤問題等,而在這些問題的基礎上還要識別此人的聲音是否是AI設備使用者的聲音。而往往軟件研發人員在這方面的知識是不夠的,并且這需要使用與邏輯推理和類比解釋完全不同的技術,兩者之間的矛盾使得自然語言理解的進展緩慢,再加上人類語言的模糊性和復雜性,到目前為止,AI科學家們的努力只取得了部分成功:運用基于知識的方法,AI科學家們成功開發出了不能夠完美理解自然語言的程序。而這些技術能否很好地處理自然語言仍存在爭議。
3 設計語言
目前,與人工智能設計有關的主流語言主要是上文提到過的PROLOG和LISP語言,PROLOG是最著名的邏輯程序設計語言,它的名字來源于Programming in Logic。PROLOG的實現來源于J.A.Robinson(1965)對定理證明的研究,特別是歸結反駁(resolution refutation)算法的發現。Robinson設計一個稱為歸結(resolution)的證明程序,這個程序是利用PROLOG為主要方法來進行計算的。現在,PROLOG的優點在評價和延伸邏輯程序設計表達能力的有關項目中得到了表現和認可,許多應用能在國際人工智能聯合會和邏輯程序設計論壇找到。PROLOG采用的是一階謂詞演算,解釋器通過對邏輯說明語句的推理來執行相應的程序。用一階謂詞演算表達問題求解是PROLOG對計算機科學和AI的主要貢獻。對于程序設計語言來說,用一階謂詞演算有清晰、優雅的語法和合適語義等優點。LISP語言已經有40多年的歷史,一直都是一門很重要的人工智能編程語言。LISP最開始被用來進行符號計算,后來根據AI科學家們的需要進行了改進。LISP是一種命令式語言:LISP程序描述了怎樣去執行一個算法。函數式程序設計的優點,再加上豐富的用于建造符號數據結構(如謂詞、框架、網絡和對象)的高級工具,造就了LISP在人工智能領域內的普及。LISP作為一種語言廣泛用于實現人工智能的工具和模型。
4 AI的現狀與發展
目前,人工智能已經發展到了實現階段,而且不再像早期的人工智能一樣只能實現單一的功能,現在的人工智能更加注重功能的實用與智能的貼心。隨著人工智能的發展,大量的人工智能案例開始涌現出來,它們的算法越來越復雜,使用起來卻越來越智能,電路越來越龐大,功能卻越來越全面。從1968年美國通用電氣公司的R.Smosher試制的一臺操縱型兩足步行機器人的出現到擁有口令識別、智能定位、動態隨機壁障等功能的智能輪椅機器人,從我國國家地震局地球物理研究所等單位研制的地震預報專家(Expert System for Earthquake Prediction)到最近很熱門的智能無人汽車等。
參考文獻:
[1] GeorgeF.Luger(美).工智能復雜問題求解的結構和策略[M].史忠值,張銀奎,趙志崑,等,譯.機械工業出版,2006.
作者簡介:李加寧(1996—),男,沈陽理工大學。
陳艷娟(1997—),女,沈陽理工大學。
肖偲迪(1995—),女,沈陽理工大學。