心電圖(ECG)信號在采集過程中容易受內部和外部噪聲干擾,而且不同患者的 ECG 信號形態特征差異較大,即使同一患者在不同時間和環境下其 ECG 信號也會有差異,因此 ECG 信號特征檢測與識別在心臟病遠程實時監測與智能診斷中具有一定難度。基于此,本研究提出將小波自適應閾值去噪和深度殘差卷積神經網絡算法用于多種心律不齊的信號識別過程中。其中,使用小波自適應閾值技術完成 ECG 信號濾波,并設計了包含多個殘差塊(residual block)結構的 20 層卷積神經網絡(CNN),即深度殘差卷積神經網絡(DR-CNN),對 5 大類心律不齊 ECG 信號進行了識別。然后,本文采用殘差塊局部神經網絡結構單元構建 DR-CNN,緩解了深層網絡的收斂難、調優難等問題,克服了 CNN 隨著網絡層數增加而導致的退化問題;進一步引入批標準化(batch normalization)技術,保證了網絡的平滑收斂。按照美國醫療器械促進協會(AAMI)的心搏分類標準,使用麻省理工學院和波士頓貝絲以色列醫院(MIT-BIH)心律不齊數據庫中 94 091 個 ECG 心搏信號(2 個導聯),完成了心律不齊多分類、室性異位搏動(Veb)和室上性異位搏動(Sveb)等分類識別實驗。實驗結果表明,本文所提出的方法在 ECG 信號多分類、Veb 和 Sveb 識別中的準確率分別達到了 99.034 9%、99.498 0% 和 99.334 7%。在相同的數據集和實驗平臺下,DR-CNN 在分類準確率、特異性和靈敏度上均優于相同結構復雜度的 CNN、深度多層感知機等傳統算法。DR-CNN 算法提高了心律不齊智能診斷的精度,該方法與可穿戴設備、物聯網和無線通信技術相結合,可以將心臟病的預防、監測和診斷延伸到家庭、養老院等院外場景,從而提高心臟病患者的救治率,并且有效地節約醫療資源。
引用本文: 李端, 張洪欣, 劉知青, 黃菊香, 王田. 基于深度殘差卷積神經網絡的心電信號心律不齊識別. 生物醫學工程學雜志, 2019, 36(2): 189-198. doi: 10.7507/1001-5515.201712031 復制
引言
心電圖(electrocardiogram,ECG)是記錄心臟每一心動周期電活動的可視化時間序列,它的形態特征可反映潛在的心律不齊癥狀[1-2]。由于心臟病的突發性和難以預測性,建立有效的、延伸到醫院以外的遠程實時監護體系,對患者進行實時 ECG 信號監測并及時發現心臟異常變化對心血管病預防和救治具有重要意義[3-4]。
ECG 信號在采集過程中容易受工頻噪聲、肌電噪聲、基線漂移和運動偽影等干擾,而且患者間個體差異大,同一患者在不同時間的測試結果也會受當時身體狀況的影響,即使有經驗的專家也很難完全準確地判斷疾病類型。隨著人工智能技術的發展,很多模式識別的方法已被用于 ECG 信號的分類識別,比如:小波分析、功率譜估計、主成分分析結合神經網絡、隨機森林、聚類和支持向量機等智能識別算法[5-10]。盡管傳統的模式識別方法已取得了一定的研究成果,但是目前臨床 ECG 信號采集設備大多是按照傳統的特征提取方法提取心率、ST 段特征等信息,再經過簡單分析給出粗略建議,并沒有實現多種心律不齊的智能診斷。總的來說,目前的 ECG 數據自動診斷方法存在如下問題:① 如果前期特征提取效果不好,將導致最終的分類準確率下降;② 淺層神經網絡分類器針對大數據訓練效率不高,非線性擬合能力差,準確率有限;③ 很多方法對小樣本測試效果良好,面向臨床大數據診斷則效果下降,仍無法用于臨床輔助診斷。
近幾年,深度學習算法不僅在圖像識別、語音識別等領域取得了矚目的成就,也廣泛用于基于 ECG 信號的心臟病輔助診斷[11-14]。相比傳統的淺層神經網絡而言,深度神經網絡具有更強的非線性擬合能力[15],在單導聯、部分數據集、少類別 ECG 心搏信號分類中獲得了較好的識別效果。雖然神經網絡層數的加深有利于提高網絡的識別率,但是隨著網絡層數的堆疊,深層網絡的收斂和優化仍然是較為棘手的問題。為了建立更高效、準確的心律不齊智能診斷模型,本文提出將小波自適應閾值濾波和深度殘差卷積神經網絡(deep residual convolutional neural network,DR-CNN)算法用于 ECG 信號心律不齊的實時診斷。首先,將 ECG 信號進行實時小波自適應閾值濾波,濾除基線漂移、肌電噪聲等干擾信號后進行心搏自動分割。然后,用殘差塊(residual block)局部神經網絡單元構建了適合大規模 ECG 信號訓練和測試的 DR-CNN 模型,該模型可緩解深層網絡的收斂難、調優難等問題,引入了批標準化(batch normlization)技術,保證了網絡穩定平滑地收斂。最后,使用麻省理工學院和波士頓貝絲以色列醫院(Massachusetts Institute of Technology and Beth Israel Hospital,MIT-BIH)心律不齊數據庫中的 94 091 個 2 導聯心搏數據進行 ECG 信號多分類、室性異位搏動(ventricular ectopic beats,Veb)和室上性異位搏動(supraventricular ectopic beats,Sveb)檢測實驗,驗證了本文所提算法的分類識別效果,并給出了詳細的實驗結果分析。
本文提出了利用小波自適應閾值濾波與 DR-CNN 算法來進行 ECG 信號自動識別,通過實驗驗證了該方法的有效性,為 ECG 信號輔助診斷提供了新方法,是大數據人工智能和精準輔助醫療的有效結合。最終,期望本文方法能夠應用于心臟病患者的遠程實時監測和診斷,達到提高心臟病救治率的目的。
1 心律不齊識別算法理論
1.1 小波自適應閾值去噪算法
傳統的數字濾波器對 ECG 信號的濾波等預處理會引起如下問題:① 相位移動,比如:巴特沃斯和切比雪夫等數字濾波在濾波前后的信號會出現時移;② 振鈴現象,即處理后會發生一個瞬變后的震蕩,尤其是信號開始階段,還會引起高振幅 QRS 波終止后的低幅振蕩。基于此,本文采用具有良好的時頻域局部分析能力的小波變換法進行處理,它能同時利用信號與噪聲在時、頻域內的差別,實現更為有效的信噪分離。
小波變換是時間(空間)頻率的局部變換,通過伸縮和平移可實現信號或函數的多尺度細化分析[16-18]。具體來說,任意函數 都可以分解為任意尺度上的細節部分和近似部分。定義 V0 為尺度函數 φ(t)的平移系列
在 L(R)空間所張成的零尺度空間。設 Ψ(t)為小波函數,則尺度函數和小波函數伸縮和平移構成的函數系分別如式(1)和式(2)所示,它們分別構成了各個尺度空間和小波空間的規范正交基。
![]() |
![]() |
其中,j,k ∈ Z,則離散正交小波級數如式(3)所示:
![]() |
其中,J 為小波分解的最大階數,M 為分解出的細節因子階數,cJ-M,k、dj,k 分別為 2j 尺度上的尺度系數和小波系數,可由馬拉特(Mallat)快速分解算法得到,如式(4)和式(5)所示:
![]() |
![]() |
由此可見,小波分解相當于信號經過了雙通道濾波器組,該濾波器組分別具有高通和低通性質,濾波輸出對應于離散信號的低頻和高頻細節。在不同尺度上進行雙通道濾波就實現了原始離散信號的多分辨率分解。小波濾波往往是對這些分解之后的不同尺度信號進行處理,然后將得到的結構整合到一起恢復出原始信號。信號整合和恢復的過程稱為離散小波逆變換(inverse discrete wavelet transform,IDWT),即從低階小波系數和尺度系數依次計算出高階尺度系數,最終把不同分辨率層次上展開的結果再疊加起來,得到想要的頻帶信號,甚至原始信號。Mallat 重建算法如式(6)所示:
![]() |
小波自適應閾值濾波方法首先將 ECG 信號進行小波分解,然后自適應選擇閾值,對部分細節因子去噪,之后進行重構。閾值選擇是濾波的關鍵,傳統信號去噪算法中閾值的選擇分為硬閾值和軟閾值兩種方法。軟閾值去噪方法可以自適應地調整不同高頻帶系數的閾值,避免由于閾值過大而濾除有用信號,或閾值過小而濾波不徹底。本文采用最高階細節系數來估計信號高斯白噪聲,各細節因子的閾值函數定義如式(7)所示:
![]() |
閾值 Th 通過如式(8)所示的公式來選擇:
![]() |
其中,n 為噪聲信號的樣本點數,σ 是噪聲的標準差,可通過如式(9)所示估算得到:
![]() |
其中,|Yij|是噪聲信號小波分解的最高階細節系數。如式(7)所示,當細節因子高于閾值時,取信號的模與閾值的差,否則將細節因子置零。
1.2 DR-CNN
1.2.1 卷積神經網絡
卷積神經網絡(convolutional neural network,CNN)是受生物神經科學領域“感受野”概念的啟示而設計的特殊的深層前饋神經網絡[19]。傳統的 CNN 結構由輸入層、多個交替的卷積層和池化層(下采樣層)、全連接層及輸出層組成。本課題研究的是 ECG 信號的分類識別,用來分類的數據是 2 導聯的 ECG 心搏信號,并將其作為 CNN 的輸入信號。由于 CNN 的卷積層是通過卷積核重復作用于整個輸入信號的每個感受野,而卷積的結果構成輸入信號的特征圖。因此,假設第 卷積層的第 j 通道輸入(凈激活)用
表示,輸出用
表示,則輸出
和輸入
的表達式如公式(10)所示:
![]() |
其中,f(?)為激活函數,Mj 表示 l-1 層特征圖子集, 是卷積核矩陣,
是偏置項,“
”是卷積符號。
接下來,池化層的目的是減少網絡計算量,讓模型更具有魯棒性。具體操作是將輸入的特征圖劃分為多個不重疊的區域,然后對各個區域求均值或者最大值,保證了特征平移、縮放的不變性。假設采樣權系數用 α 表示,符號 pool(?)表示池化函數。則第 l + 1 層的輸出特征圖如式(11)所示:
![]() |
經過多個交替卷積和池化層,最后是全連接層,即將所有二維圖像特征圖展開為一維特征,作為全連接網絡的輸入。經過上一層輸出的加權求和及激活函數,可得到全連接 m 層第 j 個神經元的輸出 ,如式(12)所示:
![]() |
CNN 的訓練算法主要是基于梯度下降法的反向傳播算法,目標是根據訓練樣本和期望輸出來估計網絡參數,包括卷積核參數 k,下采樣網絡權重 α、全連接層網絡權重 w 和各層偏置 b。該算法的思想是根據樣本的輸出誤差函數(損失函數),計算每層有效誤差并推導出網絡學習規則,更新網絡參數,使得實際網絡輸出更加接近期望輸出(即損失函數最小)。由于深度學習網絡一般采用批度梯度下降法來訓練網絡,n 個樣本的整體平方誤差損失函數如公式(13)所示:
![]() |
利用偏導的鏈式法則,逐層向前傳遞,求出各層的靈敏度,其表達式如公式(14)所示:
![]() |
通過網絡各層的靈敏度建立損失函數對網絡參數的偏導數,即分別計算損失函數對參數 k,α,w 和 b 的偏導數,并且更新各層網絡參數。第 l 層卷積層參數更新方法如式(15)、(16)所示:
![]() |
![]() |
第 l + 1 層池化層參數更新方法如式(17)、(18)所示:
![]() |
![]() |
第 m 層全連接參數更新方法如下公式(19)、(20)所示:
![]() |
![]() |
其中,η 是學習率,用于控制梯度下降行進的步長。如果學習率設置太大,容易導致系統發散。
1.2.2 DR-CNN
深度神經網絡隨著層數和神經元數的增加,非線性擬合能力會增強,但簡單的堆疊網絡層數又會出現梯度消失問題,此問題可以通過規范初始化和引入中值規范化層等方式使網絡得以收斂。雖然解決了網絡的收斂問題,但是對于一個較深層的網絡,當網絡模型的準確度達到飽和之后,模型的準確率會隨著深度的加深反而降低,即出現神經網絡的退化問題[20-22],而且此類問題并非是過擬合造成的。神經網絡實際上是通過調整參數來學習一種隱含的抽象映射關系,但是這種隱含的映射關系在較深的網絡中很難優化。
DR-CNN 方法則是尋求另一種解決方案,如圖 1 所示,H(x)是希望學習到的隱含的映射關系,DR-CNN 算法的學習過程是讓多個連續堆疊的非線性計算層(比如兩層卷積)去擬合輸入數據和映射后的輸出數據之間的殘差 F(x) = H(x)? x,這個殘差越逼近 0,代表這個網絡提取的特征與原始的輸入越相近。如果想擬合恒等映射,只用將權重置零;如果想擬合近似恒等映射,通過擬合殘差,更容易發現小的擾動,便于調節網絡參數。因此,由殘差塊局部深度神經網絡單元構成的 CNN,能夠解決深層網絡的收斂難、調優難等問題,克服了 CNN 隨著網絡層數增加而導致的退化問題。

