孫夢(mèng)莉 王 演 劉曉凱 林 卉 張世強(qiáng)
1(大連海事大學(xué)信息科學(xué)技術(shù)學(xué)院 遼寧 大連 116026)2(華錄智達(dá)科技有限公司 遼寧 大連 116023)
心電圖(Electrocardiograph,ECG)記錄心電信號(hào)的活動(dòng),由多個(gè)心拍組成,每一個(gè)心拍主要分為P波、QRS波群和T波等。其中QRS波群生理特征豐富,包含心臟狀態(tài)的重要信息[1]。根據(jù)世界衛(wèi)生組織統(tǒng)計(jì),從2008年至2018年,平均每年1 500萬人死于心血管疾病,占全部非傳染性疾病致死率的45%,因此正確識(shí)別異常ECG信號(hào)類別具有重要的醫(yī)學(xué)價(jià)值和社會(huì)意義。目前,心拍識(shí)別常用方法包括支持向量機(jī)[2]、模糊數(shù)學(xué)[3]、隨機(jī)森林[4]、神經(jīng)網(wǎng)絡(luò)等。支持向量機(jī)方法運(yùn)算數(shù)據(jù)量大,訓(xùn)練時(shí)間長(zhǎng),無法滿足實(shí)時(shí)監(jiān)測(cè)的要求,并且在單獨(dú)的數(shù)據(jù)集上驗(yàn)證時(shí),性能較低[5]。模糊數(shù)學(xué)方法對(duì)ECG信號(hào)診斷判別要求高,需要簡(jiǎn)化許多臨床判別規(guī)則,運(yùn)算量復(fù)雜。隨機(jī)森林方法設(shè)置參數(shù)較復(fù)雜,模型訓(xùn)練和預(yù)測(cè)過程時(shí)間較長(zhǎng)。傳統(tǒng)深度學(xué)習(xí)方法利用多層神經(jīng)網(wǎng)絡(luò)特點(diǎn),可以用較少的參數(shù)表示復(fù)雜的函數(shù)。但在處理圖像分類問題時(shí),目前其最大劣勢(shì)在于隱藏層的增加會(huì)花費(fèi)巨大的計(jì)算資源。
為解決上述方法中需要訓(xùn)練大量數(shù)據(jù)以及模型復(fù)雜度較高問題,本文提出一種深度遷移學(xué)習(xí)ECG波形分類方法。用VGG-16深度卷積神經(jīng)網(wǎng)絡(luò)自動(dòng)提取ECG波形特征,將提取的特征分類識(shí)別,把學(xué)習(xí)物體識(shí)別的知識(shí)應(yīng)用到特殊心電信號(hào)的分類問題上,利用遷移學(xué)習(xí)方式來降低運(yùn)算量,最終完成模型特征的遷移,以滿足實(shí)時(shí)監(jiān)測(cè)的需要。
目前心電圖數(shù)據(jù)集的采取,經(jīng)常受到噪聲影響。為進(jìn)一步提高識(shí)別效率,本文采用小波變換用于處理工頻信號(hào)干擾和肌電信號(hào)干擾等高頻信號(hào),IIR零相移數(shù)字濾波器糾正基線漂移,以軟件判別和可變閾值的方法實(shí)現(xiàn)QRS波檢測(cè),QRS波判別更新步驟如算法1所示。檢測(cè)到QRS波后,圍繞QRS波峰分割ECG,取QRS波峰值前90個(gè)樣本,峰值后165個(gè)樣本共計(jì)256個(gè)樣本組成一個(gè)心拍樣本。
算法1 判別QRS波
1. 輸入:預(yù)處理后的ECG信號(hào)sig
2. sig中8個(gè)最大幅值點(diǎn)為一組,求最大幅度平均值thrmax
3. sig中100個(gè)最小幅度點(diǎn)為一組,求最小幅度平均值thrmin
4. 根據(jù)最大、最小幅度平均值的差值的30%為判別QRS波的閾值thr
5. for i=1 to length(sig)
6. if (sig(i,1)>thr)
7. 選出QRS波峰值組成的數(shù)組rvalue[k]
8. 計(jì)算rvalue[k]相鄰最大值間距,若間距小于0.4去除
9. 最終檢測(cè)出QRS波的峰值
雖然不同人群之間ECG記錄幅度存在很大差異,但當(dāng)所有輸入具有相似分布時(shí),神經(jīng)網(wǎng)絡(luò)模型能更好地收斂[6]。為消除ECG記錄中不同幅度影響,在劃分心拍基礎(chǔ)上對(duì)心拍歸一化[7],規(guī)范化函數(shù)定義為:
(1)
式中:di表示每個(gè)心拍樣本;dmax為心拍幅度最大值;dmin為最小值;歸一化心拍Si幅度范圍處于0到1之間。從MIT-BIH數(shù)據(jù)庫(kù)中提取最具有代表性的23組數(shù)據(jù),分為六類心拍信號(hào),分別是正常信號(hào)(Normal Beat,N)、左束支傳導(dǎo)阻滯(Left Bundle Branch Block Beat,LBBB)、右束支傳導(dǎo)阻滯(Right Bundle Branch Block Beat,RBBB)、房性期前收縮(Atrial Premature Contraction,APC)、室性期前收縮(Premature Ventricular Contraction,PVC)、融合性心拍(Paced Beat,P)[8]。每類心拍從數(shù)據(jù)集中隨機(jī)截取600幅心電圖片,經(jīng)過灰度圖像的偽彩色處理后變換為RGB圖像作為VGG-16的輸入,將來自心電圖數(shù)據(jù)送入相同特征R、G、B變換器,主要映射關(guān)系如下:
R(X,Y)=B(X,Y)=G(X,Y)=f(X,Y)
(2)
式中:R(X,Y)、G(X,Y)、B(X,Y)分別表示R、G、B通道顏色值,f(X,Y)表示特定點(diǎn)心電圖像灰度值。由式(2)將一維通道的心電圖轉(zhuǎn)為三維通道,作為預(yù)訓(xùn)練模型網(wǎng)絡(luò)輸入,對(duì)心拍樣本特征提取,將全部心拍提取的特征按8∶1∶1隨機(jī)劃分為訓(xùn)練集、測(cè)試集和驗(yàn)證集。
遷移學(xué)習(xí)將從源領(lǐng)域S中獲取的知識(shí)應(yīng)用到另一個(gè)不同但相關(guān)的目標(biāo)領(lǐng)域T中[9]。本文的心電圖數(shù)據(jù)集較少,數(shù)據(jù)與預(yù)訓(xùn)練模型的訓(xùn)練數(shù)據(jù)相似度較小,符合特征遷移學(xué)習(xí)方式。特征遷移學(xué)習(xí)在特征層面上尋找一些公共特征,例如紋理特征、邊緣特征、局部幾何特征等,然后通過預(yù)訓(xùn)練模型提取特征,將特征遷移到其他神經(jīng)網(wǎng)絡(luò)中訓(xùn)練,加速訓(xùn)練并改善深度學(xué)習(xí)模型。如圖1所示,本文源任務(wù){(diào)Ts:VGG-16實(shí)現(xiàn)特征遷移},其中主要遷移模型的特征提取能力,目標(biāo)任務(wù){(diào)Tt:識(shí)別心電圖具體類別},源數(shù)據(jù)采用是在2014年大規(guī)模視覺識(shí)別挑戰(zhàn)(ImageNet Large Scale Visual Recognition Challenge 2014,ILSVRC2014)獲勝模型(Visual Geometry Group,VGG),訓(xùn)練數(shù)據(jù)集采用ImageNet。雖然ImageNet數(shù)據(jù)與心電圖像數(shù)據(jù)類別差異較大,但是它們?cè)谔卣鲗用媸枪蚕碇承┻吘壓蛶缀尾季?,可以將這些共性特征遷移到心電圖識(shí)別分類上[10]。因此將VGG-16預(yù)訓(xùn)練模型作為特征提取器,直接使用相應(yīng)結(jié)構(gòu)和權(quán)重,將提取后的特征返回到數(shù)據(jù)集分類訓(xùn)練。
圖1 基于深度遷移學(xué)習(xí)的心電圖識(shí)別模型
本文微調(diào)卷積神經(jīng)網(wǎng)絡(luò)VGG-16作為預(yù)訓(xùn)練模型,將VGG-16網(wǎng)絡(luò)中第2個(gè)全連接層以上的隱藏特征遷移,進(jìn)而構(gòu)建一個(gè)新的深度遷移網(wǎng)絡(luò)進(jìn)行訓(xùn)練預(yù)測(cè),其結(jié)構(gòu)如圖2所示。傳統(tǒng)VGG-16包括C1-C5層5段卷積,每1段內(nèi)有2~3個(gè)卷積層,同時(shí)每段尾部連接1個(gè)最大池化層用來縮小圖片尺寸[11]。輸入數(shù)據(jù)格式為 224×224×3像素?cái)?shù)據(jù),VGG-16網(wǎng)絡(luò)層每段卷積核數(shù)量依次為64-128-256-512-512,模型訓(xùn)練中全部使用3×3的卷積核和2×2的池化核,比1個(gè)7×7的卷積核實(shí)現(xiàn)更多非線性變換(前者使用3次Relu激活函數(shù),而后者只有1次),使網(wǎng)絡(luò)對(duì)特征的學(xué)習(xí)能力更強(qiáng)[11]。本文利用VGG-16 模型更深的深度和更小的卷積濾波器尺寸,隱式增強(qiáng)了正則化特點(diǎn)。隨著層的深度增加,心電信號(hào)基礎(chǔ)特征學(xué)習(xí)能力更強(qiáng)。
圖2 微調(diào)VGG-16網(wǎng)絡(luò)結(jié)構(gòu)
本文提出一種基于深度遷移學(xué)習(xí)的心電信號(hào)分類方法(ECG classification method based on deep transfer learning,ECDT)?;谶w移學(xué)習(xí)本身特點(diǎn):少量ECG數(shù)據(jù)集利用在大量樣本中預(yù)訓(xùn)練好的模型提取特征向量。本文深度遷移模型整體流程如圖3所示。ECG信號(hào)識(shí)別分類共分為六個(gè)部分:原始數(shù)據(jù)的預(yù)處理,心拍劃分及數(shù)據(jù)集的構(gòu)建,預(yù)模型特征提取,分類模型訓(xùn)練,利用分類模型對(duì)驗(yàn)證集識(shí)別,數(shù)據(jù)集分類結(jié)果。首先,VGG-16模型作為特征提取器對(duì)預(yù)處理后的ECG數(shù)據(jù)集進(jìn)行特征提取,再用特征向量代替原生數(shù)據(jù)集,加入一個(gè)256維隱藏層神經(jīng)單元和一個(gè)6維全連接輸出層神經(jīng)單元,最后每個(gè)分類結(jié)果經(jīng)過柔性最大值函數(shù)(Softmax)分類,變成“歸一化”的概率。利用分類模型對(duì)ECG驗(yàn)證集數(shù)據(jù)分類,根據(jù)概率值判別ECG信號(hào)類別,用混淆矩陣統(tǒng)計(jì)分類結(jié)果。
圖3 深度遷移模型整體流程
圖3中具體分類模型訓(xùn)練步驟如下:訓(xùn)練開始之前,將訓(xùn)練模型初始化,權(quán)值W和偏置b設(shè)置為隨機(jī)數(shù),從構(gòu)建的數(shù)據(jù)訓(xùn)練集中每次隨機(jī)取出10個(gè)樣本為一個(gè)訓(xùn)練組,作為構(gòu)建的網(wǎng)絡(luò)模型輸入。
(3)
(4)
(5)
由式(5)證明得:
(6)
式(6)表示第L層各個(gè)神經(jīng)元激活值輸出矢量的和為1,即ECG信號(hào)類別S激活值相加為1。由式(5)得到最終輸出層的形式,即Softmax之后輸出形式為[A1,A2,A3,A4,A5,A6]向量,分別代表ECG信號(hào)六個(gè)類別概率。將輸出矢量與目標(biāo)給定的真實(shí)矢量通過交叉熵代價(jià)函數(shù)對(duì)比來衡量?jī)烧叩南嗨菩?。交叉熵函?shù)定義如下:
(7)
(8)
(9)
最后,通過交叉熵代價(jià)函數(shù)取平均計(jì)算損失函數(shù),判斷是否滿足精度要求。如果不滿足,則返回樣本輸入繼續(xù)訓(xùn)練;如果滿足,則保存當(dāng)前權(quán)值和偏置,以此分類訓(xùn)練完成。對(duì)驗(yàn)證集分類時(shí),直接使用已訓(xùn)練好的模型訓(xùn)練。
為驗(yàn)證本文所提方法有效性,基于深度學(xué)習(xí)的心電信號(hào)分類方法(ECG classification method based on deep learning,ECD)在相同樣本數(shù)據(jù)集上進(jìn)行識(shí)別分類,與ECDT方法對(duì)比。ECD方法使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)對(duì)心電信號(hào)識(shí)別分類,該網(wǎng)絡(luò)模型是由4個(gè)卷積層、4個(gè)池化層、3個(gè)全連接層和1個(gè)Softmax層組成。將預(yù)處理后心電信號(hào)作為輸入,通過一系列卷積和池化操作提取原始圖像特征,輸出層經(jīng)Softmax分類層識(shí)別分類,利用混淆矩陣得到分類結(jié)果。
2.3.1 時(shí)間復(fù)雜度
神經(jīng)網(wǎng)絡(luò)單層時(shí)間復(fù)雜度定義如下:
(10)
式中:K為每個(gè)卷積核邊長(zhǎng);Cin為每個(gè)卷積核輸入通道數(shù);Cout為本卷積層具有卷積核個(gè)數(shù);ML為每個(gè)卷積核輸出特征圖邊長(zhǎng)。M定義如下:
(11)
式中:X為輸入尺寸;Padding=1表示填充方式以0填充,使卷積層輸入維度和輸出維度一致,保持邊界信息;Stride為卷積核步長(zhǎng)。文獻(xiàn)[11]定義卷積神經(jīng)網(wǎng)絡(luò)整體的時(shí)間復(fù)雜度為:
(12)
式中:D為神經(jīng)網(wǎng)絡(luò)層數(shù)總和,即網(wǎng)絡(luò)深度;CL為網(wǎng)絡(luò)第L個(gè)卷積層卷積核個(gè)數(shù)。當(dāng)L=1時(shí),C0表示卷積層的輸入通道數(shù)。
ECDT分類模型由3層全連接神經(jīng)網(wǎng)絡(luò)組成,輸入為4 096維特征向量,隱藏層由1個(gè)256維和1個(gè)6維全連接神經(jīng)網(wǎng)絡(luò)組成,卷積核邊長(zhǎng)為1,模型時(shí)間復(fù)雜度為:
(13)
得到的ECDT算法時(shí)間復(fù)雜度為O(106)數(shù)量級(jí)。
ECD分類模型由3個(gè)卷積層、3個(gè)池化層、3個(gè)全連接層組成。輸入224×224×3特征向量,卷積核邊長(zhǎng)為3,Stride為1,模型時(shí)間復(fù)雜度為:
(14)
得到的ECD算法時(shí)間復(fù)雜度為O(108)數(shù)量級(jí)。
2.3.2 空間復(fù)雜度
文獻(xiàn)[11]定義的空間復(fù)雜度為:
(15)
ECDT算法模型空間復(fù)雜度為:
(16)
得到的ECDT算法空間復(fù)雜度為O(106)數(shù)量級(jí)。
ECD算法模型空間復(fù)雜度為:
(17)
得到的ECD算法空間復(fù)雜度為O(106)數(shù)量級(jí)。
進(jìn)一步分析式(13)-式(14)、式(16)-式(17) ,可得ECDT運(yùn)算參數(shù)量為1.05×106,ECD運(yùn)算參數(shù)量為5.55×106,降低了參數(shù)的運(yùn)算復(fù)雜度,優(yōu)化了深度模型分類性能,從整體上表明了ECDT優(yōu)于ECD。
本文在MIT-BIH數(shù)據(jù)庫(kù)上測(cè)試,該數(shù)據(jù)庫(kù)作為檢測(cè)心率失常和分類的數(shù)據(jù)庫(kù)基準(zhǔn),總共包含48個(gè)記錄,其中采樣頻率為360 Hz,單個(gè)記錄時(shí)長(zhǎng)大約30 min,記錄2個(gè)導(dǎo)聯(lián)的數(shù)據(jù)。本文用導(dǎo)聯(lián)1心電圖為訓(xùn)練數(shù)據(jù),數(shù)據(jù)被標(biāo)識(shí)出QRS波位置和各個(gè)心拍心電圖類型。
實(shí)驗(yàn)參數(shù)如下:訓(xùn)練樣本M=3 600,其中各個(gè)類型心電圖包含600個(gè)樣本,迭代訓(xùn)練次數(shù)為15。本文實(shí)驗(yàn)軟硬件配置信息如表1所示。
表1 本機(jī)軟硬件配置信息
為全面評(píng)估本研究方法對(duì)心拍分類結(jié)果,混淆矩陣用于評(píng)估心拍分類結(jié)果,主要包括三個(gè)評(píng)價(jià)指標(biāo):敏感度(Se)、正檢測(cè)率(Pp)、特異性(Sp)[6]。評(píng)價(jià)指標(biāo)定義為:
(18)
(19)
(20)
式中:真陽性Tp表示正樣本被預(yù)測(cè)為正樣本的數(shù)目;真陰性Tn表示負(fù)樣本被預(yù)測(cè)為負(fù)樣本的數(shù)目;假陰性Fn表示正樣本被預(yù)測(cè)為負(fù)樣本的數(shù)目;假陽性Fp表示負(fù)樣本被預(yù)測(cè)為正樣本的數(shù)目。測(cè)試數(shù)據(jù)集總體的分類效果用整體精度(OA)表示,定義為:
(21)
式中:Nn、Ll、Rr、Vv、Aa、Pp分別為測(cè)試集中正常信號(hào)(N)、左束支傳導(dǎo)阻滯(LBBB)、右束支傳導(dǎo)阻滯(RBBB)、房性期前收縮(APC)、室性期前收縮(PVC)、融合性心拍(P)正樣本預(yù)測(cè)為正樣本數(shù)目;M為總樣本數(shù)目。
如3.2節(jié)原理所述,心電信號(hào)識(shí)別評(píng)估標(biāo)準(zhǔn)通常用混淆矩陣統(tǒng)計(jì)。在統(tǒng)計(jì)結(jié)果中,靈敏度Se表示了疾病識(shí)別能力,Se越高代表方法對(duì)疾病診斷的正確率越高,正檢測(cè)率Pp反映了被確診病例中正確檢測(cè)疾病的能力,特異性Sp反映了非本類疾病的診斷能力,Sp、Pp越高一定程度上代表誤診的幾率越低[6]。ECDT精度分析結(jié)果如表2所示,ECD精度分析結(jié)果如表3所示。由表2、表3可知,ECDT方法和ECD方法在六類心拍信號(hào)上的分類效果。式(21)可得兩種方法總體精度分別為98.10%、96.06%。實(shí)驗(yàn)表明ECDT方法總體精度高于ECD方法。
表2 ECDT方法混淆矩陣統(tǒng)計(jì) %
表3 ECD方法混淆矩陣統(tǒng)計(jì) %
根據(jù)2.1節(jié)、2.2節(jié)所述原理,分別使用ECDT方法和ECD方法訓(xùn)練數(shù)據(jù)集。ECDT對(duì)訓(xùn)練集迭代15輪訓(xùn)練,每1輪輸出10組訓(xùn)練集損失率,每5輪輸出測(cè)試集正確率。圖4為ECDT方法模型總體性能,得出訓(xùn)練集和測(cè)試集訓(xùn)練迭代次數(shù)與準(zhǔn)確率(Accuracy)關(guān)系??梢钥闯?,隨著迭代次數(shù)的增加,訓(xùn)練集和測(cè)試集的準(zhǔn)確率逐漸增加,僅迭代2輪就達(dá)到理想效果。
圖4 ECDT方法模型總體性能
圖5為兩種方法在MIT-BIH數(shù)據(jù)集分類效果,ECDT和ECD得到的識(shí)別正確率分別為99.12%、98.12%,兩者的差異主要表現(xiàn)在特征遷移上。圖6是使用本文方法提取的特征圖能夠分別顯示在五段卷積下進(jìn)行遷移中間特征圖,直觀地表示了遷移特征。在深度模型特征提取中,隨著卷積層數(shù)增加,特征圖由具體特征向抽象特征轉(zhuǎn)化。首先第一層卷積提取整個(gè)圖像邊緣信息,第二、三層特征圖提取輪廓信息,第四、五層卷積特征圖提取圖像拐點(diǎn)以及更高層次的特征。層數(shù)越深,稀疏性越強(qiáng),由此得出,相對(duì)于傳統(tǒng)的機(jī)器學(xué)習(xí),深度遷移模型在稀疏數(shù)據(jù)特征提取上有較大優(yōu)勢(shì)。
圖5 兩種方法的訓(xùn)練效果
圖6 卷積特征圖可視化
根據(jù)式(13)-式(14),式(16)-式(17)可得評(píng)估模型訓(xùn)練的時(shí)間復(fù)雜度與迭代次數(shù)的關(guān)系。兩種方法在訓(xùn)練過程中每一輪迭代次數(shù)與對(duì)應(yīng)訓(xùn)練時(shí)間如圖7所示。由圖可知,深度遷移學(xué)習(xí)方法模型每次迭代訓(xùn)練時(shí)間均低于深度學(xué)習(xí)模型迭代訓(xùn)練時(shí)間,因此深度遷移模型方法大大減少了訓(xùn)練的每次迭代時(shí)間,降低了時(shí)間復(fù)雜度。
圖7 兩種方法訓(xùn)練時(shí)間與迭代次數(shù)關(guān)系
本文研究方法與近年來國(guó)內(nèi)外在MIT-BIH數(shù)據(jù)庫(kù)上心電圖識(shí)別方法從實(shí)驗(yàn)方法、心拍類別和整體精度(OA)三個(gè)方面進(jìn)行對(duì)比,對(duì)比情況如表4所示。
表4 本文與其他研究方法對(duì)比
從表4可以看出本文方法精確度高于表4中其他方法。文獻(xiàn)[2]和文獻(xiàn)[4]采用了離散小波變換和傳統(tǒng)分類器相結(jié)合來建立分類模型,整體精度分別為93.80%和94.60%;文獻(xiàn)[5]和文獻(xiàn)[16]所用方法在構(gòu)建上相對(duì)復(fù)雜,僅使用深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練,整體精度分別為93.50%和93.40%。本文對(duì)以上方法進(jìn)行了改進(jìn),將遷移學(xué)習(xí)和深度學(xué)習(xí)結(jié)合,利用深度遷移更有效地從數(shù)據(jù)中學(xué)習(xí)稀疏數(shù)據(jù)特征,整體精度達(dá)到了98.10%,說明深度遷移方法確實(shí)能夠提高對(duì)心電信號(hào)的分類性能。
針對(duì)現(xiàn)有深度學(xué)習(xí)網(wǎng)絡(luò)存在訓(xùn)練時(shí)間長(zhǎng)和模型復(fù)雜度高的問題,本文引入深度遷移學(xué)習(xí)的方法,實(shí)現(xiàn)了對(duì)心電信號(hào)快速分類。該方法能夠有效減少訓(xùn)練過程的運(yùn)算量,提高訓(xùn)練效率。實(shí)驗(yàn)結(jié)果表明,在時(shí)間、精度以及訓(xùn)練效果上,ECDT方法均優(yōu)于ECD方法,能夠更好地實(shí)現(xiàn)心電圖實(shí)時(shí)監(jiān)測(cè)功能。但是在特征遷移方面,針對(duì)訓(xùn)練數(shù)據(jù)集與目標(biāo)數(shù)據(jù)集相關(guān)性,還需進(jìn)一步進(jìn)行研究,更好地利用深度遷移模型的優(yōu)勢(shì),來提高ECDT方法的精度。