韓金亮 張欣茹 范東浩 李卓辰
(中國(guó)礦業(yè)大學(xué) 徐州 221116)
醫(yī)療專家診斷系統(tǒng)是通過采集大量患者數(shù)據(jù)指標(biāo),用合適的算法進(jìn)行機(jī)器學(xué)習(xí)并在自我反饋的基礎(chǔ)上構(gòu)建數(shù)據(jù)庫(kù),并根據(jù)對(duì)應(yīng)的輸入數(shù)據(jù)與數(shù)據(jù)庫(kù)進(jìn)行匹配予以癥狀判斷的智能診斷機(jī)制。醫(yī)療自助診斷是現(xiàn)代醫(yī)療智能無人化的一個(gè)里程碑,其診斷的誤判率是衡量此機(jī)制的關(guān)鍵標(biāo)準(zhǔn)。通常,患者的數(shù)據(jù)采集具有時(shí)效性,因此實(shí)時(shí)采集數(shù)據(jù)診斷尤為重要。而在診斷機(jī)制的構(gòu)建上,為了使得數(shù)據(jù)庫(kù)不失一般性,其對(duì)采集數(shù)據(jù)的要求較高;為了使自助診斷模型的誤判率較低,在算法的選用和完善上仍然存在缺陷,特別是對(duì)于離散指標(biāo)的分類上如何解決過半自變量波動(dòng)和網(wǎng)絡(luò)過擬合而使得診斷出現(xiàn)誤差的問題。因此,醫(yī)療自助診斷建模和算法優(yōu)化一直是吸引著國(guó)內(nèi)外學(xué)者和業(yè)者研究與關(guān)注的重要課題。
目前,大部分醫(yī)療診斷數(shù)據(jù)要進(jìn)行人工分析,若將機(jī)器學(xué)習(xí)予以推廣就能極大降低醫(yī)學(xué)誤診[1~2]。國(guó)內(nèi)外近年來對(duì)智能醫(yī)療服務(wù)(Intelligent medical service)以及生物特征技術(shù)(Biometrics)的研究投入了較多的力量,特別在美國(guó)、歐洲等地,人工智能技術(shù)在醫(yī)療領(lǐng)域中的應(yīng)用已經(jīng)較為廣泛,在藥物挖掘[3]、精神健康、虛擬助理、醫(yī)學(xué)影像等領(lǐng)域體現(xiàn)較為顯著。雖然機(jī)器學(xué)習(xí)算法在不斷推廣,但是對(duì)于病情診斷的離散型目標(biāo)判斷的誤判率上任然有待完善,為此,基于病情診斷的離散型指標(biāo)運(yùn)用樸素貝葉斯網(wǎng)絡(luò)、離散型Hopfeild 神經(jīng)網(wǎng)絡(luò)兩種算法分別作診判模型判別對(duì)比,結(jié)合Matlab仿真模擬了預(yù)判處理,發(fā)現(xiàn)有監(jiān)督的機(jī)器學(xué)習(xí)對(duì)數(shù)據(jù)的預(yù)判效果更好。盡管該離散型Hopfeild 神經(jīng)網(wǎng)絡(luò)處理結(jié)果較可觀,但是受限于網(wǎng)絡(luò)規(guī)模從而影響了推廣能力。因此,為了更好地降低網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜性,有效避免網(wǎng)絡(luò)過擬合的缺陷,本文基于貝葉斯網(wǎng)絡(luò)和離散Hopfeild 神經(jīng)網(wǎng)絡(luò)兩種有監(jiān)督算法予以結(jié)合。
離散Hopfield 人工神經(jīng)網(wǎng)絡(luò)相比于樸素貝葉斯網(wǎng)絡(luò)誤判率相近,且機(jī)器學(xué)習(xí)在有監(jiān)督式學(xué)習(xí)的環(huán)境下,神經(jīng)網(wǎng)絡(luò)等部分深度學(xué)習(xí)方式準(zhǔn)確率受網(wǎng)絡(luò)規(guī)模限制,且自變量的波動(dòng)造成神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)極易出現(xiàn)過學(xué)習(xí)現(xiàn)象。鑒于離散神經(jīng)網(wǎng)絡(luò)和貝葉斯網(wǎng)絡(luò)存在相似之處,憑借著遵從馬爾科夫假設(shè),訓(xùn)練方式相似,且訓(xùn)練的計(jì)算量特別大的特點(diǎn),在一系列離散化判別分類問題上的求解也相似。為此,提出一種基于貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)下運(yùn)用離散Hopfeild神經(jīng)網(wǎng)絡(luò)的算法,避免因網(wǎng)絡(luò)規(guī)模受限制而導(dǎo)致網(wǎng)絡(luò)的推廣能力受限,降低了數(shù)據(jù)關(guān)聯(lián)度的敏感度,進(jìn)而降低了診斷誤判率。所提方法構(gòu)建的醫(yī)療診斷模型被運(yùn)用到醫(yī)療診斷機(jī)制,實(shí)際數(shù)據(jù)驗(yàn)證了誤判率的降低。
智能病癥診斷模型是在選取有價(jià)值的數(shù)據(jù)指標(biāo)基礎(chǔ)上,將指標(biāo)與結(jié)果構(gòu)建關(guān)系,通過機(jī)器學(xué)習(xí)算法完成數(shù)據(jù)庫(kù)的建立并自行完成更行,從而自助對(duì)未知病癥的患者予以診判結(jié)果的機(jī)制。
實(shí)際生活中,醫(yī)療行業(yè)存在著供不應(yīng)求的狀況,病情診判的工作確是重復(fù)不變的。對(duì)于重癥急診病人的病情需要實(shí)時(shí)采集相關(guān)數(shù)據(jù)進(jìn)行檢測(cè),表現(xiàn)出對(duì)分析需要的實(shí)時(shí)性與精確性。尤其是針對(duì)現(xiàn)代自主診斷機(jī)制的誤判率方面有待降低。
針對(duì)上述問題,為了不失一般性,本文選取失眠病癥為例考察對(duì)象,利用收集到的6350 名患有不同程度失眠的患者體征數(shù)據(jù)進(jìn)行整理[6],建立診斷失眠程度的自助診斷模型。該數(shù)據(jù)集提供有年齡(Age)、性別(Sex)、信度(Reliability)、精神質(zhì)(Psychoticism)、神經(jīng)質(zhì)(Nervousness)、性格(Char?acter)以及睡眠質(zhì)量(Sleep quality)這7類特征指標(biāo)。
其中睡眠質(zhì)量(Sleep quality)是病人的失眠程度。由于睡眠質(zhì)量這一指標(biāo)呈現(xiàn)為分級(jí)離散數(shù)據(jù)(0、1、2、3,失眠程度越高則離散數(shù)據(jù)越大),睡眠質(zhì)量(Sleep quality)在回歸或者判別體系中可以作為因變量,其余6 項(xiàng)指標(biāo)可以作為自變量進(jìn)行建模分析,建立自變量與因變量的回歸表達(dá)式,從而進(jìn)行自動(dòng)數(shù)據(jù)分析診斷常用的方法有貝葉斯網(wǎng)絡(luò)模型判別、支持向量機(jī)、神經(jīng)網(wǎng)絡(luò)模型等,我們從樸素貝葉斯網(wǎng)絡(luò)與離散Hopfeild 神經(jīng)網(wǎng)絡(luò)算法出發(fā)進(jìn)行專家診斷系統(tǒng)的構(gòu)建,并提出一種基于貝葉斯網(wǎng)絡(luò)改進(jìn)的離散Hopfeild神經(jīng)網(wǎng)絡(luò)進(jìn)行系統(tǒng)優(yōu)化。
表1 測(cè)試樣本數(shù)據(jù)集
貝葉斯網(wǎng)絡(luò)(Bayesian Network)呈現(xiàn)為一種模擬推理演化過程中因果關(guān)系的不確定性處理的概率圖模型[8~9],其網(wǎng)絡(luò)拓樸結(jié)構(gòu)為一種有向無環(huán)圖(DAG),其每個(gè)節(jié)點(diǎn)都表示一定的概率信息,即隨機(jī)變量。對(duì)于該網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),認(rèn)為有因果關(guān)系(或非條件獨(dú)立)的變量則用箭頭來連接。若兩個(gè)節(jié)點(diǎn)間以一個(gè)單箭頭連接在一起,表示其中一個(gè)節(jié)點(diǎn)是“因(parents)”,另一個(gè)是“果(children)”,兩節(jié)點(diǎn)就會(huì)產(chǎn)生一個(gè)條件概率值。
貝葉斯網(wǎng)絡(luò)的最大特點(diǎn)是用概率表示所有形式的不確定性,其結(jié)構(gòu)學(xué)習(xí)中主要的評(píng)分函數(shù)分為兩類:基于評(píng)分搜索的貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)學(xué)習(xí)算法、基于信息論的貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)學(xué)習(xí)算法[10~11]。
2.2.1 基于評(píng)分搜索的貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)學(xué)習(xí)算法
首先,將拓?fù)浣Y(jié)構(gòu)S 的先驗(yàn)知識(shí)表示為先驗(yàn)概率p(S);然后,利用貝葉斯公式,給定訓(xùn)練樣本集D時(shí),拓?fù)浣Y(jié)構(gòu)S的后驗(yàn)概率計(jì)算如下:
由于分母p(D)具有連續(xù)性且與拓?fù)浣Y(jié)構(gòu)S 無關(guān),因此只需最大化分子p(D|S)p(S)即可。基于貝葉斯評(píng)分函數(shù)學(xué)習(xí)算法的核心是對(duì)于訓(xùn)練集D 尋求具有最大后驗(yàn)概率(Maximum A Posteriori)的拓?fù)浣Y(jié)構(gòu)。從上式可以看出,分母p(D)與具體拓?fù)浣Y(jié)構(gòu)S無關(guān),因此通常采用如下函數(shù):
基于評(píng)分搜索的貝葉斯網(wǎng)絡(luò)算法需要隨著變量增加其運(yùn)算復(fù)雜性,所以當(dāng)變量較大時(shí),貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)空間劇增使得搜索用時(shí)較長(zhǎng),導(dǎo)致了準(zhǔn)確找到貝葉斯網(wǎng)絡(luò)分類器的最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu)非常困難。
2.2.2 基于信息論的貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)學(xué)習(xí)算法
基于信息論學(xué)習(xí)貝葉斯網(wǎng)絡(luò)的算法主要根據(jù)變量之間的依賴性建立貝葉斯網(wǎng)絡(luò)結(jié)構(gòu),其原理主要是最小描述長(zhǎng)度原理,綜合考慮了似然函數(shù)和計(jì)算復(fù)雜度的兩方面因素。如果對(duì)應(yīng)變量的網(wǎng)絡(luò)節(jié)點(diǎn)為Xi和Xj,則Xi和Xj的相互信息可以表示為
依據(jù)變量關(guān)系差異,貝葉斯網(wǎng)絡(luò)學(xué)習(xí)可分為有約束貝葉斯網(wǎng)絡(luò)學(xué)習(xí)和無約束貝葉斯網(wǎng)絡(luò)學(xué)習(xí)[8~9],有約束貝葉斯網(wǎng)絡(luò)要求變量對(duì)應(yīng)的節(jié)點(diǎn)是相互獨(dú)立的,條件約束較弱的情況下可以允許少量的節(jié)點(diǎn)是不獨(dú)立的;而無約束貝葉斯網(wǎng)絡(luò)允許變量節(jié)點(diǎn)是獨(dú)立的,學(xué)習(xí)無約束貝葉斯網(wǎng)絡(luò)需要引入評(píng)估函數(shù)。由于本案例為非文本型分類,因此為簡(jiǎn)化步驟選用樸素貝葉斯網(wǎng)絡(luò)即可。
建立樸素貝葉斯網(wǎng)絡(luò)分類器的步驟如下:
Step 1每個(gè)數(shù)據(jù)樣本用一個(gè)n 維特征向量X=( X1,X2,…,Xn )表示,分別描述對(duì)n 個(gè)屬性A1,A2,…,An 樣本的n個(gè)度量。
Step 2假定有m 個(gè)類C1,C2,…,Cm。給定一個(gè)未知的數(shù)據(jù)樣本X(即沒有類標(biāo)號(hào)),分類法將預(yù)測(cè)X 屬于具有最高后驗(yàn)概率(條件X 下)的類。樸素貝葉斯分類將未知的樣木分配給類Ci,當(dāng)且僅當(dāng):
這樣,最大化P(C i|X ),P(C i|X )最大的類Ci稱為最大后驗(yàn)假定,根據(jù)貝葉斯定理可得:
Step 3由于分母p(X)具有連續(xù)性且與拓?fù)浣Y(jié)構(gòu)無關(guān),只需要P( X|Ci )P( Ci )最大即可。如果類的先驗(yàn)概率未知,則通常假設(shè)這些類是等概率的,即 P(C1)=P(C2)=…=P(Cm),并 據(jù) 此 對(duì)P( X|Ci )P( Ci )最大化。類的先驗(yàn)概率可以用P(C)=si/s計(jì)算,其中si是類Ci中的訓(xùn)練樣本數(shù),s表示為訓(xùn)練樣本總數(shù)。
Step 4對(duì)于指標(biāo)較多的數(shù)據(jù)集,P( )Ci|X 的計(jì)算量會(huì)非常大。為降低計(jì)算量可以做類條件獨(dú)立的樸素假定。對(duì)于給定樣本的類標(biāo)號(hào),假定屬性值相互條件獨(dú)立,這樣有
其中概率P( Xk|Ci ),1 ≤k ≤n 可以由訓(xùn)練樣本估計(jì)。
Step 5最后對(duì)未知樣本X 分類。對(duì)每個(gè)類C,計(jì)算P( X|Ci )P( Ci )。當(dāng)且僅當(dāng)
時(shí)樣本X 被指派到類C;即x 被指派到使P( X|Ci )P( Ci )最大的類Ci。
依據(jù)上述步驟,對(duì)失眠病癥運(yùn)用樸素貝葉斯網(wǎng)絡(luò)算法建立預(yù)測(cè)模型。首先隨機(jī)選取600 名男性患者與1200 名女性患者作為網(wǎng)絡(luò)訓(xùn)練對(duì)象,當(dāng)網(wǎng)絡(luò)訓(xùn)練完畢后在分別選取若干男性患者與女性患者作模擬預(yù)測(cè)對(duì)象,計(jì)算預(yù)測(cè)正確率,評(píng)判網(wǎng)絡(luò)的優(yōu)劣性。
由于原病癥級(jí)別分為0、1、2、3 四個(gè)級(jí)別而不滿足樸素貝葉斯模型的二判別性,因此需要病癥級(jí)別先進(jìn)行預(yù)處理,假定級(jí)別0、1 為第Ⅰ類病癥、級(jí)別2、3 為第Ⅱ類病癥做處理,判別時(shí)先將樣本歸為第Ⅰ類或者第Ⅱ類,再在子類里運(yùn)用樸素貝葉斯模型進(jìn)行進(jìn)一步判別即可達(dá)到的目的。
對(duì)于第Ⅰ類或者第Ⅱ類的劃分步驟,可以采用貝葉斯網(wǎng)絡(luò),但目標(biāo)值的選定會(huì)對(duì)子網(wǎng)絡(luò)造成一定的干擾,因此對(duì)于大類的判別選用無具體目標(biāo)值的貝葉斯判別分析進(jìn)行分類操作。
以男性患者為例,對(duì)級(jí)別0、1 為第Ⅰ類病癥、級(jí)別2、3 為第Ⅱ類病癥做處理,設(shè)定通過概率為0.5,對(duì)完成分類的訓(xùn)練樣本使用貝葉斯判別,結(jié)果顯示誤判率為3.345%,得到兩大類的線性判別式如下:
表2 測(cè)試數(shù)據(jù)結(jié)果
將部分測(cè)試樣本結(jié)果進(jìn)行可視化,圖1 看出圓圈表示樣本的真實(shí)值,星號(hào)點(diǎn)表示貝葉斯網(wǎng)絡(luò)的預(yù)測(cè)值,若圓圈與星號(hào)點(diǎn)重合則表明該樣本判斷是正確的,進(jìn)而可以計(jì)算判斷的正確率。其中級(jí)別0 的預(yù)測(cè)正確率為76.2%、級(jí)別1 的預(yù)測(cè)正確率為91.5%、級(jí)別2 的預(yù)測(cè)正確率為81.3%、級(jí)別3 的預(yù)測(cè)正確率為88.2%,宏觀來看整體誤判率低于15%,說明的網(wǎng)絡(luò)優(yōu)越性高,而在對(duì)于級(jí)別0的判斷上有待改進(jìn)。
圖1 測(cè)試結(jié)果分布圖
2.3.1 離散型Hopfield人工神經(jīng)網(wǎng)絡(luò)的確定
Hopfield 網(wǎng)絡(luò)是二值神經(jīng)網(wǎng)絡(luò),神經(jīng)元的輸出只取1 和-1,所以,也稱離散Hopfield 神經(jīng)網(wǎng)絡(luò)(Discrete Hopfield Neural Network,DHNN)。
DHNN[7]結(jié)構(gòu)是一種單層,輸出為二值的反饋網(wǎng)絡(luò)。由三個(gè)神經(jīng)元組成的離散Hopfield 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 Hopfield神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
上圖中,第0 層僅僅代表網(wǎng)絡(luò)的輸入,不是實(shí)際神經(jīng)元,所以沒有計(jì)算功能;第1 層是神經(jīng)元,故而執(zhí)行對(duì)輸入信息與權(quán)系數(shù)的乘積求累加和,并經(jīng)非線性函數(shù)f 處理后產(chǎn)生輸出信息。f 是一個(gè)簡(jiǎn)單的閾值函數(shù),如果神經(jīng)元的輸出信息大于閾值θ ,那么神經(jīng)元輸出取1;反之,神經(jīng)元輸出取-1。
對(duì)于二值神經(jīng)元,它的計(jì)算公式如下:
其中,上式中有:
一個(gè)DHNN 的網(wǎng)絡(luò)狀態(tài)是輸出神經(jīng)元信息的集合,對(duì)于個(gè)輸出層是n 個(gè)神經(jīng)元的網(wǎng)絡(luò),其t時(shí)刻的狀態(tài)為一個(gè)n維向量:
因?yàn)閥(t)(i=1,2,3,…,n)可以取值為1 或1,故n 維向量y(t)有2n種狀態(tài),即網(wǎng)絡(luò)有2n種狀態(tài)??紤]DHNN 的一般節(jié)點(diǎn)狀態(tài),用yi(t)表示第j個(gè)神經(jīng)元,即節(jié)點(diǎn)j 在t 時(shí)刻的狀態(tài),則節(jié)點(diǎn)的下一個(gè)時(shí)刻(t+1)的狀態(tài)可以如下求得:
如果wij在i=j 時(shí)等于0,說明一個(gè)神經(jīng)元的輸出并不會(huì)反饋到其輸入,DHNN 稱為無自反饋的網(wǎng)絡(luò)。如果wij在i=j 時(shí)不等于0,說明一個(gè)神經(jīng)元的輸出會(huì)反饋到其輸入端,這時(shí),DHNN 稱為有自反饋的網(wǎng)絡(luò)[11~13]。
在上述已經(jīng)處理完善的數(shù)據(jù)基礎(chǔ)上,選取已知的6350 組數(shù)據(jù)進(jìn)行樣本采集訓(xùn)練,因?yàn)槟繕?biāo)分類是離散型的睡眠質(zhì)量(Sleep quality)四個(gè)等級(jí)指標(biāo),傳統(tǒng)的連續(xù)型神經(jīng)網(wǎng)絡(luò)已經(jīng)不再適用,所以這里選取離散型Hofield 神經(jīng)網(wǎng)絡(luò)[6~7]。在離散Hop?field 網(wǎng)絡(luò)中,所采用的神經(jīng)元是二值神經(jīng)元,因此,所輸出的離散值1和一1分別表示神經(jīng)元處于激活和抑制狀態(tài)。下面以串行(異步)工作方式為例說明Hopfield網(wǎng)絡(luò)的運(yùn)行步驟:
Step 1:對(duì)網(wǎng)絡(luò)進(jìn)行初始化。
Step 2:從網(wǎng)絡(luò)中隨機(jī)選取一個(gè)神經(jīng)元i。
Step 3:計(jì)算該神經(jīng)元i的輸人ui(t)。
Step 4:計(jì)算該神經(jīng)元i 的輸出vi(t+1),此時(shí)網(wǎng)絡(luò)中其他神經(jīng)元的輸出保持不變。
Step 5:判斷網(wǎng)絡(luò)是否達(dá)到穩(wěn)定狀態(tài)若達(dá)到穩(wěn)定狀態(tài)或滿足給定條件則結(jié)束;否則轉(zhuǎn)到步驟2 繼續(xù)運(yùn)行。
這里網(wǎng)絡(luò)的穩(wěn)定狀態(tài)定義為:若網(wǎng)絡(luò)從某時(shí)刻t 以后,狀態(tài)不再發(fā)生變化,則稱網(wǎng)絡(luò)處于穩(wěn)定狀態(tài)。即:
從DHNN 的結(jié)構(gòu)可以看出:它是一種多輸入、含有閾值的二值非線性動(dòng)態(tài)系統(tǒng)。在動(dòng)態(tài)系統(tǒng)中,平衡穩(wěn)定狀態(tài)可以理解為系統(tǒng)某種形式的能量函數(shù)在系統(tǒng)運(yùn)動(dòng)過程中其能量值不斷減小,最后處于最小值[14~15]。當(dāng)Hopfield 網(wǎng)絡(luò)的權(quán)系數(shù)矩陣W 是一個(gè)對(duì)稱矩陣,并且對(duì)角線元素為0,則這個(gè)網(wǎng)絡(luò)是穩(wěn)定的。即在權(quán)系數(shù)矩陣W中,如果:
則Hopfield 網(wǎng)絡(luò)是穩(wěn)定的。應(yīng)該指出,這只是Hop?field網(wǎng)絡(luò)穩(wěn)定的充分條件,而不是必要條件。在實(shí)際中有很多穩(wěn)定的Hopfield 網(wǎng)絡(luò),但是它們并不滿足權(quán)系數(shù)矩陣w是對(duì)稱矩陣這一條件。
2.3.2 智能病癥診斷Hopfield 神經(jīng)網(wǎng)絡(luò)建立與結(jié)果分析
在上述設(shè)計(jì)思路的基礎(chǔ)上面,以睡眠質(zhì)量等級(jí)劃分為案例,建立流程圖圖3來展示詳細(xì)步驟。
圖3 網(wǎng)絡(luò)建立流程圖
基于上述離散型神經(jīng)網(wǎng)路模型的建立,這里將6350 組患者睡眠質(zhì)量(Sleep quality)的4 個(gè)等級(jí)與6 個(gè)評(píng)價(jià)指標(biāo)作為樣本數(shù)據(jù)(詳見附錄)。將各個(gè)等級(jí)的樣本對(duì)應(yīng)的各評(píng)價(jià)指標(biāo)的平均值作為各個(gè)等級(jí)的理想評(píng)價(jià)指標(biāo),即Hopfield 神經(jīng)網(wǎng)絡(luò)的的平衡點(diǎn),經(jīng)過相關(guān)計(jì)算得到4 個(gè)等級(jí)的6 個(gè)理想評(píng)價(jià)指標(biāo)如表3。
表3 六項(xiàng)理想評(píng)價(jià)指標(biāo)
為了將數(shù)據(jù)可視化,將評(píng)價(jià)指標(biāo)映射為神經(jīng)元狀態(tài)時(shí)需要將其編碼化,這里規(guī)定當(dāng)大于或等于理想評(píng)價(jià)指標(biāo)的數(shù)值是設(shè)神經(jīng)元的狀態(tài)為1,反之,神經(jīng)元的狀態(tài)取-1。下圖中●表示神經(jīng)元的狀態(tài)為1,即大于或等于理想指標(biāo),反之則用〇表示。則睡眠質(zhì)量等級(jí)為0,1,2,3 的四種理想指標(biāo)的編碼情況依次如下:
圖4 四種理想指標(biāo)編碼圖
在用6350 個(gè)數(shù)據(jù)建立完模型的基礎(chǔ)上,選取部分已知數(shù)據(jù)進(jìn)行上述編碼規(guī)則的編碼,在這里為了給大家展示詳細(xì)的過程各個(gè)睡眠質(zhì)量級(jí)別只選取一個(gè)例子按照上述理想指標(biāo)進(jìn)行編碼,分別對(duì)應(yīng)的編碼情況如圖5。
待網(wǎng)絡(luò)創(chuàng)建完畢之后,將待分類的4 名患者睡眠質(zhì)量等級(jí)評(píng)價(jià)指標(biāo)的編碼作為Hopfield 神經(jīng)網(wǎng)絡(luò)的輸入,經(jīng)過一定次數(shù)的學(xué)習(xí)就可以得到仿真結(jié)果,其結(jié)果如圖6。
圖5 四個(gè)級(jí)別代表編碼圖
圖6 四個(gè)級(jí)別代表診斷編碼圖
將上述仿真結(jié)果與實(shí)際情況相比,可以看出分類大體相同,但是因?yàn)檫x取評(píng)價(jià)睡眠質(zhì)量等級(jí)的指標(biāo)只有六個(gè),所以當(dāng)過半指標(biāo)數(shù)據(jù)出現(xiàn)誤差的時(shí)候,網(wǎng)絡(luò)判斷就會(huì)出現(xiàn)誤差,就像上述所選擇的睡眠質(zhì)量等級(jí)為3的患者一樣。
而對(duì)于等級(jí)為0的患者,其正判率只有75.8%,等級(jí)為1 的患者為77.9%,等級(jí)為3 的患者為79.7%,由此看來Hopfield 神經(jīng)網(wǎng)絡(luò)對(duì)病情診斷的判斷有待改善。
相比于樸素貝葉斯網(wǎng)絡(luò)算法,離散Hopfield 人工神經(jīng)網(wǎng)絡(luò)的誤判率較高的原因在于兩點(diǎn):一是神經(jīng)網(wǎng)絡(luò)的反饋機(jī)制取決于權(quán)值與閾值的選取調(diào)整,對(duì)神經(jīng)元函數(shù)進(jìn)行激活,若自變量變化不當(dāng)則對(duì)權(quán)值與閾值的選取造成較大影響,從而影響網(wǎng)絡(luò)擬合過程中的參數(shù)調(diào)整速度與收斂程度;二是神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)上過于標(biāo)準(zhǔn)化,對(duì)變量變化的靈敏度過強(qiáng),一旦變量選取為整型變量則導(dǎo)致權(quán)值變化的步伐過大,導(dǎo)致擬合結(jié)果準(zhǔn)確性降低。因此,若考慮將貝葉斯網(wǎng)絡(luò)與離散Hopfield 神經(jīng)網(wǎng)絡(luò)進(jìn)行結(jié)合,將貝葉斯概率式作為輸入輸出變量,并同時(shí)利用貝葉斯網(wǎng)絡(luò)來對(duì)權(quán)值與閾值選取做調(diào)整,則可以有效降低單一使用離散Hopfield 人工神經(jīng)網(wǎng)絡(luò)的誤判率,并對(duì)級(jí)別0的判別有顯著性提高。
為了降低離散Hopfield 神經(jīng)網(wǎng)絡(luò)的復(fù)雜性,同時(shí)考慮自變量的波動(dòng)造成神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)極易出現(xiàn)過學(xué)習(xí)現(xiàn)象的問題,嘗試對(duì)離散型Hopfield 神經(jīng)網(wǎng)絡(luò)算法做如下改進(jìn)。
與貝葉斯網(wǎng)絡(luò)學(xué)習(xí)結(jié)構(gòu)相類似,離散型Hop?feild神經(jīng)網(wǎng)絡(luò)算法采用了二值化思想,使神經(jīng)網(wǎng)絡(luò)神經(jīng)元的狀態(tài)只有1和-1兩種情況,用來解決離散型分類預(yù)測(cè)問題。而在本案例的目標(biāo)值為離散整型數(shù)據(jù)但自變量為連續(xù)型變量的限制下,標(biāo)準(zhǔn)Hopfeild神經(jīng)網(wǎng)絡(luò)算法對(duì)連續(xù)型數(shù)據(jù)處理方式容易使網(wǎng)絡(luò)出現(xiàn)過度學(xué)習(xí)現(xiàn)象問題。為此,結(jié)合“探索與開發(fā)”的權(quán)衡思想,通過引入貝葉斯網(wǎng)絡(luò)理論,執(zhí)行貝葉斯網(wǎng)絡(luò)的持續(xù)學(xué)習(xí)過程來確定離散型Hop?feild的輸入?yún)?shù)與反饋參數(shù)。
3.1.1 貝葉斯網(wǎng)絡(luò)算法的引入
神經(jīng)網(wǎng)絡(luò)建模的實(shí)質(zhì)是找出樣本數(shù)據(jù)中的輸入和輸出之間的映射關(guān)系,從而對(duì)于未經(jīng)訓(xùn)練的輸入經(jīng)過對(duì)比匹配也能給出合適的輸出,即具備推廣能力。推廣能力是衡量神經(jīng)網(wǎng)絡(luò)性能好壞的重要指標(biāo)。在訓(xùn)練樣本容量大小一定的情況下,網(wǎng)絡(luò)的推廣能力與網(wǎng)絡(luò)的規(guī)模有直接關(guān)系。若神經(jīng)網(wǎng)絡(luò)的規(guī)模遠(yuǎn)小于其訓(xùn)練樣本集的大小,那么發(fā)生過擬合的概率就會(huì)很小。貝葉斯網(wǎng)絡(luò)算法的正規(guī)化方法是通過修正神經(jīng)網(wǎng)絡(luò)的訓(xùn)練性能函數(shù)來提高其推廣能力[10]。其改進(jìn)在網(wǎng)絡(luò)學(xué)習(xí)廣度與深度上均有體現(xiàn)。
1)在網(wǎng)絡(luò)學(xué)習(xí)廣度上的改進(jìn)
在神經(jīng)網(wǎng)絡(luò)的相關(guān)理論中[12],網(wǎng)絡(luò)學(xué)習(xí)的廣度取決于學(xué)習(xí)的正規(guī)化方法,在該方法下網(wǎng)絡(luò)性能函數(shù)改進(jìn)為
其中Eω表示網(wǎng)絡(luò)權(quán)重的平方和,ED為網(wǎng)絡(luò)響應(yīng)與目標(biāo)值的殘差平方和,α、β控制著其它參數(shù)(權(quán)及閾值)的分布形式,稱作超參數(shù)。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練目標(biāo)往往由超參數(shù)的大小決定,若α<<β,則訓(xùn)練算法目的在于盡量減小樣本數(shù)據(jù)的訓(xùn)練誤差;若α>>β,則訓(xùn)練算法目的在于使網(wǎng)絡(luò)產(chǎn)生更平滑的響應(yīng)。通過調(diào)整超參數(shù)的大小可以有效極小化目標(biāo)函數(shù),可以使網(wǎng)絡(luò)獲得較小的權(quán)值與閾值,在減少網(wǎng)絡(luò)訓(xùn)練誤差的同時(shí),又縮小了網(wǎng)絡(luò)的成本規(guī)模,降低網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜性,減小“過度訓(xùn)練”的概率。
常規(guī)的正則化方法很難確定其參數(shù)的大小。而采用貝葉斯理論可以在網(wǎng)絡(luò)訓(xùn)練過程中自適應(yīng)地調(diào)節(jié)正則化參數(shù)的大小,并使其達(dá)到最優(yōu)[12]。將超參數(shù)α、β視為隨機(jī)變量,則α、β的后驗(yàn)分布根據(jù)貝葉斯定理則有:
若使α、β的后驗(yàn)分布最大,只需使似然函數(shù)P( D|ω,β,M )最大。依據(jù)該計(jì)算規(guī)則將似然函數(shù)P( D|ω,β,M )作為擬合的誤差函數(shù),通過調(diào)整超參數(shù)的大小則極大程度降低了神經(jīng)元函數(shù)的錯(cuò)誤激活概率,同時(shí)縮小了網(wǎng)絡(luò)權(quán)值與閾值的調(diào)整步伐與調(diào)整次數(shù),理論上可以有效提高網(wǎng)絡(luò)訓(xùn)練廣度使得網(wǎng)絡(luò)精度得以提升。
2)在網(wǎng)絡(luò)學(xué)習(xí)深度上的改進(jìn)
除了將貝葉斯網(wǎng)絡(luò)理論應(yīng)用于神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)權(quán)值與閾值調(diào)整外,還可以針對(duì)本案例所在存在的整型離散變量問題進(jìn)行貝葉斯理論的改進(jìn)。
Hopfield 網(wǎng)絡(luò)是二值神經(jīng)網(wǎng)絡(luò),神經(jīng)元的輸出只取1 和-1,如果神經(jīng)元的輸出信息大于閾值θ ,那么神經(jīng)元輸出取1;反之,神經(jīng)元輸出取-1;該網(wǎng)絡(luò)結(jié)構(gòu)對(duì)于變量的處理方式為均值化處理,這樣的處理方式對(duì)異常值的處理不夠到位,導(dǎo)致網(wǎng)絡(luò)學(xué)習(xí)的反饋過程出現(xiàn)偏差。若將各指標(biāo)變量數(shù)據(jù)用貝葉斯網(wǎng)絡(luò)算法轉(zhuǎn)化為概率式,則在反饋過程中依據(jù)概率值的大小異常值的影響隨著學(xué)習(xí)深度而逐漸降低,同時(shí)避免整型變量帶來的調(diào)整步伐過大影響,達(dá)到避免“過度學(xué)習(xí)”效果的深度學(xué)習(xí)方式。
3.1.2 改進(jìn)離散型Hopfeild神經(jīng)網(wǎng)絡(luò)算法的實(shí)現(xiàn)
基于上述分析,將若將各指標(biāo)變量數(shù)據(jù)用貝葉斯網(wǎng)絡(luò)算法轉(zhuǎn)化為概率式,基于貝葉斯網(wǎng)絡(luò)優(yōu)化下的離散型Hopfeild神經(jīng)網(wǎng)絡(luò)算法的流程如下:
Step 1:變量初始化,進(jìn)行貝葉斯概率模型轉(zhuǎn)換為概率表達(dá)式。
Step 2:假定有m 個(gè)類C1,C2,…,Cm 使用分類法將預(yù)測(cè)X 屬于具有最高后驗(yàn)概率(條件X 下)的 類。當(dāng) 且 僅當(dāng)P(C i|X )>P(C j|X ),1 ≤j ≤m,j ≠i將未知的樣木分配給類Ci。
Step 3:對(duì)P( X|Ci )P( Ci )最大化。類的先驗(yàn)概率可以用P(C)=si/s 計(jì)算,其中si是類Ci中的訓(xùn)練樣本數(shù),s表示為訓(xùn)練樣本總數(shù)。
Step 4:將x 被指派到使P( X|Ci )P( Ci )最大的類Ci。并將指派率作為新的變量對(duì)網(wǎng)絡(luò)進(jìn)行初始化。
Step 5:從網(wǎng)絡(luò)中隨機(jī)選取一一個(gè)神經(jīng)元i。計(jì)算該神經(jīng)元i的輸人ui(t)與輸出vi(t+1),此時(shí)網(wǎng)絡(luò)中其他神經(jīng)元的輸出保持不變。
Step 6:超參數(shù)的確定。使用貝葉斯神經(jīng)網(wǎng)絡(luò)算法對(duì)α、β超參數(shù)進(jìn)行參數(shù)估計(jì),使網(wǎng)絡(luò)中的神經(jīng)元i產(chǎn)生更為平滑的響應(yīng)。
Step 7:調(diào)整權(quán)值與閾值,使得每一次反饋調(diào)整后使似然函數(shù)P(D|ω,β,M)、 變大。
Step 8:判斷網(wǎng)絡(luò)是否達(dá)到穩(wěn)定狀態(tài)若達(dá)到穩(wěn)定狀態(tài)或滿足給定條件則結(jié)束;否則轉(zhuǎn)到步驟2 繼續(xù)運(yùn)行。
結(jié)合上述優(yōu)化后的算法,重新對(duì)6350 組數(shù)據(jù)進(jìn)行診判,各個(gè)等級(jí)睡眠質(zhì)量的預(yù)判結(jié)果與改進(jìn)之前的兩種有監(jiān)督算法下的誤判率如下。
表4 不同算法下的測(cè)試結(jié)果比較
通過表4 以及圖7 的可視化分析的比可以看出,利用貝葉斯正則化神經(jīng)網(wǎng)絡(luò)對(duì)測(cè)量數(shù)據(jù)進(jìn)行誤差修正后,相比修正前的精度有明顯的提高,效果比較理想,所建立的改進(jìn)Hopfeild 神經(jīng)網(wǎng)絡(luò)模型具有很好的泛化能力。
圖7 不同機(jī)器學(xué)習(xí)方法下的誤判率比對(duì)
在上述工作里依次使用了樸素貝葉斯網(wǎng)絡(luò)算法與離散Hopfield 人工神經(jīng)網(wǎng)絡(luò)分類算法以及基于貝葉斯算法下改進(jìn)的Hopfield 神經(jīng)網(wǎng)絡(luò)算法來對(duì)醫(yī)療分級(jí)診斷的問題展開研究,得到如下結(jié)論:
1)對(duì)于貝葉斯網(wǎng)絡(luò)算法,在大部分離散分類或者判別問題中都較多應(yīng)用,在部分場(chǎng)合甚至優(yōu)于深度學(xué)習(xí)。本案例依據(jù)貝葉斯理論,先將樣本進(jìn)行二分類處理,將0、1級(jí)歸為第一類,2、3歸為第二類處理,隨后在子類中分別應(yīng)用樸素貝葉斯網(wǎng)絡(luò)進(jìn)行分級(jí)判別,最后得到整體誤判率低于15%,信度較高。
2)對(duì)于神經(jīng)網(wǎng)絡(luò)算法的選用,考慮到本案例的目標(biāo)值為離散整型數(shù)據(jù),因此選用離散Hopfield 人工神經(jīng)網(wǎng)絡(luò)分類算法來進(jìn)行案例研究。由于該神經(jīng)網(wǎng)絡(luò)神經(jīng)元的狀態(tài)只有1和-1兩種情況,所以將評(píng)價(jià)指標(biāo)映射為神經(jīng)元狀態(tài)時(shí)需要將其編碼化。為了將數(shù)據(jù)可視化,這里規(guī)定當(dāng)大于或等于理想評(píng)價(jià)指標(biāo)的數(shù)值是設(shè)神經(jīng)元的狀態(tài)為1,反之,神經(jīng)元的狀態(tài)取-1,誤判率有待提高。
為避免因網(wǎng)絡(luò)規(guī)模限制網(wǎng)絡(luò)推廣,降低模型對(duì)數(shù)據(jù)關(guān)聯(lián)的敏感度,有效降低診斷機(jī)制的誤判率,提出了基于貝葉斯網(wǎng)絡(luò)優(yōu)化下的離散型Hopfeild神經(jīng)網(wǎng)絡(luò)算法,通過調(diào)整貝葉斯的超參數(shù)的大小可以有效極小化目標(biāo)函數(shù),可以使網(wǎng)絡(luò)獲得較小的權(quán)值與閾值,在減少網(wǎng)絡(luò)訓(xùn)練誤差的同時(shí),又縮小了網(wǎng)絡(luò)的成本規(guī)模,降低網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜性,減小“過度訓(xùn)練”的概率。并且通過比較優(yōu)化前后誤判率數(shù)據(jù)得到:該優(yōu)化后的算法可以有效降低誤判率。
本文以失眠病癥為代表性案例模擬醫(yī)療專家診斷系統(tǒng)進(jìn)行醫(yī)療自主診斷,通過分析有監(jiān)督式學(xué)習(xí)的貝葉斯網(wǎng)絡(luò)、離散Hopfeild 人工神經(jīng)網(wǎng)絡(luò)兩種算法下的數(shù)據(jù)診判,鑒于誤判率仍待降低,提出了基于貝葉斯網(wǎng)絡(luò)優(yōu)化下的離散型Hopfeild 神經(jīng)網(wǎng)絡(luò)算法,通過調(diào)整貝葉斯的超參數(shù)的大小可以有效極小化目標(biāo)函數(shù),使網(wǎng)絡(luò)獲得較小的權(quán)值與閾值,在減少網(wǎng)絡(luò)訓(xùn)練誤差的同時(shí),又縮小了網(wǎng)絡(luò)的成本規(guī)模,降低網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜性,減小“過度訓(xùn)練”的概率。避免因網(wǎng)絡(luò)規(guī)模限制網(wǎng)絡(luò)推廣,降低模型對(duì)數(shù)據(jù)關(guān)聯(lián)的敏感度。仿真結(jié)果表明:基于貝葉斯網(wǎng)絡(luò)優(yōu)化下的離散型Hopfeild 神經(jīng)網(wǎng)絡(luò)算法可以有效降低診斷的誤判率,在醫(yī)療專家診斷系統(tǒng)中,可達(dá)到高效準(zhǔn)確的診斷方案與決策,有效推動(dòng)醫(yī)療行業(yè)的智能化發(fā)展。