2 ECG 信號中心律不齊識別算法實施
2.1 數據分析及評估標準
本文實驗數據來自 MIT-BIH 心律不齊數據庫,該數據庫共有 48 條記錄,每條記錄 30 min,采樣率為 360 Hz。每條記錄由 2 個導聯組成。每條記錄的導聯不完全相同,只有 40 條記錄包括相同的Ⅱ導聯和Ⅵ導聯,實際應用時應考慮導聯一致性,所以后續實驗采用該 40 條記錄的所有心搏數據。為了更加科學和便于比較,我們嚴格按照美國醫療器械促進協會(the Association for the Advancement of Medical Instrumentation,AAMI)標準,將 16 類心律不齊分 5 大類,分別是正常(normal,Nor)(包括正常心搏、左右束支傳導阻滯等)、Sveb(包括房性早搏、交界區早搏等)、Veb(包括室性早期收縮和室性逸搏)、融合心搏(以符號 Fus 表示)和未知心搏(unclassified,Unc)(包括起搏心跳、未分類心跳等)。5 大類 2 導聯心搏數量為 94 091 個。按照 AAMI 標準,Veb 和 Sveb 測試也是評估 ECG 信號采集設備性能的重要項目。為測試所設計的網絡的性能,本文設計了兩個實驗:① 是按照上述分類標準,對 94 091 個心搏進行 5 分類實驗;② 是測試所設計的網絡對 Veb 和 Sveb 心搏的識別能力,同樣按照上述分類標準并剔除了未知心搏以后,本文使用剩余 90 200 個 2 導聯心搏數據。其中,Veb 測試時,將其他 3 類型心搏作為一類,即從兩大類中檢測 Veb 類型心搏;Sveb 測試時,將其他 3 類型心搏作為一大類,從兩大類中檢測 Sveb 類型心搏。
分類模型的性能通過整體準確率(accuracy)(以符號 Acc 表示)、敏感性(sensitivity)(以符號 Se 表示)和特異性(specificity)(以符號 Sp 表示)來衡量,其中準確率是正確分類的心搏比例。每個指標具體計算方法如式(21)~(23)所示:
![]() |
![]() |
![]() |
其中,真陽性(true positive,TP)(符號記為:TP)表示本來是陽性,被正確分類的樣本個數;假陽性(false positive,FP)(符號記為:FP)表示本來不是陽性,被分類為陽性的樣本個數;真陰性(true negative,TN)(符號記為:TN)表示本來是陰性樣本,被正確分類的樣本個數;假陰性(false negative,FN)(符號記為:FN)表示本來不是陰性,被錯誤地分類為陰性的樣本個數[10-11]。
2.2 ECG 信號去噪
小波變換算法可以將非平穩信號分解為代表不同頻帶的尺度信號,廣泛用于非平穩信號處理中。由于 ECG 信號采集過程中會產生基線漂移、工頻干擾及高頻肌電噪聲,因此合理地濾波是后續識別的關鍵。ECG 信號中有用部分的能量主要集中在 1~40 Hz,濾波系統中采用了自適應閾值小波濾波算法,該算法包括小波分解、自適應閾值去噪和重構三步。由于 Symlet 小波函數族與 ECG 信號形態近似,故選擇 Sym6 作為小波函數。由于深度學習方法可以從 ECG 信號中挖掘內部特征并自動提取,因此信號預處理階段只用進行比較簡單地濾波,這樣有助于增強網絡的泛化能力,還可以盡量減少 ECG 信號失真。因此,本文首先對 ECG 信號進行 10 層分解,利用 Mallat 算法計算細節系數和近似系數。現在已知基線漂移干擾是由人體呼吸、運動等因素引起,當受試者處于靜止狀態時,基線漂移通常低于 1 Hz[23],因此在小波濾波過程中,本文將第 9 和 10 層近似系數置 0,以便去除基線漂移。而對于高頻噪聲,本文則采用自適應閾值算法將最高頻細節成分濾波,按照均方誤差準則估計信號的白噪聲。
為了驗證濾波效果,本文選擇 MIT-BIH 數據庫污染較大的 105 號 ECG 信號記錄進行實驗,小波濾波的效果如圖 2 所示,自上向下分別為原始 ECG 信號、小波自適應閾值去噪信號、巴特沃斯(Butterworth)0.65~42 Hz 帶通濾波信號和 Butterworth 1~40 Hz 帶通濾波信號。

