《人工智能導論》 第7章 專家系統


專家系統

專家系統的產生與發展

  • 第一階段:初創期(20世紀60年代中期- 20世紀70年代初)
    • DENDRAL系統(1968年,斯坦福大學費根鮑姆等人)——推斷化學分子結構的專家系統
    • MYCSYMA系統(1971年,麻省理工學院 )——用於數學運算的數學專家系統
    • 特點
      • 高度的專業化。
      • 專門問題求解能力強。
      • 結構、功能不完整。
      • 移植性差。
      • 缺乏解釋功能。
  • 第二階段: 成熟期(20世紀70年代中期- 20世紀80年代初)
    • MYCIN系統(斯坦福大學 )——血液感染病診斷專家系統
    • PROSPECTOR系統(斯坦福研究所 )——探礦專家系統
    • CASNET系統(拉特格爾大學):用於青光眼診斷與治療。
    • AM系統( 1981年,斯坦福大學):模擬人類進行概括、抽象和歸納推理,發現某些數論的概念和定理。
    • HEARSAY系統(卡內基-梅隆大學)——語音識別專家系統
    • 特點
      • 單學科專業型專家系統。
      • 系統結構完整,功能較全面,移植性好。
      • 具有推理解釋功能,透明性好。
      • 采用啟發式推理、不精確推理。
      • 用產生式規則、框架、語義網絡表達知識。
      • 用限定性英語進行人-機交互。
  • 第三階段:發展期(20世紀80年代至今)
    • 專家系統XCON(DEC公司、卡內基-梅隆大學 ):為 VAX計算機系統制訂硬件配置方案。
    • 專家系統開發工具:
      • 骨架系統:EMYCIN、KAS、EXPERT 等。
      • 通用型知識表達語言: OPS5 等。
      • 專家系統開發環境:AGE 等。
    • 我國研制開發的專家系統:
      • 施肥專家系統(中國科學院合肥智能機械研究所)
      • 新構造找水專家系統(南京大學)
      • 勘探專家系統及油氣資源評價專家系統(吉林大學)
      • 服裝剪裁專家系統及花布圖案設計專家系統(浙江大學)
      • 關幼波肝病診斷專家系統(北京中醫學院)

專家系統的概念

專家系統的定義

專家系統是一種智能的計算機程序,它運用知識和推理來解決只有專家才能解決的復雜問題。是一類包含知識和推理的智能計算機程序。

專家系統的特點

  • 具有專家水平的專業知識。
  • 能進行有效的推理。
  • 啟發性。
  • 靈活性。
  • 透明性。
  • 交互性。

專家系統與傳統程序的比較:

  • 編程思想:傳統程序 = 數據結構+算法;專家系統 = 知識+推理。

  • 傳統程序:關於問題求解的知識隱含於程序中。

    專家系統:知識單獨組成知識庫,與推理機分離。

  • 處理對象: 傳統程序:數值計算和數據處理;專家系統:符號處理。

  • 傳統程序:不具有解釋功能。

    專家系統:具有解釋功能。

  • 傳統程序:產生正確的答案。

    專家系統:通常產生正確的答案,有時產生錯誤的答案。

  • 系統的體系結構不同。

專家系統的類型

  • 解釋:根據感知數據推理情況描述
  • 診斷:根據觀察結果推理系統是否有保障
  • 預測:指導給定情況可能產生的后果
  • 設計:根據給定的要求進行相應的設計
  • 規划:設計動作
  • 控制:控制整個系統的行為
  • 監督:比較觀察結果和期望結果
  • 修理:執行計划來實現規定的補救措施
  • 教學:診斷、調整、修改學生行為
  • 調試:建議故障的補救措施

專家系統的工作原理

專家系統的一般結構

011

知識庫

