本站小編為你精心準備了醫學專家系統設計參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
1醫學專家系統的發展歷程
早在1954年,美國的錢家其已將計算機應用于放射治療,計算劑量分布和制定治療計劃;1959年,美國的Ledley等首次將數學模型引入臨床醫學,提出了可將布爾代數和Bayes定理作為計算機診斷的數學模型,并以此診斷了一組肺癌病例,開創了計算機輔助診斷的先例;1966年,Ledley首次提出“計算機輔助診斷”(computeraideddiagnosis,CAD),形成了計量醫學;1976年,美國斯坦福大學的Short-liffe等研制成功了著名的用于鑒別細菌感染及治療的醫學專家系統MYCIN,建立了一整套專家系統的開發理論;1982年,美國匹茲堡大學的Miller等發表了著名的Internist-I內科計算機輔助診斷系統,其知識庫中包含了572種疾病,約4500種癥狀;1991年美國哈佛醫學院Barnett等開發的“解釋”軟件,包含有2200種疾病和5000種癥狀。
2醫學專家系統的組成
專家系統是基于知識的系統(Knowledge-BesedSystem)。一個完整的醫學專家系統應由知識庫(Knowledge-Base)、數據庫(DataBase)、推理機(InferenceEngine)、知識獲取模塊(Knowledge-AcpuisitionModule)和解釋接口(Explana-toryInterface)組成。知識庫中存放系統求解問題所需求的知識,數據庫用來存儲初始證據和推理過程中得到的各種中間信息,推理機是一組程序,用來控制和協調整個系統,它通過輸入的數據,利用知識庫的原有知識按一定的推理策略解決所提出的問題。知識獲取模塊就是學習模塊,它為修改和擴充知識庫存的原有知識提供相應的手段。解釋接口是用戶與專家系統交互的環節,負責對推理給出必要的解釋,便于用戶了解推理過程,為用戶向系統學習和所作所為系統提供方便,具有解釋功能是專家系統區別于其它計算機程序的標志。目前,已有一些知識表示型的醫療診斷專家系統。
3醫學專家系統的設計
建立醫學專家系統要求將專家的知識轉換為機器處理。在系統分析工作中,要求完全嶄新的基于知識的設計方法,使得計算機從數據處理過渡到知識處理,從計算和存儲數據轉為推理和提供知識。原型系統方法是醫學專家系統實現的重要開發方法,其早期階段的目標是迅速發展最終系統的模型,獲得所有任務的初步方案,后繼階段進行測試和擴充,增加更多細節,如此逐步發展和求精,直到逼近最終系統,滿足用戶要求。原型系統方法的優點是:增進用戶與開發人員的溝通;用戶在系統開發過程中起主導作用;辨認動態的用戶需求;啟迪衍生式的用戶需求;縮短開發周期,降低開發風險。由于專家系統分析層面難度大,技術層面難度相對較小,因此,原型系統方法是最為適宜的開發方法。原型設計階段的目標是解決領域知識的形式化問題,定義事實、關系和專家的推理策略,建立原型模型。原型系統的設計分為以下三個階段。
3.1識別和定義系統的概念模型本階段的主要任務是知識獲取,識別系統的主要任務,識別和獲取有關的重要概念及其關系,定義概念模型。這些概念和關系對確定知識庫的結構是很有用的。任務領域中的概念必須按照問題求解行為的具體例子抽象。專家的思考模式必須包含所有基本元素,并且能被修改和擴充。本階段除了采訪專家獲取知識之外,大量信息可以從已存的書籍、資料等重要文獻中獲取。
3.2概念設計在建立概念模型之后,就可開始概念設計,選擇合適的知識工程工具(如知識表示),正式地表示問題和解法。主要工作包括設計適合于專家智能活動的可執行的知識表示模式、推理機制和用戶接口。知識工程師應盡快設計和建立一個原型系統,以便提供開始的側重點。
3.2.1知識表示模式設計所謂知識表示模式設計就是根據醫學領域中知識類型及特征,選擇合適的知識表示方法,描述知識模型。一般來說,系統控制知識和專家的決策知識表示為產生式規則;如果對象各要素間的關系可通過邏輯運算去體現,可采用謂詞邏輯表示法;對于較復雜的結構結象可使用框架或語義網方法,如專業概念知識。為了有效地表示各種知識,系統可以綜合使用多種知識表示方法。設計的結果是應用知識表示工具描述的知識模型。
3.2.2推理機設計常用的推理方法有正向推理、逆向推理和雙向推理三種,這三種推理方法又可分為精確推理和不精確推理。推理機設計包括根據應用領域選擇推理方法,設計自動推理算法結構,以及其它控制結構和各部分之間的通訊機制。它涉及知識的選擇和應用問題。例如,專家系統最成功的實例之一,是1976年美國斯坦福大學肖特列夫(Shortliff)開發的醫學專家系統MYCIN,這個系統后來被知識工程師視為“專家系統的設計規范”。MYCIN主要用于協助醫生診斷腦膜炎一類的細菌感染疾病。在MYCIN知識庫里,大約存放著450條判別規則和1000條關于細菌感染方面的醫學知識。它一邊與用戶進行對話,一邊進行推理診斷。它的推理規則稱為“產生式規則”,類似于:“IF(打噴嚏)OR(鼻塞)OR(咳嗽),THEN(有感冒癥狀)”這種醫生診斷疾病的經驗總結,最后顯示出它“考慮”的可能性最高的病因,并以給出用藥的建議而結束。概念設計中提供豐富的概念。各種概念隱含了程序設計方法及知識的表示形式。概念方法可以輔助知識工程師認清對象之間的關系,以使概念化專家決策處理中所使用的各種對象及屬性。在概念設計中,要避免使用傳統系統經驗,例如基于個別實例或部分關系,企圖畫出一個決策處理的與/或樹,這將導致失敗。概念設計方法將知識工程師從“過分分析的陷阱”中解放出來,以便有效地設計原型系統。
3.3詳細設計概念設計建立了系統的主架,詳細設計階段的目標是發展詳細的信息處理模型,識別和獲取與模型有關的微知識,例如概念、對象/實體的詳細描述。主要的工作包括:識別邏輯命題、書寫一些描述和過程的代偽代碼,副出語義網絡圖;將與/或樹轉換為自然語言規則;畫出直接表示圖或模型;識別和命名表示的框架及槽;識別和命名數據庫的款目等。詳細設計應規定語法和語言的特殊限制,但不應開始實際編碼,也就是說詳細設計應獨立于任何程序設計語言。自然語言規則提供詳細的編碼描述規格。應用自然語言表達規則,使所有設計者能容易地明白知識表示結構,便于參加編碼和檢測。
4醫學專家系統的實現方法實現原型系統階段的主要任務是選擇合適的開發工具,完成原型系統的程序設計,即編碼、測試和修改。
4.1系統開發工具的選擇為選擇合適工具,需要考慮如下問題。
4.1.1開發工具的通用性工具系統通用性越強,則在用其構造一個具體的專家系統時,知識工程師的編程任務越復雜,對知識工程師研制系統的能力及編程水平要求越高。例如ISP、OPS5,PROLOG等工具都是通用性較強的工具系統。使用通用性工具設計的系統,其使用范圍較廣,便于移植和推廣。另一方面,工具系統的通用性越強,一般說來其領域針對性也越差。對于某些專業領域,某一個通用性工具所生成的專家系統的效率往往很低。因此,在選擇開發工具時,必須在通用性與方便性,通用性與具體專業領域的針對性之間進行反復的權衡。
4.1.2開發工具的特性與專業領域特性的匹配程序
4.1.2.1與專業領域的問題特性的比較著重比較搜索空間的大小、數據的形式、問題的結構等。
4.1.2.2與求解問題的方法特性的比較例如搜索類型,知識表示法、不確定性的處理方法、控制結構形式等的比較。
4.1.2.3專家系統學習能力的強弱、知識庫維護能力、知識獲取能力、人機接口的友善程度、系統的擴展性與協作適應性等。目前大多數專家系統選用人工智能語言,如PROLOG,LISP。PROLOG的數據庫能力較強。它們提供許多適于人工智能處理的功能。選用該類語言,系統設計的主要任務是設計知識庫和人機接口。缺點是使用存儲空間多、速度慢,因此,可部分使用C語言作為輔助工具。面向較窄專業領域的專家系統,多選用專家系統工具,可以迅速產生原型系統,由于醫學專家系統的專業領域一般較窄,故大多采用專家系統工具。專家系統工具已與強有力的數據庫系統相連接,可用性越來越強,它們成為建造專家系統的合適工具。若系統設計對于存儲空間和速度要求較高,并且知識工程師人力較充足時,也可選用一般的程序設計語言,尤其是面向對象的程序設計語言,中VC、VB、JAVA等。在選擇開發工具過程中,知識工程師起主要作用,并應與領域專家密切協商,全面考慮硬件、軟件、領域問題和上述原則,選出恰當的工具系統。
4.2編碼編碼是應用選擇的工具語言記錄事件和知識。它將詳細設計階段產生的知識結構、推理規則、控制策略及其它部件的形式描述轉換為工具語言形式。主要的工作是轉換自然語言推理規則,構造知識庫;轉換推理算法為推理程序。盡管此項工作與非智能語言的編碼沒有區別,而這里一般使用的語言是LISP,PROLOG或專家系統工具語言。在編碼中,知識工程師常發現詳細設計中的問題,因此,詳細設計和編碼常是緊密相關的循環處理。編碼中發現的問題也可能引起大范圍的反復處理,例如,可能需要完全重新設計知識表示。
4.3測試與修改測試階段的主要任務是評價原型系統及其實現形式是否符合設計者、專家及用戶的要求,應用各種各樣的實例,檢測知識庫和推理結構中的弱點,修改原型。
4.3.1檢測推理檢測推理就是檢查無效的推理。主要工作是檢測機制細節,如接口和內部流程。知識工程師構造人工模擬實例檢測系統的詳細部分,當系統違背設計得意愿,則發現錯誤。糾正無效推理中的錯誤,需要重新編碼。產生無效推理的原因是程序員錯誤地轉換知識。
4.3.2檢測知識在知識系統中,正確的編碼并不意味著知識正確。這種處理努力探測無效的和模糊不清的知識。除了人工實例,專家和知識工程師還可用真實實例檢測,讓系統作合適的決策,并可保留這些檢測實例以備后用。無效知識的發生,是由于專家沒有正確地描述事實或沒有完全理解事實。當系統違背專家的意愿時,可發現這類錯誤。模糊知識的發生是由于專家不能識別所有的蘊含關系,如組合條件太多。當系統選擇不同的解法(而專家要求相同解法)時,可發現這類錯誤。例如重復執行概念識別,以便發現錯誤的知識;重復執行概念設計來重新評估知識表示的選擇,這兩種處理又引起重復執行詳細設計。當知識是完整一致的,僅要求重復執行詳細設計和編碼。若在檢測推理機制中,專家發現了檢測子問題的新條件,則重復執行問題定義、概念識別、概念與詳細設計及編碼。因而專家可用發現的新條件精煉已存知識表示。當專家對早期的知識檢測不滿意,將知識加入知識庫時,發現一些錯誤,則他重新執行是識別和定義概念,處理和發現新概念。為此,概念設計、詳細設計、編碼和檢測推理均需要新執行,調整由定義新概念所引起的變化。
4.4證實原型系統當專家和知識工程師相信推理和知識是正確的,則執行本處理。這種處理用執行大量的真實例檢測隱含錯誤。知識工程師可將原型放入檢查區域,工作一段時間,這種檢測可能發現較少的小錯誤。證實也可發現專家和知識工程師的偏見。專家和系統的交互中可能存在盲目的缺點。因此,應邀請其他多位專家指導證實處理。他們的新觀點可能會發現新問題。最后的證實工作是并行執行系統檢測和人工檢測(人工檢查活動不與系統交互)。然后按要求逐個比較結果,并做客觀地記錄。這些檢測將提供大量的寶貴意見。
4.5系統的發展與維護檢測工作完成后,原型可被進一步修改和擴充,發展成為實用系統。維護的目標是評價和擴展系統,改進系統執行。由于在發展中迅速設計原型,可以避免和減少維護工作。如果系統中使用的規則和過程以常規變化為條件,則需要專家和管理者周期地檢查系統的執行。一個知識系統模式化人類在特定領域中的專知,而專家和知識都不是靜止不變的,因此系統中的知識庫和推理模式必須繼續檢測和發展。這包括收集關于系統執行的知識、缺陷及定義的變化。主要方法是利用機器學習技術維護、擴展知識庫,以改進系統執行。這種設計方法適用于所有的知識系統,對于復雜的綜合型系統,還要考慮與其它分系統的通訊與協作。
5總結與展望
縱觀國內外醫學專家系統的發展,可從以下3個方面進行總結。
5.1人工智能、專家系統理論70年代,多用概率統計法,即所謂的數字計算法,從疾病—臨床資料(癥狀、體征理化檢查)的發生頻率與疾病概率之間的明確統計學分析,得出最相似的診斷。此方法現已趨于淘汰。80年代后,則多用人工智能的方法,即以疾病的數值表敘與專家的推理相結合導致的一種決策方法。兩種方法都要通過一定的數學模型來實現,常見的數學模型有Bayes公式,模糊數學及加權求和—閾值浮動(至80年代中期,國內2/3的系統采用了這3種數學模型,但這3種數學模型的應用,有一定局限性)。還有的研究是關于診斷系統的通用開發平臺等方法學方面的,使醫學診斷專家系統在解釋方法學、評價標準、知識庫建立以及因果定量推理等方面成為研究熱點。關于醫學診斷中推理的復雜性,有人提出,病人可能有相互關聯的多種疾病,而表現出的癥狀并不確定與某一類疾病有關,一個癥狀是否會出現也不確定,因而復雜程度不同的推理,可以精密程度不同的模型中進行。此外,由于人類疾病的適時性,有必要在沒有明確的診斷結論時給出有關診療建議。同時,用來監測、存儲和顯示大量數據的系統數據庫應與推理有機的結合起來。啟發式分類也是人工智能方法中的一種,即從一組輸入數據中提取特征,并進行分類,根據分類特征在一組已知的診斷類型中選擇。模糊邏輯原理尤其適合于醫學應用,因為醫學決策所需的許多信息都是不確定的。適于人工智能、專家系統應用的計算機語言,在早期有LISP和PROLOG,但到現在,尚無更新的、合適的語言出現。
5.2人工神經網絡在醫學專家系統中的應用人工神經網絡是最近幾年發展起來的一項新技術,是模仿生物神經系統中神經元的一種數學處理方法。由于它的并行處理方式、自學習能力、記憶能力、預測事件發展能力,因而可以起到專家系統的作用。特別在分類、診斷以及基于分類的智能控制和優化求解方面,神經網絡專家系統比傳統的專家系統(指上述用概率統計法,數學模型建立的專家系統)有更優越的性能。故人工神經網絡代表著當前最先進的人工智能技術,但此項技術尚不成熟。如只適用于解決規模較小的問題,其性能受訓練數據集的限制,以及無法解釋推理過程和得出結論的依據等。
5.3問題與展望國內醫學專家系統的應用和發展不僅起步晚,而且規模小,水平低,應用范圍窄,缺乏較好的驗證及評估方法。這與我國的經濟水平低、資金缺乏、信息閉塞、計算機普及教育差及計算機普及率低、相當一部分醫生對計算機缺乏認識、計算機專業人員與醫生缺乏交流等原因有關。但這一情況近期已有所改善。國外在醫學專家系統領域起步雖較早,水平較高,具有較為科學、全面的驗證與評估方法,應用范圍也較廣。但與其他領域相比,規模仍較小,而且其發展水平落后于計算機與人工智能的發展。
綜上所述,計算機及人工智能技術的誕生與發展,使我們開發醫學領域中的人工智能—專家系統成為現實。但目前這方面的發展還很不平衡,還存在不少問題需要解決,如軟件的發展落后于硬件;缺乏一種令人滿意的通用專家系統開發平臺或計算機語言;大量的低層次重復開發與缺少大型的、性能優越、經得起臨床檢驗的專家系統;缺乏客觀的、科學的、重復性好的驗證系統。要解決這些問題,需要從事計算機軟件、硬件研究的專家和醫學專家們的共同努力,需要計算機知識的普及,加強跨學科的生物醫學工程人員的培養。相信未來的智能醫學診斷與治療專家系統,將成為醫生的得力助手,為各種疾病的診斷和治療,做出更大貢獻。