從圖 2 中可以看出,采用 Butterworth 0.65~42 Hz 頻段帶通濾波后,ECG 信號出現形態失真,S 波幅度被拉長變形,而且基線移除不徹底;而經過 Butterworth 1~40 Hz 帶通濾波后,P 波和 T 波明顯變大,Q 波拉長變形。但本文所提出的小波閾值去噪算法,則達到了較好地去除基線和高頻噪聲的效果,而且較好地保持了 ECG 信號原有的形態,這樣不僅有利于讀圖,更重要的是能提高后續 DR-CNN 算法的識別效果。
濾波之后,再進行心搏的分割,利用 ECG 信號的 R 波位置,以 R 波位置為中心,分別左邊取 129 個點,右邊取 220 個點,構成一個心搏信號。由于使用的數據為 2 個導聯,因此每個心搏樣本的大小為 2 × 350。
2.3 DR-CNN 設計及實驗結果分析
由于網絡層數和復雜度會大大影響訓練結果,本文設計了不同層數和結構的 DR-CNN 模型,進行了反復實驗和對比。如圖 3 所示,是對 8、12、16、20 和 24 層的 DR-CNN 網絡的每次(epoch)訓練所得的交叉驗證準確率的統計結果。

如圖 3 所示,20 層的 DR-CNN 達到了較好的訓練和測試結果,24 層的網絡性能與 20 層相當,考慮到系統測試的實時性要求,因此本文選擇了 20 層網絡作為系統的診斷模型。
本系統所采用的 20 層 DR-CNN 的模型結構如圖 4 所示。輸入數據為 2 導聯的心搏數據,大小為 2 × 350,經過核大小為 2 × 3 的一層卷積層和 9 個殘差塊,最后通過均值下采樣,將數據送入神經元個數與分類數相等的全連接層,該網絡模型共 20 個參數層。其中,每個短路連接構成一個殘差塊,實線代表通道數(維度)相同,虛線代表通道數有變化。當恒等映射時維度不同,可通過兩種方法來解決:一是可以通過 pad 補零操作增加維數;二是使用核為 1 × 1 卷積層來擴充維度,使輸出維度與下一個殘差模塊一致。

