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