包志強(qiáng),白 瑩,黃瓊丹,呂少卿
(西安郵電大學(xué) 通信與信息工程學(xué)院,陜西 西安 710121)
房顫即心房顫動(dòng)(atrial fibrillation,AF),作為臨床上最常見(jiàn)的一種持續(xù)性心律失常,其本身并不可怕,但由它引起的腦卒中、心力衰竭等往往會(huì)直接威脅人的生命健康[1]。隨著科技發(fā)展,計(jì)算機(jī)輔助心電圖(electrocardiogram,ECG)分析方法[2]已經(jīng)成為目前診斷房顫等心律失常的最便捷手段。
近年來(lái),由于人工智能技術(shù)的興起,各種各樣的機(jī)器學(xué)習(xí)算法被用于心電信號(hào)檢測(cè)與分類(lèi)識(shí)別。這其中主要包括兩大類(lèi)方法,即逐步(step-by-step)的機(jī)器學(xué)習(xí)和端到端(end-to-end)的深度學(xué)習(xí)。類(lèi)似于Li等[3]使用的隨機(jī)森林之類(lèi)的傳統(tǒng)機(jī)器學(xué)習(xí)方法大多需要手動(dòng)提取特征,當(dāng)原始信號(hào)因?yàn)樵肼曔^(guò)多等情況而難以進(jìn)行手工特征提取時(shí),端對(duì)端的深度學(xué)習(xí)就表現(xiàn)出明顯的優(yōu)勢(shì)。例如Teijeiro等[4]使用循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks,RNN)對(duì)房顫樣本進(jìn)行識(shí)別與分類(lèi)時(shí)可將原始心電信號(hào)作為輸入,然后直接輸出分類(lèi)結(jié)果,去掉了手工特征提取的環(huán)節(jié)。
傳統(tǒng)機(jī)器學(xué)習(xí)算法提取復(fù)雜心電信號(hào)特征存在一定難度,而深度學(xué)習(xí)可以對(duì)數(shù)據(jù)背后的隱藏特征進(jìn)行深層挖掘并端對(duì)端地完成自動(dòng)分類(lèi)。針對(duì)于此,本文設(shè)計(jì)將擅長(zhǎng)處理圖像的卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)用于心電信號(hào)的處理,在進(jìn)行特征提取之后與適合處理時(shí)間序列的雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(bidirectional long short-term memory,BLSTM)結(jié)合起來(lái),對(duì)The Physionet/Computing in Cardiology Challenge 2017(PCinCC2017)挑戰(zhàn)賽數(shù)據(jù)進(jìn)行分類(lèi)訓(xùn)練,完成對(duì)原始信號(hào)的自動(dòng)分類(lèi)并在一定程度上提高了分類(lèi)準(zhǔn)確率。
CNN是一類(lèi)包含卷積運(yùn)算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò)[5]。作為深度學(xué)習(xí)的代表算法之一,CNN已經(jīng)成為人臉識(shí)別、圖像處理、模式分類(lèi)甚至是自動(dòng)駕駛等眾多領(lǐng)域的研究熱點(diǎn)。由于其避免了對(duì)圖像復(fù)雜的前期預(yù)處理,可以直接輸入原始圖像,因此在模式分類(lèi)領(lǐng)域的應(yīng)用尤為廣泛。CNN強(qiáng)大的特征提取能力與它的局部感知和權(quán)值共享特性息息相關(guān)[6],其結(jié)構(gòu)通常為卷積層和池化層的交替組合加上全連接層的形式。卷積層中的卷積核就相當(dāng)于一個(gè)特征提取器,利用它在前一層輸出上滑動(dòng)窗口來(lái)計(jì)算當(dāng)前的卷積輸出。池化層主要是進(jìn)行下采樣,對(duì)特征圖進(jìn)行稀疏處理,從而減少數(shù)據(jù)運(yùn)算量,池化方式一般有最大池化和平均池化兩種。全連接層則根據(jù)需求來(lái)輸出結(jié)果。對(duì)于多分類(lèi)問(wèn)題,最后一個(gè)全連接層的激活函數(shù)通常選擇Softmax函數(shù),從而得到樣本屬于各個(gè)類(lèi)別的概率分布情況。
長(zhǎng)短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM)是一種特殊的RNN。相比于普通的RNN,它可以有效解決長(zhǎng)序列訓(xùn)練過(guò)程中易出現(xiàn)的梯度消失和梯度爆炸問(wèn)題[7],也就是說(shuō)它可以長(zhǎng)時(shí)間記住信息,因此特別適合于處理和預(yù)測(cè)時(shí)間序列中間隔和延遲非常長(zhǎng)的重要事件。LSTM單元內(nèi)部結(jié)構(gòu)如圖1所示。其關(guān)鍵在于細(xì)胞狀態(tài)的更新,也就是圖中上方的水平線(xiàn)。細(xì)胞狀態(tài)就好比一條傳輸高速公路,沿著序列鏈傳遞相關(guān)信息。LSTM通過(guò)隱藏層中的遺忘門(mén)、輸入門(mén)和輸出門(mén)對(duì)細(xì)胞狀態(tài)進(jìn)行信息的添加或刪除。這些門(mén)結(jié)構(gòu)通常由一個(gè)sigmoid層和一個(gè)點(diǎn)乘操作組合而成,因此通過(guò)門(mén)可以有選擇地讓信息通過(guò)或是不通過(guò)。
圖1 LSTM單元內(nèi)部結(jié)構(gòu)
BLSTM可以理解為L(zhǎng)STM的變體,由前向LSTM與后向LSTM組合而成。單向LSTM僅保留過(guò)去的信息,它唯一的輸入來(lái)自過(guò)去。而B(niǎo)LSTM可以在任何時(shí)間點(diǎn)保存過(guò)去和未來(lái)的信息,它可以很好地利用雙向時(shí)間序列信息,生成更具魯棒性的特征。其時(shí)間模型如圖2所示。
圖2 BLSTM單元時(shí)間模型
本文針對(duì)心電信號(hào)的時(shí)序特性,將CNN和BLSTM結(jié)合,建立一種新的一維深度網(wǎng)絡(luò)模型,通過(guò)數(shù)據(jù)預(yù)處理和特征降維將PCinCC2017挑戰(zhàn)賽數(shù)據(jù)送入本文所設(shè)計(jì)的網(wǎng)絡(luò)模型,在利用CNN的多次卷積和池化操作快速提取心電數(shù)據(jù)局部深層特征的同時(shí),也利用BLSTM提取數(shù)據(jù)依賴(lài)于時(shí)間的時(shí)間特征,最終實(shí)現(xiàn)房顫的自動(dòng)識(shí)別分類(lèi)。
PCinCC2017數(shù)據(jù)是使用AliveCor設(shè)備[9]采集的短時(shí)單導(dǎo)聯(lián)手部心電信號(hào),采樣頻率為300 Hz。其中訓(xùn)練集包含8528條單導(dǎo)聯(lián)心電圖記錄,時(shí)間從9 s到61 s不等。測(cè)試集包含3658條相似記錄,由于官方測(cè)試集不對(duì)外公開(kāi),因此本文采用的數(shù)據(jù)集是訓(xùn)練集數(shù)據(jù),其具體的分布信息見(jiàn)表1。
表1 PCinCC2017挑戰(zhàn)賽數(shù)據(jù)樣本分布信息
心電信號(hào)是人體的一種微弱生理信號(hào),在對(duì)其采集的過(guò)程中,極易受來(lái)自體內(nèi)和體外環(huán)境的影響,因此通常采集到的心電信號(hào)會(huì)伴隨有基線(xiàn)漂移、工頻干擾、肌電干擾等噪聲的影響[10]?;€(xiàn)漂移是由測(cè)量電極接觸不良、呼吸引起的低頻干擾信號(hào),其頻率在0.05 Hz~2 Hz之間。工頻干擾主要來(lái)自供電設(shè)備,其頻率為50 Hz。肌電干擾通常來(lái)自于肌肉的收縮和顫動(dòng),其頻率在5 Hz~2000 Hz。不過(guò)由于本文所設(shè)計(jì)的深度網(wǎng)絡(luò)模型能夠自動(dòng)挖掘心電信號(hào)的深層次特征,因此在數(shù)據(jù)預(yù)處理階段僅進(jìn)行簡(jiǎn)單濾波即可。首先將原始信號(hào)經(jīng)過(guò)一個(gè)5階的巴特沃斯帶通濾波器,通帶截止頻率為3 Hz~45 Hz,由此來(lái)消除基線(xiàn)漂移和高頻噪聲的影響。此時(shí)數(shù)據(jù)中不存在50 Hz的交流電干擾,無(wú)需設(shè)計(jì)相關(guān)的陷波器。之后把所有樣本數(shù)據(jù)從中間分為前后兩端,分別計(jì)算其峰值,使用較小的峰值對(duì)每一個(gè)樣本數(shù)據(jù)進(jìn)行歸一化,這樣做可以避免野值對(duì)信號(hào)的影響。本文選取了2.1節(jié)數(shù)據(jù)庫(kù)中A00057號(hào)數(shù)據(jù)的10 s信號(hào)數(shù)據(jù),進(jìn)行了以上操作的效果展示,如圖3所示。
圖3 心電信號(hào)濾波歸一化前后對(duì)比
此外,在采樣頻率為300 Hz的條件下,采樣時(shí)間從9 s到 61 s,這說(shuō)明樣本數(shù)據(jù)的長(zhǎng)度大小不等,而深度學(xué)習(xí)網(wǎng)絡(luò)需要輸入的尺寸一致,因此對(duì)樣本數(shù)據(jù)進(jìn)行統(tǒng)一處理,把所有樣本長(zhǎng)度限定為8192點(diǎn),對(duì)超出的進(jìn)行截取,不足的分別在兩邊進(jìn)行補(bǔ)零操作。為了提高網(wǎng)絡(luò)模型的運(yùn)算速度,在時(shí)域上對(duì)樣本數(shù)據(jù)進(jìn)行降采樣,即每?jī)蓚€(gè)采樣點(diǎn)取一個(gè),則最后輸入網(wǎng)絡(luò)的特征數(shù)據(jù)是長(zhǎng)度為4096的一維特征向量。另外由于數(shù)據(jù)集中只有少量的噪聲數(shù)據(jù),因此將其進(jìn)行剔除,最終將經(jīng)過(guò)以上處理的正常節(jié)律、房顫節(jié)律和其它節(jié)律3類(lèi)樣本數(shù)據(jù)送入網(wǎng)絡(luò)。
本文根據(jù)心電信號(hào)的一維時(shí)序特性,將BLSTM單元融入所構(gòu)建的深層CNN網(wǎng)絡(luò)中,設(shè)計(jì)一種基于心電信號(hào)的一維深度網(wǎng)絡(luò)模型,使模型發(fā)揮二者的獨(dú)特優(yōu)勢(shì),在自動(dòng)提取所選數(shù)據(jù)集深層特征的同時(shí)可以更好地利用雙向時(shí)序信息去完成長(zhǎng)期記憶任務(wù),實(shí)現(xiàn)對(duì)房顫的識(shí)別與輸入信號(hào)的自動(dòng)分類(lèi)。本文所設(shè)計(jì)的深度網(wǎng)絡(luò)模型具體結(jié)構(gòu)如圖4所示。
圖4 網(wǎng)絡(luò)模型結(jié)構(gòu)
本文模型中的CNN參考了VGG16網(wǎng)絡(luò)框架,考慮到模型的泛化能力,設(shè)計(jì)了13個(gè)一維卷積層,每個(gè)卷積層都使用修正線(xiàn)性單元(rectified linear unit,ReLU)作為激活函數(shù),通過(guò)ReLU函數(shù)能夠使稀疏后的模型更好地挖掘相關(guān)特征,擬合訓(xùn)練數(shù)據(jù)。在每個(gè)卷積層后面添加批歸一化層(batch normalization,BN),加快模型的收斂速度。為了在一定程度上防止過(guò)擬合問(wèn)題的出現(xiàn),在相應(yīng)的卷積層之后加入可以對(duì)特征數(shù)據(jù)進(jìn)行降維的最大池化操作,設(shè)置一定概率值的Dropout。在連續(xù)卷積操作之后,將最后一個(gè)一維卷積的輸出作為BLSTM層的輸入,把CNN中提取到的信號(hào)特征送入256個(gè)單元的BLSTM網(wǎng)絡(luò)中進(jìn)行特征學(xué)習(xí)和映射,最后將所提取到的信號(hào)時(shí)序特征再送入Softmax分類(lèi)器中進(jìn)行訓(xùn)練,最終輸出相應(yīng)的分類(lèi)結(jié)果,完成對(duì)原始信號(hào)的自動(dòng)分類(lèi),實(shí)現(xiàn)對(duì)房顫的識(shí)別。本文模型的詳細(xì)參數(shù)見(jiàn)表2。
以深度學(xué)習(xí)開(kāi)源框架Keras為基礎(chǔ),采用2.3節(jié)中所設(shè)計(jì)的網(wǎng)絡(luò)模型,將CNN和BLSTM進(jìn)行結(jié)合,并利用所選取的數(shù)據(jù)集進(jìn)行網(wǎng)絡(luò)訓(xùn)練。為了加快網(wǎng)絡(luò)的訓(xùn)練速度,采用隨機(jī)梯度下降(stochastic gradient descent,SGD)算法式(1)在每一次迭代中隨機(jī)選擇一個(gè)樣本來(lái)更新模型參數(shù),使用多分類(lèi)交叉熵?fù)p失函數(shù)式(2)計(jì)算損失值。網(wǎng)絡(luò)參數(shù)中的學(xué)習(xí)速率設(shè)定為0.001,學(xué)習(xí)速率的衰減系數(shù)設(shè)為0.000 001,動(dòng)量參數(shù)為0.92,權(quán)重衰減系數(shù)為0.0005,批處理大小為10,訓(xùn)練迭代次數(shù)設(shè)為200次
(1)
(2)
PCinCC2017挑戰(zhàn)賽的8528條樣本數(shù)據(jù)在通過(guò)2.2節(jié)中的數(shù)據(jù)預(yù)處理后,分為訓(xùn)練集和測(cè)試集兩部分。其中訓(xùn)練集占70%,用來(lái)訓(xùn)練2.3節(jié)所設(shè)計(jì)的模型,測(cè)試集占30%,用于模型測(cè)試。
實(shí)驗(yàn)軟硬件配置見(jiàn)表3。
針對(duì)本文所提出的網(wǎng)絡(luò)模型,分別采用分類(lèi)準(zhǔn)確率Accuracy和F1度量?jī)蓚€(gè)指標(biāo)來(lái)評(píng)估其性能。Accuracy表示被分類(lèi)正確的樣本數(shù)占所有樣本數(shù)的比率,F(xiàn)1度量是一種兼顧精確率和召回率的模型衡量指標(biāo)。其定義分別見(jiàn)式(3)和式(4)
(3)
(4)
式(3)中TP代表真陽(yáng)性,表示屬于該類(lèi)且被正確分類(lèi)的樣本數(shù)量,TN代表真陰性,表示不屬于該類(lèi)且被正確分類(lèi)的樣本數(shù)量,F(xiàn)P代表假陽(yáng)性,表示不屬于該類(lèi)卻被錯(cuò)誤歸為此類(lèi)的樣本數(shù)量,F(xiàn)N代表假陰性,表示屬于該類(lèi)卻被錯(cuò)誤歸為其它類(lèi)的樣本數(shù)量。式(4)中P代表精確率,表示該類(lèi)樣本中被正確分為此類(lèi)的樣本所占的比率,R代表召回率,表示被分為該類(lèi)的樣本中實(shí)際為此類(lèi)的樣本所占的比率。P和R可分別用式(5)和式(6)表示
(5)
(6)
4.2.1 網(wǎng)絡(luò)訓(xùn)練曲線(xiàn)分析
圖5為網(wǎng)絡(luò)訓(xùn)練過(guò)程中損失值隨迭代次數(shù)變化的曲線(xiàn)圖,圖中橫坐標(biāo)為迭代次數(shù),總迭代次數(shù)為200次,縱坐標(biāo)為損失值。從圖像可以看出,在模型訓(xùn)練階段,當(dāng)?shù)螖?shù)達(dá)到100次時(shí),各參數(shù)變化趨于穩(wěn)定,最終損失值下降到約0.32。
表2 網(wǎng)絡(luò)模型參數(shù)
表3 軟硬件配置
圖5 損失值函數(shù)曲線(xiàn)
4.2.2 實(shí)驗(yàn)結(jié)果對(duì)比
通過(guò)對(duì)本文所設(shè)計(jì)模型的反復(fù)訓(xùn)練和網(wǎng)絡(luò)超參數(shù)的調(diào)整,利用訓(xùn)練好的模型對(duì)測(cè)試集進(jìn)行預(yù)測(cè),輸出相應(yīng)的三分類(lèi)結(jié)果。相應(yīng)的混淆矩陣見(jiàn)表4,其中N表示正常節(jié)律,A表示房顫節(jié)律,O表示其它節(jié)律。本文使用F1度量和分類(lèi)準(zhǔn)確率Accuracy來(lái)評(píng)估模型性能。根據(jù)PCinCC2017挑戰(zhàn)賽的規(guī)則,最終評(píng)估模型采用的F1度量是正常節(jié)律類(lèi)(F1N)、房顫節(jié)律類(lèi)(F1A)和其它節(jié)律類(lèi)(F1O)三者F1度量的平均值,其計(jì)算方式見(jiàn)式(7)
(7)
為了驗(yàn)證算法的有效性,采用交叉驗(yàn)證的方法對(duì)本文模型進(jìn)行檢驗(yàn),將本文算法與PCinCC2017挑戰(zhàn)賽和現(xiàn)階段已有算法的分類(lèi)性能進(jìn)行對(duì)比,分類(lèi)準(zhǔn)確率Accuracy結(jié)果見(jiàn)表5,相同規(guī)則下的F1度量結(jié)果見(jiàn)表6。由表5可見(jiàn),本文算法得到的Accuracy值相較于文獻(xiàn)[11]所提出的使用數(shù)據(jù)增強(qiáng)后的兩層LSTM和三層BGRU算法以及文獻(xiàn)[12]提出的SVM算法有一定的提升。PCinCC2017挑戰(zhàn)賽眾多參賽隊(duì)伍所設(shè)計(jì)的算法在官方競(jìng)賽階段取得的最佳F1度量為0.83[11],Datta等[13]提出的自適應(yīng)增強(qiáng)算法就是其中的最優(yōu)算法之一。由表6可見(jiàn),本文算法得到的F1度量為0.83,與挑戰(zhàn)賽中取得最優(yōu)成績(jī)的算法性能相當(dāng)。同時(shí)也可以從表6中看出,對(duì)于本文所使用的數(shù)據(jù)集來(lái)說(shuō),將CNN和BLSTM結(jié)合的算法性能在一定條件下優(yōu)于CNN和LSTM單獨(dú)構(gòu)造的分類(lèi)模型性能。
表5 本文算法與其它算法的Accuracy對(duì)比
表6 本文算法與其它算法的F1度量對(duì)比
本文針對(duì)短時(shí)心電信號(hào)的一維時(shí)序特征,將一定深度的卷積神經(jīng)網(wǎng)絡(luò)和雙向長(zhǎng)短期記憶網(wǎng)絡(luò)進(jìn)行融合,設(shè)計(jì)出一種多分類(lèi)網(wǎng)絡(luò)模型,在通過(guò)預(yù)處理的訓(xùn)練數(shù)據(jù)集上進(jìn)行網(wǎng)絡(luò)訓(xùn)練,并在測(cè)試集上進(jìn)行了模型性能評(píng)估,最終的實(shí)驗(yàn)結(jié)果驗(yàn)證了本文算法的有效性。由于本文所選數(shù)據(jù)集的樣本分布存在明顯的數(shù)據(jù)不均衡問(wèn)題,可能會(huì)導(dǎo)致分類(lèi)結(jié)果具有一定的偏向性。因此未來(lái)的工作中將考慮相應(yīng)的數(shù)據(jù)增強(qiáng)算法,平衡各類(lèi)別樣本數(shù)量,提升數(shù)據(jù)集的多樣性,從而生成魯棒性更好的模型,使模型的泛化能力得到進(jìn)一步提高。