熊 慧,梁美玲,劉近貞
(天津工業大學 電氣工程與自動化學院,天津 300387)
心電圖(electrocardiogram, ECG)用于表征心臟的電活動,心血管疾病的死亡率居各類疾病的首位,且患病率和死亡率逐年上升.心律失常是心血管疾病的一種常見的表現形式,心律失常類型的識別是該類心血管疾病治療的關鍵.心律失常類型自動識別方法分為傳統機器學習和深度學習.傳統機器學習用于心律失常分類的流程包括:特征提取、特征選擇和分類[1-2].Thomas等[3]利用離散小波變換和雙樹復小波變換對4種類型的心拍進行特征提取和特征選擇,淺層人工神經網絡用于分類.Acharya等[4]結合了離散余弦變換、經驗模式分解和離散小波分析用于特征提取和選擇,機器學習K近鄰作為分類器用于心律失常分類.Li等[5]用小波包熵分解提取特征,隨機森林進行心跳分類,準確率達到94%以上.雖然傳統機器學習算法的分類效果很好,但是這些方法局限于特征提取和特征選擇需要人工設計,而人工設計的策略不能保證可靠的魯棒性,容易引起過擬合問題.
深度學習方法將特征提取和特征選擇集成到模型中,不需要手工構建特征且具有很好的泛化能力,使計算機能夠自動地學習和提取任何給定問題的相關特征.隨著數據和結果的積累,系統的模型性能可以不斷提高.卷積神經網絡(convolutional neural network, CNN)是一種深度學習的典型框架,卷積層可以通過不同的卷積核獲得不同的感受野,實現自動特征提取,在推薦算法、腦機交互、跌倒檢測等研究領域均有廣泛應用.Puthusserypady 等[6-7]以R-R間期序列作為輸入層信號,CNN自動提取特征,雙向長短期記憶網絡實時處理序列特征,使用Nesterov動量的隨機梯度下降算法加快收斂速度實現心顫檢測.楊萍等[8]構建了CNN和長短期記憶網絡(long short-term memory, LSTM)的混合模型分別提取局部空間特征和時間特征,以實現對陣發性房顫的預測.Xu等[9]關注心電信號分類的個體差異性,在CNN中加入身份向量建立Patient-Specific模型,用于不同病人的檢測.Yang 等[10-13]利用主成分分析、獨立成分分析和典型相關網絡代替CNN的卷積核進行自動特征提取,一方面可以增強模型的噪聲穩健性,另一方面減少了卷積核訓練參數.Shi 等[14]將CNN自動提取的特征與手動提取的特征相結合,提取到大量特征再進行優良的特征選擇,最終實現ECG信號心律失常的5分類.中國科學院李燁等[15]針對可穿戴ECG信號提出了一種基于時空特征融合的深度神經網絡,在CNN空間特征融合的基礎上引入時間特征融合,利用可變長12導聯ECG數據實現了心律失常多分類.
CNN用于心律失常分類的研究目前存在著輸入信號長度必須固定和訓練參數多的不足,本文提出一種基于CNN的心律失常分類混合模型.空間金字塔池化層(space pyramid pooling, SPP)的引入使CNN網絡能夠處理任意長度的心拍片段,而且不同的池化步長可以二次挖掘信號的特征.選擇極限學習機(extreme learning machine, ELM)作為分類器,可以解決SPP層引入導致的訓練時間增加、運算復雜度增大的問題.除此之外,ELM在提高訓練速度的同時也可以增強模型的泛化能力.利用麻省理工學院心律失常數據集(MIT-BIH Arrhythmia Database, MITDB)對混合模型CNN-SPP-ELM進行心律失常4分類實驗,混合模型分類的整體準確率為99.16%.
CNN是一種前饋神經網絡,是多層感知機的一個變種模型,目前已廣泛應用于圖像分類領域.相比其他神經網絡,CNN具有稀疏連接和權值共享的特點,可以提取局部特征并大大減少網絡的訓練參數.傳統的CNN結構包括輸入層、卷積層和池化層的交替、全連接層和輸出層,卷積層和池化層的交替通過不同的卷積核和池化步長能夠實現自動特征提取與數據降維,全連接層獲得高維空間數據的表達.CNN算法的核心是前向傳播和反向傳播,其中,前向傳播計算損失函數,反向傳播利用梯度下降法進行參數更新.前向傳播過程由預測分類y,批訓練的樣本個數n和標簽y*共同計算出損失函數.交叉熵損失函數的計算方法為
由損失函數計算各層誤差并反向傳播更新卷積層的權重和偏置,權重w和偏置b的更新公式為
式中α是學習率,指定了反向傳播過程中梯度下降的步長.
CNN網絡中卷積層和池化層對輸入數據的尺寸沒有限制,但是全連接層要求輸入的特征長度必須固定.如果全連接層輸入特征向量的長度不定,則無法確定全連接層的神經元個數,導致網絡的動態變化,無法實現參數訓練的目的.傳統的CNN用于心律失常分類時,在預處理階段要把分割的心拍進行重采樣或者編碼等使心拍長度相等,重采樣會使原始心拍特征發生形變并且增加整體算法的復雜度.
SPP是一種非常有效的多分辨策略,解決CNN網絡輸入需要固定尺寸的圖像問題[16].SPP將最后一層卷積層輸出的特征進行復制,用不同的步長對復制的特征進行池化,最后將池化得到的特征融合為一個尺寸固定的特征作為全連接層的輸入.SPP層不僅可以解決CNN網絡需要輸入圖像尺寸固定的問題,還可以以不同的池化步長在多個尺度上二次挖掘圖片的特征,加深模型對圖像的理解[17].SPP的工作原理見圖1,N是最后一層卷積層的輸出特征圖,復制4份利用4種不同的池化步長得到池化特征,最后對池化特征進行融合得到SPP層輸出特征圖M.

