袁付勇,畢 利
(寧夏大學 信息工程學院,寧夏 銀川 750021)
中醫辨證是對癥狀信息的整合與分析,要求醫師有扎實的中醫知識和豐富的診斷經驗,給中醫的傳承和應用帶來了挑戰。智能診斷是中醫信息化發展中重要的一部分,利用人工智能算法實現疾病診斷可以幫助醫生更全面、準確地確定病情。國外對中醫應用的研究也在不斷深入,包括對中醫診斷決策算法的研究[1-3]、中醫藥的病理研究[4]等,其中診斷決策算法以決策樹、神經網絡為主。國內對中醫的研究更為重視,中醫智能化進程不斷加快[5],診斷決策算法的設計顯得尤為重要,很多智能算法都曾被嘗試應用到中醫診斷中,其中人工神經網絡算法憑借較好的非線性映射能力、自學習能力被廣泛應用于中醫診斷的各個層面[6,7],如BP神經網絡[8,9]、RBF神經網絡[10]、PNN神經網絡等[11,12]。隨著智能診斷應用性要求的不斷提高,針對單種疾病的智能診斷無法滿足應用的需求,而單個神經網絡算法在應用到多種疾病混合預測時很難達到預期準確率。DS證據理論是處理不確定問題的概率組合理論,可融合不同來源的數據,在信息融合方面有很好的效果。然而對證據源本身的準確性并未進行充分考慮。基于此,給出加入證據源準確性系數的方法對DS證據理論進行改進,并以不同神經網絡的預測結果作為不同證據源的基本信度函數,設計基于改進DS證據理論的診斷模型,實現對3種疾病的混合預測。
人工神經網絡是對人腦神經處理事物的一種模擬,通過神經元組成網絡進行數據處理,MP模型是較早且影響力最大的神經元模型,其模型如圖1所示。

圖1 MP神經元模型
圖1中,x1…xi…xn是神經元的輸入值,yo是輸出值,wi是各個輸入值對應的權值,b是神經元的閾值,f(.)是激活函數。神經元的輸出如式(1)
(1)
激活函數也有很多種,如線性函數、S型(Sigmoid)函數、RBF(radial basis function)函數等。由于激活函數和拓展方式的區別,人工神經網絡又分為很多類。在中醫領域,病例數據中癥狀往往具有多值屬性、多類標的特點,辨證也具有復雜性,使得癥狀與結果之間往往呈非線性關系,而神經網絡憑借網絡結構能夠完成對數據的非線性映射,在解決這類問題上比較適用。在所設計的實驗中,單個網絡的預測模型選用了拓撲結構不同的BP神經網絡、RBF神經網絡、PNN神經網絡和LVQ神經網絡。
BP神經網絡是一種多層前饋網絡,網絡結構為輸入層、隱含層和輸出層,每兩層之間通過線性變換來連接,隱含層的激活函數一般為S型函數,如式(2)、式(3)
(2)
(3)
其中,xi為神經元的輸入值,f(hi)為神經元的輸出值。BP神經網絡的性能由隱含層節點數、各層之間的連接權值、各神經元的閾值共同決定。常見的BP神經網絡的結構比較簡單,是最早被應用于疾病預測領域的網絡結構,為智能算法應用到疾病診斷領域的實現開拓了思路和方法,但該神經網絡由于自身結構的局限性,在應用時也存在一些難以解決的問題,包括模型結構上如何選擇最優的隱含層神經元數目、如何解決網絡運算過程中的局部最優困境,如何提高在多預期結果條件下的預測準確率等。
RBF神經網絡是一種單隱層前饋神經網絡,計算過程比BP網絡更復雜,擁有更好的非線性擬合能力。相比于BP神經網絡,輸入層到隱含層為非線性變換。隱含層的激活函數一般使用徑向Gaussian函數,公式如式(4)
(4)

