李偉康,鄧 星,邵海見
(江蘇科技大學計算機學院,江蘇 鎮江212100)
心電信號是評價心臟是否健康的一項重要依據,它記錄了心臟跳動周期所產生的電位變化[1,2]。根據世界衛生組織(WTO)統計數據顯示[3],以2010年至2020年的十年數據為例,平均每年有1500萬人死于心血管疾病,占全部非傳染性疾病致死率的48%。心律失常是心血管疾病中最為常見的病癥之一,長期心律失常通常會導致嚴重的心臟病,基于心律失常分類算法的計算機輔助醫療手段也隨之出現。根據美國醫療儀器促進協會[4](AAMI,The Association for the Advancement of Medical Instrumentation)制定的標準[5,6],心拍可以被分為5大類:非異位(Normal beat)、室上性異位(Supraventricularectopic beats)、室性異位(Ventricularectopic beats)、融合心跳(Fusion beats)和未知心跳(Unknown beats)。準確快速地識別異常心律,對病人的診斷具有重要意義。
目前,心律識別常用方法包括傳統機器學習分類算法和基于深度學習的分類算法。傳統的機器學習通常先人工提取特征,然后將該特征作為最終分類器的輸入并進行實驗評估。Thomas[7]等利用小波包分解、小波包信息熵等特征提取方法,將RR間期三種特征作為輸入,并使用隨機森林算法對心電信號進行分類,達到了94.61% 的準確率。Li.H等[8]提出采用主成分分析法PCA以及獨立成分分析來提取特征,并使用SVM進行分類,該方法的準確率為93.8%。其分類結果易受到人工提取的特征的影響,并且特征提取的步驟較為復雜。Acharya[9]等設計9層CNN實現心電信號自動分類,并采用小波變換對數據降噪,同時進行了數據擴充。最終分類準確率為94.03%。由于擴充數據直接從原始數據生成,增加了產生偏差結果的可能性。針對少樣本的數據分類準確率偏低。D.Verma[10]將卷積神經網絡與長短期記憶神經網絡結合,利用復合的神經網絡對ECG心電信號進行分類。該方法利用了心電波形的時序性:卷積神經網絡提取空間特征,長短記憶網絡挖掘其時間關聯性。Sean S X[11]等利用3層DNN進行基于對齊心跳的特征提取和分類。在心拍分段階段采用零填充和裁剪保證心拍大小相同;分類精度為94.7%。缺點:進行了心跳對齊,剪裁和擴充,操作復雜。Chu J[12]等首次提出用于多導聯ECG信號的2D-CNN網絡以提取交叉導聯ECG特征。改進的多導聯LSTM網絡提取特征更方便。將CNN,LSTM提取的特征以及傳統特征融合,并使用二進制PSO對特征區分。最終分類精度達到了96.6%。基于深度學習出色的特征提取能力,本文提出了一種多模型投票的深度學習ECG波形分類方法,集成四個全連接的弱分類器組成強分類器,并且對數據集進行平衡處理,然后利用加權投票機制來提高ECG心電波形的分類準確率。
如圖1所示,本文提出的基于深度學習多模型投票機制的ECG波形分類具體步驟如下:①原始ECG心電波形預處理。首先對原始心電信號波形進行去噪處理,使用小波閾值去噪法,避免噪聲對心電信號分類準確率的影響;然后對數據集進行平衡處理,數據增強有利于提高模型的魯棒性。②多模型深度學習。將預處理完成的數據分別輸入四個具有不同網絡參數的深度神經網絡,并得到不同的預測結果。③投票機制。計算出各分類器的權值,利用加權投票確定最終的分類結果。

圖1 多模型深度學習投票機制的ECG分類算法
本文的主要結構如下:第一部分介紹了ECG心電信號分類的研究意義以及國內外研究現狀,并提出了多模型投票的深度學習ECG波形分類方法。第二部分具體介紹了多模型投票的深度學習ECG波形分類方法的設計過程,包括數據預處理方法設計、多模型深度學習投票機制分析、多模型深度學習加權投票模型設計。第三部分為實驗評估,使用本文方法得出ECG心電波形的分類結果,將本文方法與支持向量機、卷積神經網絡、深度神經網絡和長短期記憶網絡進行對比,并分析了本文方法較上述方法的優勢。
在原始ECG信號中,往往夾雜著各種噪聲,比如工頻干擾、基線漂移等等[13]。噪聲很大程度上影響著ECG信號分類結果的準確性,為了提高ECG信號的分類準確率,需要將原始數據進行濾波去噪處理。本文采取小波閾值去噪,包括3個部分:分解過程、閾值處理過程與重構過程。經小波分解后,選取一個合適的閾值,使用閾值函數對各層進行量化;最后用處理后的系數重構信號。采用閾值方法可以保留信號系數的同時,濾除大部分噪聲系數。小波閾值去除ECG心電信號噪聲的具體處理過程為:將含噪聲的ECG心電信號在各尺度上進行小波分解,設定初始閾值,將幅值低于閾值的小波系數置為0,高于閾值的小波系數做相應的“收縮(shrinkage)”處理。最后將處理后獲得的小波系數用逆小波變換進行重構,得到去噪后的信號。閾值函數選取軟閾值函數

(1)
其中T為閾值,Wnew為處理后的小波系數。閾值T選擇固定閾值

(2)
其中,N為信號的長度,圖2中虛線為帶噪聲原始ECG信號,實線為小波閾值去噪后的波形,小波閾值去噪法較好地消除了噪聲,并且完好地保留了ECG信號的有效成分。

圖2 原始波形與去噪后的波形
部分數據去噪后的信噪比(SNR)和均方誤差(MSE)如表1所示。

表1 小波閾值去噪結果評價

(3)

(4)
反向傳播的過程本質上就是神經網絡的最優化過程[15]。在激活函數中,使用最普遍的有 Sigmoid函數、Tanh函數、和ReLu函數,ReLu函數是一個非線性激活函數,相比Sigmoid函數與Tanh函數,它能夠克服梯度消失的問題,加快訓練速度。因此本文采用ReLu激活函數。
目前,集成學習中既可使用各種不同分類器進行集成,也可以使用同一種分類器進行集成,只是同種分類器之間的參數有所不同[16]。集成學習通過利用多個分類器之間的互補信息來減少單個分類器的誤差,提高預測性能和分類精度。常用的集成學習方法有Boosting、決策樹、隨機森林、投票法和Bagging等等,其中,投票法最簡單、最可靠,但由于簡單投票法的集成過程只是結果的集成,輸出單純的分類決策,沒有體現基分類器之前的性能差異。在投票法的基礎上,有學者提出了加權投票;給分類性能高的基分類器賦予一個較高的權值,給分類性能低的賦予一個較低的權值。加權投票能使高性能基分類器的優勢充分體現出來。本文采用不同網絡參數的深度神經網絡作為基分類器。
面對數據量大且特征不易分的ECG心電數據,使用深度學習算法無疑是最好的處理辦法;深度學習算法不需要人工提取特征,直接輸入完整的心電波形,這避免了人工提取的特征存在表征能力不足的問題。在基于深度學習的基礎上,將加權投票法與之結合,能夠最大程度地糾正單個深度神經網絡的分類錯誤。首先,對各個基分類器進行初始化,輸入心電信號并訓練模型,然后得出各分類器的預測標簽。再計算出所有基分類器的權重,把各分類器的預測準確率相加得到準確率之和,將分類器的準確率與準確率之和相比,得到單個基分類器的權重λi,其數學公式為式(5)(i表示分類器的個數,本文提出的方法利用了4個基分類器,所以i=1,2,3,4)

(5)

(6)
其中hi表示第i個基分類器在樣本x上的輸出。最后利用投票機制對這4個基分類器的預測結果進行投票表決,將得分最高的標簽作為最終的分類結果。
具體的算法如下所示。
算法1:加權投票法
輸入:D為心電數據集;n為弱分類器個數
輸出:P(x)為預測結果
1)加載ECG心電數據集D,劃分70%的訓練集DT;30%的測試集Dt
2)fori=1ton
3)利用訓練集DT訓練得到基分類器hi(x)
4)由弱分類器hi(x)對測試集Dt中每個樣本xm(m=1,2,3,…,t)的類別進行預測,得到預測值Pm(i)
5)計算每個基分類器的權值:
6)將基分類器hi(xm)的預測值Pm(i)乘以權值λi
為了驗證和比較模型的分類效果,本文采用MIT-BIH數據庫[17]來驗證。MIT-BIH心律失常數據庫包含了48條ECG記錄,每條記錄長30min左右,采樣頻率為360Hz。每條ECG記錄由兩個導聯組成,考慮到每條記錄的導聯并不相同,為了保持數據分布的一致性,本文僅利用Ⅱ導聯和Ⅵ導聯的40條記錄。根據R峰的位置對ECG信號進行分割,取R點前后各80個采樣點和R點本身的共161個采樣點作為一個訓練樣本,最終從40條記錄中提取共87550個樣本,將26265個樣本作為測試集,其余樣本作為訓練集。將心拍按AAMI標準劃分為5類,5種類型的心拍的數量見表2。

表2 MIT-BIH數據集中5類心拍數量
從表2可以看出,正常心跳的樣本數量占據了82.8%,而室上性早搏和心室融合心跳的樣本數量分別占了2.5%、0.7%;正常心跳樣本數量是室上性早搏樣本數量的33倍,是心室融合心跳樣本數量的117倍。所以該數據集是非平衡數據集。非平衡數據集在模型訓練的時候會產生過擬合現象,影響模型的精確度。所以本文對該數據集進行平衡處理,多數類進行下采樣,少數類進行上采樣,達到數據集平衡的效果,如表3所示。

