陳宇飛,張 博,林 楠,曹仰杰
(鄭州大學(xué) 軟件與應(yīng)用科技學(xué)院,鄭州 450000)
心血管疾病(CardioVascular Disease,CVD)是一系列涉及人體內(nèi)運(yùn)送血液的器官和組織的疾病,是全球死亡和發(fā)病的首要原因[1].而心律不齊(cardiac arrhythmia)是發(fā)病率最高的心血管疾病,據(jù)統(tǒng)計(jì)數(shù)據(jù)顯示,心律失常在普通人群中的發(fā)生概率在50%以上,而在患有心血管疾病的人群中,其發(fā)生概率上升到85%以上.心律不齊的出現(xiàn),嚴(yán)重危害著患者的身體健康,同時(shí)也對(duì)患者的心理健康造成了一定程度的影響.心電圖(ElectroCardioGram,ECG)是記錄心臟電信號(hào)的過程,它可以反映出心臟興奮的產(chǎn)生、傳導(dǎo)和恢復(fù)過程中的生物電位變化,是診斷心律不齊的重要依據(jù).
目前,心律不齊的檢測(cè)是基于識(shí)別ECG中正常與異常心跳,但ECG數(shù)據(jù)量龐大,而醫(yī)療專家人數(shù)有限,造成醫(yī)生的任務(wù)量非常繁重.使用計(jì)算機(jī)輔助ECG分析工具可以減輕醫(yī)生的工作量,提高工作效率.目前,計(jì)算機(jī)輔助ECG分析方法中大部分都是基于傳統(tǒng)的機(jī)器學(xué)習(xí)方法,如自組織映射[2]、獨(dú)立成分分析[3]、神經(jīng)網(wǎng)絡(luò)[4],支持向量機(jī)[5],路徑森林[6]等.雖然傳統(tǒng)的機(jī)器學(xué)習(xí)方法在諸如MIT-BIH等標(biāo)準(zhǔn)數(shù)據(jù)庫上取得了較好的分類結(jié)果,然而這些方法需要手動(dòng)設(shè)計(jì)特征,造成工作量較大,嚴(yán)重影響算法的實(shí)際應(yīng)用.因此,為了克服傳統(tǒng)機(jī)器學(xué)習(xí)方法的缺點(diǎn),一些研究者提出了基于深度學(xué)習(xí)的識(shí)別方法[7-10].深度學(xué)習(xí)方法可以自動(dòng)提取ECG特征并分類,從而省去了手工提取特征的環(huán)節(jié).研究表明,在識(shí)別精度和訓(xùn)練速度方面,深度學(xué)習(xí)方法要優(yōu)于傳統(tǒng)的機(jī)器學(xué)習(xí)方法[8,10].
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是當(dāng)前深度學(xué)習(xí)應(yīng)用最為廣泛機(jī)器學(xué)習(xí)方法,它在圖像識(shí)別、語音識(shí)別等方面獲得良好表現(xiàn),最近也已被用于醫(yī)學(xué)研究領(lǐng)域.文獻(xiàn)[8]使用CNN自動(dòng)識(shí)別和分類5種不同的ECG心跳類型,其在有噪聲數(shù)據(jù)和去噪聲數(shù)據(jù)的準(zhǔn)確率分別為93.47%和94.03%,說明了CNN在生物醫(yī)學(xué)信號(hào)領(lǐng)域具有較大的潛力.文獻(xiàn)[9]構(gòu)建了一個(gè)34層卷積神經(jīng)網(wǎng)絡(luò)以診斷14類心律不齊,準(zhǔn)確率可以媲美經(jīng)驗(yàn)豐富的醫(yī)生.但過多的網(wǎng)絡(luò)層數(shù)增加了訓(xùn)練難度,學(xué)習(xí)速率也慢.文獻(xiàn)[10]提出了一種ECG-CNN模型,其在11760條記錄上分類結(jié)果的特異性達(dá)到了93.59%,但靈敏度僅為61.98%,該方法以犧牲靈敏度為代價(jià)而提高特異性,增加了漏診的風(fēng)險(xiǎn).上述方法中,由于模型結(jié)構(gòu)復(fù)雜,造成模型運(yùn)算量大,訓(xùn)練時(shí)間長,識(shí)別準(zhǔn)確率不高等問題.
針對(duì)傳統(tǒng)深度神經(jīng)網(wǎng)絡(luò)在心律不齊檢測(cè)中存在的訓(xùn)練時(shí)間長、運(yùn)算量大、識(shí)別率不高等問題,本文提出了一種簡潔、高效的卷積神經(jīng)網(wǎng)絡(luò)模型(Simple but Efficient CNN,SE-CNN)用于自動(dòng)檢測(cè)ECG心律不齊,該模型使用單導(dǎo)聯(lián)ECG數(shù)據(jù)構(gòu)建了一個(gè)一維卷積神經(jīng)網(wǎng)絡(luò),在網(wǎng)絡(luò)層數(shù)、訓(xùn)練參數(shù)、運(yùn)算時(shí)間等方面具有優(yōu)勢(shì).在保證模型良好訓(xùn)練性能情況下,使其能夠以較快的訓(xùn)練速度達(dá)到一個(gè)較高的識(shí)別精度.通過使用MIT-BIH心律失常數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行驗(yàn)證,SE-CNN的準(zhǔn)確率為96.41%,表明本文提出的方法具有良好的ECG識(shí)別性能及應(yīng)用價(jià)值.
SE-CNN的基本結(jié)構(gòu)如圖1所示,其基本結(jié)構(gòu)包括3部分:卷積層(C1,C3)、池化層(S2,S4)、全連接層(F1,F(xiàn)2,F(xiàn)3).通過卷積層和池化層交替執(zhí)行提取特征,并將提取到的特征作為全連接層的輸入進(jìn)行分類.接下來,本文將描述每個(gè)層的工作原理.
圖1 SE-CNN網(wǎng)絡(luò)結(jié)構(gòu)
1)卷積層
卷積層由層C1,C3組成,與傳統(tǒng)二維CNN[11]不同,SE-CNN的卷積層均由大小為9*1的卷積核與上一層的特征圖進(jìn)行獨(dú)立的一維卷積(卷積核數(shù)目均為30),再加上一個(gè)偏置,最后傳遞給一個(gè)非線性激活函數(shù)(如ReLU)而得到卷積層的輸出.層C1,C3分別由30個(gè)1*352,30個(gè)1*168的特征圖組成,計(jì)算過程如公式(1)所示:
(1)
2)池化層
池化層由層S2,S4組成,也稱為取樣層.卷積層是池化層的輸入,卷積層的一個(gè)特征面與池化層中的一個(gè)特征面一一對(duì)應(yīng).池化層目的是降低卷積層輸出的特量的維度,減少過擬合現(xiàn)象,使SE-CNN更加健壯.目前主流的方法有最大池化(max-pooling)和均值池化(mean-pooling),最大池化是取局部接受域中值最大的點(diǎn),均值池化是對(duì)局部接受域中的所有值求均值[12,13].SE-CNN的池化層對(duì)卷積層的每個(gè)特征圖均進(jìn)行尺度2*1的最大池化操作,因此S2和S4分別由30個(gè)1*176,30個(gè)1*84的特征圖組成.
3)全連接層
經(jīng)過多個(gè)卷積層和池化層提取特征圖之后,用全連接層(F1,F(xiàn)2,F(xiàn)3)連接所有特征,最后用softmax邏輯回歸(softmax regression)進(jìn)行分類.SE-CNN的輸出是輸入時(shí)間序列中所對(duì)應(yīng)標(biāo)簽的預(yù)測(cè)概率分布.SE-CNN從第5層開始為全連接層,第7層為輸出層,輸出單元數(shù)為5,計(jì)算過程如下:
(2)
(3)
(4)
在卷積層C1中,使用30個(gè)9*1的卷積核對(duì)輸入的ECG信號(hào)進(jìn)行卷積操作,得到30個(gè)特征圖,每個(gè)特征圖的大小為(1*352).在池化層S2中,對(duì)C1的每個(gè)特征圖進(jìn)行尺度為2*1的最大池化操作,特征圖數(shù)目仍為30,經(jīng)池化之后每個(gè)特征圖的大小為(1*176).C3設(shè)置了30個(gè)特征圖,用9*1的卷積核對(duì)S2進(jìn)行卷積,此時(shí)特征圖大小為(1*168).在S4層中,對(duì)C3的每個(gè)特征圖進(jìn)行尺度為2*1的最大池化操作,特征圖數(shù)目為30,此時(shí)特征圖的大小為(1*84).在全連接層F1中,設(shè)置80個(gè)神經(jīng)元,與S4層的特征圖進(jìn)行全連接.在全連接層F2中,設(shè)置70個(gè)神經(jīng)元,與F1層的神經(jīng)元進(jìn)行全連接.輸出層F3是與F2的一個(gè)全連接層,輸出層F3設(shè)置5個(gè)神經(jīng)元以對(duì)應(yīng)5種ECG心跳類型.
MIT-BIH數(shù)據(jù)庫[14]共有48組心電數(shù)據(jù),每組數(shù)據(jù)時(shí)長約30分鐘,采樣率為360Hz,共有650000個(gè)采樣點(diǎn),且每條記錄標(biāo)記了QRS波位置以及每個(gè)心拍對(duì)應(yīng)疾病注釋類型.每組數(shù)據(jù)包含兩個(gè)導(dǎo)聯(lián)的心電信號(hào),由于雙導(dǎo)聯(lián)間數(shù)據(jù)與其導(dǎo)聯(lián)內(nèi)數(shù)據(jù)之間的關(guān)系是相互獨(dú)立的,且本實(shí)驗(yàn)研究以一維模型為基本條件,所以從每組ECG數(shù)據(jù)中選取單導(dǎo)聯(lián)作為本實(shí)驗(yàn)數(shù)據(jù)進(jìn)行研究.
3.2.1 數(shù)據(jù)去噪
在實(shí)際臨床檢測(cè)中,心電信號(hào)通常被各種噪聲干擾,比如工頻干擾、基線漂移、肌電干擾等.為了使心電數(shù)據(jù)效果會(huì)更加精確,需要對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的去噪處理.目前,大多數(shù)文獻(xiàn)采用的去噪方法有低通濾波、帶陷濾波器、小波變換以及零相移濾波器等[15-18].根據(jù)MIT-BIH數(shù)據(jù)特點(diǎn),本文選用60Hz陷波濾波器去除工頻干擾,并用小波變換去除高頻噪聲和基線漂移.
3.2.2 數(shù)據(jù)分類
MIT-BIH數(shù)據(jù)在每個(gè)心跳周期都標(biāo)注有疾病注釋,根據(jù)實(shí)驗(yàn)需求,將每組數(shù)據(jù)以R峰為中間點(diǎn),向兩端共取360個(gè)采樣點(diǎn)作為一個(gè)數(shù)據(jù)樣本.48組數(shù)據(jù)總共采集110281個(gè)樣本,共對(duì)應(yīng)24種標(biāo)簽注釋.將MIT-BIH數(shù)據(jù)集中的心電節(jié)拍按照AAMI標(biāo)準(zhǔn)分為五大類,分別是正常(Normal,N)、室上性異常(Supraventricular ectopic,S)、心室異常(Ventricular ectopic,V)、融合(Fusion,F(xiàn))、未分類的(unknown,Q).
3.2.3 增加數(shù)據(jù)與歸一化
在分類后的心電數(shù)據(jù)中,每種心拍之間數(shù)據(jù)量差距較大,具有明顯的數(shù)據(jù)不平衡現(xiàn)象,影響SE-CNN的特征學(xué)習(xí),從而最終影響識(shí)別精確度.目前解決數(shù)據(jù)不平衡問題的方法主要有采樣法、加權(quán)法以及對(duì)原始數(shù)據(jù)加噪處理等[8,19].然后根據(jù)心電類數(shù)據(jù)具有周期性等特點(diǎn),通過“平移起始點(diǎn)”[19]法,總共生成465000個(gè)數(shù)據(jù)樣本,每類心拍數(shù)量之比達(dá)到1∶1,這樣不僅增加了訓(xùn)練樣本數(shù),解決了數(shù)據(jù)不平衡的問題,還增強(qiáng)了識(shí)別算法的魯棒性.最后對(duì)每個(gè)樣本數(shù)據(jù)再用Z-score歸一化方法對(duì)數(shù)據(jù)進(jìn)行完善.
在機(jī)器學(xué)習(xí)方法中,通常用精確率(Accuracy,Acc)、靈敏度(Sensitivity,Sen)、特異度(Specificity,Spec)來評(píng)估算法的性能.Acc代表了該算法檢測(cè)出真實(shí)患病的樣本和真實(shí)無病的樣本總和占所有樣本的比率,Acc越高,說明該算法檢測(cè)出樣本真實(shí)情況的能力越強(qiáng).Sen代表了該算法對(duì)這種疾病的檢測(cè)能力,Sen越高,說明本算法檢測(cè)此類疾病的能力越強(qiáng).Spec代表了該算法對(duì)無病的檢測(cè)能力,Spec越高,說明本算法檢測(cè)無病的能力越強(qiáng).它們的定義如下:
(5)
(6)
(7)
其中,True Positive (TP)、False Positive (FP)、False Negative (FN)、True Negative (TN)分別是屬于該類且被分類器分為該類的樣本數(shù),不屬于該類但被分類為該類的樣本數(shù),屬于該類但被分類為不屬于該類的樣本數(shù),不屬于該類且被分類為不屬于該類的樣本數(shù).
本文采用10倍交叉驗(yàn)證[20]策略,將心電數(shù)據(jù)分成10份,9份作為訓(xùn)練數(shù)據(jù),剩余1份作為測(cè)試數(shù)據(jù),交叉驗(yàn)證重復(fù)10次試驗(yàn),每次試驗(yàn)都會(huì)得出相應(yīng)的評(píng)估結(jié)果精確率、靈敏度、特異度.最后,將10次結(jié)果的平均值作為算法整體性能的估計(jì).本文工作在具有2個(gè)Intel Xeon E5-2650處理器和128G內(nèi)存的服務(wù)器上進(jìn)行訓(xùn)練.
圖2 原始數(shù)據(jù)混淆矩陣圖
本文分別使用原始MIT-BIH數(shù)據(jù)和去噪后的MIT-BIH數(shù)據(jù)進(jìn)行試驗(yàn).圖2和圖3分別表示原始數(shù)據(jù)和去噪數(shù)據(jù)的實(shí)驗(yàn)混淆矩陣,其中S、N、V、F和Q分別代表五類心拍.為了驗(yàn)證SE-CNN的有效性,與文獻(xiàn)[8]中的研究成果進(jìn)行對(duì)比(見表1).文獻(xiàn)[8]是以R峰為檢測(cè)中心,將ECG信號(hào)分割成260個(gè)采樣點(diǎn),使用Daubechies6小波濾波器進(jìn)行去噪[21],與本文相同的是都是使用的Z-score方法對(duì)每個(gè)樣本數(shù)據(jù)進(jìn)行歸一化處理.文獻(xiàn)[8]中CNN模型采用的是9層網(wǎng)絡(luò)架
圖3 去噪數(shù)據(jù)混淆矩陣
構(gòu),分別是3個(gè)卷積層,3個(gè)池化層以及3個(gè)全連接層.CNN(A)和CNN(B)分別是用原始數(shù)據(jù)和無噪音數(shù)據(jù)對(duì)這9層網(wǎng)絡(luò)架構(gòu)訓(xùn)練得到的CNN模型.在CNN(A)和CNN(B)上的準(zhǔn)確率分別是93.47%和94.03%.對(duì)于本文提出的SE-CNN模型,原始數(shù)據(jù)和去噪數(shù)據(jù)對(duì)應(yīng)的識(shí)別準(zhǔn)確率分別是95.42%和96.41%,表明去噪后的效果較好.對(duì)比可知,不管是在原始數(shù)據(jù)上的試驗(yàn)結(jié)果,還是在去噪數(shù)據(jù)上的實(shí)驗(yàn)結(jié)果,SE-CNN模型取得的結(jié)果均優(yōu)于文獻(xiàn)[8]中模型的結(jié)果,且CNN(A)和CNN(B)均是9層的網(wǎng)絡(luò)結(jié)構(gòu),而本論提出的SE-CNN模型是7層,表明本文提出的模型復(fù)雜度較小且檢測(cè)精度較高,具有一定的優(yōu)越性.
最后,將本文算法與傳統(tǒng)心律不齊檢測(cè)算法進(jìn)行比較(見表2).值得說明的是,所有對(duì)比方法的結(jié)果均是在MIT-BIH數(shù)據(jù)集上獲取的.由表2可知,本文算法與傳統(tǒng)算法的精度比較接近,然而傳統(tǒng)方法需要手工提取特征,本文提出的算法結(jié)合了傳統(tǒng)心律不齊檢測(cè)方法所需的基本步驟,不需要手工編碼特征,實(shí)現(xiàn)了端到端的ECG心律不齊的檢測(cè)五分類.
表1 不同CNN分類模型的實(shí)驗(yàn)結(jié)果
表2 傳統(tǒng)心律不齊檢測(cè)算法與本文算法的比較
DWT:Discrete Wavelet Transform,ICA:Independent Component Analysis,PCA:Principal Component Analysis,RR:RR intervals,WPD:WaveletPacket Decomposition.GMM:Gaussian Mixture Model,LS-SVM:Least Square-Support Vector Machine,NN:Neural Network,PNN:Probabilistic Neural Network,RF:Random Forest,SVM:Support Vector Machine.
本文提出了一種簡潔、高效的卷積神經(jīng)網(wǎng)絡(luò)模型SE-CNN用于ECG心律不齊的自動(dòng)檢測(cè).針對(duì)傳統(tǒng)深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)間長、運(yùn)算量大、以及表現(xiàn)性能不高等問題,本文采用具有較少層數(shù)的一維卷積神經(jīng)網(wǎng)絡(luò)對(duì)單導(dǎo)聯(lián)ECG信號(hào)進(jìn)行識(shí)別,在簡化了模型復(fù)雜度的同時(shí)保證良好了的訓(xùn)練性能.與其它基于CNN的檢測(cè)方法相比,本文提出的方法具有更高的識(shí)別率和運(yùn)算效率;與傳統(tǒng)檢測(cè)方法相比,SE-CNN擺脫了手工編碼特征的依賴,實(shí)現(xiàn)了端到端的ECG心律不齊的檢測(cè).進(jìn)一步工作是以SE-CNN為算法基礎(chǔ),使用多導(dǎo)聯(lián)ECG信號(hào)以提高心律不齊檢測(cè)的精度,并將其應(yīng)用于其它心血管疾病的檢測(cè).