PNN神經網絡是一種雙隱層前饋網絡,結合了密度函數估計和貝葉斯決策理論。網絡結構分為輸入層、模式層、求和層和輸出層,屬于完全前向的計算過程,節省了反向誤差傳播的計算時間,其輸入層到模式層實現非線性變換,求和層對類別進行密度函數估計。模式層的激活函數為徑向基函數,輸出值為一個標量。模式層的激活函數如式(5)
(5)
其中,x表示輸入向量,xij表示第i類的第j個中心點,δ表示平滑參數,d為前一層的維數。PNN網絡的性能主要受模式層平滑因子的影響。相對于RBF神經網絡,概率神經網絡在判定類別過程中加入了密度函數估計與貝葉斯決策,不需要反向調參,學習時間短,同時具備容錯性,但對訓練集的代表性要求較高,計算過程中需要的存儲空間也較大。
LVQ神經網絡是對SOM網絡(Kohonen自組織網絡)的一種改進網絡。該網絡結構分為輸入層、競爭層和輸出層,不同于另外3種網絡模型,LVQ神經網絡在模型訓練學習過程中結合了有監督學習和競爭學習兩種方式對競爭層的參數進行調整,其中輸入層和競爭層之間為全連接,競爭層和輸出層為部分連接。LVQ神經網絡的隱含層按照類別數目分成多個神經元組,神經元組的每個神經元用輸入層和隱含層之間的權值作為參考矢量的分量,在訓練過程中修改權值來更接近預期結果。其中網絡中輸入向量和競爭層神經元的距離計算過程如式(6)
(6)
其中,R表示輸入向量的維度,xj表示輸入層第j個神經元,wij表示輸入層第j個神經元到競爭層第i個神經元的權值,通過計算距離來得到獲勝神經元。LVQ神經網絡的優點在于不必對向量進行規格化,可以直接對輸入向量進行分類,結構較為簡單且效率高。但某些情況下,輸入層到競爭層之間的權值可能不收斂,另外LVQ神經網絡在訓練過程中忽略了輸入層各維對結果的影響性差異,也可能會帶來誤差。
DS證據理論是用于整合多源不確定信息的常用推理方法,是一種有效的信息融合理論[13],可以滿足比概率論更弱的條件,在醫學診斷、組合決策、故障診斷和物聯網等領域有廣泛的應用[14-17]。
定義1 辨識框架。即所研究命題在所有可能情況下出現的結果的并集,辨識框架是證據理論最基礎的概念,描述了最終所有可能出現的結果,定義如下
θ={θ1,θ2,…,θi,…,θn}
(7)
其中,θi表示命題可能出現的一種結果,結果之間互斥,在一種情況下只可出現一種結果,n表示結果的個數。
定義2 基本信度賦值。又稱mass函數,是對辨識框架里出現某些結果子集的基本概率分布,m(A)表示對結果子集A的基本信度賦值,定義如下

(8)
定義3 基本信度函數。基本信度函數是出現某個結果時,對所有支撐該結果命題為真的結果子集進行基本信度賦值求和,決定了對該事件的確認程度,定義如下

(9)
由經典的DS證據理論知,在證據源之間不完全沖突的前提下,運用Dempster規則可以完成不同證據源之間的證據組合,以兩個證據源進行證據組合來舉例,m1、m2表示兩個不同證據源對于得到結果A事件的基本信度函數,則兩者組合所得到的事件A發生的信任確認程度如式(10)
(10)

本文的研究是在多證據源進行組合的實驗環境下進行,根據組合規則的特點,當證據源增加時,組合規則滿足結合律和交換律,在此設共有n個不同證據源,各證據源的基本信度函數分別為m1、m2、…、mn,則關于結果事件A經過證據組合而得到的基本信任函數如式(11)

