趙瀅琳,龐春穎,李爽
(長春理工大學(xué) 生命科學(xué)技術(shù)學(xué)院,長春 130022)
據(jù)《中國心血管健康與疾病報告2019》指出,目前我國心血管疾病患病人數(shù)約3.3億人[1],其中心肌梗死(以下簡稱:心梗)患者數(shù)量逐年增多,心梗由于發(fā)病迅速、致死殘率高、復(fù)發(fā)率高等特點受到人們廣泛關(guān)注。根據(jù)心電圖中ST段出現(xiàn)異常的位置,可分為廣泛前壁心梗、下壁心梗、后壁心梗等類型[2]。廣泛前壁心梗面積較大,梗死累及的導(dǎo)聯(lián)數(shù)較多,病人的預(yù)后也較差,患者會有胸痛、血壓下降、心力衰竭、心律失常等一系列的癥狀,嚴(yán)重者危及生命。廣泛前壁心??赏ㄟ^心電圖變化早期診斷,綜合ST段抬高,T波倒置和Q波異常多種改變[3],這對于醫(yī)生的經(jīng)驗和資質(zhì)有著很高的要求。因此,廣泛前壁心梗的自動檢測至關(guān)重要。
目前已有人對心梗自動檢測進行研究,大多是采用傳統(tǒng)的機器學(xué)習(xí)框架,通常由特征提取和分類構(gòu)成,首先對QRS波,ST-T段進行主成分分析(PCA,Principal Component Analysis),用小波變換(WT,Wavelet Transform),多項式擬合等技術(shù),利用全局特征(幅度,峰值,均值,方差等)表示節(jié)拍,然后送入分類器中進行分類,常見的分類器有神經(jīng)網(wǎng)絡(luò)(NN,Neural Network),支持向量機(SVM,Support Vector Machines),K近鄰(KNN,K Nearest Neighbours),隨機森林(RF,Random Forest)。Saini R 等人[4]采用了 KNN 分類器進行心梗自動檢測,達到了84%的準(zhǔn)確率;Gopakumar C等人[5]用支持向量機對心梗進行分類,準(zhǔn)確率達到94%。雖然這些方法體現(xiàn)出了良好的性能,但是需要手工提取特征值,魯棒性低,計算成本與人工成本昂貴。也有學(xué)者單純用深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)自動檢測心梗,但是由于網(wǎng)絡(luò)層數(shù)較深,時間復(fù)雜度較大,并沒有達到預(yù)期效果。Resul Dasa等人利用神經(jīng)網(wǎng)絡(luò)、概率模型算法相結(jié)合,實現(xiàn)了心梗疾病自動診斷,準(zhǔn)確率達89.01%。常戰(zhàn)國等人[6]利用BP神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合方法對12導(dǎo)聯(lián)數(shù)據(jù)進行分析,檢測心梗的準(zhǔn)確率達到了96%。
本文針對上述問題,提出了一種端到端的改進多導(dǎo)聯(lián)殘差網(wǎng)絡(luò)(IMRN,Improved multi-lead residual network),該網(wǎng)絡(luò)以殘差網(wǎng)絡(luò)(ResNet,Residual Network)為基礎(chǔ)[7],將多個導(dǎo)聯(lián)的心拍信號并行輸入,經(jīng)過空洞卷積層、池化層、歸一化層、激活層,利用融合策略將網(wǎng)絡(luò)提取的特征進行合并最后輸出分類結(jié)果[8]。研究表明,該方式改善了心電信號在單導(dǎo)聯(lián)的特征學(xué)習(xí)過程,在加深網(wǎng)絡(luò)層數(shù)的前提下避免了模型的退化現(xiàn)象,免去了手動提取特征值的繁瑣過程,可以更加精確地診斷廣泛前壁心梗的發(fā)生。
臨床研究表明,廣泛前壁心肌梗死涉及到的導(dǎo)聯(lián)數(shù)較多,單一導(dǎo)聯(lián)的心電信號不能對其進行較為精準(zhǔn)的預(yù)測,因此選用V1~V5共五條導(dǎo)聯(lián)信號。本文算法主要分為三個步驟,首先對心電信號進行去噪濾波處理,把一段較長的心電信號分割為一個個獨立的心拍,然后搭建輸入為五個并行信號的改進多導(dǎo)聯(lián)殘差網(wǎng)絡(luò)模型,這里引入了空洞卷積的概念,最后加入融合特征層,對得到的信號提取主要特征,用softmax進行分類??傮w框圖如圖1所示。
圖1 總體結(jié)構(gòu)
本研究采用的數(shù)據(jù)來自德國柏林本杰明富蘭克林大學(xué)心臟病系的邁克爾·奧夫教授(MichaelOeff,M.D.)和德國國家計量學(xué)研究所(Physikalisch-Technische Bundesanstalt,PTB)收集 和處理的公共的ECG診斷數(shù)據(jù)庫(diagnostic ECG database),即PTB診斷數(shù)據(jù)庫,該數(shù)據(jù)庫包含148名心梗患者,52名健康受試者,每個ECG記錄是根據(jù)16位的采樣精度和1 000 Hz的采樣率進行量化,每個采樣值為2個字節(jié),每個記錄由15個同時測量的信號組成,即3個Frank導(dǎo)聯(lián)(vx,vy,vz)和傳統(tǒng)的12導(dǎo)聯(lián)(Ⅰ、Ⅱ、Ⅲ、aVR、aVL、aVF、V1、V2、V3、V4、V5、V6)。在大多數(shù)這些心電圖記錄的頭(.hea)文件中有一個詳細(xì)的臨床摘要,包括年齡、性別、診斷以及病史、藥物和干預(yù)、冠狀動脈病理學(xué)、心室造影、超聲心動圖和血流動力學(xué)的數(shù)據(jù)。頭文件中還記錄了心梗發(fā)生的位置,本文選擇PTB數(shù)據(jù)庫中52名健康受試者和40名廣泛前壁心?;颊叩墓?88條記錄作為數(shù)據(jù)集。其中健康心拍10 646個,廣泛前壁心?;颊咝呐?3 652個。
對原始心電信號進行去噪處理[9]。心電信號屬于強噪聲背景下的微弱信號,存在許多噪聲,常見的有基線漂移、肌電干擾、工頻干擾等噪聲,本研究采用小波變換去噪,選用波形與心電信號最為相似的Daubechies6小波基函數(shù),能夠更好地保留心電信號峰值[10-11]。
由于心電圖QRS波形最能反映心電信號特點,因此對去噪后的信號進行R波定位,這里采用潘·湯普金斯(Pan-Tompkins)算法[12]。為了保證心拍分割的完整性,根據(jù)PTB數(shù)據(jù)庫的采樣頻率,選取R波前250個點,R波后400個點組成一個完整的心拍[13]。
兩種類型心拍經(jīng)去噪處理后如圖2所示。其中圖2(a)為健康心拍,圖2(b)為廣泛前壁心梗的心拍,可以看出,廣泛前壁心梗心電圖發(fā)生了改變,具體表現(xiàn)為ST段弓背向上型抬高,寬而深的Q波、T波倒置。
圖2 心拍示例
空洞卷積(dilated convolution)是指在原始的卷積層里加入空洞,使之感受野變大,且不損失原有信息[14]??斩淳矸e起源于圖像分割[15],將圖像輸入卷積神經(jīng)網(wǎng)絡(luò)(CNN,Convolutional Neural Network)中,經(jīng)過卷積操作時,隨著卷積核不斷移動,會有許多像素點被重復(fù)卷積,再經(jīng)過池化層(pooling)減小圖像尺寸,增大感受野,此時圖像信息難免會有損失和誤差,空洞卷積因此而生。如圖3所示,圖3即是在卷積核為3×3時,不同空洞率(dilated rate)下的感受野大小,當(dāng)空洞率為1時候,空洞卷積與傳統(tǒng)卷積相同,而增加空洞率以后,感受野明顯增大??斩淳矸e在保證卷積核不變的前提下,增加了感受野,且實現(xiàn)了池化層的下采樣功能,因此加入了空洞卷積的網(wǎng)絡(luò)可以省去池化層。
圖3 空洞卷積示意圖
深度學(xué)習(xí)中,隨著網(wǎng)絡(luò)層數(shù)的增加,難免會出現(xiàn)精度不夠、計算復(fù)雜度高等問題,殘差網(wǎng)絡(luò)(Resnet)的出現(xiàn)為這種問題提供了解決方法。殘差網(wǎng)絡(luò)在2016年首次被提出[16],旨在提高基于Image Net數(shù)據(jù)庫的圖像分類技能,模型通過識別映射概念解決梯度消失和梯度爆炸及退化問題。同時利用不同層次特征之間的信息整合來提取強相關(guān)的代表性特征[17]。殘差網(wǎng)絡(luò)主要由殘差塊組成,擁有跨層連接結(jié)構(gòu),可以在深層次網(wǎng)絡(luò)結(jié)構(gòu)中充分訓(xùn)練,提高準(zhǔn)確率。殘差塊如圖4所示,公式如下:
圖4 殘差塊
其中,y為特定層的輸出;relu為激活函數(shù);i為Resnet塊的輸入;conv為卷積算法;o為Resnet塊的輸出。
本研究提出的改進多導(dǎo)聯(lián)殘差網(wǎng)絡(luò)模型(IMRN),將部分殘差塊中的傳統(tǒng)卷積層改進為空洞卷積,減少了重復(fù)參數(shù)的數(shù)量,減輕了網(wǎng)絡(luò)訓(xùn)練難度,不對訓(xùn)練結(jié)果造成影響。經(jīng)過一系列卷積層、殘差塊進行處理后,送入正則化層(dropout)防止過擬合,加入特征融合層,將五導(dǎo)聯(lián)的信號特征進行權(quán)重提取,即將輸入列表合并到一個長的特征向量或者張量中,或者只保留輸入層的最大值,最后送入softmax層進行分類[18-19]。結(jié)構(gòu)如圖5所示。
圖5 網(wǎng)絡(luò)結(jié)構(gòu)示意圖
其中,殘差塊a和殘差塊b的具體結(jié)構(gòu)如圖6所示。
圖6 改進殘差塊示意圖
模型中,卷積層(Covolutional)是用來提取特征,卷積層具有平移不變性、大小不變、旋轉(zhuǎn)不變的特點;批量歸一化層(BN,Batch Normalization,)使訓(xùn)練過程收斂速度加快,減輕梯度消失;激活函數(shù)選用非線性函數(shù)(Relu,Rectified Linear Unit)提高效率,Relu公式為:f(x)=max(0,x),通過減少參數(shù)的依賴性來緩解過擬合的發(fā)生。
在改進的殘差塊a中,將第一個卷積過程中卷積層設(shè)置為空洞卷積,在對心電數(shù)據(jù)進行特征提取時,增加了感受野,減少了參數(shù)量,使用空洞卷積的優(yōu)點是避免了使用池化層時出現(xiàn)的信息缺失,保證了實驗中24 298個心拍的充分利用和訓(xùn)練,提升模型的魯棒性和準(zhǔn)確率。殘差塊b的設(shè)計與普通殘差網(wǎng)絡(luò)一致,由傳統(tǒng)的卷積層、激活層、歸一化層組成,為了保證與殘差塊a輸出的維度一致,加入了池化層和零填充。
模型參數(shù)設(shè)置如下:網(wǎng)絡(luò)輸入形狀為650×1,卷積核大小統(tǒng)一設(shè)置為3,步長為1,第一層卷積核數(shù)量為16個,第一組殘差塊卷積核數(shù)量為16,空洞率為2,第二組殘差塊卷積核數(shù)量為32個,空洞率為2,第三組殘差塊卷積核數(shù)量為64,空洞率為2,最后經(jīng)過特征融合,輸出分類結(jié)果。
利用梯度下降法對模型進行訓(xùn)練,選用常見的優(yōu)化器Adam[20]用來更新網(wǎng)絡(luò)權(quán)重,本研究將學(xué)習(xí)率設(shè)為0.000 1,設(shè)置patience為10,即當(dāng)連續(xù)訓(xùn)練10次后結(jié)果沒有改善,訓(xùn)練就會停止。
網(wǎng)絡(luò)進行訓(xùn)練時,首先通過正向傳播得出損失值大小,然后需要根據(jù)損失值利用反向傳播重新調(diào)整部分參數(shù),優(yōu)化最終模型。這里要用到損失函數(shù),損失函數(shù)也稱為代價函數(shù),表示的是預(yù)測值與真實值之間的差距,由于模型是一個二分類模型,分類結(jié)果服從伯努利分布,所以采用二分類交叉熵?fù)p失函數(shù),公式如下:
其中,ti是某類別的真實值,取值為0或1;pi是某類別的預(yù)測值。損失值越小,說明模型分類效果越好。
利用Python3.6語言編程,采用Tensorflow作為后端的keras深度學(xué)習(xí)框架,其內(nèi)部有很多深度學(xué)習(xí)模型,計算機內(nèi)存8 GB,操作系統(tǒng)為Windows 10,處理器為Intel i7-8750H。
為了評估分類器性能,通過比較實際輸出和預(yù)測輸出來測量不同參數(shù),如靈敏度(sensitivity)、特異性(specificity)、準(zhǔn)確率(accuracy)和精度(Precision,PPV)。他們的定義如下:
其中F1-score值是精度和靈敏度的調(diào)和平均數(shù),最大為1,最小為0,也可作為評價指標(biāo)之一。TP和TN分別代表真陽性和真陰性,F(xiàn)P和FN分別代表假陽性和假陰性。
另外采用受試者工作特性曲線ROC-AUC(Receiver Operating Characteristic-Area Under Curve)來評價最終的二分類結(jié)果。ROC曲線縱軸為真正率(TPR靈敏度),橫軸為假正率(1-特異度FPR)。ROC曲線下面積為AUC,曲線越靠近左上角,即AUC面積越大,分類效果越好,越具有應(yīng)用價值[23]。
為了實驗結(jié)果的可靠性,評估模型性能,采用了K倍交叉驗證方案。本研究選擇5折交叉驗證。首先將整體數(shù)據(jù)集隨即劃分為5個數(shù)量相同的子集,第一次將第一份用于測試,剩下四份用于訓(xùn)練,然后將第二份用于測試,剩余四份用于訓(xùn)練,以此類推,最后將結(jié)果匯總求平均值作為最后的模型評價。示意圖如圖7所示。
圖7 五折交叉示意圖
為了體現(xiàn)文中改進殘差網(wǎng)絡(luò)的優(yōu)越性,增加了經(jīng)典殘差網(wǎng)絡(luò)模型(Resnet)實驗[21]的對比,即將殘差塊a和b統(tǒng)一為殘差塊b(效果等同于將空洞率設(shè)置為1),其余參數(shù)不變,將預(yù)處理的數(shù)據(jù)送入模型進行訓(xùn)練,其ROC曲線如圖8所示??梢钥闯觯琑esnet模型AUC值為95.80%,分類效果較好,但是還有提升空間。
圖8 經(jīng)典殘差網(wǎng)絡(luò)ROC曲線
為了進一步分析模型分類效果,圖9分別繪制了LeNet-5網(wǎng)絡(luò)、AlexNet網(wǎng)絡(luò)和多導(dǎo)聯(lián)殘差網(wǎng)絡(luò)(IMRN)相應(yīng)的ROC曲線以及對應(yīng)的AUC值。LeNet-5是最經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò),由兩個卷積層、兩個池化層、兩個全連接層和一個輸出層組成[22];AlexNet是 Hinton研究團隊在 2012年參加的Image Net圖像識別競賽中獲得冠軍的一種新型卷積神經(jīng)網(wǎng)絡(luò)[23],將二者與本文算法進行對比,對廣泛前壁心梗進行自動診斷,從圖9中可以看出,傳統(tǒng)LeNet網(wǎng)絡(luò)AUC值為86.54%,AlexNet網(wǎng)絡(luò)AUC值達到了93.20%,而本文提出的新算法AUC值可達到98.00%,曲線更靠近Y軸,分類性能更好。
圖9 三種模型ROC曲線對比
將三種算法及傳統(tǒng)殘差網(wǎng)絡(luò)算法的準(zhǔn)確率、靈敏度、特異性、精度與F1-score值進行比較,如表1所示。
表1 不同模型比較
從表1中可以看出,本文提出的IMRN算法準(zhǔn)確率達到了97.85%,F(xiàn)1-score值達到96.33%,各方面參數(shù)都優(yōu)于前三種網(wǎng)絡(luò)模型。再將IMRN網(wǎng)絡(luò)與現(xiàn)有的其他文獻里面的準(zhǔn)確率進行比較,如表2所示。
表2 本文算法與文獻中算法比較
表2中可以看出,與其他文獻運用深度學(xué)習(xí)提出的網(wǎng)絡(luò)結(jié)構(gòu)相比,IMRN的準(zhǔn)確性和特異性都有明顯提升,證明了此算法的優(yōu)越性。
針對人工診斷廣泛前壁心梗復(fù)雜度高、傳統(tǒng)機器學(xué)習(xí)算法診斷準(zhǔn)確率低的問題,提出了一種基于改進的多導(dǎo)聯(lián)殘差網(wǎng)絡(luò)(IMRN)模型,實現(xiàn)了廣泛前壁心梗和正常心電信號的分類,達到了97.85%的準(zhǔn)確率。將其與經(jīng)典的LeNet、AlexNet、Resnet相比較,根據(jù)ROC曲線分析,得出IMRN診斷能力更強。
下一步研究是將預(yù)測模型用于臨床數(shù)據(jù)的檢測,根據(jù)國人心電數(shù)據(jù)特點進一步調(diào)整參數(shù),優(yōu)化模型,從而在臨床中獲得更廣泛應(yīng)用。