朱彬如, 萬相奎, 金志堯, 劉俊杰, 張明瑞
(湖北工業(yè)大學(xué) 電氣與電子工程學(xué)院, 湖北 武漢 430068)
據(jù)《中國(guó)心血管病報(bào)告2018》推算,我國(guó)患心血管人數(shù)達(dá)2.9億,患高血壓人數(shù)達(dá)2.45億[1].僅2017年,我國(guó)因心血管疾病死亡人數(shù)約為350萬,遠(yuǎn)高于癌癥致死人數(shù),心血管疾病位居所有致死病因的首位[2].心電圖(electrocardiogram,ECG)是臨床應(yīng)用最廣泛的心血管疾病檢查手段之一.醫(yī)生可根據(jù)心電圖結(jié)果初步掌握患者的身體情況,診斷心律失常、心肌梗死等疾病.
傳統(tǒng)基于機(jī)器學(xué)習(xí)的算法在心電信號(hào)分類領(lǐng)域的應(yīng)用有隨機(jī)森林[3]、最小相鄰[4]、聚類分析[5]、隱含馬爾可夫鏈[6]等方法.這些方法對(duì)提取波形特征的要求很高,更多依賴于人工特征的設(shè)計(jì).基于深度學(xué)習(xí)的方法能夠從廣泛的醫(yī)療數(shù)據(jù)集中自動(dòng)學(xué)習(xí),并能從海量復(fù)雜的數(shù)據(jù)中挖掘有用的信息和規(guī)律,無需人工設(shè)計(jì)特征,可將相關(guān)人員從繁重的醫(yī)療數(shù)據(jù)中解脫出來.近年來,卷積神經(jīng)網(wǎng)絡(luò)算法不斷被應(yīng)用到心電領(lǐng)域中.Zubair等[7]采用卷積神經(jīng)網(wǎng)絡(luò)(CNN)提取ECG信號(hào)的有效特征,實(shí)現(xiàn)優(yōu)于大多數(shù)分類算法的準(zhǔn)確率.Kiranyaz等[8]利用一維卷積神經(jīng)網(wǎng)絡(luò)(1D-CNN)將特征提取和分類融合統(tǒng)一,可對(duì)較長(zhǎng)的ECG記錄進(jìn)行有效分類.Al Rahhal等[9]利用深度神經(jīng)網(wǎng)絡(luò)(DNN),在網(wǎng)絡(luò)隱含層頂層加入重構(gòu)層并采用Softmax激活函數(shù),提高了心律失常的分類效果.這些算法雖然能達(dá)到不錯(cuò)的效果,但卻忽略了心電信號(hào)在時(shí)間上的序列關(guān)系.Zhang等[10]使用循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)與聚類分析技術(shù)處理時(shí)間序列,實(shí)現(xiàn)了在MIT-BIH心率失常數(shù)據(jù)庫(kù)的有效心拍識(shí)別.然而,心電信號(hào)的分類還要考慮局部波形與整體波形的關(guān)系,RNN無法解決心電信號(hào)的長(zhǎng)程依賴問題.長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)是對(duì)RNN的一種改進(jìn),可以較好地解決以上問題.因此,本文基于雙向長(zhǎng)短期記憶模型的深度學(xué)習(xí)算法對(duì)心拍進(jìn)行分類.
采集的心電信號(hào)往往含有基線漂移、工頻干擾等噪聲[11],嚴(yán)重影響心電信號(hào)的特征提取和心拍識(shí)別的準(zhǔn)確性,需在數(shù)據(jù)載入訓(xùn)練前進(jìn)行必要的預(yù)處理.信號(hào)預(yù)處理步驟,如圖1所示.
圖1 信號(hào)預(yù)處理步驟Fig.1 Signal preprocessing steps
利用FIR帶通濾波去除基線漂移,低通濾波去除工頻干擾等噪聲.濾波后,P波和T波被明顯削弱.采用“雙斜率”法[12]處理濾波后的波形,利用QRS波兩側(cè)波峰斜率突變的性質(zhì),在波峰左右兩側(cè)選擇平均最大斜率和最小斜率;然后,用前側(cè)最大斜率減去后側(cè)最小斜率,后側(cè)最大斜率減去前側(cè)最大斜率,再取前、后兩側(cè)的最大值.經(jīng)過濾波和“雙斜率”法處理后,信號(hào)幅度越來越小.為了便于檢測(cè),通過滑動(dòng)窗口積分,增大波形絕對(duì)振幅,而波形的幅值僅在縱坐標(biāo)上變化,對(duì)要獲取波峰橫坐標(biāo)的位置無明顯影響.預(yù)處理后的心電信號(hào)變成模式單一的波峰信號(hào),波峰對(duì)應(yīng)QRS波,比原始信號(hào)更容易檢測(cè).預(yù)處理前、后的ECG信號(hào),如圖2所示.圖2中:U為電壓;n為心電信號(hào)數(shù)據(jù)點(diǎn)的個(gè)數(shù).
(a) 預(yù)處理前 (b) 預(yù)處理后圖2 預(yù)處理前、后的ECG信號(hào)Fig.2 ECG signal before and after pretreatment
經(jīng)典的QRS波群的定位與檢測(cè)方法有圖形識(shí)別法、小波變換法、差分閾值法、雙閾值法等[13].小波變換法精確度高、濾波突出,但結(jié)構(gòu)較為復(fù)雜,抗干擾能力弱.差分閾值法結(jié)構(gòu)簡(jiǎn)單、運(yùn)算速度快,但對(duì)預(yù)處理的濾波要求高.雙閾值法[14]的運(yùn)算速度快、精準(zhǔn)度高、抗干擾能力強(qiáng),但對(duì)波形復(fù)雜、有干擾的信號(hào)檢測(cè)能力較弱.
采用一種改進(jìn)的自適應(yīng)閾值方法,結(jié)合差分閾值和雙閾值法的優(yōu)點(diǎn),使自適應(yīng)閾值跟隨信號(hào)實(shí)時(shí)變化[15],確定和精準(zhǔn)定位R波.當(dāng)心電信號(hào)的波形超過低閾值時(shí),即認(rèn)為檢測(cè)到一個(gè)QRS波;而當(dāng)心電信號(hào)的波形超過高閾值時(shí),則表明要適當(dāng)調(diào)整閾值的數(shù)值.為保證能檢測(cè)到絕大部分的QRS波,要保證閾值區(qū)間能自適應(yīng)波形變換并具有一定的穩(wěn)健性.具體來說,如果檢測(cè)到的QRS波峰遠(yuǎn)高于閾值時(shí),說明閾值設(shè)置過低,高閾值基于前面5個(gè)QRS波的波峰,設(shè)置為平均值的0.7倍,相應(yīng)的低閾值設(shè)置為0.3倍.當(dāng)波峰處于高閾值與低閾值之間時(shí),保持高閾值不變,調(diào)高低閾值,有利于排除不必要的噪聲信號(hào).閾值變化是基于不斷變化的QRS波具有一定的自適應(yīng),自適應(yīng)閾值調(diào)整公式為
(1)
(2)
式(1),(2)中:R表示波峰值;avg表示平均值;fmax為最高閾值;fmin為最低閾值.
心電信號(hào)處于不斷變換中,每次心拍持續(xù)時(shí)間和表現(xiàn)波形并不完全一致,很難精準(zhǔn)定位每個(gè)P波和T波的起點(diǎn)和終點(diǎn)位置.整個(gè)心拍周期基本在0.6~0.8 s之間,而MIT-BIH心律失常數(shù)據(jù)庫(kù)的采樣頻率為360 Hz,故對(duì)于一個(gè)完整心拍,其采樣點(diǎn)長(zhǎng)度應(yīng)該在216~288之間.以QRS波為參考位置,分別向前選取100個(gè)點(diǎn)和向后選取150個(gè)點(diǎn),共250個(gè)點(diǎn),將其作為一個(gè)片段進(jìn)行分割截取,使其包含完整的心拍.
LSTM網(wǎng)絡(luò)是RNN網(wǎng)絡(luò)中的一種,由Hochreiter等[16]提出,相比于經(jīng)典的RNN結(jié)構(gòu),LSTM最大的特點(diǎn)就是引入了門的機(jī)制和記憶元組,解決了RNN網(wǎng)絡(luò)中存在的梯度消失和梯度爆炸問題.LSTM與經(jīng)典的RNN結(jié)構(gòu)類似,但ECG信號(hào)是一維信號(hào),也是一個(gè)時(shí)間序列,因此,LSTM非常適合處理心電信號(hào).
LSTM的門結(jié)構(gòu)主要由遺忘門、輸入門和輸出門組成,其網(wǎng)絡(luò)結(jié)構(gòu),如圖3所示.LSTM通過這3種門對(duì)細(xì)胞的狀態(tài)進(jìn)行控制與保護(hù).遺忘門決定刪除哪些信息,它接受上一刻的輸出ht-1與當(dāng)前時(shí)刻的輸入xt,接著輸出遺忘矩陣Ft,從而控制上一時(shí)刻的細(xì)胞狀態(tài)Ct-1是否通過.
新的信息傳送到細(xì)胞的狀態(tài)中,輸入門開始接收ht-1與xt,接著,tanh 層產(chǎn)生候選狀態(tài)值并對(duì)之前的Ct-1進(jìn)行迭代更新.Ft為遺忘矩陣,Ct-1為之前時(shí)刻的狀態(tài),it為更新的數(shù)值.輸出門決定輸出的信息,通過輸出門(sigmoid層)產(chǎn)生一個(gè)輸出矩陣Ot,決定輸出目前狀態(tài)Ct的結(jié)果,Ct狀態(tài)通過tanh層與Ot做乘積,輸出結(jié)果ht.
LSTM的更新公式為
Ft=σ(Wf·[ht-1,xt]+bf),
(3)
it=σ(Wi·[ht-1,xt]+bi),
(4)
(5)
(6)
Ot=σ(Wo·[ht-1,xt]+bo),
(7)
ht=Ot×tanhCt.
(8)
式(3)~(8)中:Wf,Wi,Wc,Wo為各個(gè)門的權(quán)重參數(shù);bf,bi,bc,bo為偏置參數(shù).
LSTM對(duì)RNN進(jìn)行了改進(jìn),使其能獲取更長(zhǎng)距離的信息元素.但LSTM和RNN都只是單向推進(jìn),會(huì)出現(xiàn)后面的因素比前面的因素更重要的情況,這是不夠準(zhǔn)確的.因此,為了提高心拍分類的準(zhǔn)確性,提出基于雙向長(zhǎng)短期記憶網(wǎng)絡(luò)的方法.
圖4 BiLSTM網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Network structure of BiLSTM
BiLSTM由前向LSTM與后向LSTM組合而成,是LSTM的變種和改進(jìn)[17].改進(jìn)的LSTM進(jìn)行雙向推進(jìn),把兩個(gè)方向的LSTM結(jié)合起來得到最終的輸出yt.BiLSTM網(wǎng)絡(luò)結(jié)構(gòu),如圖4所示.
(9)
(10)
采用雙向長(zhǎng)短期記憶網(wǎng)絡(luò),預(yù)處理數(shù)據(jù)后,將單個(gè)心拍轉(zhuǎn)變?yōu)闀r(shí)間序列輸入訓(xùn)練好的網(wǎng)絡(luò)模型中;分類器輸出心拍對(duì)應(yīng)的心律失常類型.基于BiLSTM的心拍分類網(wǎng)絡(luò)結(jié)構(gòu),如圖5所示.具體有以下3個(gè)步驟.
步驟1心拍信號(hào).為了便于截取和操作,向前選取100個(gè)點(diǎn),向后選取150個(gè)點(diǎn),共計(jì)250個(gè)點(diǎn)(時(shí)間約為0.7 s)作為一個(gè)完整的心拍,即作為時(shí)間序列輸入x.
圖5 基于BiLSTM的心拍分類網(wǎng)絡(luò)結(jié)構(gòu)Fig.5 Network structure of heartbeat classification based on BiLSTM
步驟2模型結(jié)構(gòu)訓(xùn)練.訓(xùn)練集的完整心拍經(jīng)過時(shí)間序列輸入層后,依次進(jìn)入雙向LSTM層、全連接層、Softmax層.雙向LSTM層由前向?qū)雍秃笙驅(qū)咏M成,每個(gè)時(shí)間步驟結(jié)合前向和后向?qū)虞敵?,將前向?qū)雍秃笙驅(qū)虞敵鲞B接起來送到Softmax層和分類層.
步驟3心拍檢測(cè).將經(jīng)過專家標(biāo)注的心拍集作為標(biāo)簽,訓(xùn)練好的模型與測(cè)試集用于檢測(cè)分類效果,與真實(shí)標(biāo)簽對(duì)比檢驗(yàn)文中算法的精準(zhǔn)度.
MIT-BIH心率失常數(shù)據(jù)庫(kù)是由美國(guó)麻省理工學(xué)院與貝斯以色列提供的可公開使用的數(shù)據(jù)庫(kù).它包含48條30 min左右的兩導(dǎo)聯(lián)心電信號(hào)記錄,分別來自47個(gè)不同個(gè)體(包含25名年齡為32~89歲的男性和22名年齡為23~89歲的女性),心電信號(hào)的采樣頻率為360 Hz[18].
依據(jù)ANSI/AAMI EC57:2012[19]標(biāo)準(zhǔn),將心拍類型劃分為正?;蚴鲗?dǎo)阻滯(N)、室上性異常(S)、心室異常(V)、融合(F)4類.N,V,S,F的心拍數(shù)量分別為90 285,7 140,3 002,800,各類型的心拍數(shù)量分布十分不均衡.若把獲取的各類型心拍數(shù)量直接載入網(wǎng)絡(luò)進(jìn)行訓(xùn)練,則網(wǎng)絡(luò)訓(xùn)練的效果必然出現(xiàn)偏差.為了避免數(shù)據(jù)不平衡帶來的影響,以心拍類型數(shù)量最少的F類心拍數(shù)量為基準(zhǔn),將心拍進(jìn)行隨機(jī)排列,分別從N,V,S,F(xiàn)中隨機(jī)選取10 000,7 000,3 000,800個(gè)樣本作為本次分類的數(shù)據(jù).在20 800個(gè)樣本中,選取其中90%作為訓(xùn)練集,其余10%作為驗(yàn)證集,訓(xùn)練集與測(cè)試集數(shù)據(jù)交叉驗(yàn)證,避免過擬合.
訓(xùn)練時(shí)采用Adam優(yōu)化算法,與默認(rèn)隨機(jī)梯度下降法相比具有更好的適應(yīng)性,其學(xué)習(xí)率為0.001,一次訓(xùn)練所抓取的數(shù)據(jù)樣本數(shù)量為16.
實(shí)驗(yàn)平臺(tái)的硬件為Intel i5-4200H,顯卡為GEFORCE-GTX850M,內(nèi)存為8 GB,操作系統(tǒng)基于Windows10,編程語言為Python,深度學(xué)習(xí)的框架為Tensorflow,開發(fā)工具為MATLAB2018a.
ECG心律失常分類效果的評(píng)估指標(biāo)為特異性(ηspe)、敏感性(ηsen)和準(zhǔn)確率(ηacc),這些指標(biāo)可以通過混淆矩陣呈現(xiàn).各評(píng)估指標(biāo)的計(jì)算式為
(11)
(12)
(13)
式(11)~(13)中:TP,F(xiàn)P,F(xiàn)N,TN分別為樣本真陽性、假陽性、假陰性、真陰性的數(shù)量.
根據(jù)ANSI/AAMI EC57-2012中心律失常的評(píng)估標(biāo)準(zhǔn),利用測(cè)試集分別檢驗(yàn)CNN,LSTM,BiLSTM 3種模型算法的泛化能力,并采用混淆矩陣表示實(shí)驗(yàn)分類結(jié)果.3種算法對(duì)4種心律失常類型的分類結(jié)果,如表1所示.
表1 3種算法對(duì)4種心律失常類型的分類結(jié)果Tab.1 Classification results of four arrhythmia types by three algorithms
由表1可知:3種模型算法對(duì)4種心律失常類型的心拍識(shí)別準(zhǔn)確率平均都能到達(dá)94%以上,能夠完成分類的任務(wù).
依據(jù)統(tǒng)計(jì)表和混淆矩陣,輸出4種心律失常類型的準(zhǔn)確度、靈敏性和特異性,將文中基于BiLSTM模型的深度學(xué)習(xí)算法與其他算法的分類效果進(jìn)行對(duì)比,結(jié)果如表2所示.表2中:GMM為高斯混合模型;HOS為高斯統(tǒng)計(jì)分析;WPE為小波熵;RF為隨機(jī)森林.
表2 基于BiLSTM模型的深度學(xué)習(xí)算法與其他算法的分類效果對(duì)比Tab.2 Comparison of classification effect between deep learning algorithm based on BiLSTM model and other algorithms
由表2可知:GMM+HOS算法的整體準(zhǔn)確率雖然達(dá)到96.17%,但其對(duì)F類敏感性僅有11.86%,存在數(shù)據(jù)不平衡的情況.此外,在對(duì)心電信號(hào)進(jìn)行特征提取過程中,由于GMM+HOS算法的非線性擬合效果受限,通過這種數(shù)學(xué)方法處理信號(hào)時(shí),會(huì)損失一些有用的信息,從而對(duì)結(jié)果產(chǎn)生一定的影響.
WPE+RF算法雖然整體準(zhǔn)確率超過了平均水平,但是對(duì)S,F(xiàn)類的敏感性僅為20.00%,50.00%,遠(yuǎn)低于平均水平,不能滿足分類的應(yīng)用要求.基于數(shù)學(xué)變換的WPE方式使特征的意義不夠直觀,解釋性也不夠強(qiáng);而RF在訓(xùn)練集有噪音時(shí),會(huì)出現(xiàn)過擬合的現(xiàn)象,對(duì)于特征量不多的數(shù)據(jù),分類效果不好.
1D-CNN算法可以利用局部波形與整體心電信號(hào)的關(guān)系,將波形的低層次變換特征轉(zhuǎn)換成的高層次特征.CNN算法的特點(diǎn)得到了很好的利用:局部連接使網(wǎng)絡(luò)可提取數(shù)據(jù)的局部特征;權(quán)值共享減小了訓(xùn)練的難度;池化操作和多層結(jié)構(gòu)將低層次特征組合為高層次特征.CNN的濾波器尺寸和數(shù)據(jù)量不夠大,使CNN算法的訓(xùn)練難以充分發(fā)揮.從表2可以看出,雖然CNN算法的總體分類效果不錯(cuò),對(duì)V類的敏感性最高為97.15%,但其對(duì)F類基本不能識(shí)別,而且模型中需要確定的超參數(shù)較多,要達(dá)到最高的準(zhǔn)確率沒有具體的規(guī)律可循,需要反復(fù)實(shí)驗(yàn),耗費(fèi)大量時(shí)間.
GMM+HOS,WPE+RF,1D-CNN算法雖然能完成基本的分類任務(wù),但不能充分發(fā)掘和利用心電信號(hào)的時(shí)間序列中存在的隱藏規(guī)律.相比而言,LSTM適用于具有時(shí)間特征的心電信號(hào),能夠有效提取心電信號(hào)的時(shí)序特征,利用心電信號(hào)前后間的聯(lián)系,使數(shù)據(jù)和模型得到更好的結(jié)果.由表2可知:LSTM算法的各項(xiàng)評(píng)價(jià)指標(biāo)都不是最高,整體效果也不是最好,但是都能達(dá)到平均水平以上,而且沒有較大的誤差和明顯的短板.可見LSTM算法能基本滿足分類任務(wù)的需求.
BiLSTM的模型算法是基于LSTM的改進(jìn),由前向LSTM和后向LSTM結(jié)合而成,在發(fā)揮了LSTM優(yōu)點(diǎn)的同時(shí),使數(shù)據(jù)得到更充分的訓(xùn)練,從而減小誤差,提高準(zhǔn)確性.無論在各類型識(shí)別準(zhǔn)確的數(shù)目上,還是在各類型評(píng)價(jià)指標(biāo)上,BiLSTM算法都明顯優(yōu)于LSTM算法,說明BiLSTM算法的改進(jìn)是有效的.BiLSTM算法對(duì)N類的敏感性、特異性和對(duì)S類的敏感性分別為98.56%,98.38%,93.33%,比其他4種方法都高;對(duì)其他心率失常類型的敏感性和特異性指標(biāo)也都排在前三位,整體分類準(zhǔn)確率也最高,故BiLSTM算法的整體綜合指標(biāo)最好.以上幾種分類算法對(duì)S類的分類效果會(huì)略低于N類和V類,除了選取的樣本不夠典型造成錯(cuò)誤分類外,還因?yàn)镾類心拍與N類心拍的形態(tài)特征十分相似,波形的重合度很高,造成部分S類心拍被錯(cuò)誤歸類到N類,而把異常心拍歸為正常N類.
從分類速度方面看,由于GMM+HOS,WPE+RF算法不是基于多層神經(jīng)網(wǎng)絡(luò)的模型算法,其計(jì)和耗時(shí)結(jié)果,如表3所示.表3中:N為數(shù)據(jù)量;ηacc為準(zhǔn)確率;t為時(shí)間.
算復(fù)雜度遠(yuǎn)低于基于多層神經(jīng)網(wǎng)絡(luò)的算法,故耗時(shí)明顯低于1D-CNN,LSTM和BiLSTM算法.采用3種神經(jīng)網(wǎng)絡(luò)算法,對(duì)MIT-BIH心律失常數(shù)據(jù)庫(kù)中同樣的心電數(shù)據(jù)進(jìn)行分類,對(duì)比其心拍識(shí)別的準(zhǔn)確率
表3 基于神經(jīng)網(wǎng)絡(luò)模型算法的分類速度比較Tab.3 Comparison of classification speed based on neural network model algorithm
由表3可知:基于BiLSTM模型算法雖然耗時(shí)多于單向的記憶網(wǎng)絡(luò)算法,但能夠明顯提高準(zhǔn)確率.
基于雙向長(zhǎng)短期記憶模型的深度學(xué)習(xí)算法,在MIT-BIH心律失常數(shù)據(jù)庫(kù)下進(jìn)行分類識(shí)別時(shí),整體的準(zhǔn)確率達(dá)到96.54%,相比于其他幾種模型算法具有明顯優(yōu)勢(shì).但深度學(xué)習(xí)的訓(xùn)練往往基于大量的數(shù)據(jù)輸入,而選擇的MIT-BIH心律失常數(shù)據(jù)庫(kù)的數(shù)據(jù)有限且心律失常樣本內(nèi)部的數(shù)據(jù)不平衡,使訓(xùn)練時(shí)分類結(jié)果容易往數(shù)據(jù)量大的類型偏移,對(duì)分類結(jié)果會(huì)有一定的影響.在接下來的研究中,可以嘗試擴(kuò)充增強(qiáng)數(shù)據(jù)量,減少數(shù)據(jù)不平衡帶來的影響,盡可能提高模型的泛化能力,使文中算法能有效地應(yīng)用于其他數(shù)據(jù)上.