圖1 SPP的工作原理
ELM是2004年由南洋理工大學提出的.它是一種特殊的前饋神經網絡,具有學習速率快、泛化能力強的特點.隨機初始化輸入權重和偏置且初始化完成后不需要調整,與反向傳播算法相比減少了運算量.單隱層的ELM學習的目標是確定一個輸出矩陣,使得標簽和輸出的誤差最小,這一過程由廣義的矩陣求逆運算得到.一個有l個隱層節點的單隱層神經網絡可以表示為
矩陣表示輸出誤差最小為
Hβ=T.
式中:j=1,…,n代表n個樣本;g(x)為激活函數;w為隨機初始化的輸入權重;b為神經元的偏置;β是需要計算的輸出權重;o為輸出;H為隱層節點的輸出;T為期望輸出.
輸出權重矩陣的計算方法為
β=H+T.
式中H+是矩陣H的Moore-Penrose廣義逆矩陣.
本文的實驗數據來自MITDB,該數據集包含48條時長為30 min,采樣頻率為360 Hz的心電信號記錄.每條記錄由兩個導聯組成,兩位專家對心電信號進行標記和注釋.排除102、104、107和217四條雜亂且具有節奏性心跳的ECG記錄,對余下44條ECG記錄的心拍按照美國醫療儀器促進協會(American Association for the Advancement of Medical Instruments, AAMI)的標準分成4類:正常或束支傳導阻滯心跳(N)、室上性異常心跳(S)、心室異常心跳(V)和融合心跳(F),對這4類心律失常進行自動識別.表1所示是MITDB中4種類型心拍劃分的具體信息與得到的心拍個數.
按照AAMI標準用于評價心律失常分類性能的指標有:混淆矩陣、準確率(accuracy, Acc)、敏感度(sensitive, Se)、特異性(specificity, Sp)和精度(precision, Pp).混淆矩陣可以更詳細地觀察分類器對每一類別的分類情況,根據混淆矩陣可以計算其他4個指標,每個指標的計算方法如下式:
式中:TTP表示被分類為正樣本,實際也是正樣本的個數;TTN表示被判定為負樣本,實際也是負樣本的個數;FFP表示被判定為正樣本,但實際是負樣本的個數;FFN表示被判定為負樣本,但實際是正樣本的個數.

表1 AAMI標準對MITDB心拍的4分類
MITDB提供的原始心電數據已經經過60 Hz工頻干擾的處理和0.1~100 Hz的帶通濾波去噪,故本文所提出的模型省略了預處理階段的去噪.將MITDB的44條心電記錄按照專家標記的R峰位置和R-R間期的長度對心拍進行動態分割,以獲得更完整的包含P波、QRS波和T波的心拍.結合醫學特征以及心動周期各特征波的波形特點和持續時間劃分心拍.P波時長一般不超過0.12 s,QRS波的時長不超過0.11 s,T波持續時間一般為0.05 ~ 0.25 s之間,取R峰位置前一個R-R間期的45%和R峰位置后一個R-R間期的55%組成一個完整的心拍,圖2是心拍分割的示意圖.由于動態心拍分割的心拍長度不固定,為了在訓練階段構建CNN網絡的輸入矩陣,將動態心拍分割的長度進行截取和補零使每個心拍長度為1 s,也有研究表明補零操作有利于CNN網絡對特征的提取.
為了統一心拍的分布性,降低信號分布變化的影響,提高模型的收斂速度,在將心拍矩陣送入CNN網絡之前對信號進行歸一化,計算方法為
式中,xmax為ECG信號的幅值最大值,xmin為ECG信號的幅值最小值.