(11)
為了計算方便,式(11)中的歸一化因子通過式(12)的方式得到
(12)
DS證據理論自1976年被提出后,因其在應用過程中可以滿足比貝葉斯更弱的條件,實現多途徑獲取知識的有效融合,通過基本信度函數更直觀表達命題結果的確定性,得到廣泛的應用,但對DS證據理論的改進也從未停止過。DS證據理論在應用中出現的弊端主要體現在3個方面,首先是對證據的約束性,DS證據理論要求證據必須是獨立的,且證據源之間盡量避免高沖突情況,否則就會出現“Zadeh悖論”之類的反預期結果;其次是辨識框架中元素的問題,當元素遞增時,在計算過程中所產生的焦元會呈指數形式變大,消耗的計算時間也會增加,出現焦元爆炸問題;最后是證據合成的準確性問題,經典DS證據理論在合成過程中并未考慮證據源自身的可信度,也并未考慮證據源所提供證據的準確性,默認全部證據源準確性相同,這種做法在已知證據源準確性不一致情況下并未充分利用已知信息,在合成結果上可能存在誤差。
結合本文實驗場景,對于經典證據理論存在的問題進行分析如下:①針對證據組合中證據之間高沖突的問題,一般通過改進組合規則或對實驗數據進行修正兩種方式來解決,改進組合規則的相關算法有很多,例如李永忠等認為當證據沖突過大時應考慮證據的相似程度,通過計算證據間的相似程度求得權系數,在組合時考慮權系數的影響,以此為思路提出了對應的證據組合公式[18],但改進組合規則也會帶來一些新的問題,經過研究李永忠、王力[19]等學者的組合規則,發現前兩種組合方式增加了證據組合過程的計算量,第三種組合方式破壞了證據組合規則的交換律和結合律,由此可見,對組合規則的修改伴隨著計算量增加或者組合優良特性被破壞的問題。而降低沖突的第二種方式,即對實驗數據進行修正,例如徐凱通過修改原數據,利用指數形式替換原來的基本信度函數,使得合成過程中不會出現0值焦元[20]。這種方式使證據在符合邏輯的基礎上又避免相互之間的高沖突問題,基于此,本文采取對實驗數據進行修正的方式避免高沖突,具體實現為將單網絡模型的預測結果設定為信度賦值是0.8,其余兩個非預測結果的信度賦值為0.1,避免0值焦元的產生,減少了Dempster規則整體丟棄式處理方式帶來的誤差。②針對辨識框架中元素個數的問題,當辨識框架中元素較多時,通常通過兩種方式進行改進:一是根據證據特點,設計快速算法進行計算;二是通過某種規則來減少焦元,從而進行近似計算。因本文所設計的實驗選取數據為患痹病、濕阻、感冒3種病其中之一的患者數據,不存在同時多種病并發的病例,根據證據理論關于辨識框架的定義可知,元素數目為3個,不足以出現焦元爆炸類問題,不宜采用近似計算,計算過程較少,可以直接采用組合方式。③對于證據合成的準確性問題,大多數學者是對證據權重進行了調整,例如如李金玉等提出利用AHP法計算證據中各個證據的權重[21],王法玉等提出采用模糊綜合評價法結合AHP法計算證據的權重[22],但該類方法僅是對證據完成權重調整,忽略了證據源準確性帶來的影響。本文提出對各證據源準確性進行分析,在證據組合過程中考慮其帶來的影響,引入證據源準確性系數λ來表示各個證據源的可信度,改進的DS理論組合規則計算如式(13)
(13)
其中,λA表示關于命題A的各證據源綜合可信度,λA的計算方式如式(14),其中n是證據源的個數,λ1…λn為各個證據源的可信度,應滿足0≤λi≤1。因為可信度系數的存在,各證據源的數據會有一部分處于未知領域,加入該系數后,處于未知領域的信息將被保留為可信比例的信度函數

(14)
為了驗證方法的有效性,給出λ影響效果較小和較大的兩個算例,設A、B、C為3個不同結果事件,m1、m2、m3、m4為4個不同證據源,合成結果見表1。
從驗證算例的結果可以看出,在一般情況下,利用兩種組合規則所得到的結果均符合預期結論,相比之下,加入證據源準確性系數后,改進規則的預期結果的基本信任函數略小于經典DS證據理論,并不改變結果的正確性。但當證據源所提供的基本信度函數為第二種情況時,利用DS理論所得到的結果無法判斷A、B中哪個的可能性更高,但加入證據源準確性系數后,得到的結果為m(A)小于m(B),這種結果更為符合預期。

表1 DS證據理論組合驗證算例
實驗根據病人癥狀對病名進行預測,預期結果為痹病、濕阻、感冒,每個病例的診斷結果為一種病名,不考慮多種病同時存在的情況。在預測前需要訓練并保存神經網絡組模型:首先對數據進行預處理,再利用預處理后的數據訓練4種不同的神經網絡,獲取4種網絡的準確率,并保存訓練得到的神經網絡組;模型在預測時,直接調用神經網絡組進行預測,對所有預測結果進行證據組合,在證據組合計算時利用改進的DS證據理論組合規則,將網絡的準確率轉換為證據源準確性系數,經過證據組合得到最終的信度函數。模型的預測流程如圖2所示。

圖2 預測流程
依據模型設計的設想,具體實現如下:
輸入:原始數據集
輸出:預測的疾病編號
步驟1 將原始數據集進行預處理,并隨機分為90%和10%的兩份,分別作為訓練集和測試集;
步驟2 利用訓練集數據對4種類型的網絡分別進行訓練并保存(BP神經網絡、RBF神經網絡、LVQ神經網絡、PNN神經網絡);
步驟3 載入保存的4個網絡模型,對測試集進行預測,產生4組預測值,將預測值轉化為3種病的基本信度賦值;
步驟4 對步驟3所得到的4組基本信度賦值利用改進的DS證據理論進行證據組合,得出每種病的基本信度函數。選取最大的一項作為最終的預測結果,若沒有則提示預測失敗,算法結束。
4.1.1 數據集
本文所用數據集為某中醫院2004-2016年的真實診斷數據,數據集中包含性別、癥狀、舌像、脈象、對應疾病等信息,共3個數據表:ClinicPatient、GlobalSickDrug、GlobalSickinfo,依次表示病人信息、用藥信息、診斷信息。
4.1.2 評價指標
實驗通過模型預測的準確率、100條數據預測用時這兩個量化指標對模型進行評價。
步驟1 根據實驗的需要,從數據庫中分離出病人的IC卡號、性別、就診時間、癥狀、舌像、脈象、證候7條屬性作為初始數據;
步驟2 利用IC卡號和就診時間區分不同的病案,刪除相同病案,刪除癥狀屬性、舌像屬性、脈象屬性不完整的病案,最終保留3種證候各1500條的數據集;
步驟3 對癥狀語句進行分詞,通過詞頻匯總統計出頻率較高的癥狀,建立癥狀值字典;并用相同的方法建立舌像值字典、脈象值字典;
步驟4 讀取每條病例數據,通過同義詞替換對數據進行規范化,用癥狀值、舌像值、脈象值字典分別對癥狀屬性、舌像屬性、脈象屬性進行映射,出現癥狀記為1,未出現記為0,性別分別用0、1表示,以上屬性共96項;3種證候使用0、1、2進行表示,得到用于訓練和測試的數據矩陣。
BP神經網絡:通過網格搜索的方法尋找最佳隱含層節點數,節點數從5遞增到20,每個節點的準確率取5次驗證準確率的平均值,準確率統計如圖3所示。