為了評估所提出的基于 DR-CNN 的 ECG 信號中心律不齊的識別效果,本實驗基于 MIT-BIH 心律不齊數據庫,對所有 40 條導聯一致的樣本進行濾波去噪,根據 R 波位置分割出 94 091 個心搏信號。在所有心搏樣本中隨機抽取 60 000 個心搏進行訓練,剩余 34 091 個心搏作為預測數據,進行 5 大類心律不齊信號的分類。為了避免隨機抽取的偶然性,使用隨機排序函數進行了 3 次隨機抽取實驗,實驗結果取 3 次實驗的平均值。然后,設計了相同復雜度的 CNN 和多層感知機(multi-layer perceptron,MLP),并且將結構參數調整至最優,使用相同的數據對三個網絡分別進行了 30 次(epoch)訓練,并對測試結果進行對比。實驗所得的混合矩陣及評估指標如表 1 所示。

為了避免測試結果的偶然性,進行了 3 次實驗,結果取 3 次實驗的平均值。每次實驗過程中,將 94 091 個心搏數據隨機劃分為訓練數據和測試數據兩部分,兩者沒有重復樣本。從表 1 的實驗結果可看出,本文設計的算法對 5 大類心律不齊分類準確率達到了 99.034 9%。通過實驗對比,所設計的 DR-CNN 算法對 5 大類心律不齊信號的識別準確率比 CNN 和 MLP 網絡分別提高了 0.753 8% 和 2.360 4%。DR-CNN 測試的敏感性 Se 平均值為 94.532%,CNN 和 MLP 測試的平均值分別為 87.706% 和 75.8%,由此可見,敏感性得到提升。
本文對所提出的系統進行了 Veb 和 Sveb 測試,每次隨機選擇 40 000 個心搏對網絡進行訓練,剩余 50 200 個心搏進行測試,3 次測試結果的平均值作為計算指標的依據,統計結果如表 2 所示。DR-CNN 網絡的 Veb 和 Sveb 測試準確率分別達到了 99.498 0% 和 99.599 6%。Veb 測試結果顯示,DR-CNN、CNN 和 MLP 網絡的敏感性測試結果分別為 95.79%、67.38% 和 86.07%,即 DR-CNN 的測試結果 95.79% 比 CNN 和 MLP 的測試結果 67.38% 和 86.07% 分別提高了 28.41% 和 9.72%;Sveb 測試結果顯示,DR-CNN、CNN 和 MLP 網絡的敏感性測試結果分別為 93.42%、54.16% 和 56.78%,即 DR-CNN 的測試結果 93.42% 比 CNN 和 MLP 的測試結果 54.16% 和 56.78% 分別提高了 39.26% 和 36.64%。

本文通過對比研究了近期用深度學習方法進行 ECG 信號分類的研究成果。在相同的數據集下的測試結果如表 3 所示。金林鵬等[11]采用導聯卷積深度神經網絡,分別用 MIT-BIH 心律不齊數據庫數據和臨床大數據進行了 ECG 信號自動識別。該文獻利用 MIT-BIH 心律不齊數據庫對 86 010 個心搏進行正異常二分類,分類整體準確率達到 98.89%。Kiranyaz 等[13]采用一維 CNN 對心律不齊進行 5 分類,并且進行 Veb 和 Sveb 檢測。使用 44 條 ECG 信號記錄時,5 類心律不齊分類準確率為 98.84%,Veb 和 Sveb 檢測準確率分別為 99% 和 97.6%。Wu 等[14]提出利用深度置信網絡進行 ECG 信號心律不齊分類,按照 AAMI 標準,進行了心律不齊(Nor、Sveb、Veb、Fus)4 分類,分類準確率為 96.51%;Veb 和 Sveb 測試準確率分別為 97.9% 和 99.3%。一般情況下分類種類越多,識別準確率越低。從表 3 中可以看出,所提出的小波濾波和 DR-CNN 的 ECG 信號識別實驗取得了較高的準確率,有一定的臨床應用價值。

