吳 燃,唐清垚,姜小明,李欣蔚,李章勇
(1.重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶 400065;2.生物醫(yī)學(xué)工程研究中心,重慶 400065)
心電圖(electrocardiogram,ECG)是一種可視化時(shí)間序列的技術(shù),它使用心電圖儀記錄心臟每一心動(dòng)周期的活動(dòng),其形態(tài)特征可反映潛在的心律不齊癥狀,是醫(yī)生判斷異常心律的重要依據(jù)[1]。對(duì)于心律失常的早期診斷,需要采用多種方法進(jìn)行早期監(jiān)測(cè)和控制[2]。然而,部分心律失常的病因相當(dāng)復(fù)雜,可能會(huì)突然發(fā)生并導(dǎo)致死亡。因此,高效實(shí)時(shí)監(jiān)測(cè)心律失常具有重要意義,這些工作可以通過(guò)一個(gè)自動(dòng)診斷系統(tǒng)減少醫(yī)生的工作量[3]。
為了減少心電圖醫(yī)生的工作量,并減小人工的容錯(cuò)率,對(duì)心電成分的有效分類(lèi)則顯得尤為重要。在采集過(guò)程中,心電信號(hào)容易受到噪聲、基線漂移、運(yùn)動(dòng)偽影等各種不利因素的干擾,患者之間的個(gè)體差異性較大,同一患者在不同時(shí)間的測(cè)試結(jié)果也會(huì)受當(dāng)時(shí)身體狀況的影響,即使有經(jīng)驗(yàn)的專(zhuān)家也很難完全準(zhǔn)確判斷疾病類(lèi)型。因此,對(duì)心電波形的檢測(cè)與特征提取是解決判斷疾病類(lèi)型的關(guān)鍵步驟[4],隨著人工智能技術(shù)的發(fā)展,很多模式識(shí)別的方法已被用于ECG信號(hào)的分類(lèi)識(shí)別,比如功率譜估計(jì)、小波分析、聚類(lèi)等智能識(shí)別算法[5-10],而傳統(tǒng)的機(jī)器學(xué)習(xí)方法,常采用 K近鄰算法(K-nearest neighbors KNN、決策樹(shù)和支持向量機(jī)(support vector machine,SVM)等算法廣泛應(yīng)用于心律失常的分類(lèi)。
雖然已經(jīng)有很多分類(lèi)方法被提出來(lái)提高特征的質(zhì)量,但這些算法仍然存在一些缺陷。一方面,分類(lèi)的效果與所選擇的特征高度相關(guān),特征的選擇容易受到主觀因素的影響;另一方面,這些方法常常會(huì)遇到過(guò)擬合的問(wèn)題。相比之下,深度學(xué)習(xí)架構(gòu)比傳統(tǒng)方法更有優(yōu)勢(shì)。在近年來(lái)的深度學(xué)習(xí)網(wǎng)絡(luò)中,引入了許多新的具有固有特征的神經(jīng)網(wǎng)絡(luò)。例如循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)[11]克服了此前處理心電信號(hào)時(shí)只能單獨(dú)一個(gè)個(gè)輸入的限制,使心電這樣的序列數(shù)據(jù)可以得到更好的完整性處理,并且心拍前后之間相互關(guān)聯(lián)。長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(long short-term memory,LSTM)[12]通過(guò)引入門(mén)機(jī)制和記憶單元,彌補(bǔ)了傳統(tǒng)RNN梯度消失的缺陷,在提取心電這樣的序列時(shí)比RNN更好,但是不能并行運(yùn)算,且對(duì)不嚴(yán)格按時(shí)間一環(huán)扣一環(huán)的序列數(shù)據(jù)欠佳,對(duì)于針對(duì)實(shí)際場(chǎng)景中心電成分的分類(lèi)需要分割而言效果不好,而卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)[13]在分類(lèi)的特征提取階段,將主成成分和多項(xiàng)式逼近相結(jié)合,對(duì)特征提取階段更加細(xì)致,且去除大量多余參數(shù),整體提高了學(xué)習(xí)分類(lèi)的性能,更易于實(shí)際場(chǎng)景的部署。但是它對(duì)于每個(gè)卷積層,內(nèi)核大小都是固定的,因此,受到了心電成分中形態(tài)特征復(fù)雜性的影響。文獻(xiàn) [14]提出了一種新的多核尺度調(diào)節(jié)卷積神經(jīng)網(wǎng)絡(luò)來(lái)進(jìn)行檢測(cè)人群計(jì)數(shù),能夠在單列結(jié)構(gòu)中增加生成與尺度相關(guān)的特征,因此,使人群計(jì)數(shù)性能得到提升。本文據(jù)此提出多核尺度的卷積神經(jīng)網(wǎng)絡(luò)算法用于心電成分多分類(lèi)實(shí)時(shí)診斷。針對(duì)傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)做出改進(jìn),采用多核尺度輸入,每個(gè)卷積層使用不同大小的內(nèi)核,更容易增加在某一維度的特征效果,且增加傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)為4個(gè)卷積層,在對(duì)心電成分的分類(lèi)中表現(xiàn)更佳。
首先,將ECG信號(hào)進(jìn)行小波去噪,濾除基線漂移、肌電噪聲等干擾信號(hào)后進(jìn)行心拍分割;然后,針對(duì)不均衡樣本進(jìn)行合成少數(shù)類(lèi)過(guò)采樣技術(shù)(synthetic minority oversampling technique,SMOTE)數(shù)據(jù)擴(kuò)增;最后,通過(guò)增強(qiáng)小樣本數(shù)據(jù)集,設(shè)計(jì)并實(shí)現(xiàn)了心電成分中心拍的分類(lèi)模型,采用美國(guó)醫(yī)療儀器促進(jìn)協(xié)會(huì)(association for the advancement of medical instrumentation, AAMI)心拍分類(lèi)標(biāo)準(zhǔn)[15],使用MIT-BIH心律失常數(shù)據(jù)庫(kù)中的44條數(shù)據(jù),完成了心律失常五分類(lèi)識(shí)別實(shí)驗(yàn),對(duì)比驗(yàn)證了增加SMOTE數(shù)據(jù)擴(kuò)增,多核尺度模型和有無(wú)濾波心電分類(lèi)的有效性,并給出了詳細(xì)的實(shí)驗(yàn)結(jié)果分析。
MIT-BIH數(shù)據(jù)庫(kù)是麻省理工和貝絲以色列醫(yī)院合作提供的研究心律失常的數(shù)據(jù)庫(kù),是國(guó)際上公認(rèn)的3大標(biāo)準(zhǔn)心電數(shù)據(jù)庫(kù)之一,且免費(fèi)開(kāi)源,共有48條雙導(dǎo)聯(lián)心電數(shù)據(jù),記錄長(zhǎng)度為30 min,采樣率為360 Hz。本文去掉了其中的102,104,107,217這4條未包含所分類(lèi)樣本的數(shù)據(jù)。按照AAMI制定的心電5大類(lèi):非異位心跳(N)、室上性異位心跳(Sveb)、室性異位心跳(Veb)、融合心跳(F)、未知心跳(Q)進(jìn)行分類(lèi),如圖1所示。
圖1 AAMI心電分類(lèi)標(biāo)準(zhǔn)Fig.1 AAMI ecg classification criteria
在識(shí)別分類(lèi)之前,還需要將連續(xù)的心電信號(hào)分割為單個(gè)的心拍,本文采用的是由MIT-BIH官方給定的R峰定位標(biāo)簽,由R峰為基準(zhǔn)點(diǎn),取峰值前0.4 s和后0.5 s作為一個(gè)完整心拍,整個(gè)過(guò)程如圖2所示。
圖2 心拍分割示意圖Fig.2 Diagram of heart beat segmentation
將心電信號(hào)分割之后形成了大量的樣本數(shù)量,這樣有利于深度學(xué)習(xí)的有效分類(lèi),但依然存在樣本類(lèi)別不均衡的問(wèn)題。樣本類(lèi)別不均衡將導(dǎo)致原本樣本數(shù)量少的分類(lèi)所包含的特征過(guò)少,從而很難提取到特征規(guī)律;即使得到分類(lèi)模型,也很容易產(chǎn)生過(guò)擬合問(wèn)題,當(dāng)模型應(yīng)用到新的樣本數(shù)據(jù)上時(shí),模型的準(zhǔn)確性會(huì)很不理想。本文通過(guò)SMOTE算法擴(kuò)增方式使用過(guò)采樣心電小樣本擴(kuò)充小類(lèi),產(chǎn)生新數(shù)據(jù),用以均衡數(shù)據(jù)偏少的樣本。SMOTE算法是由Chawla等[16]提出的,目前使用十分廣泛。SMOTE算法思想是用KNN方法合成新樣本,合成策略是對(duì)每個(gè)少數(shù)類(lèi)樣本x,從它的最近鄰中隨機(jī)選一個(gè)樣本xn,然后在x和xn之間的連線上隨機(jī)選一個(gè)點(diǎn)作為新合成的少數(shù)類(lèi)樣本,算法流程如下。
步驟1對(duì)于少數(shù)類(lèi)中的每個(gè)樣本x,定義特征空間,將每個(gè)樣本映射到特征空間中的某個(gè)點(diǎn),按歐氏距離找到k個(gè)最近鄰樣本。
步驟2根據(jù)樣品不平衡率確定采樣倍率N,對(duì)于每個(gè)少數(shù)樣本x,假設(shè)所選擇的近鄰為xn,從其k個(gè)近鄰中隨機(jī)選擇幾個(gè)樣本。
步驟3對(duì)于每一個(gè)隨機(jī)選出的近鄰xn,根據(jù)(1)式用原始樣本構(gòu)建一個(gè)新的樣本,表示為
xnew=x+rand(0,1)×(xn-x)
(1)
步驟4重復(fù)選擇取樣,直到大小樣本數(shù)量達(dá)到平衡為止。更新采樣過(guò)程如圖3所示。
圖3 更新最近鄰擴(kuò)增樣本Fig.3 Update the nearest neighbor amplified sample
這樣,綜合創(chuàng)建了平衡集,在每個(gè)類(lèi)的訓(xùn)練數(shù)據(jù)集中包含相同數(shù)量的實(shí)例。擴(kuò)增樣本分布比例數(shù)量如表1所示。
表1 不同比例擴(kuò)增統(tǒng)計(jì)表
卷積神經(jīng)網(wǎng)絡(luò)CNN是目前使用最廣泛的神經(jīng)網(wǎng)絡(luò)之一,在圖像分析和處理領(lǐng)域取得了許多突破。CNN相對(duì)于傳統(tǒng)圖像處理算法的優(yōu)勢(shì)之一是避免了預(yù)處理過(guò)程,且參數(shù)量規(guī)模大大減小,學(xué)習(xí)效果提高,它對(duì)原始圖像進(jìn)行直接處理,已經(jīng)大量運(yùn)用于各類(lèi)圖像相關(guān)的應(yīng)用中。CNN是一個(gè)由輸入輸出層和多個(gè)隱含層組成的深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),其中,卷積核參數(shù)共享隱含層層間連接的稀疏性,使得卷積神經(jīng)網(wǎng)絡(luò)對(duì)網(wǎng)格特征的計(jì)算權(quán)更小,對(duì)數(shù)據(jù)的特征提取具有穩(wěn)定作用。由于心電信號(hào)的維數(shù)不同,心電信號(hào)不同于其他圖像處理,它是一維信號(hào),因此,需要使用一維CNN處理。
在傳統(tǒng)CNN架構(gòu)的一個(gè)卷積層中,使用了大小相同的固定內(nèi)核,所有的功能都在相同的尺度上進(jìn)行訓(xùn)練和卷積。為了增加對(duì)不同尺度的感知,提出增加多核尺度的卷積神經(jīng)網(wǎng)絡(luò),采用不同輸入端的核尺度用來(lái)增加特征的多樣性。因此,不同的內(nèi)核大小可以更好地反映出差別,同時(shí)增加原始卷積神經(jīng)網(wǎng)絡(luò)為4個(gè)卷積層。
改進(jìn)后的CNN結(jié)構(gòu)如圖4所示。將傳統(tǒng)CNN增加到了11層:4個(gè)卷積層、4個(gè)池化層和3個(gè)全連接層。對(duì)輸入數(shù)據(jù)進(jìn)行調(diào)整,以適應(yīng)我們的模型接口,并通過(guò)以下架構(gòu)進(jìn)行處理。第1,3,5和7層是卷積層,在每個(gè)卷積層中調(diào)整3個(gè)不同大小的內(nèi)核,以適應(yīng)不同的尺度。第1層卷積層,使用了3種不同大小的內(nèi)核(21,29和37),每個(gè)大小的內(nèi)核數(shù)是4;第2層卷積層的核大小分別為23,31,39,這一層包含16個(gè)內(nèi)核;第3層卷積層的核大小分別為25,33,41,這一層包含32個(gè)內(nèi)核;第4層卷積層的核大小分別為27,35,43,這一層包含64個(gè)內(nèi)核。4個(gè)卷積層的步幅都設(shè)置為1。在每個(gè)卷積層之后,對(duì)得到的特征圖應(yīng)用大小為2的最大池化。池化層還提供3種大小的輸出,第9層的輸出被合并輸入到第10層,然后連接3個(gè)完全連接層,3個(gè)完全連接層的神經(jīng)元數(shù)量分別是256,32和5。對(duì)于4個(gè)卷積層和前2個(gè)全連接層,將經(jīng)過(guò)整流的線性單元(rectified linear unit,RELU)作為激活函數(shù)。以Softmax函數(shù)作為最后一層的激活函數(shù)輸出,對(duì)應(yīng)于類(lèi)別N,Sveb,Veb,F(xiàn),Q這5個(gè)分類(lèi),學(xué)習(xí)率調(diào)整為0.01,整個(gè)訓(xùn)練過(guò)程迭代100個(gè)epoch。
圖4 多核尺度CNN模型圖Fig.4 Multi-core scale CNN model diagram
實(shí)驗(yàn)平臺(tái)硬件配置為Intel Xeon Gold 6230 CPU @2.10 GHz,顯卡為4張TITAN RTX,操作系統(tǒng)為Ubuntu 16.04系統(tǒng),模型基于Python語(yǔ)言的Keras和Tensorflow框架實(shí)現(xiàn)。
研究中,選擇總精度(Acc)來(lái)評(píng)估分類(lèi)器的性能。然而,不平衡數(shù)據(jù)集很容易影響整體精度。因此,增加敏感性(sensitivity,SEN)、陽(yáng)性預(yù)測(cè)值(+P)以及F1值進(jìn)行比較,并以混淆矩陣來(lái)表示模型的分類(lèi)結(jié)果的詳細(xì)信息,在多分類(lèi)問(wèn)題中混淆矩陣的每一行代表真實(shí)類(lèi)別,每一列代表預(yù)測(cè)類(lèi)別。
(2)
(3)
(4)
(5)
(2)—(5)式中:TP表示將正例預(yù)測(cè)為正例;FP表示將實(shí)際為負(fù)例預(yù)測(cè)為正例;TN表示將負(fù)例預(yù)測(cè)為負(fù)例;FN表示將實(shí)際為正例預(yù)測(cè)為負(fù)例。采用醫(yī)學(xué)數(shù)據(jù)常用的Sen和+P來(lái)做參考。
為了更好地證明模型的魯棒性,對(duì)不同比例采樣百分比進(jìn)行比較,觀測(cè)靈敏度的趨勢(shì)圖,如圖5所示。圖5中,取50%比例時(shí)的擴(kuò)增靈敏度為97.99%,取70%比例時(shí)的擴(kuò)增靈敏度為98.97%,取90%比例時(shí)的擴(kuò)增靈敏度為98.55%,選取擴(kuò)增靈敏度最高的70%比例N類(lèi)樣本作為SMOTE擴(kuò)增基礎(chǔ)數(shù)量進(jìn)行后續(xù)實(shí)驗(yàn),為了測(cè)試模型的有效性以及貼近實(shí)際,只針對(duì)訓(xùn)練集數(shù)據(jù)進(jìn)行SMOTE擴(kuò)增,測(cè)試集仍然使用原始數(shù)據(jù)劃分。實(shí)驗(yàn)采用了2,5,10折交叉驗(yàn)證對(duì)比,并用keras自動(dòng)更新最佳模型文件,最后實(shí)驗(yàn)結(jié)果如表2所示。
圖5 50%~90%比例靈敏度趨勢(shì)圖Fig.5 Trend chart of sensitivity of 50%~90% ratios
表2 混淆矩陣實(shí)驗(yàn)結(jié)果
為了進(jìn)行差細(xì)化比較,用A,B,C,D分組做對(duì)比實(shí)驗(yàn),驗(yàn)證所用方法的有效性。實(shí)驗(yàn)A對(duì)無(wú)濾波多核尺度卷積神經(jīng)網(wǎng)絡(luò)有無(wú)使用SMOTE數(shù)據(jù)擴(kuò)增方式做對(duì)比,在相同環(huán)境下測(cè)試,進(jìn)行SMOTE過(guò)采樣樣本后,模型分類(lèi)準(zhǔn)確率得到有效提高;實(shí)驗(yàn)B對(duì)進(jìn)行了SMOTE數(shù)據(jù)擴(kuò)增的單一核尺度CNN模型和多核尺度CNN模型做對(duì)比,算法在準(zhǔn)確率、敏感度、陽(yáng)性預(yù)測(cè)值以及F1綜合評(píng)價(jià)指標(biāo)上均有較明顯提升;實(shí)驗(yàn)C針對(duì)更實(shí)際的場(chǎng)景對(duì)無(wú)擴(kuò)增數(shù)據(jù)通過(guò)多核尺度CNN模型進(jìn)行有無(wú)小波去噪對(duì)比,實(shí)驗(yàn)表明,有無(wú)濾波對(duì)最終的分類(lèi)效果影響不大;實(shí)驗(yàn)D使用k-折交叉驗(yàn)證方式綜合對(duì)比常用的2折交叉驗(yàn)證、5折交叉驗(yàn)證、10折交叉驗(yàn)證,實(shí)驗(yàn)得出5折交叉驗(yàn)證對(duì)該數(shù)據(jù)更佳。因此,結(jié)合SMOTE數(shù)據(jù)擴(kuò)增方式的多核尺度CNN算法更適合于復(fù)雜的遠(yuǎn)程醫(yī)療場(chǎng)景部署。對(duì)比數(shù)據(jù)如表3所示。
表3 多維驗(yàn)證對(duì)比實(shí)驗(yàn)Tab.3 Multi-dimensional validation comparative experiment %
為了驗(yàn)證模型分類(lèi)效果,將本文的實(shí)驗(yàn)結(jié)果與其他文獻(xiàn)中的方法進(jìn)行比較,比較結(jié)果如表4所示。文獻(xiàn)[17]通過(guò)深度殘差卷積神經(jīng)網(wǎng)絡(luò)的方式做五分類(lèi),該方法的準(zhǔn)確率為99.03%;文獻(xiàn)[18]通過(guò)基于傳統(tǒng)BP網(wǎng)絡(luò)方式分類(lèi)400條五分類(lèi)樣本,平均準(zhǔn)確率為90%;文獻(xiàn)[19]采用Deep CNN做五分類(lèi)心律失常檢測(cè),平均準(zhǔn)確率為93.40%;文獻(xiàn)[20]通過(guò)將LSTM與CNN相結(jié)合的方式構(gòu)建模型做AAMI五分類(lèi),平均準(zhǔn)確率為99.11%;本文方法的平均準(zhǔn)確率為99.50%,靈敏度為98.97%,陽(yáng)性預(yù)測(cè)值為99.44%,F(xiàn)1綜合評(píng)價(jià)為99.21%,單樣本測(cè)試時(shí)間為0.176×10-3s。通過(guò)對(duì)比發(fā)現(xiàn),本文使用的方法精確度更高,且不需要對(duì)信號(hào)進(jìn)行濾波處理,更加簡(jiǎn)化遠(yuǎn)程醫(yī)療的部署,因此,驗(yàn)證了所提出方法的優(yōu)越性。
表4 不同方法比較
本文為了實(shí)現(xiàn)心電信號(hào)的自動(dòng)分類(lèi),提出了一種多核尺度卷積神經(jīng)網(wǎng)絡(luò)對(duì)心電成分自動(dòng)分類(lèi)的方法,作為一種有效的特征提取器,將心電信號(hào)直接輸入到網(wǎng)絡(luò)中,不需要任何手動(dòng)選擇的特征提取,就可以更高效地得到隱含的信息。通過(guò)改進(jìn)的多核尺度11層CNN,每個(gè)卷積層使用不同大小的核尺度,然后接一個(gè)最大池化層,最后將多核尺度的池化層輸出合并,并作為完全連接層的輸入,經(jīng)過(guò)softmax進(jìn)行五分類(lèi)。
該方法通過(guò)無(wú)濾波信號(hào)處理以及7∶3劃分訓(xùn)練集進(jìn)行五折交叉驗(yàn)證,得出了99.50%的高準(zhǔn)確率。與基于傳統(tǒng)的CNN實(shí)驗(yàn)相比,結(jié)果驗(yàn)證了多核尺度和SMOTE算法的過(guò)采樣數(shù)據(jù)擴(kuò)增的有效性,并討論了濾波的影響。結(jié)果表明,該方法對(duì)噪聲不敏感,更易于將數(shù)據(jù)傳輸?shù)皆疲ㄟ^(guò)預(yù)訓(xùn)練的模型處理,在幾秒之內(nèi)得到結(jié)果。在未來(lái)的工作中,我們計(jì)劃研究不同結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)的效果,并且收集和注釋更多的心電圖,以改善數(shù)據(jù)集的均衡性。