艾文書 趙興群
東南大學(xué)生物科學(xué)與醫(yī)學(xué)工程學(xué)院,南京210000
世界衛(wèi)生組織的數(shù)據(jù)表明,心血管疾病是人類的頭號(hào)死因,每年死于各類心血管疾病的人數(shù)多于其他任何疾病。《中國(guó)心血管報(bào)告2018》顯示,我國(guó)心血管疾病的患病率與死亡率處于上升趨勢(shì),心血管疾病的死亡率居各種疾病的首位[1]。
心電圖(electrocardiogram,ECG)是心臟電活動(dòng)在體表的一種綜合表現(xiàn),其中心率節(jié)拍可以反映生理和病理的信息,在一定程度上可以客觀反映心臟各部分的生理狀況。心電圖是診斷心率失常的主要依據(jù),通過(guò)連續(xù)監(jiān)測(cè)ECG信號(hào)可以識(shí)別心率狀況,從而判斷是否發(fā)生心率不齊。傳統(tǒng)的心律失常診斷方法是通過(guò)人為觀察并識(shí)別ECG中的心律失常特征信號(hào),此過(guò)程需要檢測(cè)人員長(zhǎng)時(shí)間觀測(cè),且在一定程度上有誤診的可能,因此自動(dòng)檢測(cè)心率失常顯得尤為重要。
近年來(lái),在心律失常檢測(cè)領(lǐng)域出現(xiàn)了幾種簡(jiǎn)化監(jiān)測(cè)任務(wù)的方法。其中,Li等[2-3]用支持向量機(jī)(support vector machine,SVM)分辨不同的ECG類型;Nanjundegowda和Meshram[4]用深度神經(jīng)網(wǎng)絡(luò)(deep neural networks,DNN)判斷ECG是正常還是異常;Dbeyli[5]使用循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks,RNN)分類ECG信號(hào),得到98.06%的正確率;Park等[6]使用K最近鄰(K-nearest neighbor,KNN)分類器分類ECG信號(hào),得到98.9%的正確率;Kiranyaz等[7]將卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)應(yīng)用于一維ECG信號(hào)分類,其基于一維CNN提出了一種患者特異性ECG分類和監(jiān)測(cè)系統(tǒng),對(duì)室性異位搏動(dòng)(ventricular ectopicbeats,VEB)和室上性異位搏動(dòng)(supraventricular ectopic beats,SVEB)的分類準(zhǔn)確率分別為99.0%和97.6%;Jun等[8]將一維ECG轉(zhuǎn)換為128 px×128 px的圖像,然后使用2D-CNN進(jìn)行分類。
本研究中,將原始的一維ECG信號(hào)按照R點(diǎn)(R波波峰點(diǎn))前后進(jìn)行切分,獲取一個(gè)RR周期,將RR周期內(nèi)的波形生成為128 px×128 px大小的圖像,然后使用2D-CNN對(duì)圖像進(jìn)行分類,以提升ECG分類算法的普適性,使之可以用來(lái)為醫(yī)生診斷心臟疾病提供輔助依據(jù)。
采用的數(shù)據(jù)集為美國(guó)麻省理工學(xué)院提供的用于研究心律失常的數(shù)據(jù)集(MIT-BIH)[9],選擇該數(shù)據(jù)集中來(lái)自47位患者的48個(gè)ECG信號(hào),信號(hào)的采樣頻率為360 Hz。其中,102、104、107和214號(hào)為起搏心電記錄,因此將其排除,選擇剩下的44個(gè)ECG信號(hào)。根據(jù)44個(gè)ECG信號(hào)的注釋中記錄的R波位置,以前一個(gè)R波位置的后50個(gè)點(diǎn)開(kāi)始到后一個(gè)R波位置的前50個(gè)點(diǎn)結(jié)束,截取該段心電信號(hào)作為單獨(dú)ECG信號(hào)圖,該心電信號(hào)Fk定義為
式中:T(n)表示數(shù)據(jù)集中一個(gè)患者的離散心電信號(hào);Qpeak(k)表示該心電信號(hào)的第k個(gè)R波的位置。
美國(guó)醫(yī)療促進(jìn)協(xié)會(huì)的ANSL/AAMI EC57:2012標(biāo)準(zhǔn)將ECG節(jié)拍主要分成5大類:N類,即正?;蛘呤鲗?dǎo)阻滯,包括正常搏動(dòng)、左束支傳導(dǎo)阻滯、右束支傳導(dǎo)阻滯、室性逸搏、交界性逸搏;S類,即室上性異常,包括房性早搏、異常房性早搏、交界性早搏;V類,即心室異常,包括室性早搏和室性逸搏;F類,即室融合心跳;Q類,即未知類。因?yàn)镸IT-BIH數(shù)據(jù)集中Q類信號(hào)較少,參考相關(guān)研究,本研究中忽略Q類信號(hào)。
依照MIT-BIH數(shù)據(jù)集中給定的R波位置,將R波切分,并對(duì)切分后的波形歸一化,以采樣點(diǎn)為橫坐標(biāo),幅值(范圍為[0,1])為縱坐標(biāo),使用Python語(yǔ)言中的matplotlib繪圖庫(kù),將ECG信號(hào)生成128 px×128 px大小的圖像,并將其標(biāo)注。需要注意的是,在將圖像讀取并輸入CNN之前,將圖像像素顏色反轉(zhuǎn),即圖像中原先黑色像素的顏色改為255(純白),白色無(wú)信息部分的顏色改為0(純黑)。最終得到N類樣本88043例,S類樣本2777例,V類樣本6751例,F(xiàn)類樣本801例。
數(shù)據(jù)增強(qiáng)是將圖像用作輸入數(shù)據(jù)的關(guān)鍵技術(shù)之一。由于單個(gè)ECG信號(hào)值的失真可能會(huì)降低測(cè)試集的性能,因此研究者無(wú)法手動(dòng)將增強(qiáng)數(shù)據(jù)添加到訓(xùn)練集中。與CNN分類器不同,其他分類器(如SVM,前向神經(jīng)網(wǎng)絡(luò)和基于樹(shù)的算法模型)假定每種ECG信號(hào)的類別是均勻分布的,因此輸入數(shù)據(jù)的分布不均衡會(huì)使模型偏向于分布較大的分類。但是,本研究中使用的CNN分類模型使用二維ECG圖像作為輸入數(shù)據(jù),對(duì)圖像使用裁剪和調(diào)整大小操作不會(huì)降低分類性能,反而能擴(kuò)大訓(xùn)練數(shù)據(jù)。當(dāng)使用CNN圖像分類器時(shí),數(shù)據(jù)擴(kuò)充可以有效減少數(shù)據(jù)的過(guò)度使用并保持類之間的平衡分配。此優(yōu)勢(shì)在醫(yī)學(xué)數(shù)據(jù)分析中尤為重要,因?yàn)獒t(yī)學(xué)數(shù)據(jù)中,正例的比例遠(yuǎn)遠(yuǎn)高于負(fù)例的比例。在這種情況下,由于分類器采用梯度下降學(xué)習(xí),數(shù)據(jù)集中相對(duì)較少的類別(如心律不齊)會(huì)被忽略。
基于上述情況,本研究中通過(guò)9種不同的裁剪方法增強(qiáng)了分類標(biāo)注為S、V、F的ECG心律失常搏動(dòng)信號(hào)。9種裁剪方法的方向分別為左上、中上、右上、左中、中、右中、左底部、中央底部和右底部。每種裁剪方法都會(huì)將原始圖像轉(zhuǎn)換為108 px×108 px大小的圖像。然后,將這些增強(qiáng)的圖像調(diào)整為和原始圖像大小一致的128 px×128 px。這樣,在輸入一張圖像的情況下,就可以得到10張注釋信息相同的圖像。
此外,為了增強(qiáng)測(cè)試集的分布,在對(duì)圖像進(jìn)行裁剪時(shí),每種裁剪方法都會(huì)采用2個(gè)隨機(jī)變量,隨機(jī)變量的范圍為[0,10)內(nèi)的整數(shù),表示裁剪圖像在原圖像上的x方向和y方向上的偏移量。例如,當(dāng)裁剪方向?yàn)樽笊蠒r(shí),在不使用隨機(jī)變量條件下,其截取的圖像就是原來(lái)圖像中的確定位置,如果使用隨機(jī)變量,則左上裁剪是在原圖像0~137 px正方形像素區(qū)域內(nèi)隨機(jī)截取邊長(zhǎng)為128 px的正方形區(qū)域。上述的圖像擴(kuò)增是在訓(xùn)練開(kāi)始階段于模型內(nèi)部完成的,因?yàn)閺拇疟P復(fù)制這些圖像會(huì)耗費(fèi)一定的時(shí)間,導(dǎo)致學(xué)習(xí)速度降低。原始圖像和樣本擴(kuò)增后的圖像如圖1所示。
圖1 原始數(shù)據(jù)和擴(kuò)增數(shù)據(jù)
在原始數(shù)據(jù)中,S類樣本占比為2.8%,V類樣本占比為6.8%,F(xiàn)類樣本占比為0.8%,N類樣本占比為89.6%。經(jīng)過(guò)數(shù)據(jù)擴(kuò)增后,S類樣本占比為14.5%,V類樣本占比為35.3%,F(xiàn)類樣本占比為4.2%,N類樣本占比為46.0%。數(shù)據(jù)集在擴(kuò)增前后的分類統(tǒng)計(jì)數(shù)據(jù)見(jiàn)表1。
表1 數(shù)據(jù)集分類統(tǒng)計(jì)表
當(dāng)訓(xùn)練集和測(cè)試集改變以后,模型在驗(yàn)證集上的指標(biāo)很容易發(fā)生變化。在一般情況下,驗(yàn)證集是隨機(jī)地從整個(gè)數(shù)據(jù)集中抽取的。但是,由于整個(gè)數(shù)據(jù)集的分布不均衡,且特征數(shù)據(jù)較少,每次隨機(jī)取得的驗(yàn)證集的評(píng)價(jià)指標(biāo)必定產(chǎn)生變化,因此本研究中使用k折交叉驗(yàn)證法[10],該方法將整個(gè)數(shù)據(jù)集劃分為k個(gè)大小相似的互斥子集,每個(gè)子集都盡可能地保持?jǐn)?shù)據(jù)分布的均勻性,然后每次使用k-1個(gè)子集作為訓(xùn)練集進(jìn)行訓(xùn)練,可以進(jìn)行k次訓(xùn)練和測(cè)試,返回的結(jié)果是k個(gè)測(cè)試結(jié)果的均值。本研究中k=8,每個(gè)子集通過(guò)分層采樣,保證每個(gè)子集都與數(shù)據(jù)集具有相同的類別分布。按照k=8,每個(gè)訓(xùn)練集包含的樣本數(shù)量如下:N類77 000例、S類24 000例、V類59 000例、F類7 000例。在每個(gè)“時(shí)期”(epoch,即數(shù)據(jù)送入網(wǎng)絡(luò)中完成一次前向計(jì)算及反向傳播的過(guò)程)開(kāi)始階段,從訓(xùn)練集中隨機(jī)抽取10 000個(gè)N類、7 000個(gè)S類、7 000個(gè)V類、7 000個(gè)F類數(shù)據(jù)組成此次的訓(xùn)練子集。
本研究中采用CNN作為ECG心律失常信號(hào)的分類器?,F(xiàn)有的前饋神經(jīng)網(wǎng)絡(luò)并不適合做圖像分類,而CNN可以通過(guò)應(yīng)用非線性濾波器并通過(guò)應(yīng)用多個(gè)濾波器來(lái)提取空間相鄰像素的相關(guān)性,從而可以提取圖像的各種局部特征。針對(duì)ECG圖像的空間局限性,可以使用2D-CNN中的2D卷積層和池化層來(lái)過(guò)濾這些局限性。其中,2D卷積層(Conv2D)用于提取圖像特征,最大池化層(MaxPooling2D)[11]用于減少特征和參數(shù),加快訓(xùn)練。卷積層的輸出無(wú)法直接連接全連接層(Dense),因此需要Flatten層[12]將卷積層的數(shù)據(jù)壓平。全連接層用于對(duì)特征進(jìn)行組合,減少特征位置對(duì)分類造成的影響,使用Dropout層[13]可以減少過(guò)擬合,加快訓(xùn)練。
激活函數(shù)定義了模型中卷積核的輸出,在本研究中使用的激活函數(shù)有ReLU函數(shù)[14]和Softmax函數(shù)[15],2D卷積層和最后一層之前的全連接層使用的ReLU激活函數(shù)可表示為
最后一層全連接層使用的激活函數(shù)為Softmax函數(shù),其能將一個(gè)任意含實(shí)數(shù)的k維向量壓縮到另一個(gè)k維實(shí)向量中,使每一個(gè)元素的范圍都在(0,1)區(qū)間內(nèi),并且所有元素的和為1。
該輸出表示概率值,表示屬于各個(gè)類別的概率。
神經(jīng)網(wǎng)絡(luò)中的損失函數(shù)是訓(xùn)練階段用來(lái)衡量模型訓(xùn)練樣本輸出和模型輸出的差值的函數(shù)。損失函數(shù)需要優(yōu)化器來(lái)得到最小值。神經(jīng)網(wǎng)絡(luò)中有很多損失函數(shù),深度學(xué)習(xí)中常用的損失函數(shù)為交叉熵?fù)p失函數(shù)(cross-entropy function)[16]:
式中:y表示真實(shí)值,a表示模型的輸出值,n為批尺寸(batchsize)。
為了讓深度學(xué)習(xí)網(wǎng)絡(luò)更好地學(xué)習(xí)V類和S類的特征,本研究中提出使用帶權(quán)重系數(shù)的Loss函數(shù)。
式中:α為權(quán)重系數(shù)。當(dāng)種類為N類時(shí),α取值為1,其他情況下為5。
為了使損失函數(shù)最小,需要使用梯度下降優(yōu)化器函數(shù),一般可以使用的優(yōu)化器有Adam[17]、Adagrad[18]、Adadelta和SGD[19],本研究中使用的優(yōu)化器為Adam,初始學(xué)習(xí)率為0.001。
本研究中采用的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。Conv2D_1和Conv2D_2各包含2個(gè)卷積層,每個(gè)卷積窗口的長(zhǎng)寬均為3;Conv2D_1輸出空間維度為64,Conv2D_2輸出空間維度為128,激活函數(shù)均為ReLU。Conv2D_3包含3個(gè)卷積層,卷積窗大小為3×3,輸出空間維度為256,卷積層的padding均為same[20]。最大池化層的步長(zhǎng)為2×2。Dropout層的比率為0.5。
圖2 心電信號(hào)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
為了減少過(guò)擬合,與文獻(xiàn)[8]中的視覺(jué)幾何組(visual geometry group,VGG)網(wǎng)絡(luò)相比,本研究中所使用的模型在第2個(gè)和第3個(gè)卷積層后增加了批量正則化層(batch normalization,BN),全連接層使用了L2正則化。
采用的評(píng)價(jià)指標(biāo)為受試者工作特征(receiver operating characteristic,ROC)曲線下面積(area under curve,AUC)、準(zhǔn)確率(accuracy)、精確率(precision)、召回率(recall)和特異性(specificity)[21]。AUC表示ROC曲線和x=1圍成幾何圖形的面積,范圍為(0,1),越接近于1,表示模型的真實(shí)性越高。表2顯示了AUC指標(biāo)解釋。
表2 受試者工作特征曲線下面積(AUC)判斷分類器指標(biāo)
準(zhǔn)確率表示預(yù)測(cè)正確的結(jié)果占總數(shù)的比例。
精確率表示預(yù)測(cè)為正且預(yù)測(cè)正確的樣本占所有預(yù)測(cè)為正的樣本的比例。
召回率表示預(yù)測(cè)為正且預(yù)測(cè)正確的樣本占所有實(shí)際為正的樣本的比例。
特異性表示表示預(yù)測(cè)為負(fù)且實(shí)際值也為負(fù)占所有實(shí)際為負(fù)樣本的比例。
上式中:FN為被判定為負(fù)樣本的正樣本數(shù);FP為被判定為正樣本的負(fù)樣本數(shù);TN為被判定為負(fù)樣本的負(fù)樣本數(shù);TP為被判定為正樣本的正樣本數(shù)。
在分類實(shí)驗(yàn)開(kāi)始階段,設(shè)置batchsize為16,設(shè)置epoch大小為100,讀取所有數(shù)據(jù)集中的圖像,按照前述方法對(duì)標(biāo)記為V類,S類和F類的樣本進(jìn)行擴(kuò)增。然后按照k=8,將每個(gè)分類分成均勻的8份,再將所有數(shù)據(jù)組成8組,其中7組為訓(xùn)練集,剩下的1組為驗(yàn)證集,混淆矩陣見(jiàn)表3。在本研究中,使用Python語(yǔ)言中的Keras接口編寫神經(jīng)網(wǎng)絡(luò)模型,損失函數(shù)使用categorical_crossentropy,每個(gè)epoch結(jié)尾保存當(dāng)前模型,當(dāng)categorical_accuracy連續(xù)5個(gè)epoch不再增長(zhǎng)的時(shí)候,結(jié)束此次訓(xùn)練,并使用驗(yàn)證集得到評(píng)價(jià)指標(biāo)。
表3 混淆矩陣
圖3為訓(xùn)練過(guò)程對(duì)應(yīng)的準(zhǔn)確率,最終得到的模型的準(zhǔn)確率為99.02%,AUC為0.973。
圖3 模型訓(xùn)練的準(zhǔn)確率結(jié)果
本研究中,主要關(guān)注的是模型對(duì)V類中的室性異位搏動(dòng)(VEB)和S類中的室上性異位搏動(dòng)(SVEB)的分類性能。表4顯示的是本研究中得到的結(jié)果和相關(guān)文獻(xiàn)中的結(jié)果對(duì)比。
表4 文獻(xiàn)結(jié)果對(duì)比表
通過(guò)將ECG轉(zhuǎn)換為圖像,然后通過(guò)2D-CNN提取圖像特征訓(xùn)練分類模型,使模型的AUC達(dá)0.973。該結(jié)果表明,該模型的分類性能很優(yōu)秀。
通過(guò)樣本擴(kuò)增,在準(zhǔn)確率不降低的情況下,提升了模型的召回率和特異性,模型的普適性得到顯著提升。文獻(xiàn)[7]和文獻(xiàn)[22]的VEB召回率指標(biāo)均高于SVEB,原因是數(shù)據(jù)集中的S類樣本數(shù)量較少,而本研究中所用模型得到的VEB的指標(biāo)和SVEB指標(biāo)基本相同,證明所使用的隨機(jī)偏移的樣本擴(kuò)增方法能夠解決樣本過(guò)少的問(wèn)題。
與文獻(xiàn)[8]中的完整的VGG網(wǎng)絡(luò)相比,本研究中通過(guò)對(duì)VGG網(wǎng)絡(luò)進(jìn)行優(yōu)化,減少VGG網(wǎng)絡(luò)的深度,并且通過(guò)使用BN層和L2正則化來(lái)減少過(guò)擬合的影響。結(jié)果表明在減少網(wǎng)絡(luò)參數(shù)的情況下模型的SVEB和VEB的召回率并未降低。
本研究中,為了更好地學(xué)習(xí)S類和V類的特征,引入了帶有權(quán)重系數(shù)的交叉熵?fù)p失函數(shù)。與文獻(xiàn)[8]中的VGG網(wǎng)絡(luò)和CNN網(wǎng)絡(luò)相比,所用模型在VEB和SVEB的精確率上有很大提升。
提出了一種基于2D-CNN識(shí)別ECG信號(hào)是否正常的方法,將原始一維ECG信號(hào)轉(zhuǎn)換為128 px×128 px的圖像,使用樣本擴(kuò)增方法解決樣本不均衡問(wèn)題,利用深度CNN提取圖像特征,并對(duì)圖像進(jìn)行分類,通過(guò)使用帶有權(quán)重系數(shù)的交叉熵?fù)p失函數(shù),使模型能夠更好地學(xué)習(xí)V類和S類的特征。8折交叉驗(yàn)證結(jié)果表明,與文獻(xiàn)報(bào)道的其他分類模型相比,本研究中所提出的模型在保持對(duì)VEB和SVEB的準(zhǔn)確率的指標(biāo)的同時(shí),得到了良好的召回率性能和特異性性能,模型的普適性得到顯著提升。
利益沖突所有作者均聲明不存在利益沖突