


隨著我國人口結構和社會環境的改變,心血管病已經超越腫瘤成為致死率第一的疾病。大多數心血管疾病常伴有心律失常,本文針對這一特征,從心電信號的自動識別和類型分析處入手,研究并提出了一種基于深度學習的心電圖分類算法。首先對原始的心電信號數據集進行濾波、歸一化、求取信號功率圖譜和加窗函數等處理,數據經過預處理后能夠更好地從其頻域中提取相關特征;考慮到心電圖本身具有一定的時序特性,使用長短時記憶網絡來捕捉心電數據的前后依賴關系,通過多分類器實現多標簽并進行相關訓練。
本文采用一種改進型的LSTM的高效變體網絡(GRU)將經過預處理后的心電信號作為網絡的輸入序列,將心電信號的特征提取并分類。評價該模型性能的指標為分類準確率,同時在2018生理信號挑戰賽的數據(2018數據集)上進行了測試,取得了良好的實驗結果。
隨著計算機深度學習的不斷發展,建立一種快速有效識別心電圖的深度學習網絡,對整個社會醫療領域的發展有著重要意義。利用神經網絡對心電信號進行分類目前還是一個較新的領域。Andrew Y.Ng等提出了一種固定采樣周期的卷積神經網絡,通過固定256個采樣點來生成一個標簽。Lipton等提出了一種用于多標簽分類的LSTM網絡,該網絡提取心電信號的時序特征來進行分類;Zihlmann等提出了采用卷積神經網絡的架構,對心電信號進行識別和分類。
本文使用的模型為改進型的GRU網絡,與傳統的GRU相比,GRU在算法上增加了用于多標簽的分類器機制,同時該網絡所接受的輸入信號為心電信號非固定周期的頻域特征。
數據集與處理方法
數據集
本文使用的是2018數據集,心電圖記錄的采樣頻率保持500 Hz,訓練集包含了6796個人的十二導聯心電圖記錄,持續時間為6~60s,每種病例類型的分布如表1所示。
數據預處理
2018數據集的采樣率為500 Hz,心電信號的平均持續時間為15s左右,最長的持續時間可以達到60s,這會造成數據集存在著較長的數列,而GRU模型的輸入序列的合適范圍是500~1000。若將2018數據集直接作為模型的輸入,則會出現因為序列過長而產生反向傳播過程導致梯度消失的問題。因此需要對原始數據進行預處理。
為了選擇合適的輸入序列長度以及提取心電信號的頻域特征,使用FFT窗口函數將龐大的原始數據映射為適宜模型計算的長度序列,并在時間窗口中計算頻譜圖,為實現心電數據的非固定周期采樣,通過加窗來盡可能減少在非整數個周期上進行FFT產生的誤差;由于人體心電信號的高頻成分較少,且有一定的隨機性,其功率圖譜的高次諧波部分峰峰之間的區別較為模糊,在選擇加窗函數時,優先考慮良好頻譜分辨率的具有窄主瓣的平滑窗。
由于人體心電信號是非常微弱的生理低頻電信號,頻率范圍為0.1~35Hz,主要集中在5~20Hz;同時,肌電信號的頻率為20~5000 Hz,其主要成分的頻率與肌肉的類型有關,一般在30~300Hz。為了抑制噪聲,需要對ECG信號進行濾波處理,選擇巴特沃斯低通濾波器來濾除肌電干擾。利用濾波器對原始心電信號進行消噪處理,結果如圖1所示
(a)原始心電信號
GRU網絡模型
長短期記憶網絡—LSTM
長短期記憶網絡是一種特殊的循環神經網絡,最大的特點在于引入了門機制和記憶單元,在LSTM網絡中不會出現諸如梯度消失和梯度爆炸等問題。LSTM模型就像是一條流水線,不同的門和記憶單元對輸入量進行一步步的深加工,在LSTM模型中,輸入序列通過輸入門運算后進入記憶單元,記憶單元通過輸出門被運送到其他LSTM單元。圖2給出了LSTM存儲器單元的內部結構。
然而,由于其結構復雜性,求解LSTM模型通常需要很長的時間。為了加快訓練速度,GRU被提出作為改進LSTM的簡易方便的模型,目前GRU模型并未用于心電信號的識別。
改進型GRU網絡
GRU就是LSTM的一個變形狀態,它將遺忘門和輸入門組合成了更新門,但GRU模型的計算和實現更加簡單。一個典型的GRU單元由2個門組成:復位門和更新門。
類似于LSTM單元,t時刻的隱藏狀態輸出是由t-1時刻的隱藏狀態值和t時刻的輸入序列計算得來,如式(6)所示。
與傳統的單一標簽分類不同,心律失常往往會造成多個疾病同時存在,傳統的GRU模型在多標簽處理數據方面有著一定的局限性,于是本文引入了十二導聯多標簽分類的算法。
如圖4所示,在改進后的GRU模型中,x1,x2,x3,……,xi表示經過數據預處理后的各個導聯的向量,這些向量經過GRU模型的計算,輸出為對應的h1,h2,h3,…,hi,然后GRU模型中添加了多標簽分類層v,其中v層由keras庫中multi-label算法構成,通過訓練不同的病理特征,分析出各個導聯輸出所對應的各種疾病分布的概率值a1,a2,a3……,ai,并通過Sofimax函數層對層的輸出進行計算分析,從而達到十二導聯多標簽分類的目的。
實驗結果與討論
實驗環境
本實驗所采用的設備為Windowsl0操作系統,i5四核處理器,8G運行內存。所采用的編程語言為Python3.6、C語言,并在matlab平臺以及pytorch平臺分別進行數據預處理和模型搭建測試的環節,pytorch平臺上配合Keras以及Tensorflow深度學習框架進行庫的調用和測試訓練。
實驗結果
為了進行模型性能的評估,引入了混沌矩陣,矩陣的每一列代表了數據預測的類別,而每一列的總數代表預測為該類別數據的數目;每一行代表了數據的實際類別,每一行的數據總數表示該類別實際的數據數目。混沌矩陣具有4個基礎指標:TP,TN,FP,FN。
TP為真實值是positive,模型認為是positive的數量;TN為真實值是positive,模型認為是negative的數量;FP為真實值是negative,模型認為是positive的數量;FN為真實值是negative,模型認為是negative的數量。
為了更直觀地查看模型的性能,可以分別計算此時的tpr與fpr,tpr和fpr的計算公式如下式(7)、式(8)所示;根據這組tpr以及fpr值就可以畫出ROC曲線,由該ROC曲線就可以判斷模型的性能,ROC曲線如圖5所示。
可以很直觀地看出,GRU模型對測試集中的數據進行識別的準確率達到了0.88,模型性能良好。同時對所有的測試集進行得分F的計算。實驗結果如下表2所示。
可以看出在2018數據集上,該模型對AF的分類效果最好,在RBBB上的分類效果最差,對所有疾病的分類準確率均大于0.7,這表明模型具有良好的分類性能,具有一定的可行性和獨特的優勢。
本文提出了一種改進型的GRU網絡模型來識別并分類心電信號,與主流的深度學習識別模型相比,該模型提取了心電信號的頻域特征,濾波處理,消除掉不必要的干擾信號,利用多標簽識別算法,更加簡單,計算量也較少。缺點是在頻域處理過程中,容易丟失少部分時域信息,從而降低某些罕見病癥的識別準確率。在下一步工作中,需要繼續研究信號的特征提取,在減少計算量的同時,保證信息特征的完全性和信號分類的準確性。