圖2 根據R-R間期進行動態心拍分割
本文提出一種CNN-SPP-ELM混合模型用于AAMI標準的心律失常4分類研究,圖3是提出的混合模型結構.該模型結構主要由3部分組成:CNN的卷積層和池化層、SPP層和ELM分類器.CNN的卷積層和池化層用于特征提取和降維,最后一層卷積層的輸出作為下一層的輸入.由于輸入層信號長度不同,最后一層卷積層輸出的信號長度也不同,無法直接作為全連接層的輸入,所以引入SPP層對最后一層卷積層的輸出特征進行處理.將最后一層卷積層的輸出特征復制3份,每份特征以不同的池化步長進行空間金字塔池化,將池化得到的3份特征進行融合得到固定長度的SPP層輸出特征.SPP層一方面能夠將不同長度的特征圖融合為相同長度的特征圖,解決CNN需要固定長度輸入的問題;另一方面SPP層以不同的池化步長在多個尺度上二次挖掘圖片的特征,加深模型對圖像的理解.ELM作為分類器,可以減少訓練時間,提高模型的泛化能力.

圖3 CNN-SPP-ELM混合模型結構
輸入層、卷積層、池化層、SPP層以及ELM的參數設置如表2所示.卷積核大小、濾波器數量和池化步長的設置是通過不斷試驗保持一個變量變化,其他兩個不變,來選擇最優分類結果.SPP層嘗試采用4級金字塔結構,但是與3級金字塔結構相比,這樣設置大大增加了訓練時間但分類精度卻提高得很小,故最終采用3級金字塔結構.SPP層的池化方式選擇最大池化,因為與平均池化相比,最大池化更加穩健[20].

表2 CNN-SPP-ELM混合模型的參數設置
訓練階段選擇批量梯度下降算法進行參數優化,批量大小選擇為16.研究發現,批量樣本數越少會導致更快地收斂,而且批量越小越有可能收斂到平坦的最小值,增強模型的泛化能力,但是批量樣本數越少也會相應地增加訓練時間.綜合考慮選擇批量大小為16,既可以保證較快的收斂又不會增加很多時間消耗,而且實驗結果表明,批量大小為16可以達到更高的分類準確率.經過實驗驗證,卷積層激活函數為ReLU函數時,學習率設為0.01最為合適,更大的學習率會造成梯度爆炸,更小的學習率會使得收斂時間變長.模型卷積層權值的初始化由He初始化得到,能夠實現更快地模型收斂[18].
本文實驗平臺為MATLAB 2016a,軟件環境為Inter(R) Core(TM) i3-3320 CPU @3.30 GHz 16 GB.為了樣本均衡,避免某一類樣本數量太多,對F類和S類的樣本進行數據擴充[19].擴充后選取N類7 000個樣本,S類5 000個樣本,V類7 000個樣本以及F類5 000個樣本作為模型的輸入.
為了驗證混合模型的有效性,設計兩組對比實驗.對比實驗1是傳統的CNN心律失常分類模型,卷積層和池化層提取特征和特征降維,Softmax層輸出最后的分類結果.對比實驗2是CNN-SPP心律失常分類模型,卷積層和SPP層提取特征和特征降維,Softmax層來輸出分類結果.CNN模型和CNN-SPP模型與混合模型區別是CNN模型用平均池化層和Softmax層代替SPP層和ELM分類器,CNN-SPP模型用Softmax層代替ELM分類器,其他層參數設置與CNN-SPP-ELM混合模型完全相同.70%作為訓練集,30%作為測試集記錄30次迭代的CNN、CNN-SPP和CNN-SPP-ELM3種模型4分類的準確率,準確率對比曲線見圖4.

圖4 三種模型的準確率對比曲線
由圖4可知,CNN-SPP模型和CNN-SPP-ELM模型的準確率整體都比CNN模型高,這是因為SPP層不同的池化步長可以學習到更多的特征.表3所示是3種模型在相同軟件環境下的訓練時間和準確率的對比.與CNN模型相比,CNN-SPP-ELM混合模型能在相同迭代次數下獲得更高的準確率;與CNN-SPP模型相比,CNN-SPP-ELM混合模型能以更少的迭代次數獲得更高的準確率.

