郭煒倫 方鈺敏 徐海蛟 李瀟 王洪慶



摘要:隨著人們心臟問題的頻發與人工智能的高速發展,尋找高效、高速、精確的心電識別算法成為業界難題。針對業界各種心電識別算法存在的未能充分利用ECG特征多樣性的問題,提出一種基于SE-CNN-LSTM的心電識別算法,它把SE模塊嵌入到現今流行的CNN(卷積神經網絡)和LSTM(長短期記憶網絡)的心電識別算法,從而提高了算法的性能。
關鍵詞:心電識別算法;SE模塊;CNN;LSTM
中圖分類號:TP18? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)21-0073-03
開放科學(資源服務)標識碼(OSID):
1引言
日前,動脈網聯合京東健康發布《2021互聯網心血管疾病管理洞察》報告指出,我國患心血管疾病人數已達3.3億人,因心血管疾病死亡患者數量也逐年增長。心血管疾病患者目前面臨的最大問題是醫療診斷資源有限。
心血管疾病的診斷目前主要由人工分析完成,在心血管疾病普遍高發的當今,每天每時都會產生龐大的心電信號數據,這些數據里的每一張心電圖都有可能是心血管疾病診斷的關鍵,但傳統分析方式步驟煩瑣、耗費時間。隨著人工智能的高速發展,市面上已出現多種帶有自動診斷功能的心電設備,但由于診斷分類效果欠佳,仍需要加人工的進一步診斷。心電圖自動診斷技術的研究即找出高效、高速、精確的心電識別算法,對醫學的進步有重要推動作用,對解決目前心電圖診斷中存在的問題具有重要意義。
目前,許多學者提出了各種各樣的心電識別算法,大多都以深度學習模型為基礎的研究方法并取得了豐碩成果。Yan等[1]使用CNN一維卷積網絡對ECG 信號特征進行提取和信號分類;Das等[2]利用多層感知機神經網絡對ECG信號進行分類;Alqudah等[3]提取ECG信號的高斯混合系數特征值和小波分解特征值,并將這兩種特征用概率神經網絡和隨機森林兩種分類器進行心律失常分類;Sun等[4]提出基于CNN和SVM混合模型的心電信號識別方法;Li等[5]做了基于CNN寬度學習系統的心律失常分類研究。
同時,上述方法也存在一個不足:使用深度學習模型的時候,沒有充分利用ECG特征的多樣性。為了提高模型準確度,本文提出了SEBlock和CNN和LSTM結合模型,使模型考慮到了心電信號在時間序列上的特征和分類過程中不同通道特征的關系。實驗結果表明,本文提出的模型在心電識別運用上優于市面上大多深度學習模型,能更精確地預測出心電信號的類型。
2數據采集和預處理
2.1數據采集
本文使用的是最廣泛且被學術界普遍認可的數據庫MIT-BIH心律失常數據庫。MT-BIH心律失常數據庫擁有48條心電記錄,每一條記錄為30分鐘,長度含充分標注的2導聯心電信號。每條記錄有三個文件:dat文件和hea文件和atr文件,dat文件存放心電信號,hea文件存放記錄編號、導聯數、采樣率、采樣點數,atr文件存放人工標注的心拍位置和該位置心拍類型。為了保持導聯的一致性,往往在研究中采用MLⅡ導聯。本文選取MLⅡ導聯心電信號進行研究分析。
數據采集需要找到每一個心拍的QRS波尖峰所在的位置,單個心拍RQS波圖如圖1所示。本次實驗筆者對5種不同心拍進行分類識別,分別是正常搏動(N)、房性早搏(A)、室性早搏(V)、左束支傳導阻滯(L)、右束支傳導阻滯(R)。由于只訓練網絡模型,這里直接使用MIT-BIH數據集提供的人工標注,并篩選出上述5類的心拍尖峰位置,在尖峰處向前取99個信號點、向后取200個信號點構成一個完整的心拍,接著把處理出來的心拍全部加在一起,組成數據集。最后,使用上采樣和分層抽樣劃分訓練集與測試集,劃分出用于訓練的樣本6825組,訓練集中每一類樣本為1365組。劃分出用于測試的樣本2925組,測試集每一類樣本為585組。
2.2 數據預處理
Donoho提出的基于小波變換的閾值去噪法是目前應用最為廣泛的濾波方法[6]。小波變換(Wavelet Transform, WT)可以進行時頻變換,是對信號進行時域以及頻域分析的最為理想工具。小波變換閾值去噪法可基本分為以下3個步驟:
1)選擇合適的小波基函數,然后用小波變換對含噪心電信號進行9尺度分解得到各尺度上的小波系數。
2)心電信號經過小波變換尺度分解后,幅值比較大的小波系數就是有用的信號,幅值比較小的小波系數就是噪聲,根據心電信號和夾雜噪聲的頻率分布,對各尺度上的小波系數進行閾值處理,本文在小波系數閾值處理所使用的閾值函數選用的是軟閾值函數如圖2所示。當其分解后的系數絕對值小于給定的閾值時,令其為零。若大于閾值,則使用軟閾值函數法將它保留或進行收縮處理。
λ的計算公式為公式(1)所示,其中w為原始小波系數,W為處理后的小波系數,λ為給定的閾值,N為信號長度。
[λ=median∣w∣*2*lnN0.6745]? ? ? ? ? ? ? ? ?(1)
3)分別處理完小波尺度分解后的低頻系數和高頻系數,再重構信號。圖3為小波變換降噪流程圖。
未處理數據心電信號與降噪處理心電信號對比圖如圖4所示,從對比圖上可知去噪后信號比原始信號更為平滑。
3網絡構造
為了提供準確可靠的心電信號多分類解決方案,本文提出SE模塊和CNN和LSTM結合模型。
1) CNN
卷積神經網絡(Convolutional Neural Networks) 是神經網絡中一個非常經典的模型,是從視覺皮層的生物學獲得啟發而來的。在卷積神經網絡中,前若干層由卷積層和池化層組成,前一層的輸出作為后一層的輸入。其中,卷積層由一個大小固定的卷積核與輸入進行卷積操作,用來模擬人類的神經元,比如:一個神經元對直線興奮,而另一個對橫線興奮,這樣一來,卷積層下來就提取了不同的特征。而池化層則是一種下采樣,對視覺輸入對象進行降維和抽象,用更少的信息表示這個事物。隨后的若干層由全連接層構成,卷積取的是局部特征,全連接層就是把以前的局部特征重新通過權值矩陣組裝成完整的圖。卷積神經網絡提取心電信號特征流程圖如圖5所示。
2) SEBlock
SEBlock(Squeeze-and-Excitation Block)[7]是一種聚焦于通道維度而提出一種新的結構單元,為模型添加了通道注意力機制,該機制通過添加各個特征通道的重要程度的權重,針對不同的任務增強或者抑制對應的通道,以此來提取有用的特征,抑制作用不大的特征。該模塊的內部操作流程如圖6,總體分為三步:
首先是Squeeze 壓縮操作,對空間維度的特征進行壓縮,保持特征通道數量不變。融合全局信息即全局池化,并將每個二維特征通道轉換為實數。實數計算公式如公式(2)所示。該實數由k個通道得到的特征之和除以空間維度的值而得,空間維數為H*W。
[Uk=1H×Wi=1Hj=1Wμij] i,j=1,2,…k? ? ? ? ? ? ? ? ? ? ? ?(2)
其次是Excitation激勵操作,它由兩層全連接層和Sigmoid函數組成。如公式(3)所示,s為激勵操作的輸出,σ為激活函數sigmoid,W2和W1分別是兩個完全連接層的相應參數,δ是激活函數ReLU,對特征先降維再升維。
[s=σ(W2δ(W1U))] ? (3)
最后是Reweight操作,對之前的輸入特征進行逐通道加權,完成原始特征在各通道上的重新分配。
3) LSTM
LSTM(Long Short-Term Memory)神經網絡是一種時間遞歸神經網絡,可用于提取時序特征。LSTM核心是細胞狀態,用貫穿細胞的水平線表示。LSTM網絡能對細胞狀態進行刪除或者添加信息,總體可拆分為4步:第一步決定要丟棄細胞信息,下一步決定存儲細胞信息,接著更新舊細胞狀態,最后決定要輸出什么,LSTM結構圖如圖7所示。
4)SE-CNN-LSTM
本文設計了一個SEBlock和CNN和LSTM相結合的模型,具體結構見圖8。
本模型由一個三層卷積層三層池化層一層打平層和Dropout層和全連接層組成的CNN模型和兩個SE模塊和一個LSTM模型組成。首先,本模型分別在CNN模型的第二次和第三次的卷積池化操作中間加了一個SE模塊,用于提取有用的特征,抑制作用不大的特征。接著在進入全連接層之前,加一個LSTM模型,用于提取時間特征。然后把數據打平進入Dropout層,來防止數據過擬合。最后進入全連接層,把局部特征重新通過權值矩陣組裝。
4 評估指標
本文選用精確率(Precision)、召回率(Recall)、F1分數(F1-Score)來完成評價指標的描述。True Positive(TP):預測為正,判斷正確;False Positive(FP):預測為正,判斷錯誤;True Negative(TN):預測為負,判斷正確;False Negative(FN):預測為負,判斷錯誤。
精確率(Precision)是針對預測結果而言的,它表示的是預測為正的樣本中有多少是真正的正樣本。預測為正有兩種可能,一種就是把正類預測為正類(TP),另一種就是把負類預測為正類(FP)。Precision計算公式為:
[Precision=TPTP + FP]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (4)
召回率(Recall)是針對原來的樣本而言的,它表示的是樣本中的正例有多少被預測正確了。樣本中的正例有兩種可能,一種是把原來的正類預測成正類(TP),另一種就是把原來的正類預測為負類(FN)。Recall計算公式為:
[Recall=TPTP + FN]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(5)
F1分數(F1-score)是分類問題的一個衡量指標。多分類問題的機器學習競賽,常常將F1-score作為最終測評的方法。它是精確率和召回率的調和平均數,最大為1,最小為0。F1-score計算公式如公式(6)所示,其中P和R分別為Precision和Recall。
[F1-score=2PRP+R]? ? ? ? ? ? ? ? ? ? ? ? ? ? (6)
5 實驗結果
本文采用以TensorFlow為后端的Keras開發庫進行網絡搭建,并且學習中所有訓練數據均被使用過一次時的更新次數設置為30和批大小設置為128。本模型對測試集中5類心電類型分類的混淆矩陣如圖9,以及心電類型分類的精準率、召回率與 F1 值指標結果如圖10,該試驗結果說明,本模型運用在心電識別方面具有較好的訓練效果,并且預測分類準確率高。
為了進一步探究本文算法與其他方法的差異,使用同樣的數據集在CNN、CNN-LSTM、SE-CNN、SE-CNN-LSTM模型上進行對比實驗,比較它們的正確率大小,具體見表1。
表1中通過比較CNN與CNN-LSTM的正確率,可得出考慮時間序列的模型比未考慮時間序列的模型準確率高。通過比較CNN和SE-CNN,可得出加入SE模塊的模型性能優于未加SE模塊的模型。最后SE-CNN-LSTM模型正確率在其余三者模型之上,則可以說明本文提出的SE-CNN-LSTM算法在心電識別方面具有一定的可行性和優越性。
6結束語
心電識別算法的出現,很大程度地幫助了人們更便捷更低成本更快速地診斷自己的心臟健康狀況,使得越來越多人們及早地發現并診治心臟相關疾病。本文提出的基于SE-CNN-LSTM算法解決了大多心電識別算法都是僅基于卷積神經網絡而忽略了心電信號時間序列上的特征和通道間的特征的問題。本模型利用LSTM網絡實現記憶功能,解決了大多心電識別算法未能提取到時間序列特征的問題。為了提高心電算法準確率,本文還為模型嵌入了SE模塊,讓模型通過學習的方式來自動獲取到每個特征通道的重要程度,然后依照這個重要程度去提升有用的特征并抑制對當前任務用處不大的特征。最后將三者進行組合,其分類效果超過了市面上大多數心電識別算法。
由于心電疾病類型多種多樣,目前實驗考慮的心電疾病類型少,接下來的關注中,將考慮增加訓練學習的心電信號類別,在保證正確率的情況下,進一步完善算法。
參考文獻:
[1] 顏昊霖,安勇,王宏飛,等.基于卷積神經網絡的心電特征提取[J].計算機工程與設計,2017,38(4):1024-1028.
[2] Das M K,Ari S.ECG beats classification using mixture of features[J].International Scholarly Research Notices,2014,2014:178436.
[3] Alqudah A M,Albadarneh A,Abu-Qasmieh I,et al.Developing of robust and high accurate ECG beat classification by combining Gaussian mixtures and wavelets features[J].Australasian Physical & Engineering Sciences in Medicine,2019,42(1):149-157.
[4] 孫波,楊磊,郭秀梅,等.基于CNN和SVM混合模型的心電信號識別方法[J].山東農業大學學報(自然科學版),2020,51(2):283-288.
[5] 李聲師.基于CNN寬度學習系統的心律失常分類研究[D].長春:吉林大學,2020. [6] 曲天書,戴逸松,王樹勛.基于SURE無偏估計的自適應小波閾值去噪[J].電子學報,2002,30(2):266-268
[7] 袁穎,李論,楊英倉.基于FPN-SE-Capsule網絡的指紋圖像識別算法[J].工業控制計算機,2021,34(1):45-47,50.
【通聯編輯:唐一東】