知識庫(Knowledge Base)主要用來存放領域專家提供的有關問題求解的專門知識。知識庫中的知識來源於知識獲取機構,同時它又為推理機提供求解問題所需的知識。

  • 知識表示方法的選擇:要建立知識庫,首先要選擇合適的知識表達方法。常用一階謂詞邏輯、產生式、框架、模糊邏輯、狀態空間、遺傳編碼、神經網絡等知識表示方法。選擇需要考慮四方面:
    • 能充分表示領域知識
    • 能充分有效地進行推理
    • 便於對知識的組織維護和管理
    • 便於理解與實現
  • 知識庫的管理:知識庫管理系統負責對知識庫中的知識進行組織、檢索、維護等。專家系統中任何其他部分要與知識庫發生聯系,都必須通過該管理系統來完成。這樣可實現對知識庫的統一管理和使用。

推理機

推理機(Reasoning Machine)的功能是模擬領域專家的思維過程,控制並執行對問題的求解。它能根據當前已知的事實,利用知識庫中的知識,按一定的推理方法和控制策略進行推理,直到得出相應的結論為止。推理機包括:

  • 推理方法:確定性推理和不確定性推理
  • 控制策略:主要指推理方法的控制及推理規則的選擇策略,推理包括正向推理、反向推理和正反向混合推理。推理策略一般還與搜索策略有關。

推理機的性能與構造一般與知識的表示方法有關,但與知識的內容無關,這有利於保證推理機與知識庫的獨立性,提高專家系統的靈活性。

綜合數據庫

綜合數據庫(Global Database)又稱動態數據庫或黑板,主要用於存放初始事實、問題描述及系統運行過程中得到的中間結果、最終結果等信息。

  • 記錄了推理過程中的各種有關信息
  • 為解釋機構提供了回答用戶咨詢的依據。

綜合數據庫中還必須具有相應的數據庫管理系統,負責對數據庫中的知識進行檢索、維護等。從計算機技術角度,知識庫和綜合數據庫都是數據庫。它們所不同的是:

  • 知識庫的內容在專家系統運行過程中是不改變的,只有知識工程師通過人機接口進行管理。
  • 綜合數據庫在專家系統運行過程中是動態變化的,不僅可以由用戶輸入數據,推理的中間結果的存入也會改變其內容。

數據獲取機構

知識獲取(Knowledge Acquisition)是建造和設計專家系統的關鍵,也是目前建造專家系統的“瓶頸”。知識獲取的基本任務是為專家系統獲取知識,建立起健全、完善、有效的知識庫,以滿足求解領域問題的需要。

  • 知識工程師負責從領域專家那里抽取知識,並用適合的方法把知識表達出來。
  • 知識獲取機構把知識轉換為計算機可存儲的內部形式,然后把它們存入知識庫。在存儲過程中,要對知識進行一致性、完整性的檢測。

人機接口

人機接口(Interface)是專家系統與領域專家、知識工程師、一般用戶之間進行交互的界面,由一組程序及相應的硬件組成,用於完成輸入輸出工作。

  • 知識獲取機構通過人機接口與領域專家及知識工程師進行交互,更新、完善、擴充知識庫。
  • 推理機通過人機接口與用戶交互。
    • 在推理過程中,專家系統根據需要不斷向用戶提問,以得到相應的事實數據。
    • 在推理結束時會通過人機接口向用戶顯示結果。
  • 解釋機構通過人機接口與用戶交互,向用戶解釋推理過程,回答用戶問題。

解釋機構

解釋機構(Explanator)回答用戶提出的問題,解釋系統的推理過程。它跟蹤並記錄推理過程,當用戶提出的詢問需要給出解釋時,它將根據問題的要求分別作相應的處理,最后把解答用約定的形式通過人機接口輸出給用戶。

知識獲取的主要過程與模式

知識獲取的過程

012
  • 抽取知識:把蘊涵於知識源中的知識經識別、理解、篩選、歸納等抽取出來,以便用於建立知識庫。
  • 知識的轉換:把知識由一種形式變換為另一種表示形式。
  • 知識的輸入:把某模式表示的知識經編輯、編譯送入知識庫
  • 知識的檢測:糾錯

知識獲取的模式

  • 非自動知識獲取:

    013
  • 自動知識獲取:

    014
  • 半自動知識獲取:自動知識獲取是一種理想的知識獲取方式,涉及人工智能的多個領域,尚處在研究階段。例如模式識別、自然語言理解、機器學習等,對硬件亦有較高的要求。

知識發現與數據挖掘

