作者:蔡增玉 ,崔夢夢 ,侯佳林 ,張建偉
引 言
心臟病已經(jīng)成為威脅人類生命的一項重大疾病,目前中國的心血管疾病預(yù)防工作雖然取得了初步成效,但是仍舊面臨嚴(yán)峻的挑戰(zhàn),中國心血管疾病的患病率及死亡率仍處于上升階段。防治心血管病的態(tài)勢已經(jīng)刻不容緩,每10例死亡患者中,就有 4例是心血管疾病患者,心臟病的致死率占心血管疾病的50%以上。
目前我國有多種方式檢測患者是否患有心臟病,如動態(tài)心電圖、CTA、ECG、UCG等?;颊呤紫刃枰メt(yī)院做心電圖檢查,經(jīng)驗豐富的醫(yī)師通過查看患者的心電圖是否有心房顫動、房性前收縮、房室和束支傳導(dǎo)阻滯等癥狀,以此對患者是否患有心臟病做出診斷。傳統(tǒng)的心臟病診斷方式會因各種主觀因素對結(jié)果造成影響,許多學(xué)者對此進(jìn)行了深入的研究,并將機(jī)器學(xué)習(xí)的方法引入到心臟病預(yù)測中,提出了各種基于機(jī)器學(xué)習(xí)的心臟病預(yù)測方法[1?10]。比較典型的方法有用支持向量機(jī)和人工神經(jīng)網(wǎng)絡(luò)兩種不同的模型對數(shù)據(jù)進(jìn)行建模[11];使用基于聚類和 XGboost算法進(jìn)行建模[12]。其中,文獻(xiàn)[11]中設(shè)計的模型具有較高的查重率,但訓(xùn)練過程中容易產(chǎn)生過擬合問題,造成模型的泛化能力不強(qiáng);文獻(xiàn)[12]基于聚類和XGboost 算法雖然有較高的準(zhǔn)確率,但是當(dāng)有大量的訓(xùn)練數(shù)據(jù)時,訓(xùn)練速度將變得十分緩慢。
1、 基于殘差神經(jīng)網(wǎng)絡(luò)的心臟病預(yù)測系統(tǒng)
1.1 系統(tǒng)功能設(shè)計
本文主要將系統(tǒng)分成:用戶模塊、病歷模塊、數(shù)據(jù)預(yù)處理模塊、模型訓(xùn)練模塊和預(yù)測模塊,其總體的功能結(jié)構(gòu)圖如圖1所示。
1)用戶模塊。該模塊包含用戶注冊和用戶登錄兩個部分。用戶在注冊部分通過注冊操作把個人的賬號、密碼等信息以密文的形式寫入數(shù)據(jù)庫;用戶在登錄部分輸入之前注冊過的賬號和密碼信息,通過數(shù)據(jù)庫驗證系統(tǒng)使用權(quán)限。
2)病歷模塊。該模塊同樣包含建立病歷和查看病歷兩個部分。用戶可以通過該模塊收集和查看患者的個人信息以及既往病史,方便對患者的信息進(jìn)行管理,還可以對用戶當(dāng)前的就診情況進(jìn)行記錄。
3)數(shù)據(jù)預(yù)處理模塊。該模塊主要通過對要訓(xùn)練的數(shù)據(jù)進(jìn)行整理,把患者的心電圖與其對應(yīng)的種類標(biāo)簽結(jié)合在一起,為之后的訓(xùn)練模型做準(zhǔn)備。
4)模型訓(xùn)練模塊。該模塊通過對大量數(shù)據(jù)的學(xué)習(xí),提取其中的規(guī)律、準(zhǔn)則,最終形成一個能夠預(yù)測心電圖的模型。
5)預(yù)測模塊。該模塊利用之前形成的模型對患者的心電圖進(jìn)行分析之后,得出患者最終是否患有心臟病以及種類和概率的結(jié)論。
1.2 系統(tǒng)流程設(shè)計
系統(tǒng)的模型構(gòu)成大體可以分為4個步驟,分別為數(shù)據(jù)預(yù)處理、卷積層、池化層、全連接層。本文構(gòu)建的是一個16層的卷積神經(jīng)網(wǎng)絡(luò),如圖2所示。
為了取得更好的模型訓(xùn)練效果,數(shù)據(jù)集選用 2017年度 PhysioNet 計算心臟病學(xué)挑戰(zhàn)賽提供的官方數(shù)據(jù)。首先對心電圖數(shù)據(jù)進(jìn)行預(yù)處理,把要訓(xùn)練的心電圖數(shù)據(jù)集貼上對應(yīng)種類的標(biāo)簽,形成一個整體的數(shù)據(jù)+標(biāo)簽的標(biāo)準(zhǔn)化數(shù)據(jù)集合,為后續(xù)的訓(xùn)練作準(zhǔn)備;然后將標(biāo)準(zhǔn)化的數(shù)據(jù)輸入卷積神經(jīng)網(wǎng)絡(luò)模型中迭代進(jìn)行卷積、池化操作,同時為了解決網(wǎng)絡(luò)退化問題,加入殘差模塊,將殘差模塊的數(shù)據(jù)和迭代得到的數(shù)據(jù)匯總,經(jīng)過運算后輸入全連接層最終得到分析結(jié)果。
1.2.1 數(shù)據(jù)預(yù)處理
數(shù)據(jù)預(yù)處理模塊對數(shù)據(jù)整理起到重要作用,本文訓(xùn)練中用到的數(shù)據(jù)來自2017年度 PhysioNet計算心臟病學(xué)挑戰(zhàn)賽提供的官方數(shù)據(jù),根據(jù)官方提供的參考文檔,將這些心電圖貼上相應(yīng)種類的標(biāo)簽,最終形成一個trainingset,為后續(xù)的訓(xùn)練做準(zhǔn)備。該模塊界面設(shè)計簡單,方便用戶操作。
1.2.2 卷積層
對圖片進(jìn)行卷積運算,第一個參數(shù)是輸入心電圖數(shù)據(jù),第二個參數(shù)是卷積核,卷積具體運算就是卷積核與對應(yīng)圖片的像素點進(jìn)行相乘然后累加之后的數(shù)值,作為特征映射的值。本系統(tǒng)卷積層以一維卷積的方式進(jìn)行卷積,卷積核大小選取 3×1,步長為 1,通過訓(xùn)練網(wǎng)絡(luò)將卷積核中的每一個數(shù)值訓(xùn)練出來,以期達(dá)到最好的效果。本系統(tǒng)在卷積的過程中,當(dāng)出現(xiàn)卷積核的大小超過圖片區(qū)域時,用 0進(jìn)行邊緣填充,因為 0填充的方式不會對卷積產(chǎn)生影響,只是輔助卷積完成。
1.2.3 池化層
池化操作對不同大小的輸入具有調(diào)和作用,當(dāng)需要對輸入大小不同的圖像進(jìn)行處理時,若對輸入圖像的大小有限制,可以通過對池化區(qū)域的偏置進(jìn)行調(diào)整,就可以使不同大小的圖片在調(diào)整后達(dá)到一致。池化操作一般有兩種,即最大池化和平均池化。最大池化選擇該區(qū)域中最大值作為池化后的值,反向傳播時,梯度通過前向傳播過程的最大值反向傳播,其他位置梯度為0;平均池化選擇區(qū)域中的平均值作為池化后的值。本系統(tǒng)采用最大池化,選用濾波器大小為2×1,池化步長為2,與卷積操作相互配合,形成一個卷積、池化迭代的深層網(wǎng)絡(luò)。
1.2.4 殘差神經(jīng)網(wǎng)絡(luò)
為了解決出現(xiàn)的網(wǎng)絡(luò)退化問題,在卷積神經(jīng)網(wǎng)絡(luò)中加入恒等映射模塊,也稱殘差單元。像神經(jīng)網(wǎng)絡(luò)那樣,如果直接累加上一層所學(xué)的模型,會使模型訓(xùn)練的難度加大,但增加帶有捷徑連接的殘差模塊時,結(jié)果就會產(chǎn)生不同。假設(shè)某個神經(jīng)網(wǎng)絡(luò)的輸入值為x,期望輸出值為H(x),訓(xùn)練的結(jié)果是F(x),學(xué)習(xí)率為0.01,在沒加入殘差模塊時,輸入是x=1,期望值是1.01,從1.01學(xué)習(xí)到1.02,映射輸出增加為0.011.01=1%;當(dāng)引入殘差模塊時,映射F(x)是從0.01到0.02,映射輸出為0.010.01=100%,后者輸出變化對權(quán)重的調(diào)整作用更明顯。換句話說,殘差單元的思想是差分放大器,通過去掉上層輸入的相同部分,從微小變化中提升學(xué)習(xí)能力。通過這種方式解決了隨著層數(shù)的加深準(zhǔn)確率和精準(zhǔn)度減小的問題,同時還降低了梯度消失和梯度爆炸的風(fēng)險。殘差網(wǎng)絡(luò)的提出將深度學(xué)習(xí)的性能提高了一個層次,使得網(wǎng)絡(luò)層數(shù)可以從幾十層上升到幾千層,為殘差網(wǎng)絡(luò)在圖像領(lǐng)域的應(yīng)用奠定了基礎(chǔ)。
1.2.5 全連接層
通過對卷積、池化操作形成的局部特征進(jìn)行權(quán)值矩陣的重組,并整合成多個完整的圖像,與標(biāo)準(zhǔn)圖像進(jìn)行對比,如果結(jié)果一樣,則反向激活相應(yīng)圖的權(quán)值。把原始數(shù)據(jù)經(jīng)過卷積、池化操作后映射到特征平面中,全連接層會提取分布式特征,全連接層把特征整合到一起,能夠極大地減少特征位置給分類產(chǎn)生的影響。全連接層一般設(shè)置為兩層,用來解決非線性問題。由于最終得出的預(yù)測結(jié)果的類別是互斥的,所以本文的全連接層采用 softmax回歸進(jìn)行分類,模型優(yōu)化采用adam優(yōu)化器。
2、 基于殘差神經(jīng)網(wǎng)絡(luò)的心臟病預(yù)測系統(tǒng)設(shè)計與實現(xiàn)
2.1系統(tǒng)實現(xiàn)
2.1.1模型訓(xùn)練實現(xiàn) 模型訓(xùn)練是整個預(yù)測系統(tǒng)的基礎(chǔ),該部分的主要功能是為之后的預(yù)測模塊提供一個泛化能力強(qiáng)的模型。該功能利用tensorflow框架實現(xiàn)了參數(shù)可調(diào)整,通過對Batch、epochs、卷積窗口大小、池化窗口大小進(jìn)行調(diào)整,可以不斷提高模型的準(zhǔn)確度,不斷進(jìn)行訓(xùn)練,直到達(dá)到模型的最優(yōu)性能。
2.1.2 預(yù)測分析功能實現(xiàn) 預(yù)測功能是整個系統(tǒng)的核心部分,也是系統(tǒng)的主界面。該功能通過載入患者的心電圖數(shù)據(jù),然后利用訓(xùn)練好的模型進(jìn)行結(jié)果預(yù)測。該模塊實現(xiàn)了查找用戶心電圖功能,系統(tǒng)操作人員根據(jù)患者的名字就可以把患者的心電圖數(shù)據(jù)載入模型中,方便醫(yī)生操作。同時,該模塊還實現(xiàn)了心電圖預(yù)覽功能。通過設(shè)置顯示心電圖按鈕,點擊之后可以先粗略地觀察心電圖,了解一些情況。最后實現(xiàn)分析功能,對患者的心電圖進(jìn)行分析,生成最后的分析報告。
2.2 系統(tǒng)性能調(diào)參測試 2.2.1 Batch 大小最優(yōu)測試Batch大小即批處理的尺寸大小,它的大小決定著下降的方向。選擇合適的批處理大小可以迅速找到合適的學(xué)習(xí)率,加快模型的收斂。如果批處理尺寸太大的話,雖然可以提高內(nèi)存的利用率,但是會減小相應(yīng)的精度,對參數(shù)的修正也更加緩慢;如果批處理尺寸太小,不僅會使學(xué)習(xí)的時間增加,甚至?xí)鼓P筒皇諗?。Batch大小一般設(shè)置成16的倍數(shù),便于機(jī)器的處理,通過控制其他變量不變,改變 Batch尺寸大小,查看對模型準(zhǔn)確率的影響,如圖3所示。
通過測試發(fā)現(xiàn),當(dāng)Batch的大小選擇為32時,模型的準(zhǔn)確率最高,再增加Batch大小會使模型的準(zhǔn)確率降低,所以本文選定的Batch大小為32。
2.2.2 卷積核大小最優(yōu)測試
卷積核大小對模型的影響至關(guān)重要。如果卷積核的尺寸選得太大的話,會使整個模型的復(fù)雜度急劇增加;如果卷積核的尺寸選得太小的話,又會使訓(xùn)練的速度降低。所以選擇合適的卷積核大小比較重要。通常卷積核的大小設(shè)置成偶數(shù),形成正方形。本文采用一維卷積,通過控制其他變量不變,改變卷積核的大小查看對模型準(zhǔn)確率的影響,如圖4所示。
通過測試發(fā)現(xiàn),當(dāng)卷積核的大小選擇為16 時,模型的準(zhǔn)確率最高,選擇小于或者大于 16 的尺寸時,模型的準(zhǔn)確率會降低,所以本文選擇卷積核大小為16。
2.2.3 池化窗口大小最優(yōu)測試
池化窗口的大小也會影響著模型的準(zhǔn)確率。當(dāng)池化層的窗口選擇太大的話,會在一定程度上損失信息。如果選擇太小的話,會影響感受野的大小變化。本文通過控制其他變量不變,改變池化窗口的尺寸觀察其對模型準(zhǔn)確率的影響,如圖5所示。
通過測試發(fā)現(xiàn),當(dāng)池化窗口大小為4時,模型的準(zhǔn)確率最高,再增加池化窗口的大小時會導(dǎo)致模型的準(zhǔn)確率下降。
3、 結(jié) 語
本文采用殘差神經(jīng)網(wǎng)絡(luò)以心電圖的方式進(jìn)行機(jī)器學(xué)習(xí),對患者是否患有心臟病進(jìn)行預(yù)估。利用殘差網(wǎng)絡(luò)具有快捷連接和恒等映射的特點,解決了網(wǎng)絡(luò)退化、網(wǎng)絡(luò)深度限制的問題,為學(xué)習(xí)心電圖的深層次特征提供了巨大的幫助。此外,本文采用PhysioNet計算心臟病學(xué)挑戰(zhàn)賽官方提供的8528個數(shù)據(jù)進(jìn)行學(xué)習(xí),將心臟病分為4個種類,進(jìn)行實驗驗證。其中構(gòu)建了一個16層的卷積神經(jīng)模型,首先將數(shù)據(jù)以300×30大小的方式輸入卷積層,然后用 16×1的卷積核進(jìn)行一維卷積,經(jīng)過4×1大小的濾波器進(jìn)行最大池化,加上批標(biāo)準(zhǔn)化處理迭代至16層,最后加上全連接層構(gòu)成16層卷積神經(jīng)網(wǎng)絡(luò)。通過整體的訓(xùn)練后,對未訓(xùn)練的一批數(shù)據(jù)進(jìn)行預(yù)測,其結(jié)果準(zhǔn)確率達(dá)到76.5%。最終,利用該技術(shù)設(shè)計了一種心臟病智能預(yù)測系統(tǒng),實現(xiàn)了對心臟病的實時預(yù)測,提供了對患者病情的詳細(xì)分析報告。利用該系統(tǒng)可以減輕醫(yī)生的負(fù)擔(dān),給醫(yī)生對病情的診斷提供了輔助判斷,提高了就診的效率,對社會醫(yī)療體系提供了幫助。
審核編輯:郭婷
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4771瀏覽量
100777 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8418瀏覽量
132654
原文標(biāo)題:論文速覽 | 基于殘差神經(jīng)網(wǎng)絡(luò)的心臟病預(yù)測系統(tǒng)的設(shè)計與實現(xiàn)
文章出處:【微信號:現(xiàn)代電子技術(shù),微信公眾號:現(xiàn)代電子技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論