知識工程
knowledge engineering
在計算機上建立
專(zhuān)家系統的技術(shù)。知識工程這個(gè)術(shù)語(yǔ)最早由美國人工智能專(zhuān)家E.A.費根鮑姆提出。由于在建立專(zhuān)家系統時(shí)所要處理的主要是專(zhuān)家的或書(shū)本上的知識,正像在數據處理中數據是處理對象一樣,所以它又稱(chēng)知識處理學(xué)。其研究?jì)热葜饕ㄖR的獲取、知識的表示以及知識的運用和處理等三大方面。
費根鮑姆及其研究小組在20世紀70年代中期研究了人類(lèi)專(zhuān)家們(而不是萬(wàn)能博士們)解決其專(zhuān)門(mén)領(lǐng)域問(wèn)題時(shí)的方式和方法,注意到專(zhuān)家解題的4個(gè)特點(diǎn):①為了解決特定領(lǐng)域的一個(gè)具體問(wèn)題,除了需要一些公共的知識,例如哲學(xué)思想、思維方法和一般的數學(xué)知識等之外,更需要應用大量與所解問(wèn)題領(lǐng)域密切相關(guān)的知識,即所謂領(lǐng)域知識。②采用啟發(fā)式的解題方法或稱(chēng)試探性的解題方法。為了解一個(gè)問(wèn)題,特別是一些問(wèn)題本身就很難用嚴格的數學(xué)方法描述的問(wèn)題,往往不可能借助一種預先設計好的固定程式或算法來(lái)解決它們,而必須采用一種不確定的試探性解題方法。③解題中除了運用演繹方法外,必須求助于歸納的方法和抽象的方法。因為只有運用歸納和抽象才能創(chuàng )立新概念,推出新知識,并使知識逐步深化。④必須處理問(wèn)題的模糊性、不確定性和不完全性。因為現實(shí)世界就是充滿(mǎn)模糊性、不確定性和不完全性的,所以決定解決這些問(wèn)題的方式和方法也必須是模糊的和不確定的,并應能處理不完全的知識??傊?,人們在解題的過(guò)程中,首先運用已有的知識開(kāi)始進(jìn)行啟發(fā)式的解題,并在解題中不斷修正舊知識,獲取新知識,從而豐富和深化已有的知識,然后再在一個(gè)更高的層次上運用這些知識求解問(wèn)題,如此循環(huán)往復,螺旋式上升,直到把問(wèn)題解決為止。由上面的分析可見(jiàn),在這種解題的過(guò)程中,人們所運用和操作的對象主要是各種知識(當然也包括各種有關(guān)的數據),因此也就是一個(gè)知識處理的過(guò)程。
基本概念
知識工程作為一門(mén)學(xué)科有以下幾個(gè)最基本的概念。
①數據。定義為客觀(guān)事物的屬性、數量、位置及其相互關(guān)系等的抽象表示。而且要特別強調這些屬性、數量、位置及其相互關(guān)系等都可能是模糊的。如“20歲左右”、“大約20”、“很年輕”、“不太高”、“點(diǎn)A與點(diǎn)B靠得很近”等等詞語(yǔ)中雖包含著(zhù)數量,但這些數量是模糊的。此外,因為任何一張圖(精確的或模糊的)都在某種意義上可認為是表示一些對象之間的某種關(guān)系,所以在知識處理中也可以把它認為是一種數據。由此可見(jiàn)在知識處理中數據的范圍是很廣的。但是,不管什么樣的數據,它只表示一種數量及關(guān)系概念,具體涵義是沒(méi)有的。
②信息。定義為“數據所表示的涵義(或稱(chēng)數據的語(yǔ)義)”。因此也可以說(shuō)信息是對數據的解釋?zhuān)羌虞d在數據之上的涵義。所以反過(guò)來(lái)可稱(chēng)“數據是信息的載體”。如“5”在一種具體場(chǎng)合可以解釋為“5個(gè)蘋(píng)果”,而在另一種特定場(chǎng)合又可以解釋成“5種思想”、“5個(gè)X”等。對模糊的數據也一樣,例如“20左右”這個(gè)模糊數,既可能代表年齡“20歲左右”,也可代表日期“20日前后”等??梢?jiàn)信息是帶具體涵義的數據。
③知識。以各種方式把一個(gè)或多個(gè)信息關(guān)聯(lián)在一起的信息結構。如果把“不與任何其他信息關(guān)聯(lián)”也認為是一種特殊的關(guān)聯(lián)方式(不關(guān)聯(lián)),則單個(gè)的信息也可以認為是知識的特例,我們稱(chēng)之為“原子事實(shí)”。例如“天很陰且閃電頻繁”,“天要下雨”等都是一些孤立的信息或“原子事實(shí)”。然而,如果把這兩個(gè)信息用“如果,則”這種因果關(guān)系聯(lián)系起來(lái)就成了一條知識:如果“天很陰且閃電頻繁”則“天要下雨”(多半如此)。以上陳述中的“頻繁”、“多半如此”等都表示一些模糊概念。
④智力。指運用知識解決問(wèn)題的能力。知識可以存儲在書(shū)本里,或計算機的磁盤(pán)和磁帶中等,它是一種靜止的死東西。它本身并不會(huì )再生知識。然而智力卻是一種動(dòng)態(tài)概念。“智力”與“知識”有著(zhù)密切的關(guān)系,但“知識”與“運用知識的能力”是兩個(gè)不同的概念。
⑤智能。指知識的集合與智力的綜合(或總和),是靜態(tài)的知識和動(dòng)態(tài)的智力綜合所體現的一種能力。
⑥知識庫和知識處理器。知識庫是指經(jīng)過(guò)分類(lèi)組織存放在計算機中的“知識的一個(gè)集合”。知識處理器(俗稱(chēng)推理機)是指智力在計算機上的一種具體實(shí)現機制。一般專(zhuān)家系統中都具有一個(gè)存放知識的知識庫和一個(gè)運用知識的推理機,因此按這種定義就可認為專(zhuān)家系統是一個(gè)具有某種智能的系統。
知識的屬性
人類(lèi)大腦中存在的知識是人類(lèi)在其漫長(cháng)的生活和實(shí)踐中認識(客觀(guān))世界和改造(客觀(guān))世界的產(chǎn)物。勞動(dòng)創(chuàng )造了世界,也創(chuàng )造了知識。因此我們在知識處理中討論的知識應該是現實(shí)中的知識,而不是抽象的定義。所以知識應具有以下具體的屬性:真理性、相對性、不完全性、模糊性與不精確性、可表示性、可存儲性(可記憶性)。所謂知識的模糊性與不精確性是指知識的真理性往往不總是非真即假,而可能處于某種中間狀態(tài),即所謂有真與假之間的某個(gè)“真度”。例如在“人老了就可能糊涂”中,“老了”和“可能”都是模糊概念,至于“糊涂”本身當然更是一個(gè)模糊和不精確的描述。
知識的分類(lèi)
按知識的涵義大體上可分為事實(shí) 、規則(或法則)、規律(或定律)、方法和理論等。方法又可分成推理、聯(lián)想與類(lèi)比、綜合與分析、預測與外延、假設與驗證、直覺(jué)與靈感,以及解題方法或算法等。而后者并不是知識工程所要研究的對象。
在知識處理中,更復雜的一類(lèi)知識被稱(chēng)為理論。理論是一種知識的體系,是由上述各種知識構成的更高一層的知識。理論也稱(chēng)知識空間,形式上,它由一組概念,若干條公理(事實(shí)),若干條推理規則(法則)和一組解題方法和環(huán)境約束組成。因此,一個(gè)理論T,不妨用一個(gè)五元組來(lái)表示:T={C,A,R,M,E}。其中C,A,R,M和E分別表示一個(gè)概念的集合,一個(gè)公理的集合,一組推理規則,一組解題方法和一組環(huán)境約束。一般說(shuō),一個(gè)具體的理論總是面向一個(gè)特定領(lǐng)域的,因此,其中5個(gè)元素,特別是概念與解題方法,都應該反映該領(lǐng)域的特征。
按知識的應用范圍,又可分為通用知識與專(zhuān)門(mén)知識(或領(lǐng)域知識)兩種范疇。通用知識指一般人們共有的知識,適用于所有領(lǐng)域。例如三段論演繹就屬于通用知識范疇,更高一層的哲學(xué)知識也屬于這一個(gè)范疇。專(zhuān)門(mén)知識指面向一個(gè)專(zhuān)門(mén)領(lǐng)域的知識,因而也稱(chēng)領(lǐng)域知識。它又可分成兩大門(mén)類(lèi):即自然科學(xué)與社會(huì )科學(xué)(或人文科學(xué))。哲學(xué)是自然科學(xué)與社會(huì )科學(xué)的更高一層的抽象。各種專(zhuān)門(mén)知識都不是知識工程所要研究的對象。
知識工程三要素
人工智能與計算機技術(shù)的結合產(chǎn)生了所謂“知識處理”的新課題。即要用計算機來(lái)模擬人腦的部分功能,或解決各種問(wèn)題,或回答各種詢(xún)問(wèn),或從已有的知識推出新知識等等。為了進(jìn)行知識處理,當然首先必須獲取知識,并能把知識表示在計算機中,能運用它們來(lái)解題。因此,知識的獲取、知識的表示和知識的運用也就成了知識工程的三大要素或主要研究?jì)热荨?br> ①知識的獲取。在建立一個(gè)具體的專(zhuān)家系統時(shí),人們往往要花很多人力和財力在知識獲取上,它被公認為是知識處理的一個(gè)“瓶頸”。知識獲取要研究的主要問(wèn)題包括:對專(zhuān)家或書(shū)本知識的理解、認識、選擇、抽取、匯集、分類(lèi)和組織的方法;從已有的知識和實(shí)例中產(chǎn)生新知識,包括從外界學(xué)習新知識的機理和方法;檢查或保持已獲取知識集合的一致性(或無(wú)矛盾性)和完全性約束的方法;盡量保證已獲取的知識集合無(wú)冗余的方法。知識獲取分主動(dòng)式或被動(dòng)式兩大類(lèi)。主動(dòng)式知識獲取是知識處理系統根據領(lǐng)域專(zhuān)家給出的數據與資料利用諸如歸納程序之類(lèi)軟件工具直接自動(dòng)獲取或產(chǎn)生知識,并裝入知識庫中。所以也稱(chēng)知識的直接獲取。而被動(dòng)式知識獲取往往是間接通過(guò)一個(gè)中介人(知識工程師或用戶(hù))并采用知識編輯器之類(lèi)的工具,把知識傳授給知識處理系統,所以亦稱(chēng)知識的間接獲取。按知識處理系統獲取知識的工作方式,可以分成交互式和自主式(或非交互式)兩種。交互式知識獲取在獲取過(guò)程中要不斷與人進(jìn)行交互,或提供解釋?zhuān)蛞筝斎胄畔?,或提?wèn)求答,或請求驗證等等。交互式的知識獲取,對用戶(hù)或知識工程師有較大的透明度和控制能力,比較適合于從專(zhuān)家大腦中獲取知識。自主式知識獲取則在獲取過(guò)程中完全由知識處理系統自主完成,例如輸入的是一段講話(huà),一本書(shū)或資料,輸出的便是從中抽取出來(lái)的知識。這里即便不考慮諸如語(yǔ)聲識別,文字識別,自然語(yǔ)言理解和認知科學(xué)等方面的許多難題,解決起來(lái)仍是十分困難的。按知識獲取的策略或機理,可分為:死記硬背式(或稱(chēng)機械照搬式)獲??;條件反射式知識獲??;教學(xué)式(或傳授式)知識獲??;演繹式知識獲??;歸納式知識獲??;解釋式知識獲??;猜想證實(shí)式知識獲??;反饋修正式知識獲??;類(lèi)比和聯(lián)想式知識獲??;外延式知識獲取等。
②知識的表示。要將知識告訴計算機或在其間進(jìn)行傳遞,必須將知識以某種形式邏輯地表示出來(lái),并最終編碼到計算機中去,這就是所謂的知識的表示問(wèn)題。不同的知識需要用不同的形式和方法來(lái)表示。它既應能表示事物間結構關(guān)系的靜態(tài)知識,又應能表示如何對事物進(jìn)行各種處理的動(dòng)態(tài)知識;它既要能表示各種各樣的客觀(guān)存在著(zhù)事實(shí),又要能表示各種客觀(guān)規律和處理規則;它既要能表示各種精確的、確定的和完全的知識,還應能表示更加復雜的、模糊的、不確定的和不完全的知識。因此一個(gè)問(wèn)題能否有合適的知識表示方法往往成為知識處理(解題)成敗的關(guān)鍵。而且知識表示的好壞對知識處理的效率和應用范圍影響很大,對知識獲取和學(xué)習機制的研究也有直接的影響。知識表示的方法很多,例如,謂詞邏輯表示,關(guān)系表示(或稱(chēng)特性表表示),框架表示,產(chǎn)生式表示,規則表示,語(yǔ)義網(wǎng)表示,與或圖表示,過(guò)程表示,Petri網(wǎng)表示,H網(wǎng)表示,面向對象表示,以及包含以上多種方法的混合或集成表示等。這些表示方法各適用于表示各種不同的知識,從而被用于各種應用領(lǐng)域。對于“知識面”很窄的專(zhuān)家系統一類(lèi)的應用,往往可以根據領(lǐng)域知識的特點(diǎn),從中選擇一種或若干種表示方法就可以解決問(wèn)題。但是為了開(kāi)發(fā)具有較寬領(lǐng)域知識的系統,例如多專(zhuān)家系統的聚合系統(或稱(chēng)協(xié)同式專(zhuān)家系統)和分布式多功能知識處理系統等,僅用互不相干的知識表示方法便難以適應要求。
③知識的運用和處理。為了讓已有的知識產(chǎn)生各種效益(包括社會(huì )、經(jīng)濟、政治、軍事和科學(xué)等方面的效益),使它對外部世界產(chǎn)生影響和作用,必須研究如何運用知識的問(wèn)題。運用知識來(lái)設計機器、建造水壩、推斷未來(lái)、探索未知、管理社會(huì ),乃至運用知識來(lái)作曲、繪畫(huà)或寫(xiě)文章等都是用知識來(lái)解決問(wèn)題和改造世界的活動(dòng)。顯然,知識處理學(xué)不能研究這些具體運用知識的過(guò)程或方法,而是要研究在上述各種具體的知識運用中都可能用到的一些方法(或模式)。它們主要包括推理、搜索、知識的管理及維護、匹配和識別。推理指各種推理的方法與模式的研究。研究前提與結論之間的各種邏輯關(guān)系及真度或置信度的傳遞規則等。搜索指各種搜索方式與方法的研究。研究如何從一個(gè)浩翰的對象(包括知識本身)空間中搜索(或探索)滿(mǎn)足給定條件或要求的特定對象。知識的管理及維護包括對知識庫的各種操作(如檢索、增加、修改或刪除),以保證知識庫中知識的一致性和完整性約束等的方法和技術(shù)。匹配和識別指在數據庫或其他對象集合中,找出一個(gè)或多個(gè)與給定“模板”匹配的數據或對象的各種原理和方法,以及在僅有不完全的信息或知識的環(huán)境下,識別各種對象的原理與方法。