表3 三種模型在相同軟件環境下的對比
保存CNN-SPP模型迭代3次之后的卷積層的權重,將其作為CNN-SPP-ELM模型卷積層權重的初始化值,利用十折交叉驗證方法得到CNN-SPP-ELM模型心律失常4分類的評價指標.十折交叉驗證方法的實現過程為:
1)將4分類的全部樣本數據和標簽按照相同的隨機數打亂后,隨機分成10份,選取其中的9份作為訓練集,1份作為測試集.
2)CNN-SPP模型迭代3次,記錄梯度下降算法優化得到的卷積層權重和偏置,將其作為CNN-SPP-ELM混合模型的初始化權重和偏置.
3)CNN-SPP-ELM混合模型的ELM分類器隱藏層神經元個數設置為500,記錄AAMI標準4分類的評價指標.
4)不重復地選取其他9份作為訓練集,另外1份作為測試集,進行10次試驗,結果取平均值得到最終的CNN-SPP-ELM分類的評價指標如表4所示.

表4 CNN-SPP-ELM混合模型的評價指標
實驗結果表明,混合模型的分類總體準確率為99.16%,4種分類的敏感度均大于98%,特異性均大于98%,精度均大于98%.
表5總結了本文分類算法與其他算法心律失常4分類的結果,所對比的文獻數據集全部來自MITDB,評價指標是整體準確率和各分類的敏感性.與對比文獻相比,本文算法經過數據擴充后選取的4類樣本數量更加均衡,得到的整體準確率更具有說服力.由表5可知,本文算法對異常心拍識別的敏感性都高于其他參考文獻.其中PCA為主成分分析,R-R為R-R間期,SVM-PSO為粒子群優化的支持向量機,WPE為小波熵,RF為隨機森林,ResNet為殘差網絡,SVM為支持向量機.

表5 本文分類效果與其他方法對比
傳統機器學習的方法用于心律失常分類時,需要手動進行特征提取和特征選擇.PCA、S變換、WPE等結合R-R間期的特征提取方法提取到的特征維度大,而且特征選擇困難,算法的整體準確率較低,對異常心拍的敏感性不高.基于CNN的深度學習方法用于心律失常分類時,可以自動提取特征.LSTM和CNN的并行組合可以自動提取時序特征和局部相關特征,將兩種特征融合到全連接層最后由Softmax層來輸出分類結果.結合ResNet的深度殘差卷積神經網絡,ResNet的加入有效緩解了深層網絡收斂難、調優難的問題.CNN和ELM的混合模型不需要通過不斷更新權重來找到最優解,這在一定程度上減少了計算復雜度,優化了訓練時間.
本文提出的CNN-SPP-ELM混合模型的輸入信號是可變長度的心拍,與固定長度的輸入信號相比能保留更完整的P、QRS、T段的信息.特征處理和分類過程分開進行,CNN自動提取局部相關特征之后,SPP層通過不同的池化步長降維和進一步提取特征,最后提取到的特征送入ELM分類器實現心律失常的4分類.與LSTM和CNN的并行組合、CNN和ResNet混合模型、CNN和ELM模型相比,本文提出的模型對特征進行了二次提取,能提取到更深層次的特征,整體準確率和異常心拍的分類都高于這幾種模型,ELM分類器使得模型的計算復雜度相對也比較低,縮短了訓練時間.
本文提出一種用于心律失常分類的CNN-SPP-ELM混合模型結構,輸入信號是依據R-R間期和醫學信息動態分割的ECG心拍,每個心拍的長度不同,更完整地保留了ECG信號的特征波.CNN和SPP自動提取心拍特征,ELM分類器最終實現心律失常的4分類.與CNN-SPP模型相比ELM分類器能縮短訓練時間,更快達到收斂;與CNN-ELM模型相比,SPP層能實現變長的心拍輸入并且二次提取卷積層輸出的特征.實驗結果表明所提出的方法能有效提高心律失常異常心拍的識別準確率、敏感性、特異性和精度,在最終測試集上整體分類的準確率達到99.16%.
本文所提出的基于CNN-SPP-ELM的心律失常分類的混合模型為心律失常的自動診斷提供一種可行的方案.在未來工作中,網絡層數的加深、卷積核的大小、數據平衡問題對分類結果的影響都值得進一步研究.之后將嘗試采用合成少數過采樣技術實現數據擴充和使用本文提出的模型實現心律失常的更多分類.