3 結論
ECG 信號去噪和自動分類算法是心律不齊自動診斷的核心技術,本文提出了一種基于小波自適應閾值濾波和 DR-CNN 的 ECG 信號心律不齊智能識別算法。所提出的小波自適應閾值去噪算法,有效地移除了基線漂移等干擾,并且保持了 ECG 信號形態不失真。設計了基于 20 層的 DR-CNN 模型,該模型克服了深度神經網絡近似恒等映射時隨著網絡層數增加而導致的退化問題,并保證了網絡的平滑收斂性。基于 DR-CNN,分別利用 MIT-BIH 數據庫 94 091 和 90 200 個心搏數據進行了 ECG 心律不齊信號多分類、Veb 和 Sveb 識別的實驗驗證。在相同實驗環境下,對比了目前較流行的幾種深度神經網絡算法,實驗結果表明所提出的方法有效地提高了 ECG 心律不齊信號的整體識別準確率、敏感性和特異性。該方法將人工智能與 ECG 信號分類識別相結合,可用于新型的心臟病輔助診斷系統,通過可穿戴終端采集 ECG 信號,遠程實時發送到 ECG 云計算平臺,經過數據變換、小波自適應去噪、QRS 復波識別、分割等預處理,基于 DR-CNN 算法對心律不齊病癥進行實時診斷,并返回客戶端。這種基于深度學習的心律不齊自動診斷方法可以與可穿戴設備、物聯網和無線通信技術相結合,進一步推動新型智慧醫療的發展,將心臟病的預防、監測和診斷延伸到家庭、養老院等院外場景,為醫學薄弱的地區補上短板,為患者提供高效的服務,可大大節約醫療資源。
引言
心電圖(electrocardiogram,ECG)是記錄心臟每一心動周期電活動的可視化時間序列,它的形態特征可反映潛在的心律不齊癥狀[1-2]。由于心臟病的突發性和難以預測性,建立有效的、延伸到醫院以外的遠程實時監護體系,對患者進行實時 ECG 信號監測并及時發現心臟異常變化對心血管病預防和救治具有重要意義[3-4]。
ECG 信號在采集過程中容易受工頻噪聲、肌電噪聲、基線漂移和運動偽影等干擾,而且患者間個體差異大,同一患者在不同時間的測試結果也會受當時身體狀況的影響,即使有經驗的專家也很難完全準確地判斷疾病類型。隨著人工智能技術的發展,很多模式識別的方法已被用于 ECG 信號的分類識別,比如:小波分析、功率譜估計、主成分分析結合神經網絡、隨機森林、聚類和支持向量機等智能識別算法[5-10]。盡管傳統的模式識別方法已取得了一定的研究成果,但是目前臨床 ECG 信號采集設備大多是按照傳統的特征提取方法提取心率、ST 段特征等信息,再經過簡單分析給出粗略建議,并沒有實現多種心律不齊的智能診斷。總的來說,目前的 ECG 數據自動診斷方法存在如下問題:① 如果前期特征提取效果不好,將導致最終的分類準確率下降;② 淺層神經網絡分類器針對大數據訓練效率不高,非線性擬合能力差,準確率有限;③ 很多方法對小樣本測試效果良好,面向臨床大數據診斷則效果下降,仍無法用于臨床輔助診斷。
近幾年,深度學習算法不僅在圖像識別、語音識別等領域取得了矚目的成就,也廣泛用于基于 ECG 信號的心臟病輔助診斷[11-14]。相比傳統的淺層神經網絡而言,深度神經網絡具有更強的非線性擬合能力[15],在單導聯、部分數據集、少類別 ECG 心搏信號分類中獲得了較好的識別效果。雖然神經網絡層數的加深有利于提高網絡的識別率,但是隨著網絡層數的堆疊,深層網絡的收斂和優化仍然是較為棘手的問題。為了建立更高效、準確的心律不齊智能診斷模型,本文提出將小波自適應閾值濾波和深度殘差卷積神經網絡(deep residual convolutional neural network,DR-CNN)算法用于 ECG 信號心律不齊的實時診斷。首先,將 ECG 信號進行實時小波自適應閾值濾波,濾除基線漂移、肌電噪聲等干擾信號后進行心搏自動分割。然后,用殘差塊(residual block)局部神經網絡單元構建了適合大規模 ECG 信號訓練和測試的 DR-CNN 模型,該模型可緩解深層網絡的收斂難、調優難等問題,引入了批標準化(batch normlization)技術,保證了網絡穩定平滑地收斂。最后,使用麻省理工學院和波士頓貝絲以色列醫院(Massachusetts Institute of Technology and Beth Israel Hospital,MIT-BIH)心律不齊數據庫中的 94 091 個 2 導聯心搏數據進行 ECG 信號多分類、室性異位搏動(ventricular ectopic beats,Veb)和室上性異位搏動(supraventricular ectopic beats,Sveb)檢測實驗,驗證了本文所提算法的分類識別效果,并給出了詳細的實驗結果分析。
本文提出了利用小波自適應閾值濾波與 DR-CNN 算法來進行 ECG 信號自動識別,通過實驗驗證了該方法的有效性,為 ECG 信號輔助診斷提供了新方法,是大數據人工智能和精準輔助醫療的有效結合。最終,期望本文方法能夠應用于心臟病患者的遠程實時監測和診斷,達到提高心臟病救治率的目的。
1 心律不齊識別算法理論
1.1 小波自適應閾值去噪算法
傳統的數字濾波器對 ECG 信號的濾波等預處理會引起如下問題:① 相位移動,比如:巴特沃斯和切比雪夫等數字濾波在濾波前后的信號會出現時移;② 振鈴現象,即處理后會發生一個瞬變后的震蕩,尤其是信號開始階段,還會引起高振幅 QRS 波終止后的低幅振蕩。基于此,本文采用具有良好的時頻域局部分析能力的小波變換法進行處理,它能同時利用信號與噪聲在時、頻域內的差別,實現更為有效的信噪分離。
小波變換是時間(空間)頻率的局部變換,通過伸縮和平移可實現信號或函數的多尺度細化分析[16-18]。具體來說,任意函數 都可以分解為任意尺度上的細節部分和近似部分。定義 V0 為尺度函數 φ(t)的平移系列
在 L(R)空間所張成的零尺度空間。設 Ψ(t)為小波函數,則尺度函數和小波函數伸縮和平移構成的函數系分別如式(1)和式(2)所示,它們分別構成了各個尺度空間和小波空間的規范正交基。
![]() |
![]() |
其中,j,k ∈ Z,則離散正交小波級數如式(3)所示:
![]() |
其中,J 為小波分解的最大階數,M 為分解出的細節因子階數,cJ-M,k、dj,k 分別為 2j 尺度上的尺度系數和小波系數,可由馬拉特(Mallat)快速分解算法得到,如式(4)和式(5)所示:
![]() |
![]() |
由此可見,小波分解相當于信號經過了雙通道濾波器組,該濾波器組分別具有高通和低通性質,濾波輸出對應于離散信號的低頻和高頻細節。在不同尺度上進行雙通道濾波就實現了原始離散信號的多分辨率分解。小波濾波往往是對這些分解之后的不同尺度信號進行處理,然后將得到的結構整合到一起恢復出原始信號。信號整合和恢復的過程稱為離散小波逆變換(inverse discrete wavelet transform,IDWT),即從低階小波系數和尺度系數依次計算出高階尺度系數,最終把不同分辨率層次上展開的結果再疊加起來,得到想要的頻帶信號,甚至原始信號。Mallat 重建算法如式(6)所示:
![]() |
小波自適應閾值濾波方法首先將 ECG 信號進行小波分解,然后自適應選擇閾值,對部分細節因子去噪,之后進行重構。閾值選擇是濾波的關鍵,傳統信號去噪算法中閾值的選擇分為硬閾值和軟閾值兩種方法。軟閾值去噪方法可以自適應地調整不同高頻帶系數的閾值,避免由于閾值過大而濾除有用信號,或閾值過小而濾波不徹底。本文采用最高階細節系數來估計信號高斯白噪聲,各細節因子的閾值函數定義如式(7)所示:
![]() |
閾值 Th 通過如式(8)所示的公式來選擇:
![]() |
其中,n 為噪聲信號的樣本點數,σ 是噪聲的標準差,可通過如式(9)所示估算得到:
![]() |
其中,|Yij|是噪聲信號小波分解的最高階細節系數。如式(7)所示,當細節因子高于閾值時,取信號的模與閾值的差,否則將細節因子置零。
1.2 DR-CNN
1.2.1 卷積神經網絡
卷積神經網絡(convolutional neural network,CNN)是受生物神經科學領域“感受野”概念的啟示而設計的特殊的深層前饋神經網絡[19]。傳統的 CNN 結構由輸入層、多個交替的卷積層和池化層(下采樣層)、全連接層及輸出層組成。本課題研究的是 ECG 信號的分類識別,用來分類的數據是 2 導聯的 ECG 心搏信號,并將其作為 CNN 的輸入信號。由于 CNN 的卷積層是通過卷積核重復作用于整個輸入信號的每個感受野,而卷積的結果構成輸入信號的特征圖。因此,假設第 卷積層的第 j 通道輸入(凈激活)用
表示,輸出用
表示,則輸出
和輸入
的表達式如公式(10)所示:
![]() |
其中,f(?)為激活函數,Mj 表示 l-1 層特征圖子集, 是卷積核矩陣,
是偏置項,“
”是卷積符號。
接下來,池化層的目的是減少網絡計算量,讓模型更具有魯棒性。具體操作是將輸入的特征圖劃分為多個不重疊的區域,然后對各個區域求均值或者最大值,保證了特征平移、縮放的不變性。假設采樣權系數用 α 表示,符號 pool(?)表示池化函數。則第 l + 1 層的輸出特征圖如式(11)所示:
![]() |
經過多個交替卷積和池化層,最后是全連接層,即將所有二維圖像特征圖展開為一維特征,作為全連接網絡的輸入。經過上一層輸出的加權求和及激活函數,可得到全連接 m 層第 j 個神經元的輸出 ,如式(12)所示:
![]() |
CNN 的訓練算法主要是基于梯度下降法的反向傳播算法,目標是根據訓練樣本和期望輸出來估計網絡參數,包括卷積核參數 k,下采樣網絡權重 α、全連接層網絡權重 w 和各層偏置 b。該算法的思想是根據樣本的輸出誤差函數(損失函數),計算每層有效誤差并推導出網絡學習規則,更新網絡參數,使得實際網絡輸出更加接近期望輸出(即損失函數最小)。由于深度學習網絡一般采用批度梯度下降法來訓練網絡,n 個樣本的整體平方誤差損失函數如公式(13)所示:
![]() |
利用偏導的鏈式法則,逐層向前傳遞,求出各層的靈敏度,其表達式如公式(14)所示:
![]() |
通過網絡各層的靈敏度建立損失函數對網絡參數的偏導數,即分別計算損失函數對參數 k,α,w 和 b 的偏導數,并且更新各層網絡參數。第 l 層卷積層參數更新方法如式(15)、(16)所示:
![]() |
![]() |
第 l + 1 層池化層參數更新方法如式(17)、(18)所示:
![]() |
![]() |
第 m 層全連接參數更新方法如下公式(19)、(20)所示:
![]() |
![]() |
其中,η 是學習率,用于控制梯度下降行進的步長。如果學習率設置太大,容易導致系統發散。
1.2.2 DR-CNN
深度神經網絡隨著層數和神經元數的增加,非線性擬合能力會增強,但簡單的堆疊網絡層數又會出現梯度消失問題,此問題可以通過規范初始化和引入中值規范化層等方式使網絡得以收斂。雖然解決了網絡的收斂問題,但是對于一個較深層的網絡,當網絡模型的準確度達到飽和之后,模型的準確率會隨著深度的加深反而降低,即出現神經網絡的退化問題[20-22],而且此類問題并非是過擬合造成的。神經網絡實際上是通過調整參數來學習一種隱含的抽象映射關系,但是這種隱含的映射關系在較深的網絡中很難優化。
DR-CNN 方法則是尋求另一種解決方案,如圖 1 所示,H(x)是希望學習到的隱含的映射關系,DR-CNN 算法的學習過程是讓多個連續堆疊的非線性計算層(比如兩層卷積)去擬合輸入數據和映射后的輸出數據之間的殘差 F(x) = H(x)? x,這個殘差越逼近 0,代表這個網絡提取的特征與原始的輸入越相近。如果想擬合恒等映射,只用將權重置零;如果想擬合近似恒等映射,通過擬合殘差,更容易發現小的擾動,便于調節網絡參數。因此,由殘差塊局部深度神經網絡單元構成的 CNN,能夠解決深層網絡的收斂難、調優難等問題,克服了 CNN 隨著網絡層數增加而導致的退化問題。

