楊小童,陳月明,楊 坤
(安徽醫(yī)科大學(xué)生物醫(yī)學(xué)工程學(xué)院,安徽合肥 230032)
據(jù)國家心血管病中心組織編撰的《中國心血管病報告2018》顯示,中國心血管病患病率及死亡率仍處于上升階段,現(xiàn)有心血管病患者約有2.9億,占居民的疾病死亡構(gòu)成的40%以上[1]。因此實現(xiàn)心血管疾病的檢測和防治顯得尤為重要。
心電圖能測量和記錄心臟的電活動,因其有效、簡單、無創(chuàng)、成本低而被廣泛應(yīng)用于心血管疾病的診斷[2]。傳統(tǒng)的方法首先利用離散小波變換和Pan Tompkins算法等不同技術(shù)從ECG記錄中提取各種特征,然后采用支持向量機(SVM)[3]、隨機森林[4]等分類方法進行分類。因此,這些方法最關(guān)鍵問題在于特征的提取。目前已經(jīng)有多種方法提取詳細的心電特征,如時域信息、高階統(tǒng)計、隱馬爾科夫建模等。但是,這些方法嚴重依賴于精心選擇的特性,因此使用這些方法很難處理多類分類任務(wù)。近些年來,隨著深度學(xué)習(xí)[5]在疾病診斷展現(xiàn)出強大的性能,應(yīng)用深度學(xué)習(xí)在心電異常事件分析已經(jīng)成為醫(yī)學(xué)領(lǐng)域的一個研究熱點。 Ozal Yildirim[6]提出一種新的基于深度雙向LSTM網(wǎng)絡(luò)的小波序列模型DBLSTM-WS用于心電信號分類,使用小波將心電信號分解成不同尺度的子頻帶作為輸入,實現(xiàn)了對五種心電異常事件的準確分類,小波網(wǎng)絡(luò)層的存在顯著提高了傳統(tǒng)網(wǎng)絡(luò)的識別性能。吳恩達等人[7]使用改進的34層殘差網(wǎng)絡(luò)模型進行12種心電異常事件檢測,神經(jīng)網(wǎng)絡(luò)模型在測試集上的預(yù)測準確率表現(xiàn)甚至超過了6位心臟病專家。
然而,這些方法將多種心血管疾病的識別視為多類分類問題,其中多種異常被視為互斥類。
但在實際臨床中,并發(fā)多種心律失常是常見的。ML-KNN算法和LIFT算法[8]可以解決多標簽分類問題,但是沒有考慮標簽之間可能存在的相關(guān)性。因此,需要進一步識別標簽之間的相關(guān)性,而不是單獨處理每個標簽。此外,目前在心電異常分析領(lǐng)域大多使用單導(dǎo)聯(lián)或雙導(dǎo)聯(lián)心電信號,未能有效利用多導(dǎo)聯(lián)心電信號的結(jié)構(gòu)信息。如李全池[9]、束偉偉[10]等的研究。
針對上述問題,本文提出了一種融合多標簽相關(guān)性特征的神經(jīng)網(wǎng)絡(luò)心電異常識別方法。利用點互信息、皮爾遜相關(guān)系數(shù)、余弦相似度將心電數(shù)據(jù)集的標簽轉(zhuǎn)化為標簽相關(guān)性矩陣,使用卷積神經(jīng)網(wǎng)絡(luò)對標簽相關(guān)性矩陣進行特征提取。從標簽相關(guān)性的角度增加多標簽心電異常信號提取的特征數(shù)量。根據(jù)多導(dǎo)聯(lián)心電信號的結(jié)構(gòu)特征,使用逐通道卷積對各導(dǎo)聯(lián)信號提取標簽特征,從而減少參數(shù)量與計算量。
實驗使用的數(shù)據(jù)是天池杯“合肥高新杯”心電人機智能大賽的數(shù)據(jù)集,以此來驗證融合多標簽特征的神經(jīng)網(wǎng)絡(luò)心電異常識別算法的有效性。實驗數(shù)據(jù)集概況如下表1所示。
表1 實驗數(shù)據(jù)集概況
表1表示實驗數(shù)據(jù)集的基本信息,其中T表示樣本總數(shù),L1表示樣本標簽總數(shù),L2 表示標簽類別總數(shù),VA表示數(shù)據(jù)集的平均標簽數(shù),VS表示樣本最少標簽數(shù),VB表示樣本最多標簽數(shù)。
圖1 心電波形
每個樣本有8個導(dǎo)聯(lián)數(shù)據(jù),分別是I,II,V1,V2,V3,V4,V5和V6,同步采集10秒的心電波形,采樣頻率為500 Hz,單位電壓為4.88mV。每導(dǎo)聯(lián)有5000個采樣點,故樣本由[5000,8]的二維矩陣構(gòu)成。
1)本文將24106份數(shù)據(jù)隨機打亂后,采用5折交叉驗證。將原始數(shù)據(jù)分成5組,將每個子集數(shù)據(jù)分別做一次驗證集,其余4組子集數(shù)據(jù)作為訓(xùn)練集,用5個模型最終在驗證集上的分類準確率的平均值作為5折交叉驗證的性能指標。
2)為了對心電信號異常判斷更加全面,將8導(dǎo)聯(lián)數(shù)據(jù)拓展至12導(dǎo)聯(lián)。新增的4導(dǎo)聯(lián)數(shù)據(jù)可由式(1)~(4)計算得到。
III=II-I
(1)
aVR=-(I+II)/2
(2)
aVL=I-II/2
(3)
aVF=II-I/2
(4)
心電信號采集過程中通常會受到電力線干擾、基線漂移、電極運動偽影、儀器等干擾,因此必須去除心電信號的噪聲[11]。原始心電信號的波形圖2所示,心電信號的能量主要集中在0.1-35Hz,是一種低頻信號,其中占頻譜最大分量的是QRS波群,匯集在5-15Hz處。
1)小波軟閾值降噪。原始心電信號存在一定的噪聲。由于頻帶重疊,無法使用傳統(tǒng)的傅里葉變換去除,而小波變換在非平穩(wěn)信號的時頻域分析上具有十分顯著的效果。選擇db8小波將含噪音的心電信號進行8層小波變換分解。使用極大極小閾值和使小波系數(shù)整體連續(xù)性較好的軟閾值函數(shù)進行濾波,最后將處理后的各尺度系數(shù)進行重構(gòu)得到降噪后的心電信號,重構(gòu)的信號如圖3所示。
2)為了加快神經(jīng)網(wǎng)絡(luò)模型收斂,使用Z-score方法將心電信號進行歸一化處理。
圖2 原始信號
圖3 小波降噪后的心電信號
為了避免干擾對心電信號造成的影響,本文使用預(yù)處理后的信號進行8尺度小波變換后,采用4尺度的細節(jié)信號對 R波峰值點定位及QRS波的檢測。
1)R波峰值點。4尺度小波系數(shù)中的12個正極值是R波峰值點。為了保證數(shù)據(jù)的準確性,本實驗中R波峰的取值點去掉12個正極值的第一個和最后一個。
2)心拍劃分。心電數(shù)據(jù)采樣頻率為500Hz,以心率為60~100次/分鐘為準,則一個心拍的采樣點數(shù)在300-500之間。使用R波峰分割心拍,1)中得到的10個R波峰值點的幅值的中值作為基點,R波峰向前200個采樣點,R波向后250個采樣點,將這450個采樣點的數(shù)據(jù)截取出來,作為一個心拍樣本,則單個導(dǎo)聯(lián)有10個心拍。
3)其它特征值提取。在劃分的心拍中使用差分閾值法檢測QRS波群、P波、T波等。再通過交叉計算,得到相應(yīng)的特征。本文需要計算的傳統(tǒng)特征值有P、Q、R、S、T幅值,RR、PR、PJ、QT、QRS、ST、PP間期值。具體各傳統(tǒng)特征值在心電圖上的表示如圖4所示。
圖4 心電傳統(tǒng)特征值表示
根據(jù)數(shù)據(jù)的潛在特征設(shè)計對應(yīng)的數(shù)學(xué)模型能夠有效地提高模型的性能,為了將多標簽之間的關(guān)聯(lián)性融入模型中,必須衡量不同標簽之間的關(guān)聯(lián)性。
圖5是各樣本標簽之間的關(guān)系圖,橫、縱坐標均為各心電異常類別,顏色越深代表標簽之間的相關(guān)性越強。從圖3中可得出對應(yīng)多個心電異常事件的同一段心電信號,不同的心電異常事件之間存在一定的關(guān)聯(lián)性。因此,患有某種心血管疾病的患者往往有很大可能同時患有另一種心血管疾病。
圖5 心電異常相關(guān)性
本文使用了點互信息(PMI)、皮爾遜相關(guān)系數(shù)、余弦相似度評估兩兩標簽之間的相似度。
1)點互信息
PMI從統(tǒng)計的角度發(fā)現(xiàn)詞語共現(xiàn)的情況,從而分析出詞語間是否存在語義相關(guān)或者主題相關(guān)的情況。本文使用PMI計算兩兩標簽之間的關(guān)聯(lián)程度。PMI>0,兩統(tǒng)計量是相關(guān)的;值越大,相關(guān)性越強;PMI<0,兩統(tǒng)計量是不相關(guān)的,互斥的;PMI=0,兩統(tǒng)計量獨立,不相關(guān)也不互斥。PMI計算方法如式(5)所示。
(5)
其中p(x)表示標簽x出現(xiàn)的概率,p(y)表示標簽y出現(xiàn)的概率,p(x,y)表示標簽x和標簽y共同出現(xiàn)的概率。
2)皮爾遜相關(guān)系數(shù)
皮爾遜相關(guān)系數(shù)用于度量兩個向量組之間的關(guān)聯(lián)性,皮爾遜系數(shù)介于-1和1 之間,-1、0、1分別表示完全負相關(guān),不相關(guān)和完全正相關(guān)。皮爾遜系數(shù)的計算方法如式(6)所示。
(6)
3)余弦相似度
余弦相關(guān)度是指兩個向量之間夾角的余弦值,可以衡量兩個向量之間的差異,余弦相似度的計算方法如式(7)所示
(7)
其中,x,y表示兩個標簽,·表示點積,表示向量x的L2范數(shù)。
類別標簽向量使用one-hot編碼,得樣本標簽矩陣LT*55,T表示樣本總數(shù),分別計算某一列與其它列之間的PMI、皮爾遜系數(shù)和余弦相似度,可以得到的標簽相關(guān)性矩陣S55*55。
圖6 多標簽相關(guān)性矩陣
多標簽分類問題與單一標簽問題區(qū)別在于訓(xùn)練樣本存在一個或者多個標簽,假設(shè)X=d表示輸入樣本有d維特征空間,Y={y1,y2,…,yq}表示所有類別標簽集合,共有q個類別標簽。通過訓(xùn)練集D={(xi,Yi)|1≤i≤n}訓(xùn)練樣本得到分類器f:X→2Y,其中xi∈X是輸入空間X的訓(xùn)練樣本,Yi∈Y是xi的類別標簽集合,最終通過分類器f得到測試樣本的所屬標簽集合[12]。
融合多標簽特征在心電異常預(yù)測模型如圖7所示。心電異常預(yù)測模型主要分為輸入層,特征提取層,特征拼接層,全連接層和sigmod分類器。輸入層包含四個部分,分別為心電信號傳統(tǒng)特征,降噪后的原始心電信號,數(shù)據(jù)集的標簽特征,樣本的年齡、性別個體特征。通過卷積神經(jīng)網(wǎng)絡(luò)和長短時記憶網(wǎng)絡(luò)將特征提取輸出到特征拼接層,在特征拼接層將所有的特征融合起來,經(jīng)過全連接網(wǎng)絡(luò)輸出到sigmod分類器,可以得到關(guān)于心電信號和心電異常的關(guān)系映射。
圖7 心電異常預(yù)測模型
4.1.1 卷積神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò)可以提取心電信號的局部特征。相對于全連接網(wǎng)絡(luò)而言,卷積神經(jīng)網(wǎng)絡(luò)減少了訓(xùn)練過程中的參數(shù)量,一定程度上也避免模型過擬合。本文使用多個大小不同的卷積核對心電信號進行特征提取,可以得到多個大小不同的特征向量,可以對多導(dǎo)聯(lián)心電信號進行特征表示。
池化層對卷積層特征進行采樣,降低特征數(shù)量,進一步降低參數(shù)數(shù)量,本文提出的模型選用最大池化操作,通過對局部區(qū)域取最大值對數(shù)據(jù)進行壓縮。
考慮各導(dǎo)聯(lián)結(jié)構(gòu)的相似性,本文在使用CNN提取心電特征時,方法如下:
1)提取各導(dǎo)聯(lián)心電特征。結(jié)合深度可分離卷積中的逐通道卷積思想,卷積層使用相同的卷積核,一個卷積核負責(zé)一個通道,一個通道只被一個卷積核卷積,如圖8左側(cè)部分所示。將12導(dǎo)聯(lián)視為12通道,每一通道分別使用相同的卷積核和池化方法進行操作,最后輸出12張?zhí)卣鲌D。
2)12導(dǎo)聯(lián)心電特征融合。結(jié)合二維卷積多通道卷積思想,使用1*1*12的卷積核對 1)中輸出的12張?zhí)卣鲌D做卷積操作,最終輸出一張?zhí)卣鲌D,如圖8右側(cè)部分所示。
圖8 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
4.1.2 長短時記憶網(wǎng)絡(luò)
LSTM可以提取心電信號的時序特征,是一種改進之后的循環(huán)神經(jīng)網(wǎng)絡(luò),相對于RNN,LSTM的神經(jīng)元加入了輸入門i、遺忘門f、輸出門o和內(nèi)部記憶單元c,這些部分共同控制神經(jīng)元的輸出h的設(shè)計,使得整個網(wǎng)絡(luò)更好地把握序列信息之間的關(guān)系[13]。
圖9 LSTM神經(jīng)元結(jié)構(gòu)圖
4.1.3 超參數(shù)設(shè)置
1)損失函數(shù)。從表1可以看出,實驗使用的數(shù)據(jù)集存在嚴重的樣本分布不均衡的問題。部分類別的樣本數(shù)量極少,模型在訓(xùn)練的過程中很難提取規(guī)律。且即使得到分類模型,也容易因過度依賴有限樣本而產(chǎn)生過擬合,當樣本應(yīng)用到新數(shù)據(jù)上時,模型的準確性和魯棒性將會很差。因此根據(jù)每一類標簽的樣本數(shù)量,在損失函數(shù)BCELoss中對不同標簽進行加權(quán)求損失值,能夠有效的解決樣本分布不均衡的問題。樣本標簽的損失值權(quán)重計算方法如式(8)所示,加入權(quán)重后的損失函數(shù)計算方式如(9)所示。樣本數(shù)量越大的標簽損失值對應(yīng)的權(quán)重越小。
wi=1/(log(ci+1))
(8)
(1-y′i)*log(1-yi)]
(9)
2)激活函數(shù)。通過特征融合的方式可以同時利用不同神經(jīng)網(wǎng)絡(luò)的各自特點,獲得不同層次上的心電信息特征,提高分類效果。本文采用合并拼接的融合方式形成包含信息豐富的特征向量,最后使用sigmod分類器,sigmod分類器計算公式如式(10)所示。
F(M)=1/(1+e-M)
(10)
函數(shù)返回向量M屬于各個類別標簽的概率,概率值在[0,1]之間,本實驗選取的閾值為0.5,如果標簽的概率大于0.5,則認為屬于該類別。
本實驗搭建的神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)參數(shù)如表2所示。為了避免神經(jīng)網(wǎng)絡(luò)過擬合的問題,在神經(jīng)網(wǎng)絡(luò)中加入丟棄層(Dropout),丟棄概率P設(shè)置為0.5時。除此之外,還增加了BN(Batch Normalization)層。BN層對每一層網(wǎng)絡(luò)的輸出做歸一化處理,使其服從標準的正態(tài)分布,可以阻止網(wǎng)絡(luò)中每一層的輸入分布發(fā)生改變。
表2 模型結(jié)構(gòu)參數(shù)
本文使用pytorch1.0 框架。通過多次實驗,選擇最優(yōu)的實驗參數(shù)。選擇Adam優(yōu)化器優(yōu)化神經(jīng)網(wǎng)絡(luò),學(xué)習(xí)率為 1e-3;設(shè)置迭代次數(shù)為1000次,批大小設(shè)置為256,使用提前停止的方法訓(xùn)練神經(jīng)網(wǎng)絡(luò)。
本文使用四個性能評價指標衡量模型訓(xùn)練的結(jié)果,分別是精準率P、召回率R、F1 值,漢明損失HL,計算方法如式(11)~(14)所示。
(11)
(12)
(13)
(14)
其中,TP表示真正例,F(xiàn)P表示假正例,F(xiàn)N表示假負例,|D|表示樣本總數(shù),|L|表示標簽總數(shù),xi和yi分別表示真實標簽和預(yù)測的標簽結(jié)果,xor表示異或運算。在P、R、F1、HL四個評價指標中,P、R、F1 值越大,模型性能越好,HL值越小,模型性能越好。
本實驗的基線模型設(shè)計為僅使用神經(jīng)網(wǎng)絡(luò)從傳統(tǒng)特征提取特征的模型(T-NN)。
1)為了驗證神經(jīng)網(wǎng)絡(luò)從全部心電信號提取的特征對心電異常事件預(yù)測的有效性,設(shè)計加入CNN和LSTM并行模型提取的特征(T-AN)實驗。
2)為了驗證多標簽相關(guān)性特征對心電異常事件預(yù)測的有效性,設(shè)計加入PMI多標簽特征(T-AM),加入皮爾遜系數(shù)多標簽特征(T-AP),加入余弦多標簽特征(T-AC)三組實驗。
1)和 2)實驗結(jié)果如表3所示。
表3 實驗結(jié)果1
3)通過表3可知,模型中融合神經(jīng)網(wǎng)絡(luò)從全部心電信號提取特征和多標簽相關(guān)性特征均提高了心電異常事件預(yù)測的正確性。因此設(shè)計神經(jīng)網(wǎng)絡(luò)從全部心電信號提取特征模型分別和加入PMI的多標簽特征(T-AN-AM),加入皮爾遜系數(shù)的多標簽特征(T-AN-AP),加入余弦多標簽特征(T-AN-AC)三組實驗。實驗結(jié)果如表4所示。
表4 實驗結(jié)果2
上述實驗結(jié)果表明,將神經(jīng)網(wǎng)絡(luò)從全部心電信號提取的特征和多標簽相關(guān)性特征加入到模型中,均可以提高心電異常事件預(yù)測的準確性,F(xiàn)1值分別提升至87.60和90.45,比基線模型(T-NN)分別提升2.12%和4.98%。其中本文提出的融合神經(jīng)網(wǎng)絡(luò)特征和多標簽特征的模型(T-AN-AC)在四個評價指標上性能最好,F(xiàn)1最高達到91.64,比基線模型(T-NN)提升了6.17%。
對T-AN-AC模型的實驗結(jié)果進行進一步分析,比較了數(shù)據(jù)集中不同類別的F1值差異,如圖10所示??v軸表示測試集中每個類別標簽的分類效果,橫軸表示類別標簽。
圖10 各心電異常F1值
1)本文對多標簽的心電異常事件建模方法進行了深入的研究。使用小波變換實現(xiàn)心電信號特征點定位和波形檢測。相比較基于傳統(tǒng)特征的心電異常分類器準確率有了明顯的提升。
2)相比較其它工作的研究,本模型并未采用深度神經(jīng)網(wǎng)絡(luò)采用深度殘差神經(jīng)網(wǎng)絡(luò)等方法,依靠增加網(wǎng)絡(luò)深度和參數(shù)數(shù)量來提升模型性能,而是從心電數(shù)據(jù)的內(nèi)在特征出發(fā),設(shè)計出符合心電特征的神經(jīng)網(wǎng)絡(luò)模型。本模型極大降低了參數(shù)數(shù)量和訓(xùn)練時間,并且具有較高的分類準確性,分類的精準率、召回率、F1和漢明損失分別達到92.12、91.16、91.64、0.0192。
3)然而并未深入研究心電異常事件背后的致病機理與心電波形的關(guān)系,在后續(xù)研究中,會對心電異常事件預(yù)測病理進行研究,并與心電信號的波形結(jié)合起來,選擇與疾病相關(guān)度更高的心電特征,研究其中的內(nèi)在聯(lián)系。