吳禮平等
摘 要:針對(duì)傳統(tǒng)犬病診斷專家系統(tǒng)存在的問(wèn)題,結(jié)合“互聯(lián)網(wǎng)+”和大數(shù)據(jù)、云計(jì)算時(shí)代對(duì)犬病診斷專家系統(tǒng)提出了新的要求,采用PHP+MySQL+AJAX技術(shù)設(shè)計(jì)實(shí)現(xiàn)了部署于PaaS云計(jì)算平臺(tái)上的犬病診斷專家系統(tǒng)。該系統(tǒng)采用混合推理機(jī)制和廣度優(yōu)先搜索策略,運(yùn)用產(chǎn)生式規(guī)則實(shí)現(xiàn)化驗(yàn)數(shù)據(jù)分析和犬病診斷功能;通過(guò)排除性規(guī)則和修正性規(guī)則,優(yōu)化診斷性能;通過(guò)采集和開(kāi)放病例大數(shù)據(jù),用人工診斷的經(jīng)驗(yàn)進(jìn)一步完善該系統(tǒng)。
關(guān)鍵詞:專家系統(tǒng);犬?。辉朴?jì)算;混合推理;產(chǎn)生式規(guī)則
中圖分類號(hào) S854.4;TP182 文獻(xiàn)標(biāo)識(shí)碼 A 文章編號(hào) 1007-7731(2015)18-129-03
Research on the Diagnostic Expert System of Canine Diseases Based on Cloud Computing
Wu Liping1 et al.
(1Yangling Vocational and Technical College,Yangling 712100,China)
Abstract:Using the design of PHP+MySQL+AJAX technology and the PaaS-based cloud computing platform,a diagnostic expert system of canine diseases was established to meet the new requirements of canine disease diagnostic system in the era of“Internet plus”,big data and cloud computing,and to parallely solve the problems of the traditional diagnostic expert systems of canine diseases. In this new expert system,a hybrid reasoning mechanism and breadth-first search strategy,production rules are used to analyze the laboratory data and then functionally diagnose canine diseases; the diagnostic performance is optimized on the basis of exclusionary rule and correction rules; and the diagnostic expert system is further improved by artificial diagnosis experience by way of storage and opening up of big data of cases.
Key words:Expert system;Canine diseases;Cloud computing;Hybrid reasoning;Production rules
1 引言
專家系統(tǒng)是一個(gè)智能計(jì)算機(jī)程序系統(tǒng),它具有大量的專門知識(shí)與經(jīng)驗(yàn),應(yīng)用人工智能技術(shù)和計(jì)算機(jī)技術(shù),根據(jù)某領(lǐng)域一個(gè)或多個(gè)專家提供的知識(shí)和經(jīng)驗(yàn),進(jìn)行推理和判斷,模擬人類專家的決策過(guò)程,以便解決那些需要人類專家處理的復(fù)雜問(wèn)題。
20世紀(jì)70年代斯坦福大學(xué)所建立的MYCIN系統(tǒng)[1]是首個(gè)最具代表意義的疾病診斷專家系統(tǒng)。其后大量的疾病診斷專家系統(tǒng)被開(kāi)發(fā)出來(lái)[2-5]。進(jìn)入21世紀(jì),尤其是近5a來(lái),互聯(lián)網(wǎng)和移動(dòng)互聯(lián)網(wǎng)快速發(fā)展對(duì)疾病診斷專家系統(tǒng)也提出了新的要求。據(jù)統(tǒng)計(jì),截至2014年6月,我國(guó)網(wǎng)民規(guī)模達(dá)到6.32億[6],手機(jī)網(wǎng)民規(guī)模為5.27億[7]。在2015年政府工作報(bào)告中,首次提出要制定“互聯(lián)網(wǎng)+”行動(dòng)計(jì)劃,2015年中央一號(hào)文件也提出要大力發(fā)展互聯(lián)網(wǎng)農(nóng)業(yè)?;ヂ?lián)網(wǎng)已成為核心引擎,推動(dòng)社會(huì)創(chuàng)新[8]。與此同時(shí),數(shù)據(jù)也成為當(dāng)今時(shí)代最寶貴的資源,而臨床診療過(guò)程中產(chǎn)生的病歷數(shù)據(jù)是真正的大數(shù)據(jù)[9],然而以往的動(dòng)物疾病診斷專家系統(tǒng)的設(shè)計(jì)都受當(dāng)時(shí)運(yùn)行平臺(tái)性能的制約,無(wú)法使這些大數(shù)據(jù)發(fā)揮應(yīng)有的價(jià)值。為適應(yīng)現(xiàn)代計(jì)算機(jī)科技的發(fā)展水平及移動(dòng)互聯(lián)網(wǎng)的普及,現(xiàn)代的疾病診斷專家系統(tǒng)應(yīng)滿足這些要求:(1)用戶可使用各種智能終端通過(guò)移動(dòng)互聯(lián)網(wǎng)完成操作;(2)擁有海量存儲(chǔ)可保存用戶產(chǎn)生的病歷大數(shù)據(jù);(3)利用病歷大數(shù)據(jù)優(yōu)化系統(tǒng)的診斷性能;(4)計(jì)算和存儲(chǔ)資源可根據(jù)需要隨時(shí)伸縮配置;(5)敏捷開(kāi)發(fā),快速部署。
云計(jì)算是解決大數(shù)據(jù)的采集、存儲(chǔ)和處理等問(wèn)題的基礎(chǔ)。相比于傳統(tǒng)的計(jì)算,云計(jì)算有明顯的特征和優(yōu)勢(shì):在經(jīng)濟(jì)性方面,云計(jì)算強(qiáng)調(diào)構(gòu)建的低成本,云計(jì)算平臺(tái)能夠提供可用性、可伸縮性都很強(qiáng)的計(jì)算服務(wù);在應(yīng)用程序特征方面,云計(jì)算提倡效用計(jì)算(Utility Computing),消除了計(jì)算資源的超前供給與浪費(fèi)[10]。云計(jì)算平臺(tái)提供商提供的服務(wù)主要有IaaS(基礎(chǔ)設(shè)施即服務(wù))、PaaS(平臺(tái)即服務(wù))和SaaS(軟件即服務(wù))3種模式。本項(xiàng)目基于PaaS云計(jì)算服務(wù)模式,可以充分發(fā)揮云計(jì)算和大數(shù)據(jù)的優(yōu)勢(shì),提高開(kāi)發(fā)效率。
2 系統(tǒng)設(shè)計(jì)
2.1 系統(tǒng)架構(gòu) 本系統(tǒng)按照B/S網(wǎng)絡(luò)計(jì)算模式來(lái)設(shè)計(jì),這樣可將主要資源用于服務(wù)端軟件的開(kāi)發(fā)。服務(wù)端程序運(yùn)行環(huán)境為Apache+PHP,程序部署于PaaS云計(jì)算平臺(tái)新浪云SAE。SAE的體系結(jié)構(gòu)(圖1)包括3個(gè)層次:負(fù)載均衡、Web服務(wù)池和服務(wù)層,后者提供數(shù)據(jù)庫(kù)(MySQL)、緩存管理(Memcache)、存儲(chǔ)(Storage)和計(jì)劃任務(wù)(Cron)等服務(wù)。使用SAE的優(yōu)勢(shì)在于:便于根據(jù)負(fù)載變化靈活配置服務(wù)器資源;同時(shí),云計(jì)算平臺(tái)可提供代碼的分布式部署,以提高系統(tǒng)的安全性;在數(shù)據(jù)庫(kù)方面,SAE可對(duì)每組MySQL數(shù)據(jù)庫(kù)都采用一主庫(kù)、多從庫(kù)并加一備份庫(kù)的設(shè)計(jì),充分保證了數(shù)據(jù)庫(kù)的性能,以及數(shù)據(jù)庫(kù)的可靠性。
2.2 系統(tǒng)主要功能模塊 本專家系統(tǒng)分為化驗(yàn)單處理、癥狀處理、推理機(jī)、解釋器、病例庫(kù)管理、用戶管理、知識(shí)庫(kù)管理等7大主要功能模塊(圖2)。其中,癥狀處理模塊接受并處理用戶提交的癥狀數(shù)據(jù);化驗(yàn)單處理模塊可對(duì)用戶提交的化驗(yàn)單數(shù)據(jù)根據(jù)化驗(yàn)單處理規(guī)則進(jìn)行自動(dòng)分析,推導(dǎo)出相關(guān)的癥狀,并發(fā)送到癥狀處理模塊;推理機(jī)模塊根據(jù)病例中的癥狀信息(包括由化驗(yàn)單推導(dǎo)出的癥狀)依據(jù)診斷規(guī)則進(jìn)行分析,給出診斷結(jié)論;解釋器負(fù)責(zé)將推理機(jī)發(fā)送來(lái)的診斷結(jié)論或病例庫(kù)模塊發(fā)送的格式化病例信息進(jìn)行解釋,以便用戶閱讀和理解;病例庫(kù)模塊接受專業(yè)寵物醫(yī)師的人工診斷結(jié)論,用以修正診斷規(guī)則,提高診斷性能;知識(shí)庫(kù)維護(hù)模塊提供管理員后臺(tái)維護(hù)疾病庫(kù)、疾病診斷規(guī)則庫(kù)、化驗(yàn)單處理規(guī)則庫(kù)等數(shù)據(jù)庫(kù)的管理與維護(hù)功能。
3 知識(shí)獲取與表示
3.1 知識(shí)獲取 在專家系統(tǒng)中,知識(shí)的的數(shù)量和質(zhì)量是決定其性能的關(guān)鍵因素。本專家系統(tǒng)的知識(shí)庫(kù)(診斷規(guī)則庫(kù)和疾病資料庫(kù))由長(zhǎng)期進(jìn)行寵物疾病臨床診療及研究的專家,參考小動(dòng)物疾病方面的經(jīng)典著作,結(jié)合自身的臨床經(jīng)驗(yàn)研討而形成。對(duì)這些知識(shí),還需要轉(zhuǎn)換為便于計(jì)算機(jī)處理和分析的格式化文本。
3.2 診斷規(guī)則的表示 產(chǎn)生式專家系統(tǒng)中,知識(shí)的表示可分為事實(shí)的表示和規(guī)則的表示[12]。事實(shí)的表示比較簡(jiǎn)單,其形式可與數(shù)據(jù)表結(jié)構(gòu)對(duì)應(yīng)。規(guī)則的表示,本系統(tǒng)采用IF…THEN…形式的產(chǎn)生式規(guī)則。本項(xiàng)目中,規(guī)則被分為普通規(guī)則、排除性規(guī)則和修正性規(guī)則三種。普通規(guī)則用于通過(guò)癥狀推斷可能的疾病及該病的可能性,其形式為:IF symptom_id THEN disease_id [CF]。其中,symptom_id表示癥狀I(lǐng)D,可以用AND、OR和NOT等關(guān)鍵詞對(duì)多種癥狀進(jìn)行復(fù)雜的邏輯組合。disease_id表示由癥狀推導(dǎo)出的診斷結(jié)論,即疾病ID,CF表示該診斷的可信度。CF的確定對(duì)專家系統(tǒng)的性能至關(guān)重要,對(duì)于不準(zhǔn)確的CF及時(shí)修正。
某些癥狀的存在,直接可以排除某些疾病的可能性,例如公犬已去勢(shì)這一癥狀信息可直接排除睪丸炎等疾病。排除性規(guī)則的表示方式與普通規(guī)則類似,將CF設(shè)置為0即可。修正性規(guī)則是在普通規(guī)則的基礎(chǔ)上,根據(jù)癥狀的特點(diǎn),對(duì)相應(yīng)的普通規(guī)則的診斷結(jié)論可信度進(jìn)行加減。修正性規(guī)則不能被單獨(dú)應(yīng)用,必須在表達(dá)式中需要指明其目標(biāo)規(guī)則(靶規(guī)則)的ID。
4 推理機(jī)設(shè)計(jì)
在執(zhí)行疾病診斷的過(guò)程中,推理機(jī)的任務(wù)主要是通過(guò)自身的推理機(jī)制和搜索策略,從知識(shí)庫(kù)中搜索出相關(guān)的知識(shí),并根據(jù)知識(shí)推理出問(wèn)題的解答[13]。本系統(tǒng)的推理機(jī)采用正反向混合推理的機(jī)制,先通過(guò)正向推理,使用寬度優(yōu)先策略,盡可能多的獲得可能的疾病結(jié)論,然后使用排除性規(guī)則,從中將不可能的疾病結(jié)論排除掉,最后使用修正性規(guī)則,對(duì)剩余的結(jié)論可行度進(jìn)行調(diào)整,最后根據(jù)可行度高低進(jìn)行排序。
寬度優(yōu)先的搜索策略,對(duì)計(jì)算資源的需求比較高,當(dāng)并發(fā)請(qǐng)求的用戶過(guò)多,系統(tǒng)反應(yīng)出現(xiàn)明顯延遲的時(shí)候,系統(tǒng)提示用戶是否切換到快速診斷模式。快速診斷模式下,系統(tǒng)根據(jù)預(yù)先對(duì)疾病按照癥狀相關(guān)度做出的分組,提示用戶選擇一個(gè)最為典型的癥狀作為分組依據(jù),推理機(jī)將只在該組疾病中進(jìn)行搜索和推理。
5 功能實(shí)現(xiàn)及性能優(yōu)化
開(kāi)發(fā)環(huán)境的搭建需要安裝并配置Web服務(wù)器,編寫的代碼將被提交到服務(wù)器中進(jìn)行運(yùn)行和調(diào)試。服務(wù)器搭建于Ubuntu 12.04操作系統(tǒng)上,安裝并配置好Apache、PHP、MySQL等軟件。本系統(tǒng)使用了PHP開(kāi)發(fā)框架CodeIgniter,使用MVC設(shè)計(jì)模式。代碼編寫使用Eclipse for PHP IDE集成開(kāi)發(fā)環(huán)境。使用EcmaScript(JavaScript)實(shí)現(xiàn)用戶操作的交互,使用jQuery以提高前端開(kāi)發(fā)效率。用戶終端與服務(wù)器之間交換數(shù)據(jù)使用JSON格式。
本系統(tǒng)部署在基于PaaS模式的云計(jì)算平臺(tái)SAE上,平臺(tái)自身的特點(diǎn)保證了系統(tǒng)性能的優(yōu)越。對(duì)程序自身的優(yōu)化,則從以下幾個(gè)方面進(jìn)行:(1)緩存化驗(yàn)單處理規(guī)則、診斷規(guī)則、癥狀清單等使用頻率高但更新頻率低的數(shù)據(jù),減少對(duì)數(shù)據(jù)庫(kù)的存??;(2)推理機(jī)是影響診斷過(guò)程性能的瓶頸環(huán)節(jié),將推理機(jī)的核心功能用C語(yǔ)言編寫為PHP擴(kuò)展,提高系統(tǒng)的處理速度;(3)用戶輸入病歷信息頁(yè)面進(jìn)行靜態(tài)化;(4)優(yōu)化數(shù)據(jù)表結(jié)構(gòu),適度建立索引,數(shù)據(jù)查詢時(shí)只選擇必需的字段。
6 結(jié)語(yǔ)
疾病診斷專家系統(tǒng)問(wèn)世很早,不同時(shí)期都有不同的研究成果。近幾年來(lái),云計(jì)算和大數(shù)據(jù),以及“互聯(lián)網(wǎng)+”,對(duì)疾病診斷系統(tǒng)提出了新要求。在大數(shù)據(jù)時(shí)代,數(shù)據(jù)是最為寶貴的資源,隨著用戶的增多,使用的頻繁,用戶使用疾病診斷專家系統(tǒng)而產(chǎn)生的數(shù)據(jù),是真正的大數(shù)據(jù)。本系統(tǒng)在法律許可的框架下,將用戶診斷過(guò)程中產(chǎn)生的病例大數(shù)據(jù)經(jīng)過(guò)數(shù)據(jù)清洗后構(gòu)建病例庫(kù),開(kāi)放給行業(yè)專家進(jìn)行在線人工診斷,人工診斷的結(jié)論也作為大數(shù)據(jù)用于評(píng)估系統(tǒng)的性能,糾正系統(tǒng)診斷的偏差。本系統(tǒng)可為用戶進(jìn)行犬病診斷提供專業(yè)化的參考,同時(shí),其采集的病例數(shù)據(jù)也可為獸醫(yī)專業(yè)人員自我學(xué)習(xí)提供豐富的案例資源。
參考文獻(xiàn)
[1]Joeseph Giarratano,Gray Riley.Expert Systems Principles and Programming[M].北京:機(jī)械工業(yè)出版社,2000.
[2]金雪蓮.雞病專家診治系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)及畜禽飼料配方優(yōu)化系統(tǒng)的設(shè)計(jì)[D].吉林:吉林大學(xué).2002.
[3]Zvi Hochman,Roge Barlow,John F,et al.A multiple domain expert system for beef cattle farmers,Computers and Electronics in Agriculture,1991,6:143-156.
[4]姜國(guó)權(quán).基于WEB的犬病診斷專家系統(tǒng)的應(yīng)用研究[D].保定:河北農(nóng)業(yè)大學(xué).2006.
[5]余濤,靳志強(qiáng),楊磊.基于Web的犬病診斷專家系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].河北農(nóng)業(yè)大學(xué)學(xué)報(bào),2011,34(2).
[6]第34次中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告[EB/OL]. http://cnnic.cn/hlwfzyj/hlwxzbg/hlwtjbg/201407/P020140721507223212132.pdf,2014.
[7]2013-2014年中國(guó)移動(dòng)互聯(lián)網(wǎng)調(diào)查研究報(bào)告[EB/OL]. http://cnnic.cn/hlwfzyj/hlwxzbg/201408/P020140826366265178976.pdf,2014.
[8]到底什么是“互聯(lián)網(wǎng)+”[EB/OL].http://finance.eastmoney.com/news/1360,20150330491578067.html,2015.
[9]鄒北驥.大數(shù)據(jù)分析及其在醫(yī)療領(lǐng)域中的應(yīng)用[J].計(jì)算機(jī)教育,2014(7):24-29.
[10]鮑亮,陳榮編著.深入淺出云計(jì)算[M].北京:清華大學(xué)出版社,2012.
[11]作者未詳.新浪云[EB/OL]. http://www.sinacloud.com/doc/sae/tutorial/concept.html,2015.
[12]鐘昌樂(lè),鐘勇,馬春全.等.基于Spring框架的畜禽疾病診斷專家系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2010,27(4).
[13]滕文龍.基于人工智能的醫(yī)療診斷系統(tǒng)研究與設(shè)計(jì)[D].長(zhǎng)春:吉林大學(xué),2013.
(責(zé)編:張長(zhǎng)青)