于 雁,邱 磊,2
(1.青島大學(xué)自動化學(xué)院,山東 青島 266071; 2.青島大學(xué)未來研究院,山東 青島 266071)
隨著我國社會生活水平的提高,人們的精神和物質(zhì)生活已經(jīng)逐漸達到滿足,隨之而來的是生理上的各種壓力,導(dǎo)致心血管疾病的發(fā)病率更普遍和趨向于低齡化,其中心律失常是心血管疾病中的重要疾病之一,它能夠使心臟跳動逐漸衰弱直至停止或者突然發(fā)作致死[1]。ECG信號是人體中最關(guān)鍵的生理信號[2],它能夠?qū)崟r地反映心臟狀態(tài),成為診斷心血管疾病的有效手段之一。目前心電信號的自動分類已經(jīng)成為人工智能領(lǐng)域中的研究熱點,通過機器學(xué)習(xí)與模式識別的智能算法,大量研究成果脫穎而出。ECG信號的自動分類通常包括3個部分,即信號預(yù)處理、特征提取和心電分類[3]。針對信號預(yù)處理和特征提取,侯曉晴等[4]利用小波變換對ECG信號去噪后,使用極大值和斜率雙重檢測提取QRS波形特征;王超超等[5]利用改進閾值函數(shù)實現(xiàn)了對ECG信號的有效去噪;Xu[6]采用無監(jiān)督心跳特征學(xué)習(xí)方法進行T波自動檢測,具有較高的適應(yīng)性。對于心電分類方面,宋莉等[7]將一次性直接求解多類模式的SVM方法應(yīng)用于心電信號分類;文獻[8]中利用模糊C均值深度信念網(wǎng)絡(luò)FCMDBN模型自動學(xué)習(xí)心拍分類,驗證了該方法的有效性;陶亮等[9]利用CNN與LSTM混合的心律失常自動診斷算法,高效、準(zhǔn)確地識別心律失常類別;葉思超等[10]采用殘差網(wǎng)絡(luò)融合模型達到了85.5%的心律失常分類能力。上述文獻均利用傳統(tǒng)方法進行ECG信號去噪和波形特征提取,或在傳統(tǒng)CNN網(wǎng)絡(luò)基礎(chǔ)上加大深度以及加入RNN直接提取心電特征,這些研究方法雖有所成效,但都僅局限于單方面心電研究或?qū)π碾娦盘栠M行單一尺度信息提取,沒有充分利用組合優(yōu)勢,達不到預(yù)期的分類目標(biāo)。
針對上述問題,本文首先對Db6小波的4級分解量進行心電信號重構(gòu),并使用巴特沃斯低通濾波器實現(xiàn)雙重去噪,然后對平滑的去噪心電信號進行R波提取,根據(jù)R波位置將信號分割成多個含有360個采樣點的P-QRS-T波段,最后將全部心電片段輸送到一維改進GoogLeNet網(wǎng)絡(luò)中進行訓(xùn)練。一維改進GoogLeNet是原始二維GoogLeNet的結(jié)構(gòu)優(yōu)化模型,刪除其中部分Inception結(jié)構(gòu),降低網(wǎng)絡(luò)深度,并在保留的Inception結(jié)構(gòu)中加入最大池化層和擴張卷積,增大感受野,減少訓(xùn)練參數(shù)。相比原始二維GoogLeNet和無添加最大池化層和擴張卷積的一維GoogLeNet,一維改進GoogLeNet網(wǎng)絡(luò)的訓(xùn)練效率和測試效果有所提升,可達到99.39%的心電信號分類準(zhǔn)確率。
本文實驗采用MIT-BIH心律失常數(shù)據(jù)庫(MIT-BIH Arrhythmia Database)[11],其中共包括48條雙通道動態(tài)ECG記錄,每條記錄的心跳持續(xù)時間為30 min,采樣頻率為360 Hz。由于數(shù)據(jù)庫中的心拍種類較多,本文選擇其中5種作為心拍分類對象,即正常搏動(Normal beat, N)、左束支傳導(dǎo)阻滯(Left bundle branch block beat, L)、右束支傳導(dǎo)阻滯(Right bundle branch block beat, R)、房性早搏(Atrial premature contraction, A)和室性早搏(premature Ventricular contraction, V)。
由于心電信號的產(chǎn)生機制及周邊環(huán)境影響,采集的ECG信號長度不固定且容易存在基線漂移和肌電干擾等噪聲[12-14],本實驗將心電信號輸入到模型中進行訓(xùn)練之前,首先進行了心電信號去噪和特征提取操作。
1.2.1 信號去噪
針對ECG信號中存在的噪聲問題,本文首先利用Db6小波進行4級分解,并將分解的小波系數(shù)進行權(quán)重分配后得到重構(gòu)信號[15],接著使用巴特沃斯低通濾波器[16]進行二次降噪,提高模型對心電波形的檢測能力。圖1表示Db6的第1~4級近似系數(shù)d1~d4和第4級細(xì)節(jié)系數(shù)a4,信號重構(gòu)公式如式(1)所示。
x=d1+d2+d3+d4+a4
(1)
其中,x表示重構(gòu)信號,di(i=1,2,3,4)表示第i層信號分解得到的近似系數(shù)(即高頻信息),a4表示第4層分解的細(xì)節(jié)系數(shù)(即低頻信息)。
巴特沃斯低通濾波器的表達公式為:
(2)
(a) a4、d1和d2分量
(b) d3和d4分量
圖2表示原始ECG波形和各方法去噪后的ECG波形。從圖中可以看出,經(jīng)過2次去噪處理后,保留了原有的心電波形特征和細(xì)節(jié)信息,與原始波形相比更為平滑,消除了由各種噪聲產(chǎn)生的小毛刺現(xiàn)象。
圖2 原始、Db6的4級分解并重構(gòu)、低通濾波器消噪后的ECG信號波形
1.2.2 特征提取
MIT-BIH數(shù)據(jù)集中的每條ECG信號持續(xù)時間為30 min左右,采樣頻率為360 Hz,每一個人工注釋都標(biāo)注在R波位置。一個完整的心電周期主要包括P波、QRS波和T波,大約在0.6 s到1 s之間,由于被采集者的心律不同,故將提取到的每類心拍時間固定為最長時間1 s,即截取R波注釋點存在的360個采樣點,并將位于始末位置的心拍舍掉,避免因該點前后數(shù)據(jù)點不足而誤導(dǎo)心拍分類,最終的各心拍數(shù)量如表1所示。
表1 各心拍數(shù)量
一般來說,提升網(wǎng)絡(luò)性能最直接的辦法是加大結(jié)構(gòu)深度和寬度,如之前的AlexNet、VGG等深度CNN網(wǎng)絡(luò),它們有效提升了訓(xùn)練效果,但隨之帶來的是網(wǎng)絡(luò)參數(shù)的猛增以及過擬合、梯度消失和梯度爆炸等問題[17-18],上述核心解決方案是將卷積或全連接都轉(zhuǎn)化為稀疏連接。稀疏連接可實施的原因是現(xiàn)實中生物的神經(jīng)系統(tǒng)是稀疏連接,且若稀疏性過大可以利用激活值的統(tǒng)計特性和對相關(guān)性強的輸出進行聚類來逐層構(gòu)建最優(yōu)網(wǎng)絡(luò),最終臃腫稀疏網(wǎng)絡(luò)得到有效簡化且不失性能[19]。
原始GoogLeNet是一種全新的深度學(xué)習(xí)二維網(wǎng)絡(luò)結(jié)構(gòu)[20],整體上共有22層,適用于圖像分類和物體識別領(lǐng)域。由于檢測心律失常的心電信號屬于一維時間序列數(shù)據(jù),故將二維GoogLeNet一維化進行心電研究,同時進行結(jié)構(gòu)優(yōu)化,最終的一維改進GoogLeNet分類模型見圖3。由于MIT-BIH數(shù)據(jù)集中的是二導(dǎo)聯(lián)ECG信號,且每一心電片段固定為360個數(shù)據(jù)點,因而對原始二維GoogLeNet進行網(wǎng)絡(luò)結(jié)構(gòu)改進,刪除結(jié)構(gòu)末端的多個Inception結(jié)構(gòu)和最大池化層(MaxPooling1D),保留平均池化層(AveragePooling1D),同時將剩余的Inception加入最大池化層和擴張卷積(Dilated conv)[21]得到Inception1和Inception2結(jié)構(gòu)。其中最大池化層先刪后添的目的是將其具有的最強形態(tài)特征提取功能分散到Inception結(jié)構(gòu)中的多個分支上,充分發(fā)揮Inception結(jié)構(gòu)和每一個最大池化層的作用,而不是僅局限在主干路上的結(jié)構(gòu)末端。Inception1和Inception2結(jié)構(gòu)見圖4,括號內(nèi)的第一個數(shù)據(jù)表示卷積核或池化窗口大小,S表示stride(步長),dilation_rate表示擴張卷積的擴張率。Out結(jié)構(gòu)是幫助模型訓(xùn)練的輔助Softmax分類器,避免訓(xùn)練時出現(xiàn)梯度消失,賦予其0.3的權(quán)重,且不參與實際測試。
圖3 一維改進GoogLeNet分類模型
如圖4所示,Inception結(jié)構(gòu)是對網(wǎng)絡(luò)的一種拓寬處理[22],具有稀疏連接的特點,不同卷積核尺寸的使用可以將輸入的ECG信息進行不同尺度的特征融合,其中每一條分支都有卷積核尺寸為1的卷積層來對數(shù)據(jù)特征進行降維和映射處理,減少特征矩陣的深度和卷積參數(shù)量,從而減少計算量。本文中的Inception1和Inception2結(jié)構(gòu)在不同分支中加入的最大池化層可以提取各尺度上特征性強的信息,同時對數(shù)據(jù)進行降維,減少訓(xùn)練參數(shù),擴張卷積能夠擴大卷積看到的范圍,增大感受野,但不會增加網(wǎng)絡(luò)參數(shù),兩者的共同結(jié)合優(yōu)化了模型的訓(xùn)練性能,提高了測試準(zhǔn)確率。
圖5表示擴張卷積原理圖。圖5(a)對應(yīng)著卷積核尺寸為3×3、擴張率為1的擴張卷積,與普通卷積操作一致。圖5(b)對應(yīng)著卷積核尺寸為3×3、擴張率為2的擴張卷積,但僅有權(quán)重不為0的9個實心圓點和3×3的卷積核進行卷積操作,其余部分權(quán)重均為0,沒有增加參數(shù)量,卷積核雖為3×3,但卷積感受野已經(jīng)擴大到7×7,使得卷積輸出含有較大范圍的信息,且不會導(dǎo)致原信息缺失,優(yōu)化了模型訓(xùn)練效果。
(a) Inception1
(b) Inception2圖4 Inception1和Inception2結(jié)構(gòu)
(a) (b)圖5 擴張卷積原理圖
本文基于Keras 2.2.4對一維改進GoogLeNet模型進行搭建和測試,在操作系統(tǒng)為CentOS 7.5、顯卡為Nvidia Titan V的GPU服務(wù)器上進行訓(xùn)練。模型訓(xùn)練時的最大迭代(epoch)數(shù)為100,若10個epoch內(nèi)訓(xùn)練精度沒有提升,訓(xùn)練自動停止;優(yōu)化算法使用Adam[23],初始學(xué)習(xí)率(lr)設(shè)為10-3,當(dāng)訓(xùn)練效果在8個epoch內(nèi)無提升時,lr會自動縮減到之前的1/10,直至10-8;批量大小設(shè)為200;數(shù)據(jù)集按6:2:2分為訓(xùn)練集、驗證集和測試集。
混淆矩陣顯示心律失常的最終分類結(jié)果,具體形式如式(3)所示。
(3)
本文使用精確率(Precision)、召回率(Recall)和F1值作為指標(biāo)評價模型的心拍分類性能,其中F1值是Precision和Recall之間的一個平衡點,能夠衡量測試總體的分布程度,具體公式如下:
(4)
(5)
(6)
上述指標(biāo)均由混淆矩陣獲得,TP指預(yù)測為正、實際為正的總數(shù);FP指預(yù)測為正、實際為負(fù)的總數(shù);TN指預(yù)測為負(fù)、實際為負(fù)的總數(shù);FN指預(yù)測為負(fù)、實際為正的總數(shù)。
本文將一維改進GoogLeNet分類模型進行epoch迭代訓(xùn)練,當(dāng)?shù)?2次時,早?;卣{(diào)函數(shù)迫使訓(xùn)練停止。訓(xùn)練精度acc和損失值loss變化曲線如圖6所示,acc迅速提升接近于1,而loss下降速度快,最終接近于0??梢娫撃P陀?xùn)練效果優(yōu)異,對心律失常的自動分類具有很好的引導(dǎo)性作用。
圖6 acc和loss變化曲線
為驗證結(jié)構(gòu)簡化以及Inception結(jié)構(gòu)中添加最大池化層和擴張卷積的訓(xùn)練效果,將一維改進GoogLeNet(有擴張卷積和最大池化層)、一維GoogLeNet(無擴張卷積和最大池化層)和原始GoogLeNet訓(xùn)練時的最終acc值、loss值、模型參數(shù)總量、內(nèi)存大小以及訓(xùn)練運行總時間5項參數(shù)進行比較,如表2所示。可以看出,一維改進GoogLeNet和一維GoogLeNet的參數(shù)量、內(nèi)存和運行時間相差不大,但前者的acc和loss最優(yōu),相對來說,原始GoogLeNet各項指標(biāo)都最低。綜上可得加入擴張卷積和最大池化層的一維改進GoogLeNet訓(xùn)練效率最高。
表2 各模型訓(xùn)練參數(shù)比較
將測試集分別投入到訓(xùn)練好的3個模型中進行心拍分類測試,混淆矩陣如圖7~圖9所示,表3~表5分別為Precision、Recall和F1值。由這些圖表可以看出一維改進GoogLeNet模型正確識別心拍類別的數(shù)量最多,Recall和F1值最高,一維GoogLeNet的Precision值最高,就總體F1值而言,原始GoogLeNet的結(jié)果最低。由于A類心拍數(shù)量相比其它心拍占總心拍比重過小,因此其測試結(jié)果相比其它類別都偏低,但總體上評價結(jié)果依然很高。
圖7 原始GoogLeNet測試混淆矩陣
圖8 一維GoogLeNet測試混淆矩陣
圖9 一維改進GoogLeNet測試混淆矩陣
表3 各模型分類Precision值
表4 各模型分類Recall值
表5 各模型分類F1值
本文總結(jié)了部分相關(guān)工作者的研究結(jié)果,并與本文中的3個模型分類準(zhǔn)確率進行比較,如表6所示。所有實驗均使用MIT-BIH數(shù)據(jù)集,準(zhǔn)確率均指總體F1值。
表6 各模型準(zhǔn)確率對比
由表6中的對比結(jié)果可以看出,本文所提一維改進GoogLeNet的準(zhǔn)確率優(yōu)于其它全部模型,相比一維GoogLeNet和原始GoogLeNet,準(zhǔn)確率分別提升了0.17個百分點和0.26個百分點,可見簡化原始GoogLeNet,同時在Inception結(jié)構(gòu)的分支中加入擴張卷積和最大池化層后測試效果優(yōu)異。對比文獻中的心電數(shù)據(jù)處理方式不同,除此之外,數(shù)據(jù)特征提取大都采用深度疊加的傳統(tǒng)CNN或LSTM,它們是通過單尺度進行信息提取,提取的特征量大且不全面,使得實驗準(zhǔn)確率差異較大,其中文獻[26]使用了缺少數(shù)據(jù)信息的小波分量{d2~d7}組合數(shù)據(jù),同時1D-GoogLeNet是對原始GoogLeNet中Inception結(jié)構(gòu)的分支刪減以及傳統(tǒng)卷積層的增添,相比本文在Inception多分支中添加最大池化層和擴張卷積的一維改進GoogLeNet,增加了參數(shù)量,削弱了多尺度特征提取和增大卷積感受野的特性,導(dǎo)致準(zhǔn)確率較低,而本文實驗充分利用雙重降噪后的全部有效數(shù)據(jù),最終達到了最高分類準(zhǔn)確率。
對心臟異常的實時診斷可以降低心血管疾病的發(fā)生率和病人的死亡率,由于心律失常能夠反映心臟狀態(tài),因此本文基于深度學(xué)習(xí)對心律失常自動分類進行了研究。針對ECG信號收集環(huán)境的不穩(wěn)定性,將MIT-BIH數(shù)據(jù)庫中的心電信號進行Db6小波和巴特沃斯低通濾波器的雙重降噪,對消噪后的長時心電信號進行P-QRS-T波段截取,并輸入到一維改進GoogLeNet中進行模型訓(xùn)練和分類。相比原始GoogLeNet和一維GoogLeNet模型,添加最大池化層和擴張卷積的一維改進GoogLeNet更利于心電特征提取,5類心拍的測試準(zhǔn)確率達到了99.39%。以上結(jié)論可以得出本文實驗具有更實時準(zhǔn)確的心律失常自動分類效果,可用于長期監(jiān)測心律失常的便攜式裝置。