文章編號:1672-5913(2008)10-0076-03
摘要:本文從計算機學科本科的教學理念出發,提出了從計算機學科分支的角度認知人工智能,組織并實施教學的方法。
關鍵詞:人工智能;綜合學科;計算機學科分支
中圖分類號:G642
文獻標識碼:B
1引言
目前國內流行的人工智能教材都是把人工智能學科作為由計算機科學、心理學、神經生理學、控制論、信息論、語言學等多種學科相互滲透的綜合學科加以介紹。這些教材核心內容雖然相同,但作者編寫教材的思路卻有不同,有些教材以智能體(agent)的觀點論述,還有一些教材以應用為目的來論述。這些教材對于各相關領域從事人工智能科研與工程的技術人員來說,是比較適宜的。但對于我國高等院校計算機專業的本科學生來講,卻存在一些問題。不僅是由于在一門課程中涉及眾多學科的知識,使學生難以接受,而且講授的角度不能與前期所學知識緊密配合,也增加了學習的困難。
人工智能是由多種學科相互滲透的綜合學科,但它是明確屬于計算機科學分支的學科。這是因為從功能上和方法上人工智能與計算機學科是一致的。實際上,人工智能不僅使用了許多其他計算機學科分支的技術,而且在發展過程中,也開拓了許多新的方法和技術,充實了計算機學科。若按計算機處理的對象來區分計算機應用的話,則可分為三個部分:數值計算、數據處理與知識處理,人工智能就對應知識處理工作。
對于我國高等院校計算機學科的本科教學來講,人工智能課程的課時一般只有40課時左右。以什么角度組織教材內容,提高教學效果,使學生較容易地理解和掌握人工智能的原理與技術呢?通過多年的人工智能教學實踐,我們逐漸總結出了進行人工智能教學的方法:既從計算機學科本科的教學理念出發,考慮人工智能這門學科的特點,以作為計算機學科的一門分支的角度認知人工智能,組織教材的知識架構并進行教學。用計算機學科的觀點分析人工智能的基本原理與方法時,重點強調的是這些基本原理與方法與其他的計算機分支的共同點和不同點。共同點是強調計算機學科的本質,不同點是強調人工智能的本質。
2計算機學科本科的教學理念
計算機學科本科的教學理念可以歸結為:傳授知識、提高能力、培養素質(包括專業素質與品格素質,專業課以專業素質為主)。其中,原來作為教育核心的知識現被看成是教育的基礎,即把知識作為載體,用來實現能力的提高,在潛移默化中實施素質教育。高等院校對學生能力的培養主要包括:學習能力、分析問題與解決問題的能力以及創新能力。對于本科學生,重在學習能力與分析問題與解決問題的能力,對創新只是培養興趣。素質是知識和能力的升華,計算機專業素質顯示的是這一領域的水平,素質水平的提升也將通過知識的增多和能力的增加體現出來。
3以計算機分支的角度認知人工智能
什么是人工智能?目前人們普遍接受的定義是:用機器來模擬人的智能,也就是用計算機來模擬人的智能。若以計算機分支的角度也就是用計算機學科的觀點看待人工智能,我們需從兩個方面加以說明。
首先,從計算機的能力,也就是它能做什么講起。用計算機解決某種問題,需要有三個基本的條件:第一,必須把問題形式化。第二,問題是可計算的,就要有算法。第三,問題要有合理的復雜度。人的智能所能解決的問題往往不能滿足這三個條件。因此,人工智能就是對于不能滿足這些條件的問題,通過使用它的技術和方法,使問題滿足這三個條件,由計算機去解決問題。比如,一般來講不可能將自然語言全部形式化,但人工智能使用一階謂詞邏輯表示自然語言的部分句子,并用算法進行推理,解決一定范圍的問題。另外,使用啟發式搜索可降低問題的復雜度,使問題在可能的范圍內得到解決。
其次,從計算機的核心技術加以闡述。用計算機解決問題是靠程序實現的,程序是什么?一本經典的計算機教科書的名字“算法+數據結構=程序”給出了解釋,這說明在計算機學科中算法與數據結構的核心地位,一般的計算機程序也確實可分成這兩個部分。而作為典型的人工智能程序可分成三個部分,控制部分(推理機)、規則庫和數據庫。其中,控制部分和規則庫對應于算法,數據庫對應于數據結構。實際上,控制部分由搜索策略和推理機制組成,規則庫是將一般計算機程序的算法中的與實際問題有關的知識抽出來單獨組成。而數據庫往往用來存放一些基本的事實和一些中間的結果,也常常采用知識表示的方法,因此,人們也經常把規則庫和數據庫合稱為知識庫。在人工智能程序中與算法與數據結構對應的正是人工智能的兩大核心:搜索和知識表示(包括推理)。
4以計算機分支的角度組織并實施教學
人工智能為了模擬人的智能,處理的對象是知識,知識處理則需采用知識表示。又由于往往沒有確定的算法,只能使用搜索。本文的觀點是人工智能課程的教學內容應以知識為主線,以知識表示和搜索為基石進行組織。
首先,教學的第一個核心是知識表示。知識表示就是研究用計算機來表示知識的方法,這些方法需滿足兩個條件:除了計算機可接受這個條件以外還要能刻畫智能行為。這是與一般的數據結構不同的地方。什么方法適合呢?由此引出了邏輯表示方法。
形式邏輯是關于思維的形式和規律的科學,數理邏輯從邏輯上講是現代的形式邏輯,是用符號和數學的方法來研究推理規律的學科。數理邏輯一般是指命題邏輯和一階謂詞邏輯。一階謂詞邏輯比命題邏輯表達能力強,邏輯的表達方式與人類的自然語言接近,因此,用一階謂詞邏輯作為知識表示工具容易被人接受。不僅如此,由一階謂詞邏輯表示已知條件和所要證明的定理,使用歸結原理則可建立計算機程序實現自動定理證明(半可判定算法)。這一過程是在Herbrand定理的基礎上得以成立的。由于人工智能中的許多問題都可以化成類似于定理證明的問題,因此可以把與Herbrand定理有關的一系列工作看成是表示和推理的理論基礎。評價知識表示方法的性能,即要考察表示能力,又要考慮是否有效地支持知識的推理。顯然,具有充分的表示能力又有堅實的理論基礎的表示方法是最使人放心的,一階謂詞邏輯恰好滿足這一條件。
在這一部分的講授中,將通過一系列的演變過程,展現出如何將一組謂詞公式轉換成子句的集合,又如何通過使用置換與合一的手段,達到可以應用歸結推理規則,而最終得到證明的目的,而這一切又都是在有嚴格的定理保證之下完成的。這些內容的講授,對于培養學生嚴緊的邏輯思維能力是一個極好的實例。
邏輯表示與歸結推理方法是知識表示的基礎部分,用來說明人工智能系統進行推理的原理。而作為真正最實用的產生式表示法將通過Horn子句的正向推理和反向推理過程引入,產生式表示法中的帶與不帶變量的正、反向推理相當于命題邏輯和一階謂詞邏輯層面的Horn子句的正、反向推理。作為結構化表示的語義網絡和框架表示法也以一階謂詞邏輯為基礎,它們均可轉變成為等價的一階謂詞邏輯的表示形式。
在教學中,關于其他知識表示方面的內容,比如:產生式規則、語義網絡、框架,都以一階謂詞邏輯為基礎給以說明。關于產生式表示法在人工智能的心理學認知體系結構中,被看成是人的思維中因果關系的一種反映,而在本文中則看成是一種類似于Horn子句形式的一種表示。在講授時將這些內容作為一個整體,說明原理與實用方法之間的關系,根據實際問題的需要,可以降低表示的能力。而另一方面,為了解決實際問題,可以擴充表示的能力。
一階謂詞邏輯表示的能力雖然在通用的表示法中是最強的,但是知識與客觀真理不同,它總是局部的、片面的或表面的,這在常識中尤為明顯。在解題過程中還會不斷地更新,知識表示要適應這個特點,采用經典的一階謂詞邏輯表達有困難,這就需要用非單調邏輯來表達。另一方面,在人工智能處理的信息和知識中,存在大量的不準確、不完全、不一致的地方,這又需要研究關于不確定性知識的表示和推理的研究。實際上,非單調邏輯和不確定性推理部分在教學中將作為知識表示的擴展加以介紹。機器學習作為人工智能的重要組成部分,它的主要方法都是基于歸納推理,也可以看成是非經典邏輯的應用。
人工智能教學的另一個核心是搜索問題。一般來講,用計算機求解問題,就是用已知的知識,對于給定的數據進行加工,期望得到解答,其解法則由某種程序來表述。其他的計算機分支處理的問題,往往知識比較充分,例如多數的科學計算問題,就可以在看到數據以前根據知識寫出程序,這個程序對于一切數據都是適用的。而人工智能處理的問題知識不夠充分,或程序太復雜,此時可以寫出一個元程序,對于給定的數據,它根據知識,做出一個程序專門加工這些給定的數據。這時,這個元程序可以通用于一大類知識,通常并不包含領域知識的具體細節,因此,對于這個元程序的研究就脫離了問題的具體領域,成為人工智能內部的課題,這正是搜索。
在教學中,通過掌握知識的多少來講授各種不同的搜索。搜索是由于知識不足而產生的,同時搜索與知識是相輔相成的。當知識較多時,搜索的工作量不多,可使用一些盲目的搜索策略。當知識較少時,搜索的工作量較大,則需使用一些啟發式的搜索策略。啟發式搜索是搜索方法中需重點說明的,它起到了降低被求解問題復雜度,提高搜索效率的作用,但太強的啟發信息,往往找不到最佳解。如何能減少搜索范圍,提高搜索效率,而且還保證找到最佳解,這成為搜索方法應明確的問題。A*算法是N.J.Nilsson在20世紀70年代初的研究成果,他解決了這個問題,證明了A*算法的可采納性。類似于定理證明,在教學時也將A*算法及其有關證明看成是搜索方法的理論基礎加以介紹。
在搜索部分的教學中,除了把A*算法及其有關證明作為重點,當作是搜索方法的理論基礎來講解以外,還要給出若干搜索算法。一方面,這些算法說明了各種搜索的方法,另一方面,在這些算法中經常有一些算法細節抽象的技巧,對這些內容的細致分析,將會逐漸提高學生抽象思維的能力。
在實際的知識庫系統中,回溯和與或樹的搜索算法應用較多。而當問題的有關知識較少,規模大到一定程度之后,往往采用引進了隨機因素的搜索算法,比如:模擬退火算法、遺傳算法等。現在,這些算法一般稱為高級搜索,教學時作為搜索的擴展來講授。
人工智能技術方面的研究往往涉及各應用領域的課題。反映到教學中,就是人工智能的各個分支的介紹,這包括知識庫系統、自然語言理解、規劃、機器人等。
總之,教學內容可分成兩個部分,第一部分是基礎理論和基本方法,包括:邏輯表示與歸結推理方法、搜索原理,知識表示(包括產生式系統、語義網絡、框架)、推理(包括不確定性推理、非單調推理)、機器學習。第二部分是實用技術,包括知識庫系統、高級搜索、自然語言理解。
5結束語
經過長期的人工智能教學實踐,筆者逐漸形成了以計算機學科分支的角度來講授人工智能課程的思路。從學生的接受、理解和掌握人工智能的基本原理與技術方面來看,有較好的效果。但如何把計算機學科和其他人工智能所涉及的領域更完美地結合起來,較好地在教學效果與寬廣的知識面之間找到平衡點,還需今后進一步的研究與探索。
參考文獻
[1] 賁可榮,張彥鐸. 人工智能[M]. 北京:清華大學出版社,2006.
[2] 馬少平,朱小燕. 人工智能. [M]. 北京:清華大學出版社,2004.
[3] 蔡自興,徐光佑. 人工智能及其應用[M]. 北京:清華大學出版社,2004.
[4] 馬希文. 邏輯·語言·計算-馬希文文選[M]. 北京:商務印書館,2003.
[5] 高濟,朱淼良,何欽銘. 人工智能基礎[M]. 北京:高等教育出版社,2002.
[6] 中國計算機科學與技術學科教程2002研究組. 中國計算機科學與技術學科教程[M]. 北京:清華大學出版社,2002.
[7] Stuart Russell, Peter Norvig. 人工智能-一種現代方法[M]. 北京:人民郵電出版社,2002.
[8] Nils J. Nilsson. 人工智能[M]. 北京:機械工業出版社,1999.
[9] 石純一,黃昌寧,王家欽. 人工智能原理[M]. 北京:清華大學出版社,1993.
[10] 陸汝鈐. 人工智能(上)[M]. 北京:科學出版社,1989.