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