2 ECG 信號中心律不齊識別算法實施
2.1 數據分析及評估標準
本文實驗數據來自 MIT-BIH 心律不齊數據庫,該數據庫共有 48 條記錄,每條記錄 30 min,采樣率為 360 Hz。每條記錄由 2 個導聯組成。每條記錄的導聯不完全相同,只有 40 條記錄包括相同的Ⅱ導聯和Ⅵ導聯,實際應用時應考慮導聯一致性,所以后續實驗采用該 40 條記錄的所有心搏數據。為了更加科學和便于比較,我們嚴格按照美國醫療器械促進協會(the Association for the Advancement of Medical Instrumentation,AAMI)標準,將 16 類心律不齊分 5 大類,分別是正常(normal,Nor)(包括正常心搏、左右束支傳導阻滯等)、Sveb(包括房性早搏、交界區早搏等)、Veb(包括室性早期收縮和室性逸搏)、融合心搏(以符號 Fus 表示)和未知心搏(unclassified,Unc)(包括起搏心跳、未分類心跳等)。5 大類 2 導聯心搏數量為 94 091 個。按照 AAMI 標準,Veb 和 Sveb 測試也是評估 ECG 信號采集設備性能的重要項目。為測試所設計的網絡的性能,本文設計了兩個實驗:① 是按照上述分類標準,對 94 091 個心搏進行 5 分類實驗;② 是測試所設計的網絡對 Veb 和 Sveb 心搏的識別能力,同樣按照上述分類標準并剔除了未知心搏以后,本文使用剩余 90 200 個 2 導聯心搏數據。其中,Veb 測試時,將其他 3 類型心搏作為一類,即從兩大類中檢測 Veb 類型心搏;Sveb 測試時,將其他 3 類型心搏作為一大類,從兩大類中檢測 Sveb 類型心搏。
分類模型的性能通過整體準確率(accuracy)(以符號 Acc 表示)、敏感性(sensitivity)(以符號 Se 表示)和特異性(specificity)(以符號 Sp 表示)來衡量,其中準確率是正確分類的心搏比例。每個指標具體計算方法如式(21)~(23)所示:
![]() |
![]() |
![]() |
其中,真陽性(true positive,TP)(符號記為:TP)表示本來是陽性,被正確分類的樣本個數;假陽性(false positive,FP)(符號記為:FP)表示本來不是陽性,被分類為陽性的樣本個數;真陰性(true negative,TN)(符號記為:TN)表示本來是陰性樣本,被正確分類的樣本個數;假陰性(false negative,FN)(符號記為:FN)表示本來不是陰性,被錯誤地分類為陰性的樣本個數[10-11]。
2.2 ECG 信號去噪
小波變換算法可以將非平穩信號分解為代表不同頻帶的尺度信號,廣泛用于非平穩信號處理中。由于 ECG 信號采集過程中會產生基線漂移、工頻干擾及高頻肌電噪聲,因此合理地濾波是后續識別的關鍵。ECG 信號中有用部分的能量主要集中在 1~40 Hz,濾波系統中采用了自適應閾值小波濾波算法,該算法包括小波分解、自適應閾值去噪和重構三步。由于 Symlet 小波函數族與 ECG 信號形態近似,故選擇 Sym6 作為小波函數。由于深度學習方法可以從 ECG 信號中挖掘內部特征并自動提取,因此信號預處理階段只用進行比較簡單地濾波,這樣有助于增強網絡的泛化能力,還可以盡量減少 ECG 信號失真。因此,本文首先對 ECG 信號進行 10 層分解,利用 Mallat 算法計算細節系數和近似系數。現在已知基線漂移干擾是由人體呼吸、運動等因素引起,當受試者處于靜止狀態時,基線漂移通常低于 1 Hz[23],因此在小波濾波過程中,本文將第 9 和 10 層近似系數置 0,以便去除基線漂移。而對于高頻噪聲,本文則采用自適應閾值算法將最高頻細節成分濾波,按照均方誤差準則估計信號的白噪聲。
為了驗證濾波效果,本文選擇 MIT-BIH 數據庫污染較大的 105 號 ECG 信號記錄進行實驗,小波濾波的效果如圖 2 所示,自上向下分別為原始 ECG 信號、小波自適應閾值去噪信號、巴特沃斯(Butterworth)0.65~42 Hz 帶通濾波信號和 Butterworth 1~40 Hz 帶通濾波信號。