知識發現與數據挖掘的概念

知識發現的全稱是從數據庫中發現知識(Knowledge Discovering from Database,KDD)。數據挖掘(Data Mining,DM)是從數據庫中挖掘知識。KDD和DM的本質含義是一樣的,只是知識發現的概念主要流行於人工智能和機器學習領域,而數據挖掘的概念則主要流行於統計、數據分析、數據庫和管理信息系統領域。所以,現在有關文獻中一般都把二者同時列出。知識發現和數據挖掘的目的就是從數據集中抽取和精化一般規律或模式。其涉及的數據形態包括數值、文字、符號、圖形、圖像、聲音,甚至視頻和Web網頁等等。

知識發現的一般過程

  • 數據准備
    • 數據選取:確定目標數據,即操作對象,它是根據用戶的需要從原始數據庫中抽取的一組數據。
    • 數據預處理:一般可能包括消除噪聲、推導計算缺值數據、消除重復記錄、完成數據類型轉換等。
    • 數據變換:消減數據維數,即從初始特征中找出真正有用的特征以減少數據開采時要考慮的特征或變量個數。
  • 數據挖掘
    • 確定挖掘的任務或目的是什么,如數據總結、分類、聚類、關聯規則或序列模式等。
    • 決定使用什么樣的挖掘算法。同樣的任務可以用不同的算法來實現,選擇實現算法有兩個考慮因素:
      • 一是不同的數據有不同的特點,因此需要用與之相關的算法來挖掘;
      • 二是用戶或實際運行系統的要求,有的用戶可能希望獲取描述型的、容易理解的知識,而有的用戶系統的目的是獲取預測准確度盡可能高的預測型知識。
  • 結果的解釋評估
    • 數據挖掘階段發現的知識模式中可能存在冗余或無關的模式,所以還要經過用戶或機器的評價。
    • 若發現所得模式不滿足用戶要求,則需要退回到發現階段之前,如重新選取數據,采用新的數據變換方法,設定新的數據挖掘參數值,甚至換一種挖掘算法。
    • 由於KDD最終是面向人的,因此可能要對發現的模式進行可視化,或者把結果轉換為用戶易懂的另一種表示,如把分類決策樹轉換為“if—then”規則。

知識發現的任務

  • 數據總結:對數據進行濃縮,給出它的緊湊描述。
  • 概念描述:從學習任務相關的數據中提取總體特征。
  • 分類:提出一個分類函數或分類模型(也常常稱作分類器),該模型能把數據庫中的數據項映射到給定類別中的一個。
  • 聚類:根據數據的不同特征,將其划分為不同的類。包括統計方法、機器學習方法、神經網絡方法和面向數據庫的聚類方法等。
  • 相關性分析:發現特征之間或數據之間的相互依賴關系。
  • 偏差分析:尋找觀察結果與參照量之間的有意義的差別。
  • 建模:通過數據挖掘,構造出能描述一種活動、狀態或現象的數學模型。

知識發現的方法

  • 統計方法:從事物的外在數量上的表現去推斷事物可能的規律性。常見的有回歸分析、判別分析、聚類分析以及探索分析等。
  • 粗糙集:粗糙集是具有三值隸屬函數的模糊集,即是、不是、也許。常與規則歸納、分類和聚類方法結合起來使用。
  • 可視化:把數據、信息和知識轉化為圖形等,使抽象的數據信息形象化。信息可視化也是知識發現的一個有用的手段。
  • 傳統機器學習方法:包括符號學習和連接學習。

知識發現的對象

  • 數據庫:當前研究比較多的是關系數據庫的知識發現。

  • 數據倉庫:數據挖掘為數據倉庫提供深層次數據分析的手段,數據倉庫為數據挖掘提供經過良好預處理的數據源。數據倉庫有四個基本特征:

    • 數據倉庫的數據是面向主題的。
    • 數據倉庫的數據是集成的。
    • 數據倉庫的數據是穩定的。
    • 數據倉庫的數據是隨時間不斷變化的。
  • Web信息:Web知識發現主要分內容發現和結構發現。內容發現是指從Web文檔的內容中提取知識;結構發現是指從Web文檔的結構信息中推導知識。

  • 圖像和視頻數據:圖像和視頻數據中也存在有用的信息。比如,地球資源衛星每天都要拍攝大量的圖像或錄像。

