甘子琦,龐 辰,王文麗,閆 偉
(山東師范大學 信息科學與工程學院,山東 濟南 250000)
現(xiàn)如今,醫(yī)生在對病人病情進行診斷過程中,通常都會依據自己的主觀經驗,并根據自己掌握的醫(yī)學知識結合醫(yī)療設備檢查得到的生理數據得出診斷結果。但由于醫(yī)生的水平經驗參差不齊,醫(yī)療水平相對落后的地區(qū)經常出現(xiàn)誤診,對病人及其家屬造成傷害。為了使得豐富醫(yī)療知識與寶貴的醫(yī)生診斷經驗得到最大限度的共享與重用,人們希望通過計算機來輔助醫(yī)生進行診斷。
使用計算機處理信息,輸入和輸出一般都是精確的數字信息,而現(xiàn)實生活中人們更喜歡用一些表示程度的模糊語言來描述事物。因此,為了能讓計算機處理模糊的數據進而提出了模糊推理。
隨著人工智能和醫(yī)療輔助診斷的飛速發(fā)展,研究能夠輔助醫(yī)生進行醫(yī)療診斷的智能醫(yī)療決策診斷機制更成為醫(yī)療信息科學的一個重要研究課題。因此,文中提出一種基于Jess模糊推理的醫(yī)療診斷機制,結合本體知識庫,最終實現(xiàn)計算機輔助醫(yī)生進行治療。該診斷機制的提出,使計算機模仿醫(yī)學專家的診斷思想對病人進行就診。這樣就能把模糊推理技術應用到醫(yī)學領域。
1959年美國的萊德利等首次在臨床醫(yī)學中使用計算機診斷,并在1966年提出“計算機輔助診斷”,產生了計量醫(yī)學[1];1974年匹茲堡大學的鮑伯爾和內科醫(yī)生合作,成功研發(fā)了內科診斷咨詢系統(tǒng);在1976年用于為細菌感染提供抗菌劑治療建議的MYCIN系統(tǒng)[2]由美國斯坦福大學的肖特利菲研發(fā)成功;1982年,匹茲堡大學的Miller等開發(fā)了Internist-I內科計算機輔助診斷系統(tǒng)[3];1991年,哈佛醫(yī)學院的Barenett等開發(fā)的“DXPLAIN”軟件包含有2 200種疾病和5 000種癥狀。
1981年,中國科學院、北京第二醫(yī)學院和北京中醫(yī)院研發(fā)了“關幼波肝病診斷專家系統(tǒng)”[4];2003年,哈爾濱醫(yī)科大學將專家系統(tǒng)與人工神經網絡相結合提出了“醫(yī)療智能診斷系統(tǒng)”[5]。
知識庫已經應用到了醫(yī)療領域。德納姆富什曼提出了本體知識庫應該具有PICO(population,intervention,comparison and outcome)四個基本元素[6];布馬和德里杰克又進一步描述了本體知識庫的幾個基本特征:疾病、癥狀和治療[7];Niu和Hirst描述了一種可以在醫(yī)療文本中確定語義的類和類與類之間的關系的方法[8]。
隨著科技的進步,利用計算機進行診斷決策的過程將變得十分困難,于是人們想到依靠醫(yī)學專家的經驗來進行診斷。因此,判定方法的約束條件中的模糊因素、思想語言等模糊定量問題使“模糊推理”應運而生。
文中以基于Jess的模糊推理為基礎,結合醫(yī)療診斷的具體流程對如何模擬醫(yī)生完成診斷過程做了如下工作:
(1)生理參數預處理。
醫(yī)生通過大量信息對病人進行診斷。這些信息分為兩種,一種是如體溫、血紅蛋白含量、血壓、心率等可以通過機器進行檢測的精確型數值;另一種是如咳嗽是否嚴重、咽部是否紅腫、頭是否疼痛等無法用數值表示,只能根據醫(yī)生對病人進行詢問得出的模糊型信息。文中提出的診斷機制首先要對得到的生理參數進行生理參數預處理,得到模糊型數據,為模糊推理提供前提。
該診斷機制需要的數據也分為精確型和模糊型,具體類型由醫(yī)院檢測數據、病人的描述和醫(yī)生對模糊型數據程度的判斷來決定。
(2)規(guī)則庫的構建。
根據生理參數不同的排列組合得到不同的病癥規(guī)則,把這些規(guī)則錄入到規(guī)則庫中,并且醫(yī)生根據癥狀進行程度分類,根據自己的醫(yī)療知識與診斷經驗建立規(guī)則庫。建立規(guī)則庫這一環(huán)節(jié)十分重要,是醫(yī)療系統(tǒng)的核心。因此醫(yī)生的醫(yī)療知識與診斷經驗越豐富,該規(guī)則庫的含金量就越高。
(3)基于Jess的模糊推理。
將模糊推理引入到醫(yī)療診斷中,雖然現(xiàn)在流行很多推理方法,如神經網絡推理、遺傳算法等等,但這些方法判斷出的結果是二元的。而人的疾病是模糊復雜的,模糊集合的引入使事物和疾病的描述更寬泛。利用模糊推理,可以推理出更復合客觀事實的結果。而在CLIPS基礎上開發(fā)的Jess規(guī)則引擎[9],使用前向規(guī)則快速匹配Rete算法[10]進行模式匹配,推理效率高。
(4)智能醫(yī)療診斷機制構建。
智能醫(yī)療診斷機制的基本步驟是:首先通過體檢得到病人的生理參數,醫(yī)生通過詢問病人病情,將所得信息與生理參數共同輸入到計算機中;計算機模仿醫(yī)生診斷病人的思維方式來確定病情;最終計算機給醫(yī)生列舉出病人可能患病的情況。
醫(yī)生根據計算機提供的病情,再加上自己的經驗,得出最后的診斷結果。
3.1.1 精確生理參數處理
文中提出的診斷機制僅僅以三種生理參數為例,分別是體溫、心率和血壓。
通過查閱醫(yī)學資料,查找出各項生理參數的正常范圍如下:
正常收縮壓范圍:90 mm Hg至140 mm Hg;正常舒張壓范圍:60 mm Hg至90 mm Hg。
正常腋下溫度:36.3~37.2 ℃;低熱:37.3~38 ℃;中度熱:38.1~39 ℃;高熱:39.1℃以上。
正常心率:60~100次/分。
這些參數都是精確的數值,可以通過這些數值來確定程度的高低
3.1.2 模糊生理參數處理
對生理參數預處理,使生理參數模糊化是文中提出的診斷機制的第一步。一般來說,醫(yī)生在診斷病人病情的過程中,會使用機器對病人進行檢測,得到血液化驗單,如表1所示。
血液化驗單上得到的結果都是精確的,醫(yī)生根據檢驗結果和正常范圍對比來判斷病人病情。但是血液化驗單中僅僅給出了正常范圍,并沒有規(guī)定是否偏低或偏高。比如血液化驗單的檢查結果中紅細胞正好處在正常范圍的最低臨界值400萬/μL,醫(yī)生就認定他是正常值,而399萬/μL醫(yī)生就認定為不正常的值。顯然這樣判斷有不足之處,因為二者之差幾乎可以忽略。當紅細胞的檢查結果為550萬/μL時,就不能認定紅細胞檢查結果正常,而是偏高。與紅細胞類似,其他的生理參數也應分為偏低、正常、偏高等范圍或者更多其他的范圍,并且這些范圍可以出現(xiàn)重疊。下面以血紅蛋白為例:
表1 血液化驗單
通過查閱醫(yī)學資料,劃分出血紅蛋白偏低、正常和偏高的范圍。
偏低范圍:≤130 g/L;正常范圍:120 g/L~160 g/L;偏高范圍:≥150 g/L。范圍之間存在的重疊區(qū)域,可以更好地反映不同范圍之間的關系。構建出如圖1所示的隸屬度函數,圖1中的縱坐標為隸屬度的值,代表著對應所在范圍的程度,有的數值對應著兩個隸屬度函數。如圖1中當血紅蛋白數量為128 g/L時,分別對應著0.04和0.4,進而可以寫成(偏低,0.04)和(正常,0.4)。按照這種法則,可以對生理參數進行模糊處理。通過上述例子,可以把化驗單上的精確數值變成(范圍,隸屬度)的模式。
醫(yī)生在診斷病情的時候,不僅僅只看化驗單,還會通過觀察和詢問,來判斷病人的生理癥狀。比如精神狀態(tài)的好壞,食欲是否正常,頭痛的嚴重程度,是否伴有咳嗽等。這些生理癥狀可以看作是生理參數模糊處理后的結果。
圖1 血紅蛋白隸屬度
3.2.1 規(guī)則推理算法
模糊推理規(guī)則庫的構建是文中提出的智能醫(yī)療機制的核心,規(guī)則庫的形式如“if-then”語句??紤]的生理參數越多,所產生的規(guī)則數目越多,這樣會使推理的效率大幅降低。由此可見,需要的推理規(guī)則數量不應太多也不應太少,以構成正規(guī)的規(guī)則形式。推理規(guī)則的運算選擇與模糊算子的確定有一定聯(lián)系,目前世界各國關于模糊推理的研究已經取得了一定的成果,多數使用最大最小法和最大乘積法等算法,模糊推理規(guī)則[11]的表達形式如下:
(1)
其中,wij(j=1,2,…,n)表示各個疾病的程度即模糊權重,0≤wij≤1;0≤λ≤1表示規(guī)則激活的閾值;m表示知識庫中的規(guī)則數目。當規(guī)則滿足所有條件的綜合相似度大于等于閾值時,可以推斷出結論Z。
3.2.2 模糊規(guī)則庫的建立
作為智能醫(yī)療診斷機制的核心部分,其他部分均是為執(zhí)行模糊規(guī)則而服務。此診斷機制采用的是多維模糊規(guī)則的形式,即若干條模糊命題組成的規(guī)則的前件,建立的規(guī)則庫的本體模型如圖2所示。
圖2 規(guī)則庫本體簡略圖
精確輸入型參數和模糊型參數進行排列組合之后得出的結果即構成了模糊推理規(guī)則庫。例如,A1:傳感器檢測到的人體溫度,A2:血檢出的血紅蛋白含量,A3:白細胞的含量,B:診斷結果。
如果需要對人患病進行診斷,在考慮多個精確的生理參數及數值的情況下,還應編寫復雜的模糊推理規(guī)則。假設Li表示低值范圍(體溫<36度,血紅蛋白和白細胞低于正常含量),Ni表示正常范圍(體溫=36度,血紅蛋白和白細胞為正常含量),Hi表示高值范圍(體溫>36度,血紅蛋白和白細胞高于正常含量),其中i=1、2或3,則共有27種組合。而這27種則是三種精確型參數的內部排列組合,對這27種情況從R1到R27進行編號,如圖3所示。
圖3 if-then規(guī)則
下面用if-then語句來編寫規(guī)則庫:
從以上規(guī)則可看出,C1表示人體生理參數正常,C2表示人發(fā)高燒,C3表示人血紅蛋白含量過高,C4表示人白細胞含量過高,C5表示人低體溫,C6表示人血紅蛋白少,C7表示人白細胞少等。
隸屬度函數選取每種單個情況隸屬度最小值,R1到R27的隸屬度函數為:
Ri(a1,a2,a3)=min{N1(a1),N2(a2),N3(a3)}
(2)
下面考慮模糊型數據。
表2 咳嗽與咽部紅腫程度
假設A4代表咳嗽程度,A5代表咽部紅腫程度,列舉出如表2所示的情況。A4、A5模糊性輸入參數共9種組合,結合以上27種精確性輸入參數組合,共組成243種組合,醫(yī)生可由這兩類參數進行診斷。智能醫(yī)療診斷機制將多數醫(yī)生在診斷過程中的思維共性進行模糊化處理。醫(yī)生在診斷時分析到相似或者相同的病癥,得出相同的診斷結果。把這些具有共性的診斷經驗通過規(guī)則錄入機制,智能醫(yī)療機制可做出診斷,再將這些診斷經驗存儲到數據庫中,就構建了一個診斷庫,則這個診斷庫就是模糊化推理過程中的規(guī)則庫,如表3所示。其中*代表正常,+代表偏高,-代表偏低。
表3 規(guī)則庫
3.3.1 模糊邏輯
模糊邏輯是基于多值邏輯之上,通過使用模糊集的方法研究模糊思維[12]。目前模糊集理論在不確定和不精確的復雜系統(tǒng)模型中得到了發(fā)展,它的元素可能部分屬于模糊集合。假設X為一個通用集合,它的元素用x表示,將X中的模糊集合A定義為一個有序對的集合:
A={x,μA(x)|x},μA(x)是x在A中的隸屬度函數:
(3)
隸屬度函數定義了將給定元素x映射到0和1之間的隸屬值過程。為了實現(xiàn)模糊對象的定量問題,隸屬函數通常用直線、三角形或梯形來表示。模糊推理系統(tǒng)通過if-then規(guī)則推理出結果,從而提供了實現(xiàn)推理的系統(tǒng)框架。
在該診斷機制中所設計的模糊推理系統(tǒng)由五個功能塊組成:
(1)醫(yī)療診斷規(guī)則庫;
(2)隸屬度函數數據庫;
(3)在if-then模糊規(guī)則上執(zhí)行推理操作的決策單元;
(4)能將精確的輸入轉換成模糊數據的模糊化接口;
(5)能將模糊數據轉換成精確輸出的反模糊化接口。
3.3.2 模糊化
基于知識模糊化的核心就是將輸入對應到模糊集上[13]。通過與隸屬函數的對應,為輸入輸出設置不同隸屬度。由于在一般情況下,語言變量的模糊化都是根據經驗得出,因此隸屬函數的設計是關鍵。文中使用比較法、統(tǒng)計法、權值法確定隸屬度函數,然后將對事物的理解反映到數學圖像中,在所有模糊集的隸屬函數確定后,就將輸入量進行模糊化。
3.3.3 基于Jess的模糊推理的步驟
(1)將診斷規(guī)則和事實輸入到工作內存;
(2)利用模式匹配比較事實與模糊專家系統(tǒng)知識庫中的規(guī)則;
(3)若執(zhí)行規(guī)則存在沖突,則將沖突的規(guī)則存放在沖突集合中;
(4)解決沖突,將沖突的規(guī)則順序放入議程;
(5)執(zhí)行規(guī)則,修改事實庫;重復步驟2~步驟5至事實庫不再發(fā)生任何變化,則推理結束[14]。
目前國內醫(yī)療衛(wèi)生水平發(fā)展很不平衡,東西部地區(qū)差異較大。為使經濟較落后地區(qū)的人們能夠得到更好的醫(yī)療服務,使一些水平較高、經驗較豐富的醫(yī)生的經驗和醫(yī)療知識得到共享,遂想到通過建立醫(yī)療本體庫,將無形的資源匯集在一起。
設計該本體庫的大致思想是模仿日常生活中人們在醫(yī)院看病的流程。首先是病人填寫自己的基本信息;其次將信息錄入后,病人本人可敘述自身病癥;通過病人自己的描述,得出病人應進行的相應檢查,將檢查結果導入;結合病人自身的情況,醫(yī)療機械檢查和醫(yī)學化驗檢查,再加上醫(yī)生判斷和經驗,最終得到一個病例事實。
簡單建立如圖4所示的本體模型。
圖4 醫(yī)療領域本體庫簡略圖
智能醫(yī)療診斷機制即模糊推理專家系統(tǒng)是由醫(yī)學領域的經驗知識集合而成,對一些簡單疾病做出了判斷處理。特征如下:
(1)透明性。可以對病人所提供的生理參數做出判斷,可以診斷病人一些簡單的疾病,并且將推理過程向病人展現(xiàn)。
(2)可延伸性。醫(yī)療本體知識庫可擴充新的醫(yī)學經驗與知識,使知識庫涵蓋更多知識。
(3)便捷性。在任何時間、地點,病人均可使用網絡將生理數據傳到服務器,診斷結果可第一時間發(fā)給病人,在沒有醫(yī)療條件狀況下病人也可檢查自身身體狀況。
醫(yī)學的復雜性決定該機制只能簡單實現(xiàn)一些疾病推理,在疾病判斷中應用模糊推理仍是核心。
前期收集相關的醫(yī)療衛(wèi)生方面數據,充分了解醫(yī)療信息的數據標準、參考范圍、現(xiàn)狀及發(fā)展趨勢。總結并選取部分數據作為醫(yī)療信息本體知識庫數據源。將數據源進行分類,文中主要分為病人和診斷過程兩個大類。又將病人細分為病人基本信息和病人對病癥的描述;而在診斷過程中呈現(xiàn)出結合醫(yī)生主觀意見的診斷步驟。將這些基本的屬性建立起邏輯關系,再創(chuàng)建數據源之間的關系,構建基本醫(yī)療信息本體庫框架,然后對本體庫進行實例化[15]。
實例化的本體庫導入醫(yī)療診斷規(guī)則庫,與規(guī)則庫進行比較。導入規(guī)則庫后進行模糊推理,直至事實庫中不存在矛盾,得出某一方面的一個或多個結果。若有多個結果,可根據醫(yī)生自身經驗判斷,得出最終結果。智能醫(yī)療診斷機制框架如圖5所示。
圖5 智能醫(yī)療診斷機制框架
接下來用具體的病例來模擬一下診斷過程,假如一個病人有以下癥狀,見表4。
表4 病人癥狀
前三項都屬于精確數值,首先要將其進行模糊化,模糊化后的結果見表5。
表5 病人癥狀模糊化
如表5所示,分別對體溫、血紅蛋白數量、白細胞數量進行模糊化處理,得到(程度,隸屬度)。而對咳嗽和咽部紅腫的描述不必處理就已經是模糊型數據。通過對表中的數據進行分析,與規(guī)則庫里的規(guī)則進行比較,得出病人可能患支氣管炎的結論。
對基于Jess模糊推理的智能醫(yī)療診斷機制進行了研究與分析。文中工作如下:構建了隸屬度函數的模型,進而實現(xiàn)數據模糊化;詳細分析了基于Jess實現(xiàn)模糊推理;基于醫(yī)生的經驗構建本體知識庫;通過Jess模糊推理機,對智能醫(yī)療診斷機制構建進行實現(xiàn)。
由于受到各種條件的限制,仍有一些不足與問題:雖然把模糊推理應用在醫(yī)療診斷中,編寫了規(guī)則并構建了本體知識庫,但是由于對醫(yī)學領域了解不透徹,導致知識庫與規(guī)則庫構建不夠完善。同時,文中僅以血壓、心率、血糖三個生理參數為例,但疾病的發(fā)生與多種生理參數有關,因此構建的知識庫與決策機制只處于初級階段。且僅根據生理參數異常就判斷疾病不夠準確。生理體征值和疾病癥狀之間的映射關系很復雜,一種參數異??赡軐喾N疾病。因此需引入其他體征值檢測,根據醫(yī)療領域專家的知識經驗進行綜合分析才能得出比較符合實際的結果。
針對這些不足,進一步的想法是擴展診斷的種類和范圍,通過完善知識庫和規(guī)則庫,使系統(tǒng)能夠處理復雜癥狀的判斷,實現(xiàn)診斷機制。未來想法是結合事例推理和神經網絡推理技術,使得該診斷機制具有自學習功能,讓知識庫變得更加龐大,能自動更新知識庫和規(guī)則庫。此外如何優(yōu)化規(guī)則庫中的規(guī)則數目,若兩條規(guī)則起沖突該如何處理也是未解決的問題。規(guī)則數目多時進行模糊推理的計算量很大,規(guī)則少則應用不了,規(guī)則的最佳數目亦需進一步確定??偠灾?,該規(guī)則庫還處于低級階段,有些方面很不完善。隨著計算智能研究的深入,基于模糊推理的醫(yī)療診斷機制還會愈加成熟。規(guī)則庫和知識庫的不斷擴充,使得模糊推理在醫(yī)療診斷中的應用將會有更大的發(fā)展空間。人工智能在醫(yī)療領域的應用將會為人類的健康帶來福音。智能醫(yī)療決策系統(tǒng)的便利能夠惠及到千萬人民的生活中。