從圖 2 中可以看出,采用 Butterworth 0.65~42 Hz 頻段帶通濾波后,ECG 信號出現形態失真,S 波幅度被拉長變形,而且基線移除不徹底;而經過 Butterworth 1~40 Hz 帶通濾波后,P 波和 T 波明顯變大,Q 波拉長變形。但本文所提出的小波閾值去噪算法,則達到了較好地去除基線和高頻噪聲的效果,而且較好地保持了 ECG 信號原有的形態,這樣不僅有利于讀圖,更重要的是能提高后續 DR-CNN 算法的識別效果。
濾波之后,再進行心搏的分割,利用 ECG 信號的 R 波位置,以 R 波位置為中心,分別左邊取 129 個點,右邊取 220 個點,構成一個心搏信號。由于使用的數據為 2 個導聯,因此每個心搏樣本的大小為 2 × 350。
2.3 DR-CNN 設計及實驗結果分析
由于網絡層數和復雜度會大大影響訓練結果,本文設計了不同層數和結構的 DR-CNN 模型,進行了反復實驗和對比。如圖 3 所示,是對 8、12、16、20 和 24 層的 DR-CNN 網絡的每次(epoch)訓練所得的交叉驗證準確率的統計結果。

如圖 3 所示,20 層的 DR-CNN 達到了較好的訓練和測試結果,24 層的網絡性能與 20 層相當,考慮到系統測試的實時性要求,因此本文選擇了 20 層網絡作為系統的診斷模型。
本系統所采用的 20 層 DR-CNN 的模型結構如圖 4 所示。輸入數據為 2 導聯的心搏數據,大小為 2 × 350,經過核大小為 2 × 3 的一層卷積層和 9 個殘差塊,最后通過均值下采樣,將數據送入神經元個數與分類數相等的全連接層,該網絡模型共 20 個參數層。其中,每個短路連接構成一個殘差塊,實線代表通道數(維度)相同,虛線代表通道數有變化。當恒等映射時維度不同,可通過兩種方法來解決:一是可以通過 pad 補零操作增加維數;二是使用核為 1 × 1 卷積層來擴充維度,使輸出維度與下一個殘差模塊一致。