專家系統的建立

015
  • 問題識別階段

    在問題識別階段,知識工程師和專家將確定問題的主要特點:

    • 確定人員和任務,選定包括領域專家和知識工程師在內的參加人員,並明確各自的任務。
    • 問題識別,描述問題的特征及相應的知識結構,明確問題的類型和范圍。
    • 確定資源,確定知識源、時間、計算設備以及經費等資源。
    • 確定目標,確定問題求解的目標。
  • 概念化階段

    概念化階段的主要任務是揭示描述問題所需要的關鍵概念、關系和控制機制,子任務、策略和有關問題求解的約束。這個階段需要考慮的問題有:

    • 什么類型的數據有用,數據之間的關系如何?
    • 問題求解時包括哪些過程,這些過程有哪些約束?③如何將問題划分為子問題?
    • 信息流是什么?哪些信息是由用戶提供的,哪些信息是需要導出的?
    • 問題求解的策略是什么?
  • 形式化階段

    在形式化過程中,三個主要的因素是假設空間、基本的過程模型和數據的特征。需要考慮以下問題:

    • 把概念描述成結構化的對象,還是處理成基本的實體?

    • 概念之間的因果關系或時空關系是否重要,是否應當顯式地表示出來?

    • 假設空間是否有限?

    • 假設空間是由預先確定的類型組成的,還是由某種過程生成的?

    • 是否應考慮假設的層次性?

    • 是否有與最終假設相關的不確定性或其他的判定性因素?

    • 是否考慮不同的抽象級別?

    找到可以用於產生解答的基本過程模型是形式化知識的重要一步。過程模型包括行為和數學的模型。如果專家使用一個簡單的行為模型,對它進行分析就能產生很多重要的概念和關系。數學模型可以提供附加的問題求解信息,或用於檢查知識庫中因果關系的一致性。在形式化知識中應當考慮下述問題:

    • 數據是不足的、充足的還是冗余的?
    • 數據是否有不定性?
    • 對數據的解釋是否依賴於出現的次序?
    • 獲取數據的代價是多少?
    • 數據是如何得到的?
    • 數據的可靠性和精確性如何?
    • 數據是一致的和完整的嗎?
  • 實現階段

    在形式化階段,已經確定了知識表示形式和問題的求解策略,也選定了構造工具或系統框架。在實現階段,要把前一階段的形式化知識變成計算機軟件,即要實現知識庫、推理機、人機接口和解釋系統。

    在建立專家系統的過程中,原型系統的開發是極其重要的步驟之一。對於選定的表達方式,任何有用的知識工程輔助手段(如編輯、智能編輯或獲取程序)都可以用來完成原型系統知識庫。另外,推理機應能模擬領域專家求解問題的思維過程和控制策略。

  • 測試階段

    這一階段的主要任務是通過運行實例評價原型系統以及用於實現它的表達形式,從而發現知識庫和推理機的缺陷。通常導致性能不佳的因素有如下三種:

    • 輸入輸出特性,即數據獲取與結論表示方法存在缺陷。

    • 推理規則有錯誤、不一致或不完備。

    • 控制策略有問題,不是按專家采用的“自然順序”解決問題。

    專家系統必須先在實驗室環境下進行精化和測試,然后才能夠進行實地領域測試。在測試過程中,實例的選擇應照顧到各個方面,要有較寬的覆蓋面,即要涉及典型的情況,也要涉及邊緣的情況。測試的主要內容有:

    • 可靠性。
    • 知識的一致性。
    • 運行效率。
    • 解釋能力。對解釋能力的檢測主要從兩個方面進行:
      • 一是檢測它能回答哪些問題,是否達到了要求;
      • 二是檢測回答問題的質量,即是否有說服力。
    • 人機交互的便利性。

    對人機接口的測試主要由最終用戶來進行。根據測試的結果,應對原型系統進行修改。測試和修改過程應反復進行,直到系統達到滿意的性能為止。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM