包志強,白 瑩,黃瓊丹,呂少卿
(西安郵電大學 通信與信息工程學院,陜西 西安 710121)
房顫即心房顫動(atrial fibrillation,AF),作為臨床上最常見的一種持續性心律失常,其本身并不可怕,但由它引起的腦卒中、心力衰竭等往往會直接威脅人的生命健康[1]。隨著科技發展,計算機輔助心電圖(electrocardiogram,ECG)分析方法[2]已經成為目前診斷房顫等心律失常的最便捷手段。
近年來,由于人工智能技術的興起,各種各樣的機器學習算法被用于心電信號檢測與分類識別。這其中主要包括兩大類方法,即逐步(step-by-step)的機器學習和端到端(end-to-end)的深度學習。類似于Li等[3]使用的隨機森林之類的傳統機器學習方法大多需要手動提取特征,當原始信號因為噪聲過多等情況而難以進行手工特征提取時,端對端的深度學習就表現出明顯的優勢。例如Teijeiro等[4]使用循環神經網絡(recurrent neural networks,RNN)對房顫樣本進行識別與分類時可將原始心電信號作為輸入,然后直接輸出分類結果,去掉了手工特征提取的環節。
傳統機器學習算法提取復雜心電信號特征存在一定難度,而深度學習可以對數據背后的隱藏特征進行深層挖掘并端對端地完成自動分類。針對于此,本文設計將擅長處理圖像的卷積神經網絡(convolutional neural network,CNN)用于心電信號的處理,在進行特征提取之后與適合處理時間序列的雙向長短期記憶網絡(bidirectional long short-term memory,BLSTM)結合起來,對The Physionet/Computing in Cardiology Challenge 2017(PCinCC2017)挑戰賽數據進行分類訓練,完成對原始信號的自動分類并在一定程度上提高了分類準確率。
CNN是一類包含卷積運算且具有深度結構的前饋神經網絡[5]。作為深度學習的代表算法之一,CNN已經成為人臉識別、圖像處理、模式分類甚至是自動駕駛等眾多領域的研究熱點。由于其避免了對圖像復雜的前期預處理,可以直接輸入原始圖像,因此在模式分類領域的應用尤為廣泛。CNN強大的特征提取能力與它的局部感知和權值共享特性息息相關[6],其結構通常為卷積層和池化層的交替組合加上全連接層的形式。卷積層中的卷積核就相當于一個特征提取器,利用它在前一層輸出上滑動窗口來計算當前的卷積輸出。池化層主要是進行下采樣,對特征圖進行稀疏處理,從而減少數據運算量,池化方式一般有最大池化和平均池化兩種。全連接層則根據需求來輸出結果。對于多分類問題,最后一個全連接層的激活函數通常選擇Softmax函數,從而得到樣本屬于各個類別的概率分布情況。
長短期記憶網絡(long short-term memory,LSTM)是一種特殊的RNN。相比于普通的RNN,它可以有效解決長序列訓練過程中易出現的梯度消失和梯度爆炸問題[7],也就是說它可以長時間記住信息,因此特別適合于處理和預測時間序列中間隔和延遲非常長的重要事件。LSTM單元內部結構如圖1所示。其關鍵在于細胞狀態的更新,也就是圖中上方的水平線。細胞狀態就好比一條傳輸高速公路,沿著序列鏈傳遞相關信息。LSTM通過隱藏層中的遺忘門、輸入門和輸出門對細胞狀態進行信息的添加或刪除。這些門結構通常由一個sigmoid層和一個點乘操作組合而成,因此通過門可以有選擇地讓信息通過或是不通過。

圖1 LSTM單元內部結構

BLSTM可以理解為LSTM的變體,由前向LSTM與后向LSTM組合而成。單向LSTM僅保留過去的信息,它唯一的輸入來自過去。而BLSTM可以在任何時間點保存過去和未來的信息,它可以很好地利用雙向時間序列信息,生成更具魯棒性的特征。其時間模型如圖2所示。

