心電圖(ECG)可直觀地反映人體心臟生理電活動,在心律失常檢測與分類領域中具有重要意義。針對ECG數據中類別不平衡對心律失常分類帶來的消極作用,本文提出一種用于不平衡ECG信號分類的嵌套長短時記憶網絡(NLSTM)模型。搭建NLSTM學習并記憶復雜信號中的時序特征,利用焦點損失函數(focal loss)降低易識別樣本的權重;然后采用殘差注意力機制(residual attention mechanism),根據各類別特征重要性修改已分配權值,解決樣本不平衡問題;再采用合成過采樣技術算法(SMOTE)對麻省理工學院與貝斯以色列醫院心律失常(MIT-BIH-AR)數據庫進行簡單的人工過采樣處理,進一步增加模型的分類準確率,最終應用MIT-BIH-AR數據庫對上述算法進行實驗驗證。實驗結果表明,所提方法能有效地解決ECG信號中樣本不平衡、特征不突出的問題,模型的總體準確率達到98.34%,較大地提升對少數類樣本的識別和分類效果,為心律失常輔助診斷提供可行的新方法。
引用本文: 許詩雨, 莫思特, 閆惠君, 黃華, 吳錦暉, 張紹敏, 楊林. 基于焦點損失函數的嵌套長短時記憶網絡心電信號分類研究. 生物醫學工程學雜志, 2022, 39(2): 301-310. doi: 10.7507/1001-5515.202110002 復制
引言
據世界衛生組織提供的數據表明,每年心血管疾病(cardiovascular disease,CVD)導致的死亡人數約占全世界死亡人數的三分之一;其中老年人作為心血管疾病的高發群體,針對老年人群所患心血管疾病的診斷手段提出了更高要求。心律失常是心血管疾病中最常見的一種病況[1],許多心血管疾病病發初期通常伴有心律失常的出現;而心電圖(electrocardiogram,ECG)可以直接反映心臟的電活動變化,是診斷心律失常的重要手段[2]。醫生通過分析ECG數據進行心律失常診斷,但這種基于人工經驗的判斷方法很容易造成漏診、誤診,且需耗費大量時間,因此基于計算機輔助的心律失常分類的醫療手段應運而生[3-5],其中大多數分類算法集中在傳統的機器學習領域。Dutta等[6]提出一種基于最小二乘支持向量機的自動醫療診斷工具,對ECG信號進行三分類,準確率達到95.82%。Li 等[7]使用小波包分解、小波包熵提取ECG信號特征,并結合隨機森林對ECG信號進行分類,在麻省理工學院-貝斯以色列醫院心律失常(the Massachusetts institute of technology and Beth Israel hospital arrhythmia, MIT-BIH-AR)數據庫[8]上進行驗證,準確率達到94.61%。Mondéjar-Guerra等[9]提取RR間期和波形形態學特征,采用組合支持向量機作為分類器,在ECG信號四分類上取得94.5%的準確率。
上述基于傳統機器學習的ECG信號分類算法主要有預處理、特征提取、特征分類[10-11]等步驟,雖然這些算法表現出良好的分類性能,但其存在著依賴手工提取特征的局限[12]。相較于傳統方法,基于深度學習的方法具有從輸入的數據中自動提取有效特征并完成分類的能力[13-14]。劉光達等[15]提出一種結合前向反饋神經網絡和卷積神經網絡(convolutional neural networks,CNN)的心律失常診斷算法,總體準確率達到91.5%;Xiao等[16]使用概率神經網絡將ECG信號分為正常和心律不齊類別,在MIT-BIH-AR數據庫上達到96.5%的分類準確率;Li等[17]將小波包分解與遺傳算法-反向傳播神經網絡相結合,完成特征提取并實現ECG信號六分類,準確率達到97.78%。
在ECG數據集中,正常節律與心律失常樣本數量差異較大,帶來樣本不平衡問題;例如,MIT-BIH-AR數據庫中正常節律有近十萬個,然而室性期前收縮不到八千個。上述算法并未針對ECG數據中樣本不平衡問題做出相應處理和驗證,無法證明其在實際應用中的普適性和魯棒性。本文提出基于嵌套長短時記憶網絡(nested long short-term memory,NLSTM)[18]的心律失常分類混合模型,并在NLSTM模型中加入殘差注意力機制(residual attention mechanism),選擇性遺忘局部特征,并于全局特征分配更強注意力;利用焦點損失函數(focal loss)[19]聚焦學習小樣本類別的相關特征,進而與大樣本類別進行區分完成準確分類;為進一步提升分類性能,基于少數類樣本合成過采樣技術(synthetic minority over-sampling technique,SMOTE)[20]適量擴充不平衡數據集中的小樣本類別數目,增強特征,提高分類性能。本文針對ECG信號中的不平衡問題進行充分探討,尋求一種魯棒性與準確性更高的ECG信號分類方法,以促進精準輔助醫療與人工智能的有效結合。
1 數據處理
1.1 小波閾值去噪
由于硬件電路固有特性以及ECG數據采集環境的干擾,所采集的ECG信號中夾雜著各種噪聲,例如:基線漂移、肌電擾動、工頻干擾等。為提高分類精度,避免噪聲干擾產生誤判,對ECG信號的預處理是尤為必要的。本文運用小波變換對ECG信號進行尺度分解、閾值處理和重構信號來濾除噪聲[21]。
小波變換是一種在非平穩時間序列數據分析中常用的方法,能放大局部特征,保護有用的突變信號,有效地將信號與噪聲區分開來,連續信號f(t)小波變換的函數如式(1)所示:
![]() |
式中,α為尺度因子,是一個總大于0的連續變量,τ為平移因子;為對基本小波函數Ψ(t)作伸縮,WT(α, τ)為信號f(t)的小波變換值。
ECG信號經小波分解后,信號的重要特征主要由幅值較大的小波系數進行表征,而噪聲的小波系數幅值較小,可根據幅值差異選取一個合適的閾值,將幅值小于閾值的小波系數判定為噪聲并置為零,幅值大于閾值的小波系數予以保留或者進行壓縮,最后對小波系數進行小波逆變換,達到去噪目的。多貝西(Daubechies,Db)小波函數族的特征與ECG信號的QRS波相似,能譜集中在低頻附近[22],能夠有效地與ECG信號中的噪聲進行區分;故本文選取6階Daubechies小波函數[23]作為式(1)中的小波函數,并設定小波分解的層數為8。去噪前后的ECG信號波形對比如圖1所示。

1.2 R波峰值檢測及心拍分割
一個完整的心拍波形由當前P波起始至下一個P波起始,如圖2所示。當出現心律失常時,心拍波形會發生變化,例如:出現心臟左右束支的傳導阻滯、心室擴大等情況時,QRS波群出現增寬和變形,因此通過波形變化能夠有效地檢測心律失常。與幅值較小的P波不同,R波幅值大、易辨識且不易受到噪聲干擾,所以通常選取R波點作為基準點對波形進行定位,進而再定位到P波位置。本文使用潘-托普金斯(Pan-Tompkins)算法[24]確定R波位置,對ECG信號進行分割,向前截取149個樣本點,向后截取150個樣本點,構成包含R波基準點在內的共300個樣本點作為一個樣本心拍。

2 算法原理
2.1 嵌套長短時記憶網絡
傳統的長短時記憶網絡(long short-term memory,LSTM)面對長序列數據時,極易出現梯度彌散或爆炸問題,導致LSTM僅具備短時記憶,無法在長時間序列數據中獲取足夠特征。為了解決時序數據的長期依賴問題,Moniz 等[18]提出了NLSTM神經網絡,通過記憶歷史數據中的附加信息來提高預測性能。NLSTM的單元結構如圖3所示。

NLSTM具有多層內存,由內外兩層LSTM相嵌套,內部存儲單元為內層LSTM。外部存儲單元可以自由地、選擇性地讀寫內部單元的記憶信息,NLSTM從整體上提高了傳統LSTM神經網絡結構的魯棒性,能夠對長序列ECG信號進行強記憶和處理。
傳統LSTM單元的存儲單元狀態ct更新如式(2)所示:
![]() |
其中, 和
分別為現在的輸入信息與過去的輸出信息。
NLSTM的更新方式與傳統LSTM一致,但內部存儲單元狀態ct的更新增加兩部分,如式(3)所示:
![]() |
式中,為t ? 1時刻內部單元的輸出,由存儲單元狀態ct ? 1和函數ft決定;It為t時刻內外過渡輸入,由外部單元t時刻輸入xt、外部輸入到內部權重Wxi、外部單元t ? 1時刻輸出ht ? 1、外部輸出到內部權重Whi、過渡偏置bi及激活函數
計算得到;
為t時刻內部單元的輸入,由輸入到存儲權重Wxc、輸出到存儲權重Whc、存儲單元偏置bc、內外過渡輸入It及激活函數
計算得來。
為外部存儲單元激活函數,
為輸出激活函數。
由于NLSTM內部存儲單元的存在,外部存儲單元狀態ct的更新如式(4)所示:
![]() |
NLSTM網絡通過外部記憶和內部記憶的結構形成層次記憶,可以記憶和處理更長期的信息。因此,NLSTM網絡能夠代替LSTM或其他擴展,具有高精度低誤差的性能,可以完成對復雜ECG信號特征的處理與記憶。
2.2 殘差注意力機制
注意力機制是一種模擬人類注意力的模型,通過對不同信息分配不同權重[25],從而提取ECG信號中更具區分性的特征。將NLSTM網絡的輸出vo作為注意力機制的輸入,通過非線性變換得到隱藏信息,再使用輸出激活函數對其進行歸一化操作,從而得到NLSTM網絡的超參數,并對其進行處理,具體計算方法如式(5)~(7)所示:
![]() |
![]() |
![]() |
式中,bi為i時刻的偏置,oi為原始隱藏層狀態,ei表示隱藏層狀態向量oi被處理后的向量,S為新隱藏層的狀態,αi是每個原始隱藏層狀態在新的隱藏層狀態中所占的比重大小。
但傳統注意力機制僅能分析當前信息的重要程度,缺乏對先前信息的捕捉能力。本文基于殘差網絡的思想對其進行改進,提出殘差注意力機制,提高對ECG信號特征提取的能力。殘差注意力機制的架構如圖4所示,利用捷徑(shortcut)將輸入與輸出連接[26],降低數據中信息的冗余度,進行信息的過濾,增加信息的可用性。殘差注意力機制的輸出如式(8)所示:

![]() |
2.3 數據增強-SMOTE算法
相對于正常節律樣本,心律失常樣本屬于極少數樣本,樣本不平衡會導致少數樣本特征被多數樣本特征所埋沒,從而導致神經網絡的分類準確率下降。解決這類問題通常是對多數類樣本欠采樣或對少數類樣本過采樣,而欠采樣會導致樣本特征丟失,因此本文使用SMOTE算法過采樣少數類樣本以進行適量擴充。
SMOTE算法[20]是一種廣泛使用的過采樣方法,該算法在少數類別中為樣本找到k個最近鄰,并在原始樣本和所選近鄰之間進行線性插值,得到M個原始數據集中不存在的新樣本。該方法能夠在不復制樣本的情況下生成新的樣本,合成數據的公式如式(9)所示:
![]() |
式中,xi代表所考慮的少數樣本類;xj是xi的k近鄰中隨機插值的樣本;δ取值區間為[0, 1],用于控制合成樣本與xi間的距離;xsynthetic沿著xi和xj之間的直線以及向量xi相交的直線的方向生成。
2.4 焦點損失函數
樣本數量較少的類別往往是分類問題中需要關注的重點。在模型訓練過程中,不同類別之間的數據存在著較大的數量差距,模型所關注和學習的總是樣本數量較多的類別,導致對少數類樣本的擬合過差,進而無法得到正確的分類結果。Lin等[19]提出focal loss,代替交叉熵損失函數(cross-entropy loss)來解決類別不平衡的問題,交叉熵與focal loss的定義如式(10)、式(11)所示:
![]() |
![]() |
式中,y為實際類別; 為類別預測值;參數α用于平衡正、負樣本對損失值的影響;γ為一個正的可調參數,它能夠自適應地調節樣本被減權重的速率,使模型更多地關注不易區分的樣本,減少容易區分的樣本的影響。
focal loss能夠自適應地改變難分類的樣本和易分類樣本在損失函數里的權重,可解決嚴重的樣本不平衡問題,而且不需要計算復雜的權值映射,使模型能夠更好地捕捉信號特征。
2.5 ECG信號分類算法流程
算法的實驗流程如圖5所示,整體實驗可以分為以下三個步驟進行:

(1)數據預處理:首先對ECG信號進行小波閾值去噪,并采用Pan-Tompkins算法定位R波;根據R波位置劃分心拍后,對所有數據進行歸一化,使其落入[0, 1]區間,最后采用SMOTE算法進行數據增強;
(2)模型訓練:將訓練集的數據輸入NLSTM模型進行訓練,獲取ECG數據的時序特征;
(3)分類結果輸出:focal loss自適應改變難易樣本的特征學習權重;殘差注意力機制更改輸出特征權重值,進而得到分類結果。
3 實驗結果與分析
3.1 實驗數據與模型參數
本文實驗數據來源于MIT-BIH-AR數據庫(網址為:https://www.physionet.org/content/mitdb/ 1.0.0/),經過權威專家的診斷和標注,是目前國際上進行相關研究通用的數據來源,被廣泛使用于近年來心律失常研究中。MIT-BIH-AR數據庫有48條記錄,包含了十幾種類型的心律失常數據,每條記錄長達30 min,采樣頻率為 360 Hz。其中有4 條編號分別為102、104、107、217的記錄包含起搏心跳,不具足夠的實用性,并會對實驗分析造成干擾,因此去除這四條記錄;而后根據R波位置對余下的44條ECG記錄進行切割。以數據集中最常見并且數量較多的四類心拍類型作為分類標簽,除正常節律外,另三類屬老年人發病率和致死率較高的心拍類型,分別為室性期前收縮、右束支傳導阻滯和左束支傳導阻滯。對其進行選擇并隨機劃分獲取96 738個心拍樣本作為原始不平衡訓練集,5 000個心拍樣本作為原始不平衡測試集。心拍類型-單字符縮寫對應關系如表1所示。

如表1所示,由于N類的樣本數量足夠,故僅對V、R、L三類過采樣。SMOTE算法在隨機過采樣樣本時存在一定的盲目性,若采樣至與N類心拍數量相等,模型易出現過擬合問題,同時會破壞其他心拍數據的原始特征。根據二-三分類原則,將V、R、L三類按2、3、4倍進行擴充,擴充后見表1中“數據增強后心拍數量”,使得這三類樣本數量的總和與N類大致相等,構成一個二元分類問題,二分類結束后再進行三分類,可在較大程度提高分類準確率。
模型共采用5層NLSTM,每一層由10個NLSTM單元構成。在模型訓練階段,設置學習率為0.01,并自適應跟隨訓練加深逐步降低,更好地擬合數據特征。經過實驗驗證,最終設置批次大小(batch_size)為1 024,訓練輪次(epoch)為100。與此同時,為了避免訓練、測試的心拍來自于同一條記錄,將心拍隨機打亂索引;對于實驗數據,得益于神經網絡中神經元的隨機失活(dropout)思想[27],對數據進行離散隨機訓練,每個epoch只訓練訓練集中的一部分數據,可以有效地避免過擬合現象。
3.2 實驗環境
本文研究涉及的數據處理平臺為:ECG數據預處理及心拍類型劃分平臺MATLAB(2016b,MathWorks,美國);NLSTM網絡模型框架、focal loss及殘差注意力機制實現平臺TensorFlow(1.4.0,Google,美國);SMOTE及其他ECG信號分類模型實現平臺Python(3.6.2,Google,美國)。
3.3 評價指標
為準確評估算法在分類中的表現,選擇總體準確率(accuracy,Acc)來評價分類性能,但由于心拍數量的不平衡,準確率可能會被主類別(N類)嚴重扭曲。因此,精準率(precision,Pre)、召回率(recall,Rec)和F1分數也一并作為衡量模型性能和有效性的指標,其計算公式如式(12)~式(15)所示:
![]() |
![]() |
![]() |
![]() |
式中,真陽性(true positive,TP)表示正類別中正確分類樣本的數量;真陰性(true negative,TN)表示負類別中正確分類樣本的數量;假陽性(false positive,FP)表示正類別中錯誤分類樣本的數量;假陰性(false negative,FN)是負類別中錯誤分類樣本的數量。
3.4 平衡數據集下的NLSTM模型性能驗證
為將實驗全面化,首先利用平衡數據集對NLSTM模型性能進行驗證,而后再針對不平衡數據進行更為全面的實驗。從原始訓練數據中兩次隨機選取N、V、R、L類各2 500個樣本數據,前一次作為訓練集,后一次作為測試集,對CNN、單向長短時記憶網絡(unidirectional long short-term memory,ULSTM)、NLSTM三種模型的分類效果進行驗證。三種模型的準確率如圖6所示,對比可知,NLSTM的Acc相較于CNN與ULSTM分別提高了1.43%和1.94%,并從Pre和Rec的調和平均F1分數看出,NLSTM要優于CNN與ULSTM,NLSTM的記憶能力能夠更好挖掘時序數據之間的潛在特征,提高模型的分類準確率。

經由NLSTM分類的四類心拍的詳細參數如表2所示,NLSTM在Pre、Rec、F1分數這三種評價指標上的值均在95%以上,在 N、L兩種類型的心拍檢測上,Rec高達 99%。

3.5 殘差注意力-NLSTM模型
為提升NLSTM模型的分類能力,在NLSTM網絡結構的末端加入殘差注意力機制,將原模型的輸出作為殘差注意力機制層的輸入,使注意力集中在對分類結果影響較大的全局特征上,模型的整體準確率在原始NLSTM模型的基礎上增加了0.22%,四類心拍分類的詳細參數如圖7所示。V類的F1分數達到了96.86%,提高了0.57%,殘差注意力-NLSTM模型在三種評價指標上的值均在95% 以上,因此分類的效果要優于單一的NLSTM。因為FP和FN的少量變化,部分類別的Pre和Rec存在一定波動,而兩者調和平均數F1分數是穩定上升的,證明分類方法的有效性及準確性。

3.6 殘差注意力-NLSTM-focal loss 模型
本節及之后將采用原始不平衡數據集對模型進行驗證。focal loss優越的權重分配原則會對網絡超參數進行調整,令神經元同時學習小樣本和大樣本類別,并可能會分配更多權重于小樣本以學習到更多全局特征。以交叉熵為基準,驗證了focal loss對不平衡ECG數據進行分類的可行性。經過不斷的實驗對比,最終設置式(11)中參數為α = 0.75,γ = 2時,不平衡數據集分類效果達到最佳。相同環境及模型下,交叉熵與focal loss的分類評價指標如表3所示。

實驗結果表明,采用focal loss的網絡模型性能更好,Acc達到96.10%,相比交叉熵提高3.63%;N類和V類的Pre分別提高了3.65%和15.35%;R類和L類的Rec分別提高了13.31%和34.82%。focal loss使得NLSTM網絡更側重于容易誤分心拍的特征學習,提高心律失常分類的準確性。
3.7 SMOTE-殘差注意力-NLSTM-focal loss模型
過量擴充樣本數量將會導致特征冗余,故本文采用SMOTE算法僅對少樣本類別進行處理,使三類心律失常類別數量總和與N類數量達到相對平衡狀態,進而抑制樣本不平衡對模型性能的消極影響,進一步提高focal loss下的模型性能,旨在達到平衡數據集的分類的精度。數據增強后的數據分布如表1所示。
在不平衡心律失常分類仿真實驗中,對訓練集采用SMOTE算法進行數據增強處理,測試集不做處理,以體現模型真實的泛化能力。數據增強后的混淆矩陣及評價指標如表4所示,實驗結果表明,Acc從原來的96.10%提高到了98.34%,該分類方法對這四類心拍的識別有效,Pre達到了93%以上,模型性能甚至超越了平衡數據集的標準。

為進一步驗證本文所提模型的有效性,選取近期其他算法進行對比;各文獻的具體分類方法和分類準確率如表5所示,實驗數據來源均基于MIT-BIH-AR數據庫。其中,Acharya等[28]采用CNN模型對處理后的不平衡數據集進行分類,Acc僅達94.23%;由此可見,本文提出的算法精度更高,具有更加明顯的優勢,同時本文實驗驗證時均使用完整心拍數據,更加貼近真實情況,由此得到的實驗結果也更具說服力。

各模型在ECG信號分類上的Acc是值得關注的,但在實際應用中,各模型的算法能耗也是非常重要的指標;而耗時可以充分表征模型在實際運用中的算法能耗,故本文對各模型在單個心拍上的特征提取、訓練及測試耗時進行統計分析,結果如表6所示。

雖然單個心拍的檢測耗時僅為毫秒級別,但在醫學治療或者便攜穿戴式心電監測設備中,將會一次性采集大量的心拍作為參考,使得總耗時產生較大差異。就各模型在心拍分類的Acc及耗時而言,本文所提方法具有更快的運行速度及更高的分類準確率;文獻[17]的準確率與本文相近,但其耗時最長,并不利于實際應用;而文獻[15,28]雖同樣省略特征提取步驟,但并未采取更具針對性的網絡架構,準確率低且耗時略長。
基于以上分析,本文模型可以實現對ECG信號準確而快速的檢測與分類,其時間損耗能夠滿足臨床治療分析的實時性需求,具有較好的普適性,可為便攜穿戴式心電監測設備提供有效的分類依據。
3.8 貢獻度對比
根據各項指標前后變化,對各方法的貢獻程度進行量化比較。依托于NLSTM網絡,殘差注意力機制輔助網絡形成對心拍全局特征的長期記憶,貢獻占比為23.11%;而focal loss使網絡模型集中學習少數樣本特征,較大程度提升算法在不平衡數據集下的分類能力,貢獻占比為54.63%;SMOTE增強小樣本占比,使特征突出,更易捕捉,貢獻占比為22.26%。
4 結論
針對ECG數據中類別失衡,以及現有模型在長時間序列訓練中信息丟失的問題,本文提出一種基于殘差注意力機制與focal loss的NLSTM心律失常分類模型,該模型能夠集中提取ECG信號的全局特征并形成長期記憶,并增強對少數類樣本特征的學習,進而有效解決數據不平衡問題;同時使用SMOTE算法少量增加小樣本類別數目,能有效提升ECG數據的豐富程度,進一步提升模型對ECG信號分類的準確性與魯棒性。本文模型相較于傳統特征提取方法和其他深度學習模型效果更佳,Acc達到98.34%,F1分數高達99.10%。該方法將人工智能與ECG信號分類有效地結合,用作診斷心血管疾病的計算機輔助工具,推動了智慧醫療的進一步發展。
在未來的工作中,繼續將網絡輕量化,并將其訓練后的完整模型進行遷移,應用于便攜穿戴式心電監測設備中,實現實時監測預警的效果;并對更多不同類型的心律失常患者進行臨床驗證。此外,本文算法是一種通用算法,可推廣至其他生理時間序列的不平衡數據集,譬如心音信號、脈搏信號等。
重要聲明
利益沖突聲明:本文全體作者均聲明不存在利益沖突。
作者貢獻聲明:許詩雨是本研究的實驗設計者與執行人,完成數據分析,論文初稿撰寫;莫思特參與論文框架設計、對論文修改提出建設性意見,并審核同意發表;閆惠君、黃華參與實驗設計和實驗結果分析;吳錦暉、張紹敏指導實驗設計與實際運用;楊林參與論文想法的討論和修改論文。全體作者閱讀并同意最終的作者排序與論文內容。
引言
據世界衛生組織提供的數據表明,每年心血管疾病(cardiovascular disease,CVD)導致的死亡人數約占全世界死亡人數的三分之一;其中老年人作為心血管疾病的高發群體,針對老年人群所患心血管疾病的診斷手段提出了更高要求。心律失常是心血管疾病中最常見的一種病況[1],許多心血管疾病病發初期通常伴有心律失常的出現;而心電圖(electrocardiogram,ECG)可以直接反映心臟的電活動變化,是診斷心律失常的重要手段[2]。醫生通過分析ECG數據進行心律失常診斷,但這種基于人工經驗的判斷方法很容易造成漏診、誤診,且需耗費大量時間,因此基于計算機輔助的心律失常分類的醫療手段應運而生[3-5],其中大多數分類算法集中在傳統的機器學習領域。Dutta等[6]提出一種基于最小二乘支持向量機的自動醫療診斷工具,對ECG信號進行三分類,準確率達到95.82%。Li 等[7]使用小波包分解、小波包熵提取ECG信號特征,并結合隨機森林對ECG信號進行分類,在麻省理工學院-貝斯以色列醫院心律失常(the Massachusetts institute of technology and Beth Israel hospital arrhythmia, MIT-BIH-AR)數據庫[8]上進行驗證,準確率達到94.61%。Mondéjar-Guerra等[9]提取RR間期和波形形態學特征,采用組合支持向量機作為分類器,在ECG信號四分類上取得94.5%的準確率。
上述基于傳統機器學習的ECG信號分類算法主要有預處理、特征提取、特征分類[10-11]等步驟,雖然這些算法表現出良好的分類性能,但其存在著依賴手工提取特征的局限[12]。相較于傳統方法,基于深度學習的方法具有從輸入的數據中自動提取有效特征并完成分類的能力[13-14]。劉光達等[15]提出一種結合前向反饋神經網絡和卷積神經網絡(convolutional neural networks,CNN)的心律失常診斷算法,總體準確率達到91.5%;Xiao等[16]使用概率神經網絡將ECG信號分為正常和心律不齊類別,在MIT-BIH-AR數據庫上達到96.5%的分類準確率;Li等[17]將小波包分解與遺傳算法-反向傳播神經網絡相結合,完成特征提取并實現ECG信號六分類,準確率達到97.78%。
在ECG數據集中,正常節律與心律失常樣本數量差異較大,帶來樣本不平衡問題;例如,MIT-BIH-AR數據庫中正常節律有近十萬個,然而室性期前收縮不到八千個。上述算法并未針對ECG數據中樣本不平衡問題做出相應處理和驗證,無法證明其在實際應用中的普適性和魯棒性。本文提出基于嵌套長短時記憶網絡(nested long short-term memory,NLSTM)[18]的心律失常分類混合模型,并在NLSTM模型中加入殘差注意力機制(residual attention mechanism),選擇性遺忘局部特征,并于全局特征分配更強注意力;利用焦點損失函數(focal loss)[19]聚焦學習小樣本類別的相關特征,進而與大樣本類別進行區分完成準確分類;為進一步提升分類性能,基于少數類樣本合成過采樣技術(synthetic minority over-sampling technique,SMOTE)[20]適量擴充不平衡數據集中的小樣本類別數目,增強特征,提高分類性能。本文針對ECG信號中的不平衡問題進行充分探討,尋求一種魯棒性與準確性更高的ECG信號分類方法,以促進精準輔助醫療與人工智能的有效結合。
1 數據處理
1.1 小波閾值去噪
由于硬件電路固有特性以及ECG數據采集環境的干擾,所采集的ECG信號中夾雜著各種噪聲,例如:基線漂移、肌電擾動、工頻干擾等。為提高分類精度,避免噪聲干擾產生誤判,對ECG信號的預處理是尤為必要的。本文運用小波變換對ECG信號進行尺度分解、閾值處理和重構信號來濾除噪聲[21]。
小波變換是一種在非平穩時間序列數據分析中常用的方法,能放大局部特征,保護有用的突變信號,有效地將信號與噪聲區分開來,連續信號f(t)小波變換的函數如式(1)所示:
![]() |
式中,α為尺度因子,是一個總大于0的連續變量,τ為平移因子;為對基本小波函數Ψ(t)作伸縮,WT(α, τ)為信號f(t)的小波變換值。
ECG信號經小波分解后,信號的重要特征主要由幅值較大的小波系數進行表征,而噪聲的小波系數幅值較小,可根據幅值差異選取一個合適的閾值,將幅值小于閾值的小波系數判定為噪聲并置為零,幅值大于閾值的小波系數予以保留或者進行壓縮,最后對小波系數進行小波逆變換,達到去噪目的。多貝西(Daubechies,Db)小波函數族的特征與ECG信號的QRS波相似,能譜集中在低頻附近[22],能夠有效地與ECG信號中的噪聲進行區分;故本文選取6階Daubechies小波函數[23]作為式(1)中的小波函數,并設定小波分解的層數為8。去噪前后的ECG信號波形對比如圖1所示。

1.2 R波峰值檢測及心拍分割
一個完整的心拍波形由當前P波起始至下一個P波起始,如圖2所示。當出現心律失常時,心拍波形會發生變化,例如:出現心臟左右束支的傳導阻滯、心室擴大等情況時,QRS波群出現增寬和變形,因此通過波形變化能夠有效地檢測心律失常。與幅值較小的P波不同,R波幅值大、易辨識且不易受到噪聲干擾,所以通常選取R波點作為基準點對波形進行定位,進而再定位到P波位置。本文使用潘-托普金斯(Pan-Tompkins)算法[24]確定R波位置,對ECG信號進行分割,向前截取149個樣本點,向后截取150個樣本點,構成包含R波基準點在內的共300個樣本點作為一個樣本心拍。

2 算法原理
2.1 嵌套長短時記憶網絡
傳統的長短時記憶網絡(long short-term memory,LSTM)面對長序列數據時,極易出現梯度彌散或爆炸問題,導致LSTM僅具備短時記憶,無法在長時間序列數據中獲取足夠特征。為了解決時序數據的長期依賴問題,Moniz 等[18]提出了NLSTM神經網絡,通過記憶歷史數據中的附加信息來提高預測性能。NLSTM的單元結構如圖3所示。

NLSTM具有多層內存,由內外兩層LSTM相嵌套,內部存儲單元為內層LSTM。外部存儲單元可以自由地、選擇性地讀寫內部單元的記憶信息,NLSTM從整體上提高了傳統LSTM神經網絡結構的魯棒性,能夠對長序列ECG信號進行強記憶和處理。
傳統LSTM單元的存儲單元狀態ct更新如式(2)所示:
![]() |
其中, 和
分別為現在的輸入信息與過去的輸出信息。
NLSTM的更新方式與傳統LSTM一致,但內部存儲單元狀態ct的更新增加兩部分,如式(3)所示:
![]() |
式中,為t ? 1時刻內部單元的輸出,由存儲單元狀態ct ? 1和函數ft決定;It為t時刻內外過渡輸入,由外部單元t時刻輸入xt、外部輸入到內部權重Wxi、外部單元t ? 1時刻輸出ht ? 1、外部輸出到內部權重Whi、過渡偏置bi及激活函數
計算得到;
為t時刻內部單元的輸入,由輸入到存儲權重Wxc、輸出到存儲權重Whc、存儲單元偏置bc、內外過渡輸入It及激活函數
計算得來。
為外部存儲單元激活函數,
為輸出激活函數。
由于NLSTM內部存儲單元的存在,外部存儲單元狀態ct的更新如式(4)所示:
![]() |
NLSTM網絡通過外部記憶和內部記憶的結構形成層次記憶,可以記憶和處理更長期的信息。因此,NLSTM網絡能夠代替LSTM或其他擴展,具有高精度低誤差的性能,可以完成對復雜ECG信號特征的處理與記憶。
2.2 殘差注意力機制
注意力機制是一種模擬人類注意力的模型,通過對不同信息分配不同權重[25],從而提取ECG信號中更具區分性的特征。將NLSTM網絡的輸出vo作為注意力機制的輸入,通過非線性變換得到隱藏信息,再使用輸出激活函數對其進行歸一化操作,從而得到NLSTM網絡的超參數,并對其進行處理,具體計算方法如式(5)~(7)所示:
![]() |
![]() |
![]() |
式中,bi為i時刻的偏置,oi為原始隱藏層狀態,ei表示隱藏層狀態向量oi被處理后的向量,S為新隱藏層的狀態,αi是每個原始隱藏層狀態在新的隱藏層狀態中所占的比重大小。
但傳統注意力機制僅能分析當前信息的重要程度,缺乏對先前信息的捕捉能力。本文基于殘差網絡的思想對其進行改進,提出殘差注意力機制,提高對ECG信號特征提取的能力。殘差注意力機制的架構如圖4所示,利用捷徑(shortcut)將輸入與輸出連接[26],降低數據中信息的冗余度,進行信息的過濾,增加信息的可用性。殘差注意力機制的輸出如式(8)所示:

![]() |
2.3 數據增強-SMOTE算法
相對于正常節律樣本,心律失常樣本屬于極少數樣本,樣本不平衡會導致少數樣本特征被多數樣本特征所埋沒,從而導致神經網絡的分類準確率下降。解決這類問題通常是對多數類樣本欠采樣或對少數類樣本過采樣,而欠采樣會導致樣本特征丟失,因此本文使用SMOTE算法過采樣少數類樣本以進行適量擴充。
SMOTE算法[20]是一種廣泛使用的過采樣方法,該算法在少數類別中為樣本找到k個最近鄰,并在原始樣本和所選近鄰之間進行線性插值,得到M個原始數據集中不存在的新樣本。該方法能夠在不復制樣本的情況下生成新的樣本,合成數據的公式如式(9)所示:
![]() |
式中,xi代表所考慮的少數樣本類;xj是xi的k近鄰中隨機插值的樣本;δ取值區間為[0, 1],用于控制合成樣本與xi間的距離;xsynthetic沿著xi和xj之間的直線以及向量xi相交的直線的方向生成。
2.4 焦點損失函數
樣本數量較少的類別往往是分類問題中需要關注的重點。在模型訓練過程中,不同類別之間的數據存在著較大的數量差距,模型所關注和學習的總是樣本數量較多的類別,導致對少數類樣本的擬合過差,進而無法得到正確的分類結果。Lin等[19]提出focal loss,代替交叉熵損失函數(cross-entropy loss)來解決類別不平衡的問題,交叉熵與focal loss的定義如式(10)、式(11)所示:
![]() |
![]() |
式中,y為實際類別; 為類別預測值;參數α用于平衡正、負樣本對損失值的影響;γ為一個正的可調參數,它能夠自適應地調節樣本被減權重的速率,使模型更多地關注不易區分的樣本,減少容易區分的樣本的影響。
focal loss能夠自適應地改變難分類的樣本和易分類樣本在損失函數里的權重,可解決嚴重的樣本不平衡問題,而且不需要計算復雜的權值映射,使模型能夠更好地捕捉信號特征。
2.5 ECG信號分類算法流程
算法的實驗流程如圖5所示,整體實驗可以分為以下三個步驟進行:

(1)數據預處理:首先對ECG信號進行小波閾值去噪,并采用Pan-Tompkins算法定位R波;根據R波位置劃分心拍后,對所有數據進行歸一化,使其落入[0, 1]區間,最后采用SMOTE算法進行數據增強;
(2)模型訓練:將訓練集的數據輸入NLSTM模型進行訓練,獲取ECG數據的時序特征;
(3)分類結果輸出:focal loss自適應改變難易樣本的特征學習權重;殘差注意力機制更改輸出特征權重值,進而得到分類結果。
3 實驗結果與分析
3.1 實驗數據與模型參數
本文實驗數據來源于MIT-BIH-AR數據庫(網址為:https://www.physionet.org/content/mitdb/ 1.0.0/),經過權威專家的診斷和標注,是目前國際上進行相關研究通用的數據來源,被廣泛使用于近年來心律失常研究中。MIT-BIH-AR數據庫有48條記錄,包含了十幾種類型的心律失常數據,每條記錄長達30 min,采樣頻率為 360 Hz。其中有4 條編號分別為102、104、107、217的記錄包含起搏心跳,不具足夠的實用性,并會對實驗分析造成干擾,因此去除這四條記錄;而后根據R波位置對余下的44條ECG記錄進行切割。以數據集中最常見并且數量較多的四類心拍類型作為分類標簽,除正常節律外,另三類屬老年人發病率和致死率較高的心拍類型,分別為室性期前收縮、右束支傳導阻滯和左束支傳導阻滯。對其進行選擇并隨機劃分獲取96 738個心拍樣本作為原始不平衡訓練集,5 000個心拍樣本作為原始不平衡測試集。心拍類型-單字符縮寫對應關系如表1所示。

如表1所示,由于N類的樣本數量足夠,故僅對V、R、L三類過采樣。SMOTE算法在隨機過采樣樣本時存在一定的盲目性,若采樣至與N類心拍數量相等,模型易出現過擬合問題,同時會破壞其他心拍數據的原始特征。根據二-三分類原則,將V、R、L三類按2、3、4倍進行擴充,擴充后見表1中“數據增強后心拍數量”,使得這三類樣本數量的總和與N類大致相等,構成一個二元分類問題,二分類結束后再進行三分類,可在較大程度提高分類準確率。
模型共采用5層NLSTM,每一層由10個NLSTM單元構成。在模型訓練階段,設置學習率為0.01,并自適應跟隨訓練加深逐步降低,更好地擬合數據特征。經過實驗驗證,最終設置批次大小(batch_size)為1 024,訓練輪次(epoch)為100。與此同時,為了避免訓練、測試的心拍來自于同一條記錄,將心拍隨機打亂索引;對于實驗數據,得益于神經網絡中神經元的隨機失活(dropout)思想[27],對數據進行離散隨機訓練,每個epoch只訓練訓練集中的一部分數據,可以有效地避免過擬合現象。
3.2 實驗環境
本文研究涉及的數據處理平臺為:ECG數據預處理及心拍類型劃分平臺MATLAB(2016b,MathWorks,美國);NLSTM網絡模型框架、focal loss及殘差注意力機制實現平臺TensorFlow(1.4.0,Google,美國);SMOTE及其他ECG信號分類模型實現平臺Python(3.6.2,Google,美國)。
3.3 評價指標
為準確評估算法在分類中的表現,選擇總體準確率(accuracy,Acc)來評價分類性能,但由于心拍數量的不平衡,準確率可能會被主類別(N類)嚴重扭曲。因此,精準率(precision,Pre)、召回率(recall,Rec)和F1分數也一并作為衡量模型性能和有效性的指標,其計算公式如式(12)~式(15)所示:
![]() |
![]() |
![]() |
![]() |
式中,真陽性(true positive,TP)表示正類別中正確分類樣本的數量;真陰性(true negative,TN)表示負類別中正確分類樣本的數量;假陽性(false positive,FP)表示正類別中錯誤分類樣本的數量;假陰性(false negative,FN)是負類別中錯誤分類樣本的數量。
3.4 平衡數據集下的NLSTM模型性能驗證
為將實驗全面化,首先利用平衡數據集對NLSTM模型性能進行驗證,而后再針對不平衡數據進行更為全面的實驗。從原始訓練數據中兩次隨機選取N、V、R、L類各2 500個樣本數據,前一次作為訓練集,后一次作為測試集,對CNN、單向長短時記憶網絡(unidirectional long short-term memory,ULSTM)、NLSTM三種模型的分類效果進行驗證。三種模型的準確率如圖6所示,對比可知,NLSTM的Acc相較于CNN與ULSTM分別提高了1.43%和1.94%,并從Pre和Rec的調和平均F1分數看出,NLSTM要優于CNN與ULSTM,NLSTM的記憶能力能夠更好挖掘時序數據之間的潛在特征,提高模型的分類準確率。

經由NLSTM分類的四類心拍的詳細參數如表2所示,NLSTM在Pre、Rec、F1分數這三種評價指標上的值均在95%以上,在 N、L兩種類型的心拍檢測上,Rec高達 99%。

3.5 殘差注意力-NLSTM模型
為提升NLSTM模型的分類能力,在NLSTM網絡結構的末端加入殘差注意力機制,將原模型的輸出作為殘差注意力機制層的輸入,使注意力集中在對分類結果影響較大的全局特征上,模型的整體準確率在原始NLSTM模型的基礎上增加了0.22%,四類心拍分類的詳細參數如圖7所示。V類的F1分數達到了96.86%,提高了0.57%,殘差注意力-NLSTM模型在三種評價指標上的值均在95% 以上,因此分類的效果要優于單一的NLSTM。因為FP和FN的少量變化,部分類別的Pre和Rec存在一定波動,而兩者調和平均數F1分數是穩定上升的,證明分類方法的有效性及準確性。

3.6 殘差注意力-NLSTM-focal loss 模型
本節及之后將采用原始不平衡數據集對模型進行驗證。focal loss優越的權重分配原則會對網絡超參數進行調整,令神經元同時學習小樣本和大樣本類別,并可能會分配更多權重于小樣本以學習到更多全局特征。以交叉熵為基準,驗證了focal loss對不平衡ECG數據進行分類的可行性。經過不斷的實驗對比,最終設置式(11)中參數為α = 0.75,γ = 2時,不平衡數據集分類效果達到最佳。相同環境及模型下,交叉熵與focal loss的分類評價指標如表3所示。

實驗結果表明,采用focal loss的網絡模型性能更好,Acc達到96.10%,相比交叉熵提高3.63%;N類和V類的Pre分別提高了3.65%和15.35%;R類和L類的Rec分別提高了13.31%和34.82%。focal loss使得NLSTM網絡更側重于容易誤分心拍的特征學習,提高心律失常分類的準確性。
3.7 SMOTE-殘差注意力-NLSTM-focal loss模型
過量擴充樣本數量將會導致特征冗余,故本文采用SMOTE算法僅對少樣本類別進行處理,使三類心律失常類別數量總和與N類數量達到相對平衡狀態,進而抑制樣本不平衡對模型性能的消極影響,進一步提高focal loss下的模型性能,旨在達到平衡數據集的分類的精度。數據增強后的數據分布如表1所示。
在不平衡心律失常分類仿真實驗中,對訓練集采用SMOTE算法進行數據增強處理,測試集不做處理,以體現模型真實的泛化能力。數據增強后的混淆矩陣及評價指標如表4所示,實驗結果表明,Acc從原來的96.10%提高到了98.34%,該分類方法對這四類心拍的識別有效,Pre達到了93%以上,模型性能甚至超越了平衡數據集的標準。

為進一步驗證本文所提模型的有效性,選取近期其他算法進行對比;各文獻的具體分類方法和分類準確率如表5所示,實驗數據來源均基于MIT-BIH-AR數據庫。其中,Acharya等[28]采用CNN模型對處理后的不平衡數據集進行分類,Acc僅達94.23%;由此可見,本文提出的算法精度更高,具有更加明顯的優勢,同時本文實驗驗證時均使用完整心拍數據,更加貼近真實情況,由此得到的實驗結果也更具說服力。

各模型在ECG信號分類上的Acc是值得關注的,但在實際應用中,各模型的算法能耗也是非常重要的指標;而耗時可以充分表征模型在實際運用中的算法能耗,故本文對各模型在單個心拍上的特征提取、訓練及測試耗時進行統計分析,結果如表6所示。

雖然單個心拍的檢測耗時僅為毫秒級別,但在醫學治療或者便攜穿戴式心電監測設備中,將會一次性采集大量的心拍作為參考,使得總耗時產生較大差異。就各模型在心拍分類的Acc及耗時而言,本文所提方法具有更快的運行速度及更高的分類準確率;文獻[17]的準確率與本文相近,但其耗時最長,并不利于實際應用;而文獻[15,28]雖同樣省略特征提取步驟,但并未采取更具針對性的網絡架構,準確率低且耗時略長。
基于以上分析,本文模型可以實現對ECG信號準確而快速的檢測與分類,其時間損耗能夠滿足臨床治療分析的實時性需求,具有較好的普適性,可為便攜穿戴式心電監測設備提供有效的分類依據。
3.8 貢獻度對比
根據各項指標前后變化,對各方法的貢獻程度進行量化比較。依托于NLSTM網絡,殘差注意力機制輔助網絡形成對心拍全局特征的長期記憶,貢獻占比為23.11%;而focal loss使網絡模型集中學習少數樣本特征,較大程度提升算法在不平衡數據集下的分類能力,貢獻占比為54.63%;SMOTE增強小樣本占比,使特征突出,更易捕捉,貢獻占比為22.26%。
4 結論
針對ECG數據中類別失衡,以及現有模型在長時間序列訓練中信息丟失的問題,本文提出一種基于殘差注意力機制與focal loss的NLSTM心律失常分類模型,該模型能夠集中提取ECG信號的全局特征并形成長期記憶,并增強對少數類樣本特征的學習,進而有效解決數據不平衡問題;同時使用SMOTE算法少量增加小樣本類別數目,能有效提升ECG數據的豐富程度,進一步提升模型對ECG信號分類的準確性與魯棒性。本文模型相較于傳統特征提取方法和其他深度學習模型效果更佳,Acc達到98.34%,F1分數高達99.10%。該方法將人工智能與ECG信號分類有效地結合,用作診斷心血管疾病的計算機輔助工具,推動了智慧醫療的進一步發展。
在未來的工作中,繼續將網絡輕量化,并將其訓練后的完整模型進行遷移,應用于便攜穿戴式心電監測設備中,實現實時監測預警的效果;并對更多不同類型的心律失常患者進行臨床驗證。此外,本文算法是一種通用算法,可推廣至其他生理時間序列的不平衡數據集,譬如心音信號、脈搏信號等。
重要聲明
利益沖突聲明:本文全體作者均聲明不存在利益沖突。
作者貢獻聲明:許詩雨是本研究的實驗設計者與執行人,完成數據分析,論文初稿撰寫;莫思特參與論文框架設計、對論文修改提出建設性意見,并審核同意發表;閆惠君、黃華參與實驗設計和實驗結果分析;吳錦暉、張紹敏指導實驗設計與實際運用;楊林參與論文想法的討論和修改論文。全體作者閱讀并同意最終的作者排序與論文內容。