圖3 BP神經網絡準確率統計
最終選取隱含層節點數為9,此時模型的平均準確率為80%,模型保存為BP_net。
RBF神經網絡:通過網格搜索的方法尋找最佳spread值,spread從0.4遞增至1.6,每次增加0.1,每個spread的準確率取5次驗證的平均值,準確率統計如圖4所示。

圖4 RBF神經網絡準確率統計
最終選取的spread值為1,此時模型的平均準確率為81%,保存為RBF_net。
LVQ神經網絡尋找最佳隱含層節點數同BP網絡,最終選擇隱含層節點為30,平均準確率為75%,保存為LVQ_net;PNN神經網絡取默認參數,保存為PNN_net,平均準確率為89%,神經網絡組訓練完成。
調用之前4個網絡模型,將測試集輸入網絡,生成4組預測值。將4組結果轉化成對3種疾病的基本信度賦值:將預測編號所對應病名的基本信度賦值確定為0.8,其余兩種確定為0.1。之后進行證據組合,計算過程如式(13),得到的結果表示3種病的最終基本信度函數。
實驗將從測試集中隨機選取100條數據測試,單獨使用BP網絡、RBF網絡、LVQ網絡、PNN網絡分別進行預測,記錄預測時間和準確率,再利用本文所提出的模型進行預測,與上述4種網絡進行對比進行分析。
4.5.1 證據源獨立性分析
在進行實驗結果分析前,首先進行多次預測實驗,檢驗證據源之間是否獨立,是否符合4種網絡預測屬于不同證據源。經過多次實驗,4個單獨神經網絡模型的錯誤預測序號不存在雷同,隨機選取一次實驗,對5個模型的錯誤預測序號統計見表2。

表2 錯誤預測樣本統計
分析可知,4種神經網絡因為訓練過程和分類方式不同,用不同的計算過程對數據完成了處理,造成各模型分類結果也不完全相同,符合DS證據理論對證據源相互獨立的要求。
4.5.2 實驗結果對比分析
記錄預測時間方面,取5次預測時間的平均值;記錄預測準確率方面,對測試集進行10次隨機選取100條數據的測試,取其預測的準確率;統計結果見表3。

表3 各模型平均準確率統計
通過對比結果可以看出,基于ANN和改進DS理論的預測模型在平均準確率上高于所有單個網絡,準確率保持在90%以上,其余4個網絡準確率在75%至89%不等,分析可知,由于所有神經網絡的預測準確率都在70%以上,對于單個樣本而言,加入改進的DS證據理論后,隨著概率的合成會逐漸增大預測的準確率,因此得到比單個網絡模型更優的結果。在預測用時上,本文提出的模型耗時最長,這是因為該模型的預測是在4組網絡模型的基礎上進行,預測時間為4個網絡并行所用時間與證據組合計算時間之和,但100條數據的整體響應時間控制在0.15 s之內,在實時診斷中是能夠接受的。
利用證據源準確性系數對DS證據理論進行了改進,按證據源的可信度對證據合成進行加權處理,解決了不同準確度的證據源合成問題。將改進的DS證據理論應用到中醫診斷模型中,以多個不同神經網絡的預測確定基本信度函數,以各個神經網絡的準確度確定證據源的準確性系數,最后應用改進的DS證據理論進行證據組合。實驗結果表明,該模型對3種疾病的預測準確率高于單個神經網絡,且穩定保持在90%以上,對更多種疾病的混合預測具有可擴展性;該模型的預測用時控制在可接受時間范圍內,可以應用到對特定疾病的實時診斷中。但該模型所適用的情景為3種疾病的混合預測,仍不能滿足實時輔助診斷的要求,在后續的研究中將增大數據集,擴展疾病種類,探究在更大數據集情況下,如何更好兼顧準確率和響應時間。