圖2 BLSTM單元時間模型
本文針對心電信號的時序特性,將CNN和BLSTM結合,建立一種新的一維深度網絡模型,通過數據預處理和特征降維將PCinCC2017挑戰賽數據送入本文所設計的網絡模型,在利用CNN的多次卷積和池化操作快速提取心電數據局部深層特征的同時,也利用BLSTM提取數據依賴于時間的時間特征,最終實現房顫的自動識別分類。
PCinCC2017數據是使用AliveCor設備[9]采集的短時單導聯手部心電信號,采樣頻率為300 Hz。其中訓練集包含8528條單導聯心電圖記錄,時間從9 s到61 s不等。測試集包含3658條相似記錄,由于官方測試集不對外公開,因此本文采用的數據集是訓練集數據,其具體的分布信息見表1。

表1 PCinCC2017挑戰賽數據樣本分布信息
心電信號是人體的一種微弱生理信號,在對其采集的過程中,極易受來自體內和體外環境的影響,因此通常采集到的心電信號會伴隨有基線漂移、工頻干擾、肌電干擾等噪聲的影響[10]。基線漂移是由測量電極接觸不良、呼吸引起的低頻干擾信號,其頻率在0.05 Hz~2 Hz之間。工頻干擾主要來自供電設備,其頻率為50 Hz。肌電干擾通常來自于肌肉的收縮和顫動,其頻率在5 Hz~2000 Hz。不過由于本文所設計的深度網絡模型能夠自動挖掘心電信號的深層次特征,因此在數據預處理階段僅進行簡單濾波即可。首先將原始信號經過一個5階的巴特沃斯帶通濾波器,通帶截止頻率為3 Hz~45 Hz,由此來消除基線漂移和高頻噪聲的影響。此時數據中不存在50 Hz的交流電干擾,無需設計相關的陷波器。之后把所有樣本數據從中間分為前后兩端,分別計算其峰值,使用較小的峰值對每一個樣本數據進行歸一化,這樣做可以避免野值對信號的影響。本文選取了2.1節數據庫中A00057號數據的10 s信號數據,進行了以上操作的效果展示,如圖3所示。

圖3 心電信號濾波歸一化前后對比
此外,在采樣頻率為300 Hz的條件下,采樣時間從9 s到 61 s,這說明樣本數據的長度大小不等,而深度學習網絡需要輸入的尺寸一致,因此對樣本數據進行統一處理,把所有樣本長度限定為8192點,對超出的進行截取,不足的分別在兩邊進行補零操作。為了提高網絡模型的運算速度,在時域上對樣本數據進行降采樣,即每兩個采樣點取一個,則最后輸入網絡的特征數據是長度為4096的一維特征向量。另外由于數據集中只有少量的噪聲數據,因此將其進行剔除,最終將經過以上處理的正常節律、房顫節律和其它節律3類樣本數據送入網絡。
本文根據心電信號的一維時序特性,將BLSTM單元融入所構建的深層CNN網絡中,設計一種基于心電信號的一維深度網絡模型,使模型發揮二者的獨特優勢,在自動提取所選數據集深層特征的同時可以更好地利用雙向時序信息去完成長期記憶任務,實現對房顫的識別與輸入信號的自動分類。本文所設計的深度網絡模型具體結構如圖4所示。

圖4 網絡模型結構
本文模型中的CNN參考了VGG16網絡框架,考慮到模型的泛化能力,設計了13個一維卷積層,每個卷積層都使用修正線性單元(rectified linear unit,ReLU)作為激活函數,通過ReLU函數能夠使稀疏后的模型更好地挖掘相關特征,擬合訓練數據。在每個卷積層后面添加批歸一化層(batch normalization,BN),加快模型的收斂速度。為了在一定程度上防止過擬合問題的出現,在相應的卷積層之后加入可以對特征數據進行降維的最大池化操作,設置一定概率值的Dropout。在連續卷積操作之后,將最后一個一維卷積的輸出作為BLSTM層的輸入,把CNN中提取到的信號特征送入256個單元的BLSTM網絡中進行特征學習和映射,最后將所提取到的信號時序特征再送入Softmax分類器中進行訓練,最終輸出相應的分類結果,完成對原始信號的自動分類,實現對房顫的識別。本文模型的詳細參數見表2。
以深度學習開源框架Keras為基礎,采用2.3節中所設計的網絡模型,將CNN和BLSTM進行結合,并利用所選取的數據集進行網絡訓練。為了加快網絡的訓練速度,采用隨機梯度下降(stochastic gradient descent,SGD)算法式(1)在每一次迭代中隨機選擇一個樣本來更新模型參數,使用多分類交叉熵損失函數式(2)計算損失值。網絡參數中的學習速率設定為0.001,學習速率的衰減系數設為0.000 001,動量參數為0.92,權重衰減系數為0.0005,批處理大小為10,訓練迭代次數設為200次
(1)
(2)

