專家系統
專家系統
專家系統是一個智能計算機程序系統,其內部含有大量的某個領域專家水平的知識與經驗,能夠利用人類專家的知識和解決問題的方法來處理該領域問題。也就是說,專家系統是一個具有大量的專門知識與經驗的程序系統,它應用人工智慧技術和計算機技術,根據某領域一個或多個專家提供的知識和經驗,進行推理和判斷,模擬人類專家的決策過程,以便解決那些需要人類專家處理的複雜問題,簡而言之,專家系統是一種模擬人類專家解決領域問題的計算機程序系統。
專家系統是人工智慧中最重要的也是最活躍的一個應用領域,它實現了人工智慧從理論研究走向實際應用、從一般推理策略探討轉向運用專門知識的重大突破。專家系統是早期人工智慧的一個重要分支,它可以看作是一類具有專門知識和經驗的計算機智能程序系統,一般採用人工智慧中的知識表示和知識推理技術來模擬通常由領域專家才能解決的複雜問題。
專家系統
專家系統的發展已經歷了3個階段,正向第四代過渡和發展。第一代專家系統(dendral、macsyma等)以高度專業化、求解專門問題的能力強為特點。但在體系結構的完整性、可移植性、系統的透明性和靈活性等方面存在缺陷,求解問題的能力弱。第二代專家系統(mycin、casnet、prospector、hearsay等)屬單學科專業型、應用型系統,其體系結構較完整,移植性方面也有所改善,而且在系統的人機介面、解釋機制、知識獲取技術、不確定推理技術、增強專家系統的知識表示和推理方法的啟發性、通用性等方面都有所改進。第三代專家系統屬多學科綜合型系統,採用多種人工智慧語言,綜合採用各種知識表示方法和多種推理機制及控制策略,並開始運用各種知識工程語言、骨架系統及專家系統開發工具和環境來研製大型綜合專家系統。在總結前三代專家系統的設計方法和實現技術的基礎上,已開始採用大型多專家協作系統、多種知識表示、綜合知識庫、自組織解題機制、多學科協同解題與并行推理、專家系統工具與環境、人工神經網路知識獲取及學習機制等最新人工智慧技術來實現具有多知識庫、多主體的第四代專家系統。
專家系統通常由人機交互界面、知識庫、推理機、解釋器、綜合資料庫、知識獲取等6個部分構成。其中尤以知識庫與推理機相互分離而別具特色。專家系統的體系結構隨專家系統的類型、功能和規模的不同,而有所差異。
為了使計算機能運用專家的領域知識,必須要採用一定的方式表示知識。目前常用的知識表示方式有產生式規則、語義網路、框架、狀態空間、邏輯模式、腳本、過程、面向對象等。基於規則的產生式系統是目前實現知識運用最基本的方法。產生式系統由綜合資料庫、知識庫和推理機3個主要部分組成,綜合資料庫包含求解問題的世界範圍內的事實和斷言。知識庫包含所有用“如果:〈前提〉,於是:〈結果〉”形式表達的知識規則。推理機(又稱規則解釋器)的任務是運用控制策略找到可以應用的規則。
知識庫用來存放專家提供的知識。專家系統的問題求解過程是通過知識庫中的知識來模擬專家的思維方式的,因此,知識庫是專家系統質量是否優越的關鍵所在,即知識庫中知識的質量和數量決定著專家系統的質量水平。一般來說,專家系統中的知識庫與專家系統程序是相互獨立的,用戶可以通過改變、完善知識庫中的知識內容來提高專家系統的性能。
人工智慧中的知識表示形式有產生式、框架、語義網路等,而在專家系統中運用得較為普遍的知識是產生式規則。產生式規則以IF…THEN…的形式出現,就像BASIC等編程語言里的條件語句一樣,IF後面跟的是條件(前件),THEN後面的是結論(後件),條件與結論均可以通過邏輯運算AND、OR、NOT進行複合。在這裡,產生式規則的理解非常簡單:如果前提條件得到滿足,就產生相應的動作或結論。
推理機針對當前問題的條件或已知信息,反覆匹配知識庫中的規則,獲得新的結論,以得到問題求解結果。在這裡,推理方式可以有正向和反向推理兩種。
正向鏈的策略是尋找出前提可以同資料庫中的事實或斷言相匹配的那些規則,並運用衝突的消除策略,從這些都可滿足的規則中挑選出一個執行,從而改變原來資料庫的內容。這樣反覆地進行尋找,直到資料庫的事實與目標一致即找到解答,或者到沒有規則可以與之匹配時才停止。
逆向鏈的策略是從選定的目標出發,尋找執行後果可以達到目標的規則;如果這條規則的前提與資料庫中的事實相匹配,問題就得到解決;否則把這條規則的前提作為新的子目標,並對新的子目標尋找可以運用的規則,執行逆向序列的前提,直到最後運用的規則的前提可以與資料庫中的事實相匹配,或者直到沒有規則再可以應用時,系統便以對話形式請求用戶回答並輸入必需的事實。
由此可見,推理機就如同專家解決問題的思維方式,知識庫就是通過推理機來實現其價值的。
人機界面是系統與用戶進行交流時的界面。通過該界面,用戶輸入基本信息、回答系統提出的相關問題,並輸出推理結果及相關的解釋等。
綜合資料庫專門用於存儲推理過程中所需的原始數據、中間結果和最終結論,往往是作為暫時的存儲區。解釋器能夠根據用戶的提問,對結論、求解過程做出說明,因而使專家系統更具有人情味。
知識獲取是專家系統知識庫是否優越的關鍵,也是專家系統設計的“瓶頸”問題,通過知識獲取,可以擴充和修改知識庫中的內容,也可以實現自動學習功能。
早期的專家系統採用通用的程序設計語言(如fortran、pascal、basic等)和人工智慧語言(如lisp、prolog、smalltalk等),通過人工智慧專家與領域專家的合作,直接編程來實現的。其研製周期長,難度大,但靈活實用,至今尚為人工智慧專家所使用。大部分專家系統研製工作已採用專家系統開發環境或專家系統開發工具來實現,領域專家可以選用合適的工具開發自己的專家系統,大大縮短了專家系統的研製周期,從而為專家系統在各領域的廣泛應用提供條件。
專家系統結構圖
專家系統的基本工作流程是,用戶通過人機界面回答系統的提問,推理機將用戶輸入的信息與知識庫中各個規則的條件進行匹配,並把被匹配規則的結論存放到綜合資料庫中。最後,專家系統將得出最終結論呈現給用戶。
在這裡,專家系統還可以通過解釋器向用戶解釋以下問題:系統為什麼要向用戶提出該問題(Why)?計算機是如何得出最終結論的(How)?
領域專家或知識工程師通過專門的軟體工具,或編程實現專家系統中知識的獲取,不斷地充實和完善知識庫中的知識。
主要開發工具:Gensym G2,CLIPS,Prolog,Jess,MQL 4。
根據定義,專家系統應具備以下幾個功能:
⑴存儲問題求解所需的知識。
⑵存儲具體問題求解的初始數據和推理過程中涉及的各種信息,如中間結果、目標、字母表以及假設等。
⑶根據當前輸入的數據,利用已有的知識,按照一定的推理策略,去解決當前問題,並能控制和協調整個系統。
⑷能夠對推理過程、結論或系統自身行為作出必要的解釋,如解題步驟、處理策略、選擇處理方法的理由、系統求解某種問題的能力、系統如何組織和管理其自身知識等。這樣既便於用戶的理解和接受,同時也便於系統的維護。
⑸提供知識獲取,機器學習以及知識庫的修改、擴充和完善等維護手段。只有這樣才能更有效地提高系統的問題求解能力及準確性。
⑹提供一種用戶介面,既便於用戶使用,又便於分析和理解用戶的各種要求和請求。
這裡強調指出,存放知識和運用知識進行問題求解是專家系統的兩個最基本的功能。
專家系統是一個基於知識的系統,它利用人類專家提供的專門知識,模擬人類專家的思維過程,解決對人類專家都相當困難的問題。一般來說,一個高性能的專家系統應具備如下特徵:
⑴啟發性。不僅能使用邏輯知識,也能使用啟發性知識,它運用規範的專門知識和直覺的評判知識進行判斷、推理和聯想,實現問題求解。
⑵透明性。它使用戶在對專家系統結構不了解的情況下,可以進行相互交往,並了解知識的內容和推理思路,系統還能回答用戶的一些有關係統自身行為的問題。
⑶靈活性。專家系統的知識與推理機構的分離,使系統不斷接納新的知識,從而確保系統內知識不斷增長以滿足商業和研究的需要。
⑴按知識表示技術可分為:基於邏輯的專家系統、基於規則的專家系統、基於語義網路的專家系統和基於框架的專家系統。
⑵按任務類型可分為:
解釋型:可用於分析符號數據,進行闡述這些數據的實際意義。
預測型:根據對象的過去和現在情況來推斷對象的未來演變結果。
診斷型:根據輸入信息來找到對象的故障和缺陷。
調試型:給出自己確定的故障的排除方案。
維修型:指定並實施糾正某類故障的規劃。
規劃型:根據給定目標擬定行動計劃。
設計型:根據給定要求形成所需方案和圖樣。
監護型:完成實時監測任務。
控制型:完成實施控制任務。
教育型:診斷型和調試型的組合,用於教學和培訓。
最初的專家系統乃人工智慧之一個應用,但由於其重要性及相關應用系統之迅速發展,它已是信息系統的一種特定類型。專家系統一詞系由“以知識為基礎的專家系統(knowledge-based expert system)”而來,此種系統應用計算機中儲存的人類知識,解決一般需要用到專家才能處理的問題,它能模仿人類專家解決特定問題時的推理過程,因而可供非專家們用來增進問題解決的能力,同時專家們也可把它視為具備專業知識的助理。由於在人類社會中,專家資源實相當稀少,有了專家系統,則可使此珍貴的專家知識獲得普遍的應用。
近年來專家系統技術逐漸成熟,廣泛應用在工程、科學、醫藥、軍事、商業等方面,而且成果相當豐碩,甚至在某些應用領域,還超過人類專家的智能與判斷。其功能應用領域概括有:
解釋(Interpretation)-如測試肺部測試(如PUFF)。
預測(Prediction)-如預測可能由黑蛾所造成的玉米損失(如PLAN)。
診斷(Diagnosis)-如診斷血液中細菌的感染(MYCIN)。又如診斷汽車柴油引擎故障原因之CATS系統。
故障排除(Fault Isolation)-如電話故障排除系統ACE。
設計(Design)-如專門設計小型馬達彈簧與碳刷之專家系統MOTORBRUSHDESIGNER。
規劃(Planning)-就出名的有輔助規劃IBM計算機主架構之布置,重安裝與重安排之專家系統CSS,以及輔助財物管理之PlanPower專家系統。
監督(Monitoring)-如監督IBM MVS操作系統之YES/MVS。
除錯(Debugging)-如偵查學生減法算術錯誤原因之BUGGY。
修理(Repair)-如修理原油儲油槽之專家系統SECOFOR。
行程安排(Scheduling)-如製造與運輸行稱安排之專家系統ISA。又如工作站(work shop)製造步驟安排系統。
教學(Instruction)-如教導使用者學習操作系統之TVC專家系統。
控制(Control)-幫助Digital Corporation計算機製造及分配之控制系統PTRANS。
分析(Analysis)-如分析油井儲存量之專家系統DIPMETER及分析有機分子可能結構之DENDRAL系統。它是最早的專家系統,也是最成功者之一。
維護(Maintenance)-如分析電話交換機故障原因之後,及能建議人類該如何維修之專家系統COMPASS。
架構設計(Configuration)-如設計VAX計算機架構之專家系統XCON以及設計新電梯架構之專家系統VT等。
校準(Targeting)-例如校準武器如何工作
這裡,我們以一個簡單的“動物識別專家系統”為例,初步認識專家系統的工作機制及系統特點。該系統的知識庫是一個產生式規則的集合,圖2顯示了其中的2條規則。從原則上來講,規則之間相互獨立,任何兩條規則的“前件”一般都不能重複,也不具有包含關係。小型專家系統的規則可以是幾條幾十條,大型專家系統的規則可達上千條,像這個動物專家系統知識庫的規則就只有六條。
現階段國內外專家系統應用停留在相對狹義的以規則推理為基礎的階段,應用也更多針對的是實驗室研究以及一些輕量級應用,遠不能滿足大型商業應用的需求,實現對實時智能推理以及大數據處理的需求。
專家系統的發展下一步的將以模型推理為主,以規則推理為輔,並切合商業應用需求,滿足對實時以及大數據量處理的需求。
同時專家系統將朝更為專業化方向發展,針對具體方向性的需求提供針對性模型與產品,如基於因果有向圖CDG的故障診斷模型,流程處理模型等。