一、引言
????????心律失常是心血管疾病的重要表現形式,其準確分類對臨床診斷具有關鍵意義。傳統的心律失常分類方法主要依賴于人工特征提取和經典機器學習算法,但這些方法往往受限于特征選擇的主觀性和模型的泛化能力。
????????隨著深度學習技術的發展,基于卷積神經網絡(CNN)的方法逐漸成為研究熱點。然而,心電信號是一維時間序列數據,直接應用 CNN 進行分類可能會丟失部分時頻信息,影響分類性能。
????????為了解決這一問題,本文檔提出了一種結合小波變換和 CNN 的心律失常分類方法,旨在充分發揮小波變換在信號時頻分析方面的優勢以及 CNN 在處理二維圖像數據方面的強大能力,實現對心律失常信號的高效、準確分類。
二、理論基礎
(一)心電信號與心律失常
????????心電信號(ECG)是心臟電活動的外在表現,反映了心臟的興奮、傳導和復極過程。正常心電信號具有一定的波形特征,如 P 波、QRS 波群和 T 波等,這些波形依次對應心房去極化、心室去極化和心室復極化過程,反映了心臟正常的電生理活動。
????????心律失常是一類心臟電活動異常的疾病,其本質是心臟沖動的頻率、節律、起源部位、傳導速度或激動順序出現異常。??
????????心律失常的分類方式多樣,按心率快慢可分為快速性心律失常(如竇性心動過速、心房撲動、心室顫動等)和緩慢性心律失常(如竇性心動過緩、竇性停搏、房室傳導阻滯等);按起源部位可分為室上性心律失常(如竇性心律失常、房性心律失常、房室交界性心律失常等)和室性心律失常(如室性期前收縮、室性心動過速、心室顫動等)。
圖1:心律失常&常見類型
????????心律失常的分類方式多樣,按心率快慢可分為快速性心律失常(如竇性心動過速、心房撲動、心室顫動等)和緩慢性心律失常(如竇性心動過緩、竇性停搏、房室傳導阻滯等);按起源部位可分為室上性心律失常(如竇性心律失常、房性心律失常、房室交界性心律失常等)和室性心律失常(如室性期前收縮、室性心動過速、心室顫動等)。不同類型的常見心律失常及其心電圖特征如下:
-
正常心搏(N):心電圖表現為規律的竇性心律,P 波形態正常且規律,PR 間期恒定,QRS 波群形態正常,心率通常在 60-100 次 / 分之間。
-
室性早搏(V):心電圖可見提前出現的寬大畸形的 QRS-T 波群,其前無相關的 P 波,代償間歇完全,常伴有繼發性 ST-T 改變。
-
左束支傳導阻滯(L):心電圖表現為 QRS 波群寬大,時限通常≥0.12s,V1、V2 導聯呈 rsr’型或 M 型,I、aVL、V5、V6 導聯呈寬大的 R 波,常伴有繼發性 ST-T 改變。
-
右束支傳導阻滯(R):心電圖特征為 QRS 波群寬大,時限≥0.12s,V1、V2 導聯呈rsR’型或寬大R波,I、aVL、V5、V6 導聯呈寬大的S波,ST-T 改變多為繼發性。
-
心房顫動(AF):心電圖顯示 P 波消失,代之以大小不等、形態各異的顫動波,頻率 350-600 次 / 分;QRS 波群形態通常正常,R-R 間期絕對不規則。
-
心室顫動(VF):心電圖表現為不規則的顫動波,頻率 200-500 次 / 分,無規律可循,是極其嚴重的心律失常,可導致心臟驟停。
-
等等。。。
????????心律失常可由多種因素引發,包括心臟本身疾病(如冠心病、心肌病、心肌炎等)、遺傳因素(如長 QT 綜合征、Brugada 綜合征等)、電解質紊亂、藥物影響、自主神經系統失調等。其臨床表現因類型和嚴重程度而異,部分患者可無明顯癥狀,而部分患者可能出現心悸、胸悶、頭暈、乏力、暈厥,甚至猝死等嚴重癥狀。心律失常的診斷主要依賴于心電圖檢查,包括常規心電圖、動態心電圖、運動試驗等,這些檢查能夠捕捉到心律失常的特征性表現,為臨床診斷提供重要依據。
圖2:心律失常癥狀表現示例
(二)小波變換
????????小波變換是一種時頻分析方法,能夠同時提供信號的時間和頻率信息。小波變換能夠有效處理非平穩信號,如心電信號,提取信號中的瞬態特征和局部變化信息,為后續的分類提供更豐富的特征表示。連續小波變換(CWT)通過伸縮和平移基本小波函數,將信號分解為不同尺度和位置的小波系數,從而捕捉信號的局部特征。其數學表達式為:
????????其中, a 表示尺度因子, b 表示平移因子, ψ(t) 為基本小波函數, ψ?(t) 為其復共軛。
圖3:連續小波變換CWT的時頻分析示意圖
(一維信號與二維圖像的區別)????????
????????心電信號本質上是一維時間序列數據,它隨時間變化反映了心臟電活動的動態過程。一維信號的特點是數據點按時間順序排列,每個數據點僅包含幅值信息,難以直觀展示信號的頻率特性。直接對一維信號應用 CNN 進行分類時,CNN 難以充分利用其在空間特征提取方面的優勢,且容易丟失信號的時頻關聯信息,影響分類性能。
????????相比之下,二維圖像是由像素點組成的矩陣,每個像素點包含位置和強度信息,能夠直觀展示信號的時頻特性。通過將一維心電信號轉換為二維圖像,可以將信號的時域和頻域信息融合到圖像的二維空間中,使 CNN 能夠更有效地提取信號的局部和全局特征。
(三)卷積神經網絡
????????卷積神經網絡(CNN)是一種專門用于處理具有網格結構數據(如圖像)的深度學習模型,其主要特點包括卷積層、池化層和全連接層。CNN 的網絡結構和訓練過程如下:
????????1、卷積層:卷積層是 CNN 的核心部分,通過卷積核提取局部特征,卷積運算的數學表達式為:
????????其中, yi,j? 表示輸出特征圖的元素, wk,l? 表示卷積核的權重, xi+k?1,j+l?1? 表示輸入數據的元素, b 表示偏置, f(?) 為激活函數,如 ReLU 函數。
圖4:卷積層的計算過程示意圖
????????2、池化層:池化層用于降低特征維度,減少計算量,并增強模型對輸入數據的平移不變性。常見的池化方法包括最大池化和平均池化。最大池化選取局部區域內的最大值作為輸出,平均池化則計算局部區域內的平均值作為輸出。
圖5:池化層的計算過程示意圖
????????3、全連接層:全連接層將卷積層和池化層提取的特征進行整合,實現最終的分類決策。全連接層的神經元與前一層的所有神經元全連接,其輸出為:
????????其中, y 表示神經元的輸出, wi? 表示權重, xi? 表示輸入, b 表示偏置, f(?) 為激活函數。
????????圖6:全連接層的計算過程示意圖
????????CNN 的訓練過程通過反向傳播算法和優化方法(如:Adam 優化器)來更新網絡參數,以最小化預測輸出與真實標簽之間的損失函數(如:交叉熵損失函數)。
-
交叉熵損失函數?
L = - [ y * log(p) + (1 - y) * log(1 - p) ]
-
參數解釋:
-
y
: 樣本的真實標簽。通常取值為?0
(負類)或?1
(正類)。 -
p
: 模型預測該樣本屬于正類的概率(取值范圍在?[0, 1]
?之間)。 -
log
: 通常指自然對數(底數為?e
),有時也用對數(底數為?2
?或?10
),但在機器學習中通常使用自然對數。
-
圖7:Adam 優化器優化過程
(CWT 與 CNN 的結合優勢)
將 CWT 與 CNN 結合用于心律失常分類具有顯著優勢:
-
豐富的時頻特征:CWT 能夠將一維心電信號轉換為二維時頻圖像,保留了信號的時間和頻率信息。這種時頻表示能夠更全面地反映心電信號的特征,如不同心律失常類型的頻率成分變化和時域波形特征。
-
強大的特征提取能力:CNN 對二維圖像數據具有強大的自動特征提取能力。通過卷積層和池化層,CNN 能夠逐層提取圖像的局部和全局特征,自動學習到對分類最有用的特征組合,避免了人工特征提取的主觀性和局限性。
-
高效的分類性能:CNN 的全連接層能夠將提取的特征進行整合,實現高效的分類決策。其非線性激活函數和 softmax 輸出層能夠將特征映射到類別概率分布,提供精確的分類結果。
-
良好的魯棒性:CNN 的池化層和卷積層的局部連接特性使其對圖像的平移、縮放和旋轉具有一定的不變性,增強了模型對不同心電信號變化的魯棒性。
三、方法流程
(一)數據預處理
????????1、數據讀取與篩選:從 MIT-BIH 心律失常數據庫中讀取心電信號數據,包括 .dat 文件(原始信號數據)、.hea 文件(頭文件,包含采樣率、增益等信息)和 .atr 文件(注釋文件,包含 R 峰位置和標簽信息)。根據注釋文件中的標簽信息,篩選出屬于正常心搏(N)、室性早搏(V)、左束支傳導阻滯(L)、右束支傳導阻滯(R)四類的心電信號。
圖8:數據劃分結果圖
(這里可以選擇不同類別的心律失常,并根據MIT分類標簽替換對應的標簽字符)
%% 標簽字典(AAMI 規則)
map = containers.Map({1, 5, 2, 3}, {'N', 'V', 'L', 'R'}); % MIT分類標簽對應字符
? ? ?
??2、心拍提取:根據注釋文件中的 R 峰位置,以每個 R 峰為中心,向前取 100 個采樣點,向后取 200 個采樣點,組成長度為 300 個采樣點的心拍。將提取的心拍按類別分別存儲。
圖9: L 類、N 類、R 類和 V?類的心拍提取圖像
????????3、數據歸一化:對提取的心拍數據進行歸一化處理,將信號幅值歸一化到 [0, 1] 范圍內,以消除不同信號之間的幅值差異,提高模型訓練的穩定性和收斂速度。
(二)小波去噪
???????心電信號在采集過程中容易受到各種噪聲的干擾,如基線漂移、肌電干擾等。為了提高信號質量,采用小波去噪方法對心拍數據進行預處理。小波去噪的基本原理是通過小波變換將信號分解為不同尺度的系數,然后對小波系數進行閾值處理,最后通過逆小波變換重建信號。具體步驟如下:
????????1、選擇小波函數和分解層次:根據信號的特點和去噪要求,選擇合適的小波函數(如 db4)和分解層次。分解層次的選擇應綜合考慮信號的長度和噪聲特性,一般通過計算最大可能的分解層次并適當調整來確定。
????????2、小波分解:對心拍信號進行小波分解,得到不同尺度的近似系數和細節系數。
????????3、閾值處理:對細節系數進行閾值處理,采用軟閾值或硬閾值方法去除噪聲成分。閾值的選擇可以通過經驗公式或自適應方法確定。
????????4、信號重建:利用處理后的近似系數和細節系數進行逆小波變換,重建去噪后的心電信號。
(三)CWT 圖像生成
????????為了將一維心電信號轉換為二維圖像,以便利用 CNN 進行處理,采用連續小波變換(CWT)生成信號的時頻圖像。具體步驟如下:
????????1、選擇小波函數和尺度范圍:選擇合適的小波函數(如 Morlet 小波)和尺度范圍,以覆蓋心電信號的主要頻率成分。
????????2、計算 CWT 系數:對去噪后的心拍信號進行 CWT,得到時頻域內的小波系數矩陣。
????????3、生成圖像:將小波系數矩陣轉換為圖像,其中橫軸表示時間,縱軸表示尺度(對應頻率),顏色表示小波系數的幅值。通過調整圖像的顯示范圍和顏色映射,增強圖像的可視化效果。
?
圖10:通過 CWT 變換得到的 L 類、N 類、R 類和 V 類的圖像
(四)CNN 模型訓練
????????1、構建 CNN 網絡結構:設計一個適合心律失常分類的 CNN 網絡結構,包括輸入層、多個卷積層、池化層、全連接層和輸出層。卷積層用于提取圖像的局部特征,池化層用于降維和增強魯棒性,全連接層用于實現最終的分類決策。輸出層采用 softmax 激活函數,將輸出映射到各類別的概率分布。
圖11:CNN模型結構圖
????????2、數據集劃分:將生成的 CWT 圖像數據集按一定比例劃分為訓練集、驗證集和測試集,通常訓練集占 70%,驗證集占 15%,測試集占 15%。訓練集用于模型參數的更新,驗證集用于模型的選擇和超參數的調整,測試集用于最終模型性能的評估。
????????
????????3、模型訓練:使用訓練集對 CNN 模型進行訓練,通過優化算法(如 Adam 優化器)最小化損失函數(如交叉熵損失函數),更新網絡參數。在訓練過程中,定期使用驗證集評估模型性能,防止過擬合,并根據驗證結果調整訓練策略,如調整學習率、增加正則化等。
????????下表展示的是 CNN 模型結構:
表1:卷積神經網絡CNN架構概述
Layer | Type | Parameters | Output Size |
Input | Image Input Layer | 224×224×1 | 224×224×1 |
Conv1 + ReLU + Pool | Conv(3×3, 16) + MaxPool(2) | Stride=2, Padding=1 | 56×56×16 |
Conv2 + ReLU + Pool | Conv(3×3, 32) + MaxPool(2) | Padding=same | 28×28×32 |
Conv3 + ReLU + AvgP | Conv(3×3, 64) + AvgPool(7) | Padding=same | 4×4×64 |
FC1 + Dropout | Fully Connected + Dropout | 128 neurons, Dropout 0.3 | 128 |
FC2 | Fully Connected | 64 neurons | 64 |
Output | Fully Connected + Softmax | 4 neurons | 4 (class probs) |
(五)SVM模型
????????支持向量機(SVM)是一種強大的有監督學習分類器,它能在高維特征空間中找到最優超平面以區分各類別。這種方法對于那些在原始特征空間中數據并非線性可分但在更高維空間中可通過核函數實現分離的分類任務特別有效。為了進一步提升分類性能,提取 CNN 模型中間層的特征(如全連接層的輸出),將其作為支持向量機(SVM)模型的輸入,訓練 SVM 分類器。
????????其中:
????????xi : 從卷積神經網絡(CNN)中提取的特征向量。
????????xi∈-1,1 : 類別標簽。
????????C : 正則化參數,用于控制最大化間隔與最小化分類誤差之間的權衡。
????????w :權重向量。
????????b : 偏差項。
????????ξi : 松弛變量,允許存在一些誤分類。
???????目標函數 ?的作用在于最大化不同類別的間隔,而項
?則用于懲罰錯誤分類。參數 C 是一個超參數,需要進行調整以平衡最大化間隔和最小化分類錯誤之間的權衡。
圖12:支持向量機模型結構圖
????????利用 SVM 模型對測試集進行分類,并評估其分類性能。通過比較 CNN 模型和基于 CNN 特征的 SVM 模型的分類結果,分析混合模型的優勢。
四、實驗結果與分析
????????(一)數據劃分
????????本次實驗采用 MIT-BIH 心律失常數據庫,該數據庫包含 48 個心電信號記錄,采樣率為 360Hz,每個記錄包含兩個導聯(MLII 和 V1)。每個記錄的時長約為 30 分鐘,涵蓋了正常和多種異常心律失常類型。通過讀取數據文件并按照 AAMI 規則進行標簽映射,將數據劃分為四個類別:L(左束支傳導阻滯)、N(正常)、R(右束支傳導阻滯)、V(室性早搏)。
圖13:原始數據劃分為L類、N類、R類和V類的預處理過程
?????(二)生成CWT圖像? ??????
????????對心拍信號進行小波去噪,去除噪聲干擾。并使用連續小波變換(CWT)將去噪后的一維心拍信號轉換為二維圖像,圖像尺寸統一調整為 224×224 像素。
??????
圖14:V類的CWT圖像生成過程圖?
????????模型訓練過程如下所示:
圖15:模型訓練過程圖
圖16:CNN混淆矩陣結果
圖17:CNN-SVM混淆矩陣結果
????????為了比較基線卷積神經網絡(CNN)和混合卷積神經網絡 - 支持向量機(CNN-SVM)方法的效能,對這兩個模型均在相同的測試數據集上進行了評估。分析了分類準確率和各類別的表現,特別關注了該模型區分形態相似的心跳類型的能力。
????????下表展示的是不同模型結果對比:
表2:CNN與CNN-SVM的模型結果對比指標
Model | Acc(%) | Sen(%) | Spe(%) |
CNN | 98.45% | 98.47% | 99.47% |
CNN+SVM | 98.99% | 99.03% | 99.66% |
????????CNN 模型的測試準確率為 98.45%,在類別 N 和 V 上表現尤為出色。而利用全連接層 fc2 提取的 64 維特征的 CNN-SVM 模型進一步將準確率提高到 98.99%。SVM 在最大化間隔方面的能力顯著提高了泛化能力,特別是在減少 L 和 R 類之間的混淆方面效果顯著。這通過 CNN-SVM 模型(98.99% 對于 CNN 的 98.45%)的優越準確率得以體現,同時 L 和 R 類之間的誤分類顯著減少,從而驗證了這種混合方法在細微心律失常檢測方面的臨床實用性。
五、結論與展望
(一)總結
????????本文提出了一種基于小波變換和 CNN 的心律失常分類方法。通過小波去噪和 CWT 圖像生成,將一維心電信號轉換為二維圖像,利用 CNN 模型自動學習圖像特征,并通過 SVM 模型進一步提升分類性能。實驗結果表明,該方法能夠有效分類不同類型的心律失常,具有較高的準確率和較好的泛化能力,為心律失常的自動診斷提供了一種新的技術手段。
(二)創新點
????????1、結合小波變換和 CNN 模型,充分發揮兩者優勢,利用小波變換提取信號的時頻特征,通過 CNN 模型自動學習深度特征,實現對心律失常信號的高效、準確分類。
????????2、提取 CNN 中間層特征并用于 SVM 訓練,構建混合模型,進一步提高分類效果,充分利用兩種模型的特點,彌補單一模型的不足。
????????3、采用 CWT 圖像生成方法將一維心電信號轉換為二維圖像,為 CNN 模型的應用提供了合適的數據形式,同時增強了信號特征的可視化和可分性。
六、參考文獻
[1] Moody GB, Mark RG. The impact of the MIT-BIH Arrhythmia Database. IEEE Eng Med Biol Mag. 2001;20(3):45-50.
[2] Acharya UR, et al. Deep convolutional neural network for the automated detection and diagnosis of arrhythmias. IEEE Journal of Biomedical and Health Informatics. 2017;21(4):1329-1338.
[3] Cortes C, Vapnik V. Support-Vector Networks. Mach Learn. 1995;20(3):273-297.
[4] Zhang Y, et al. Deep learning for image-based arrhythmia detection. IEEE J Biomed Health Inform. 2020;24(1):252-261.
Tips:下一講,我們將進一步探討,心電信號處理與應用的其他內容。
以上就是基于連續小波變換(CWT)和卷積神經網絡(CNN)的心律失常分類算法的全部內容啦~
我們下期再見,拜拜(?v?) ~
(Ps:有代碼實現需求,請見主頁信息,謝謝支持!~)