PCinCC2017挑戰賽的8528條樣本數據在通過2.2節中的數據預處理后,分為訓練集和測試集兩部分。其中訓練集占70%,用來訓練2.3節所設計的模型,測試集占30%,用于模型測試。
實驗軟硬件配置見表3。
針對本文所提出的網絡模型,分別采用分類準確率Accuracy和F1度量兩個指標來評估其性能。Accuracy表示被分類正確的樣本數占所有樣本數的比率,F1度量是一種兼顧精確率和召回率的模型衡量指標。其定義分別見式(3)和式(4)
(3)
(4)
式(3)中TP代表真陽性,表示屬于該類且被正確分類的樣本數量,TN代表真陰性,表示不屬于該類且被正確分類的樣本數量,FP代表假陽性,表示不屬于該類卻被錯誤歸為此類的樣本數量,FN代表假陰性,表示屬于該類卻被錯誤歸為其它類的樣本數量。式(4)中P代表精確率,表示該類樣本中被正確分為此類的樣本所占的比率,R代表召回率,表示被分為該類的樣本中實際為此類的樣本所占的比率。P和R可分別用式(5)和式(6)表示
(5)
(6)
4.2.1 網絡訓練曲線分析
圖5為網絡訓練過程中損失值隨迭代次數變化的曲線圖,圖中橫坐標為迭代次數,總迭代次數為200次,縱坐標為損失值。從圖像可以看出,在模型訓練階段,當迭代次數達到100次時,各參數變化趨于穩定,最終損失值下降到約0.32。

表2 網絡模型參數

表3 軟硬件配置

圖5 損失值函數曲線
4.2.2 實驗結果對比
通過對本文所設計模型的反復訓練和網絡超參數的調整,利用訓練好的模型對測試集進行預測,輸出相應的三分類結果。相應的混淆矩陣見表4,其中N表示正常節律,A表示房顫節律,O表示其它節律。本文使用F1度量和分類準確率Accuracy來評估模型性能。根據PCinCC2017挑戰賽的規則,最終評估模型采用的F1度量是正常節律類(F1N)、房顫節律類(F1A)和其它節律類(F1O)三者F1度量的平均值,其計算方式見式(7)

(7)
為了驗證算法的有效性,采用交叉驗證的方法對本文模型進行檢驗,將本文算法與PCinCC2017挑戰賽和現階段已有算法的分類性能進行對比,分類準確率Accuracy結果見表5,相同規則下的F1度量結果見表6。由表5可見,本文算法得到的Accuracy值相較于文獻[11]所提出的使用數據增強后的兩層LSTM和三層BGRU算法以及文獻[12]提出的SVM算法有一定的提升。PCinCC2017挑戰賽眾多參賽隊伍所設計的算法在官方競賽階段取得的最佳F1度量為0.83[11],Datta等[13]提出的自適應增強算法就是其中的最優算法之一。由表6可見,本文算法得到的F1度量為0.83,與挑戰賽中取得最優成績的算法性能相當。同時也可以從表6中看出,對于本文所使用的數據集來說,將CNN和BLSTM結合的算法性能在一定條件下優于CNN和LSTM單獨構造的分類模型性能。

表5 本文算法與其它算法的Accuracy對比

表6 本文算法與其它算法的F1度量對比
本文針對短時心電信號的一維時序特征,將一定深度的卷積神經網絡和雙向長短期記憶網絡進行融合,設計出一種多分類網絡模型,在通過預處理的訓練數據集上進行網絡訓練,并在測試集上進行了模型性能評估,最終的實驗結果驗證了本文算法的有效性。由于本文所選數據集的樣本分布存在明顯的數據不均衡問題,可能會導致分類結果具有一定的偏向性。因此未來的工作中將考慮相應的數據增強算法,平衡各類別樣本數量,提升數據集的多樣性,從而生成魯棒性更好的模型,使模型的泛化能力得到進一步提高。