表3 數據集平衡處理后的各類數量
對處理完成后的MIT-BIH數據集進行標準化處理,分為兩個步驟:去均值的中心化和方差的規模化,即將所有數據的均值變為0,方差變為1。原始的MIT-BIH數據不服從正態分布,存在離散的點,模型在擬合的時候會被離散點影響,使模型性能下降。為了保證結果的可靠性,對原始MIT-BIH數據集進行標準化處理,有利于模型初始化、調整學習率、加速權重參數收斂,提高模型的性能。本文實驗將MIT-BIH心電信號數據集的70%作為訓練集,30%作為測試集。
將預處理好的數據分別輸入四個結構精簡的全連接神經網絡中進行訓練,通過集成融合的思想以及投票的策略對所有模型輸出進行重構,輸出最終的識別率。下面將具體介紹多模型的組成類型和訓練參數。由兩個全連接層構成的全連接網絡,每個網絡的權重各不相同。第一層有10個神經元,使用ReLu激活函數;第二層有5神經元,激活函數則采用Softmax函數。優化算法采用Adam優化器,學習率設置為0.01。將不同權值的model.h5文件分別載入4個模型中,按各個模型訓練出的結果進行加權投票,最后加權投票分類結果的混淆矩陣如表4所示。

表4 ECG分類混淆矩陣
從表4可以看出來,在不平衡數據集中,即使對少數類進行了數據擴充,在訓練的時候依然會影響該類的識別準確率,表中室上性早搏和心室融合心跳便反映出了這一問題,這兩類的分類準確率低于多數類的分類準確率,正常心跳,室性早搏和未分類心跳的識別率則是非常高。如果僅僅根據模型準確率(ACC)來衡量一共分類器的性能是不科學的;本次實驗中,ECG波形分類準確率(ACC)達到了98%。為了能科學地評估分類器的性能,本文使用了ROC曲線,如圖3所示。

圖3 ECG波形5分類ROC曲線
圖3所示的ROC曲線,5分類中每個類別AUC的值(即圖中的area)趨近于1或等于1;AUC的值越接近1,表示分類器的性能越好。本文采用混淆矩陣來全面評估本研究方法對心拍分類的性能,主要包括三個評價指標:準確率(ACC)、敏感度(Se)、特異性(Sp)。

(7)

(8)
式中:真陽性Tp表示正樣本被預測為正樣本的數目;真陰性Tn表示負樣本被預測為負樣本的數目;假陰性Fn表示正樣本被預測為負樣本的數目;假陽性Fp表示負樣本被預測為正樣本的數目。
將本文方法與支持向量機(SVM)算法、卷積神經網絡(CNN)、深度神經網絡(DNN)、長短期記憶網絡(LSTM)以及CNN-LSTM的組合網絡進行對比,結果如表5所示。

表5 各分類方法的結果對比
由表5可以看出,本文基于深度學習多模型投票法的分類準確率、敏感度和特異性是所有方法中最高的。與傳統的機器學習方法相比,本文方法的準確率(ACC)比PCA+SVM算法提高了4.2%;這主要是由于本文基于深度學習多模型投票法能夠從ECG信號中主動學習有高區分性的特征,并從數據中挖掘出相關的信息,這是人工提取特征無法做到的。與其它深度學習的方法相比,本文方法的準確率(ACC)比卷積神經網絡提高了1.3%,比長短期記憶網絡提高了3.6%,比卷積加長短期記憶組合網絡提高了1.4%;敏感度(Se)和特異性(Sp)均有不同程度的提高;使用卷積神經網絡與長短期記憶網絡對ECG心電數據進行分類時,均使用了深層神經網絡,而深層的網絡會增加網絡參數,容易出現過擬合的問題,而本文的方法使用了精簡的網絡結構,減少了參數量,能夠有效避免過擬合問題,該方法能利用單分類器間的互補信息來減少單個分類器的誤差,提高整體預測性能和分類精度。上述實驗說明本文提出的基于深度學習多模型投票法在ECG心電信號分類上是可行的、有效的。
本文提出了一種基于多模型投票的深度學習ECG波形分類方法,通過集成多個不同的深度神經網絡對5類心電信號進行分類;本文使用小波閾值去噪法對原始的ECG波形進行去噪處理并針對數據集的不平衡問題進行數據增強;利用加權投票的方法提高ECG心電波形的分類準確率。實驗表明,本文的方法在MIT-BIH心電數據集上取得了98%的分類準確率,與傳統方法以及其它深度學習方法比如PCA+SVM,1D-CNN、LSTM、DNN以及CNN+LSTM的結果比較,均有不小的提升。在未來的工作中,網絡結構及參數的選定、集成學習、從醫療知識方方面構造特征等方面都值得進一步研究。比如基分類器數量的選定;嘗試損失函數聯合訓練,得到一個泛化性強的模型,來解決數據集采樣范圍小的問題。