為了評估所提出的基于 DR-CNN 的 ECG 信號中心律不齊的識別效果,本實驗基于 MIT-BIH 心律不齊數據庫,對所有 40 條導聯一致的樣本進行濾波去噪,根據 R 波位置分割出 94 091 個心搏信號。在所有心搏樣本中隨機抽取 60 000 個心搏進行訓練,剩余 34 091 個心搏作為預測數據,進行 5 大類心律不齊信號的分類。為了避免隨機抽取的偶然性,使用隨機排序函數進行了 3 次隨機抽取實驗,實驗結果取 3 次實驗的平均值。然后,設計了相同復雜度的 CNN 和多層感知機(multi-layer perceptron,MLP),并且將結構參數調整至最優,使用相同的數據對三個網絡分別進行了 30 次(epoch)訓練,并對測試結果進行對比。實驗所得的混合矩陣及評估指標如表 1 所示。

為了避免測試結果的偶然性,進行了 3 次實驗,結果取 3 次實驗的平均值。每次實驗過程中,將 94 091 個心搏數據隨機劃分為訓練數據和測試數據兩部分,兩者沒有重復樣本。從表 1 的實驗結果可看出,本文設計的算法對 5 大類心律不齊分類準確率達到了 99.034 9%。通過實驗對比,所設計的 DR-CNN 算法對 5 大類心律不齊信號的識別準確率比 CNN 和 MLP 網絡分別提高了 0.753 8% 和 2.360 4%。DR-CNN 測試的敏感性 Se 平均值為 94.532%,CNN 和 MLP 測試的平均值分別為 87.706% 和 75.8%,由此可見,敏感性得到提升。
本文對所提出的系統進行了 Veb 和 Sveb 測試,每次隨機選擇 40 000 個心搏對網絡進行訓練,剩余 50 200 個心搏進行測試,3 次測試結果的平均值作為計算指標的依據,統計結果如表 2 所示。DR-CNN 網絡的 Veb 和 Sveb 測試準確率分別達到了 99.498 0% 和 99.599 6%。Veb 測試結果顯示,DR-CNN、CNN 和 MLP 網絡的敏感性測試結果分別為 95.79%、67.38% 和 86.07%,即 DR-CNN 的測試結果 95.79% 比 CNN 和 MLP 的測試結果 67.38% 和 86.07% 分別提高了 28.41% 和 9.72%;Sveb 測試結果顯示,DR-CNN、CNN 和 MLP 網絡的敏感性測試結果分別為 93.42%、54.16% 和 56.78%,即 DR-CNN 的測試結果 93.42% 比 CNN 和 MLP 的測試結果 54.16% 和 56.78% 分別提高了 39.26% 和 36.64%。

本文通過對比研究了近期用深度學習方法進行 ECG 信號分類的研究成果。在相同的數據集下的測試結果如表 3 所示。金林鵬等[11]采用導聯卷積深度神經網絡,分別用 MIT-BIH 心律不齊數據庫數據和臨床大數據進行了 ECG 信號自動識別。該文獻利用 MIT-BIH 心律不齊數據庫對 86 010 個心搏進行正異常二分類,分類整體準確率達到 98.89%。Kiranyaz 等[13]采用一維 CNN 對心律不齊進行 5 分類,并且進行 Veb 和 Sveb 檢測。使用 44 條 ECG 信號記錄時,5 類心律不齊分類準確率為 98.84%,Veb 和 Sveb 檢測準確率分別為 99% 和 97.6%。Wu 等[14]提出利用深度置信網絡進行 ECG 信號心律不齊分類,按照 AAMI 標準,進行了心律不齊(Nor、Sveb、Veb、Fus)4 分類,分類準確率為 96.51%;Veb 和 Sveb 測試準確率分別為 97.9% 和 99.3%。一般情況下分類種類越多,識別準確率越低。從表 3 中可以看出,所提出的小波濾波和 DR-CNN 的 ECG 信號識別實驗取得了較高的準確率,有一定的臨床應用價值。

3 結論
ECG 信號去噪和自動分類算法是心律不齊自動診斷的核心技術,本文提出了一種基于小波自適應閾值濾波和 DR-CNN 的 ECG 信號心律不齊智能識別算法。所提出的小波自適應閾值去噪算法,有效地移除了基線漂移等干擾,并且保持了 ECG 信號形態不失真。設計了基于 20 層的 DR-CNN 模型,該模型克服了深度神經網絡近似恒等映射時隨著網絡層數增加而導致的退化問題,并保證了網絡的平滑收斂性。基于 DR-CNN,分別利用 MIT-BIH 數據庫 94 091 和 90 200 個心搏數據進行了 ECG 心律不齊信號多分類、Veb 和 Sveb 識別的實驗驗證。在相同實驗環境下,對比了目前較流行的幾種深度神經網絡算法,實驗結果表明所提出的方法有效地提高了 ECG 心律不齊信號的整體識別準確率、敏感性和特異性。該方法將人工智能與 ECG 信號分類識別相結合,可用于新型的心臟病輔助診斷系統,通過可穿戴終端采集 ECG 信號,遠程實時發送到 ECG 云計算平臺,經過數據變換、小波自適應去噪、QRS 復波識別、分割等預處理,基于 DR-CNN 算法對心律不齊病癥進行實時診斷,并返回客戶端。這種基于深度學習的心律不齊自動診斷方法可以與可穿戴設備、物聯網和無線通信技術相結合,進一步推動新型智慧醫療的發展,將心臟病的預防、監測和診斷延伸到家庭、養老院等院外場景,為醫學薄弱的地區補上短板,為患者提供高效的服務,可大大節約醫療資源。