程順達(dá),祝 婕,夏 芳
(河北省中醫(yī)院信息中心,河北石家莊 050000)
隨著信息技術(shù)的不斷發(fā)展,智能化的疾病輔助診斷在解決專業(yè)醫(yī)師人力缺乏的同時(shí),有效提升了診療效率,這樣能夠促進(jìn)整體醫(yī)療水平的快速提高[1]。醫(yī)療輔助設(shè)備的廣泛應(yīng)用,使得醫(yī)療輔助數(shù)據(jù)呈獻(xiàn)出快速的增長趨勢。同時(shí),這些數(shù)據(jù)中也蘊(yùn)含了大量有價(jià)值的信息,不僅有利于患者康復(fù),更能促進(jìn)醫(yī)療水平的整體提升[2-3]。因此對(duì)這些輔助醫(yī)療設(shè)備數(shù)據(jù)進(jìn)行分析處理與應(yīng)用,是實(shí)現(xiàn)醫(yī)療智能化的必備條件之一[4]。
傳統(tǒng)的輔助診斷方法主要是利用關(guān)聯(lián)規(guī)則等傳統(tǒng)機(jī)器學(xué)習(xí)算法,但傳統(tǒng)方法存在特征提取不完整等缺陷。雖然能夠獲取特定的病情數(shù)據(jù)特征,但無法使用更加充分的數(shù)據(jù)來診斷病情,泛化與自適應(yīng)的性能較差[5-6]。而深度學(xué)習(xí)算法可利用海量的醫(yī)療數(shù)據(jù)信息自動(dòng)獲得深層次和淺層次的特征,且能夠提取人力所無法獲得的數(shù)據(jù)特征[7]。因此,利用深度學(xué)習(xí)算法輔助醫(yī)療診斷,得到了各國專家學(xué)者的廣泛關(guān)注并予以研究[8]。
為此,文中提出了基于深度學(xué)習(xí)的醫(yī)療輔助診斷數(shù)據(jù)分析方法,在利用主成分分析(Principal Component Analysis,PCA)對(duì)醫(yī)療數(shù)據(jù)進(jìn)行預(yù)處理后,輸入多層感知器(Multilayer Perceptron,MLP)神經(jīng)網(wǎng)絡(luò)進(jìn)行分析,以實(shí)現(xiàn)準(zhǔn)確的醫(yī)療診斷,從而為專業(yè)醫(yī)師提供輔助。
在利用深度學(xué)習(xí)進(jìn)行醫(yī)療數(shù)據(jù)分析前,需要對(duì)其進(jìn)行預(yù)處理,在歸一化處理的基礎(chǔ)上,利用主成分分析(Principal Component Analysis,PCA)方法完成維度的降低。
用原始數(shù)據(jù)對(duì)醫(yī)療數(shù)據(jù)進(jìn)行分析存在一定的難度,所以對(duì)數(shù)據(jù)進(jìn)行預(yù)處理尤為必要,這樣能夠提升方法的分析效率。其中,預(yù)處理主要是對(duì)數(shù)據(jù)進(jìn)行歸一化,即根據(jù)相應(yīng)的規(guī)則將數(shù)據(jù)轉(zhuǎn)換成(0,1)范圍內(nèi)的數(shù)據(jù),并將有量綱的數(shù)據(jù)轉(zhuǎn)換成沒有量綱的數(shù)據(jù),從而提升數(shù)據(jù)分析的準(zhǔn)確率,且縮短計(jì)算時(shí)間[9]。
對(duì)原始數(shù)據(jù)集矩陣每一列的數(shù)據(jù)進(jìn)行歸一化處理如下:
眾所周知,疾病的生理指標(biāo)之間存在著眾多內(nèi)在聯(lián)系,因此難以通過人為因素來判斷。而PCA 作為一種較為經(jīng)典的降維算法,其核心思想是經(jīng)過降維的方法將較多個(gè)變量轉(zhuǎn)換成幾個(gè)主要成分進(jìn)行匯總分析[10]。其中的主要成分可展現(xiàn)原始變量大多數(shù)的信息,因此這些主成分所包含的信息并不重疊,同時(shí)要求主成分之間不存在相關(guān)性。
假設(shè)x1,x2,…xi,…,xn是從總體X中抽取的樣本,,k是樣本的維數(shù)??傮wX的協(xié)方差矩陣未知,需要通過上述變量進(jìn)行估計(jì),觀測值矩陣為:
樣本協(xié)方差矩陣為:
其中,X的每一行對(duì)應(yīng)一個(gè)樣本,每一列對(duì)應(yīng)一個(gè)變量。是樣本的平均值,樣本的主成分可以從S中得到。將樣本的觀測值xi代入第j個(gè)主成分,得到是樣本xi的第j個(gè)主成分。
PCA 中的每個(gè)維度均有一個(gè)貢獻(xiàn)率,并根據(jù)貢獻(xiàn)率的大小選擇相應(yīng)的特征值。m個(gè)主成分的貢獻(xiàn)率之比為:
其中,λ對(duì)應(yīng)正交單位特征向量,主成分的貢獻(xiàn)率反映了其綜合原始變量信息的能力。通常取較小的m(m≤p),前m個(gè)主成分的累積貢獻(xiàn)率應(yīng)保持在一定的水平(85%~95%),從而達(dá)到降維的目的。
由于傳統(tǒng)的機(jī)器學(xué)習(xí)方法難以處理大樣本、線性的醫(yī)療診斷數(shù)據(jù),為此引入了基于深度學(xué)習(xí)的MLP 神經(jīng)網(wǎng)絡(luò)。將預(yù)處理后的數(shù)據(jù)輸入MLP 模型,以得到診斷分類結(jié)果,從而輔助醫(yī)師完成病情分析。
深度學(xué)習(xí)源于人工神經(jīng)網(wǎng)絡(luò)的研究,含有多個(gè)隱藏層的MLP 是一種深度學(xué)習(xí)結(jié)構(gòu)。其由較多層神經(jīng)元構(gòu)成,通常包括一個(gè)輸入層、一個(gè)或多個(gè)隱藏層以及一個(gè)輸出層[11-12]。含有兩個(gè)隱藏層的MLP 神經(jīng)網(wǎng)絡(luò)模型如圖1 所示。
圖1 MLP神經(jīng)網(wǎng)絡(luò)模型
其中,輸入層用于數(shù)據(jù)的輸入,設(shè)置在神經(jīng)網(wǎng)絡(luò)模型的最前端;隱藏層是系統(tǒng)的核心部分,主要負(fù)責(zé)復(fù)雜的數(shù)學(xué)計(jì)算,位于模型中間部分的一層或多層;輸出層負(fù)責(zé)輸出數(shù)據(jù),該層次的個(gè)數(shù)與數(shù)據(jù)類型的數(shù)量一致[13-14]。輸入層不需要權(quán)值與下一層相連,其他神經(jīng)元均經(jīng)過權(quán)值與下一個(gè)神經(jīng)元的輸入端相連。
MLP 網(wǎng)絡(luò)的第q個(gè)數(shù)據(jù)記作{xq,tq},其中,xq為K維的輸入向量,tq為G維的目標(biāo)輸出向量。在輸入層后多加入一個(gè)節(jié)點(diǎn)xq(K+1)=1 構(gòu)成輸入量,這一節(jié)點(diǎn)的閾值根據(jù)隱藏層與輸出層間的權(quán)值進(jìn)行設(shè)定,從而將輸入向量轉(zhuǎn)成K+1 維。
對(duì)于第q個(gè)數(shù)據(jù)而言,第l個(gè)隱藏層的輸出表示如下:
其中,f(·) 是Sigmoid 激勵(lì)函數(shù),ωih是連接輸入層與隱藏層之間的權(quán)值。
對(duì)于第q個(gè)數(shù)據(jù)樣本、G維的輸出向量,第i個(gè)輸出yq(i)可表示為:
其中,ωoi為輸入層與輸出層直接相連的權(quán)重,ωoh為隱藏層與輸出層間的權(quán)重。
對(duì)診斷數(shù)據(jù)進(jìn)行PCA 降維后,即可獲得可有效表示醫(yī)療數(shù)據(jù)的特征值,且對(duì)模型參數(shù)進(jìn)行實(shí)驗(yàn)訓(xùn)練[15-16]。實(shí)驗(yàn)數(shù)據(jù)大致包括兩種類型:即訓(xùn)練集與測試集。利用訓(xùn)練集對(duì)MLP 神經(jīng)網(wǎng)絡(luò)進(jìn)行參數(shù)訓(xùn)練,然后用測試集對(duì)所提分析方法進(jìn)行評(píng)估。
用于醫(yī)療輔助診斷數(shù)據(jù)分析的MLP 神經(jīng)網(wǎng)絡(luò)模型由輸入層、隱藏層1~3、輸出層組成,如圖2 所示。
圖2 基于MLP的醫(yī)療輔助診斷數(shù)據(jù)分析模型
其中,輸入層的輸入數(shù)據(jù)為經(jīng)PCA 處理后的醫(yī)療數(shù)據(jù),且留存了原有的屬性維度;隱藏層有3 層,1~3 神經(jīng)元數(shù)目依次為32、16、16;輸出層的神經(jīng)元數(shù)目與醫(yī)療數(shù)據(jù)類型數(shù)目一致;分類層利用Softmax分類器實(shí)現(xiàn)分類,并采用ReLU 激活函數(shù)。此外,所提數(shù)據(jù)分析模型利用交叉熵?fù)p失函數(shù)和Adam 方法進(jìn)行參數(shù)訓(xùn)練,以獲得最優(yōu)的分析模型參數(shù)。
實(shí)驗(yàn)中采用Python 語言并使用Keras 深度學(xué)習(xí)庫,實(shí)驗(yàn)硬件環(huán)境為Windows 10 操作系統(tǒng),使用診斷平均準(zhǔn)確率(Average Precision,AP)、損失值(Loss)兩個(gè)指標(biāo)對(duì)所提方法進(jìn)行評(píng)價(jià)。
實(shí)驗(yàn)數(shù)據(jù)主要包括兩個(gè)數(shù)據(jù)庫,即病患的體檢數(shù)據(jù)庫和診斷信息庫。其中體檢庫包含了所有體檢數(shù)據(jù)信息,診斷庫包含了病患的所有診斷信息。兩個(gè)數(shù)據(jù)庫由病患的就診卡號(hào)進(jìn)行關(guān)聯(lián),經(jīng)過病患的體檢信息便可判斷其是否生病。該實(shí)驗(yàn)中,共包含52 389 名病患的體檢與診斷數(shù)據(jù)信息,并從兩張表中提取出實(shí)驗(yàn)需要的數(shù)據(jù)集,同時(shí)將其按8:2 劃分為訓(xùn)練集和測試集。
將所提MLP 神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率設(shè)置為0.001,動(dòng)量因子為0.99,RMSProp 參數(shù)設(shè)置為0.999,最大迭代次數(shù)設(shè)置為20 000。
實(shí)驗(yàn)中,利用5 折交叉驗(yàn)證評(píng)價(jià)所提方法的性能。由于神經(jīng)網(wǎng)絡(luò)的總層數(shù)及隱藏層的層數(shù)對(duì)MLP網(wǎng)絡(luò)性能影響較大。為了選擇最佳配置,對(duì)不同神經(jīng)網(wǎng)絡(luò)層數(shù)及每層不同隱藏神經(jīng)元數(shù)目進(jìn)行實(shí)驗(yàn),結(jié)果如表1 所示。
從表1 中可看出,隱藏單元數(shù)為64 個(gè)的4 層神經(jīng)網(wǎng)絡(luò)取得了最佳的診斷準(zhǔn)確率,為85.9%。因此將所提方法中的MLP 網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)層次設(shè)為4,隱藏層單元數(shù)為64 個(gè)。
表1 診斷準(zhǔn)確率
操作特性(Receiver Operating Characteristic,ROC)曲線是根據(jù)真陽性率(True Positive Rate,TPR)與假陽性率(False Positive Rate,F(xiàn)PR)進(jìn)行繪制的。其中,ROC 對(duì)角線可視為數(shù)據(jù)隨機(jī)分析效果,若所提方法的ROC 曲線處于對(duì)角線的下部,則說明其性能較差。所提方法的ROC 曲線如圖3 所示。
圖3 ROC曲線
從圖3 中的ROC 曲線可看出,所提方法在訓(xùn)練集和測試集上表現(xiàn)均較優(yōu),具備較高的分析準(zhǔn)確率。
為了論證所提方法的性能,將其與文獻(xiàn)[6]、文獻(xiàn)[11]、文獻(xiàn)[14]中的方法進(jìn)行對(duì)比分析,損失值對(duì)比結(jié)果如圖4 所示。
圖4 損失值對(duì)比結(jié)果
從圖4 中可看出,相比于其他對(duì)比方法,所提方法的損失值最低,接近53。由于其利用PCA 降維,計(jì)算量降低,因此在4 000 次時(shí)實(shí)現(xiàn)收斂。文獻(xiàn)[11]結(jié)合神經(jīng)元和前向神經(jīng)網(wǎng)絡(luò)進(jìn)行醫(yī)療診斷,數(shù)據(jù)量較大,收斂速度慢,且損失值較高;文獻(xiàn)[14]利用卷積神經(jīng)網(wǎng)絡(luò),雖然損失值有所降低,但模型復(fù)雜,收斂速度較慢。
同樣,所提方法與文獻(xiàn)[6]、文獻(xiàn)[11]、文獻(xiàn)[14]中的方法在診斷平均準(zhǔn)確率上的對(duì)比結(jié)果如圖5所示。
圖5 平均準(zhǔn)確率對(duì)比結(jié)果
從圖5 中可看出,所提方法的平均準(zhǔn)確率約為85%,均優(yōu)于其他對(duì)比方法,因?yàn)槠洳捎肕LP 分析PCA 獲得的數(shù)據(jù)特征,準(zhǔn)確率得到進(jìn)一步保證。文獻(xiàn)[6]采用反向傳播網(wǎng)絡(luò)判別疾病類型,方法簡單但準(zhǔn)確率較低。文獻(xiàn)[11]結(jié)合神經(jīng)元和前向神經(jīng)網(wǎng)絡(luò)、文獻(xiàn)[14]采用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行醫(yī)療診斷,診斷準(zhǔn)確率均有所提高,但由于缺乏數(shù)據(jù)的預(yù)處理,數(shù)據(jù)分析性能較弱。
文中在醫(yī)療數(shù)據(jù)處理中融入功能強(qiáng)大的深度學(xué)習(xí)算法,并提出了基于MLP 的醫(yī)療輔助診斷數(shù)據(jù)分析方法。在對(duì)醫(yī)療診斷數(shù)據(jù)進(jìn)行預(yù)處理的基礎(chǔ)上,利用MLP 神經(jīng)網(wǎng)絡(luò)處理獲得的數(shù)據(jù)特征,以實(shí)現(xiàn)診斷分類。此外,基于Python 軟件平臺(tái)的實(shí)驗(yàn)結(jié)果表明,當(dāng)MLP 網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)層次設(shè)為4,隱藏層單元數(shù)為64 時(shí),診斷準(zhǔn)確率最佳,且所提方法的ROC 曲線較接近1。其平均準(zhǔn)確率與損失值分別為85%和53,能夠?yàn)閷I(yè)醫(yī)師提供精準(zhǔn)的輔助診斷。
由于PCA 中可能存在正負(fù)主成分因子,這樣會(huì)造成評(píng)估函數(shù)效果減弱,且影響計(jì)算效率。所以在未來的研究中,可采用例如深度自編碼器等模型進(jìn)行數(shù)據(jù)降維處理。