孫夢莉 王 演 劉曉凱 林 卉 張世強
1(大連海事大學信息科學技術(shù)學院 遼寧 大連 116026)2(華錄智達科技有限公司 遼寧 大連 116023)
心電圖(Electrocardiograph,ECG)記錄心電信號的活動,由多個心拍組成,每一個心拍主要分為P波、QRS波群和T波等。其中QRS波群生理特征豐富,包含心臟狀態(tài)的重要信息[1]。根據(jù)世界衛(wèi)生組織統(tǒng)計,從2008年至2018年,平均每年1 500萬人死于心血管疾病,占全部非傳染性疾病致死率的45%,因此正確識別異常ECG信號類別具有重要的醫(yī)學價值和社會意義。目前,心拍識別常用方法包括支持向量機[2]、模糊數(shù)學[3]、隨機森林[4]、神經(jīng)網(wǎng)絡(luò)等。支持向量機方法運算數(shù)據(jù)量大,訓練時間長,無法滿足實時監(jiān)測的要求,并且在單獨的數(shù)據(jù)集上驗證時,性能較低[5]。模糊數(shù)學方法對ECG信號診斷判別要求高,需要簡化許多臨床判別規(guī)則,運算量復雜。隨機森林方法設(shè)置參數(shù)較復雜,模型訓練和預(yù)測過程時間較長。傳統(tǒng)深度學習方法利用多層神經(jīng)網(wǎng)絡(luò)特點,可以用較少的參數(shù)表示復雜的函數(shù)。但在處理圖像分類問題時,目前其最大劣勢在于隱藏層的增加會花費巨大的計算資源。
為解決上述方法中需要訓練大量數(shù)據(jù)以及模型復雜度較高問題,本文提出一種深度遷移學習ECG波形分類方法。用VGG-16深度卷積神經(jīng)網(wǎng)絡(luò)自動提取ECG波形特征,將提取的特征分類識別,把學習物體識別的知識應(yīng)用到特殊心電信號的分類問題上,利用遷移學習方式來降低運算量,最終完成模型特征的遷移,以滿足實時監(jiān)測的需要。
目前心電圖數(shù)據(jù)集的采取,經(jīng)常受到噪聲影響。為進一步提高識別效率,本文采用小波變換用于處理工頻信號干擾和肌電信號干擾等高頻信號,IIR零相移數(shù)字濾波器糾正基線漂移,以軟件判別和可變閾值的方法實現(xiàn)QRS波檢測,QRS波判別更新步驟如算法1所示。檢測到QRS波后,圍繞QRS波峰分割ECG,取QRS波峰值前90個樣本,峰值后165個樣本共計256個樣本組成一個心拍樣本。
算法1 判別QRS波
1. 輸入:預(yù)處理后的ECG信號sig
2. sig中8個最大幅值點為一組,求最大幅度平均值thrmax
3. sig中100個最小幅度點為一組,求最小幅度平均值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. 計算rvalue[k]相鄰最大值間距,若間距小于0.4去除
9. 最終檢測出QRS波的峰值
雖然不同人群之間ECG記錄幅度存在很大差異,但當所有輸入具有相似分布時,神經(jīng)網(wǎng)絡(luò)模型能更好地收斂[6]。為消除ECG記錄中不同幅度影響,在劃分心拍基礎(chǔ)上對心拍歸一化[7],規(guī)范化函數(shù)定義為:
(1)
式中:di表示每個心拍樣本;dmax為心拍幅度最大值;dmin為最小值;歸一化心拍Si幅度范圍處于0到1之間。從MIT-BIH數(shù)據(jù)庫中提取最具有代表性的23組數(shù)據(jù),分為六類心拍信號,分別是正常信號(Normal Beat,N)、左束支傳導阻滯(Left Bundle Branch Block Beat,LBBB)、右束支傳導阻滯(Right Bundle Branch Block Beat,RBBB)、房性期前收縮(Atrial Premature Contraction,APC)、室性期前收縮(Premature Ventricular Contraction,PVC)、融合性心拍(Paced Beat,P)[8]。每類心拍從數(shù)據(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)表示特定點心電圖像灰度值。由式(2)將一維通道的心電圖轉(zhuǎn)為三維通道,作為預(yù)訓練模型網(wǎng)絡(luò)輸入,對心拍樣本特征提取,將全部心拍提取的特征按8∶1∶1隨機劃分為訓練集、測試集和驗證集。
遷移學習將從源領(lǐng)域S中獲取的知識應(yīng)用到另一個不同但相關(guān)的目標領(lǐng)域T中[9]。本文的心電圖數(shù)據(jù)集較少,數(shù)據(jù)與預(yù)訓練模型的訓練數(shù)據(jù)相似度較小,符合特征遷移學習方式。特征遷移學習在特征層面上尋找一些公共特征,例如紋理特征、邊緣特征、局部幾何特征等,然后通過預(yù)訓練模型提取特征,將特征遷移到其他神經(jīng)網(wǎng)絡(luò)中訓練,加速訓練并改善深度學習模型。如圖1所示,本文源任務(wù){(diào)Ts:VGG-16實現(xiàn)特征遷移},其中主要遷移模型的特征提取能力,目標任務(wù){(diào)Tt:識別心電圖具體類別},源數(shù)據(jù)采用是在2014年大規(guī)模視覺識別挑戰(zhàn)(ImageNet Large Scale Visual Recognition Challenge 2014,ILSVRC2014)獲勝模型(Visual Geometry Group,VGG),訓練數(shù)據(jù)集采用ImageNet。雖然ImageNet數(shù)據(jù)與心電圖像數(shù)據(jù)類別差異較大,但是它們在特征層面是共享著某些邊緣和幾何布局,可以將這些共性特征遷移到心電圖識別分類上[10]。因此將VGG-16預(yù)訓練模型作為特征提取器,直接使用相應(yīng)結(jié)構(gòu)和權(quán)重,將提取后的特征返回到數(shù)據(jù)集分類訓練。

圖1 基于深度遷移學習的心電圖識別模型
本文微調(diào)卷積神經(jīng)網(wǎng)絡(luò)VGG-16作為預(yù)訓練模型,將VGG-16網(wǎng)絡(luò)中第2個全連接層以上的隱藏特征遷移,進而構(gòu)建一個新的深度遷移網(wǎng)絡(luò)進行訓練預(yù)測,其結(jié)構(gòu)如圖2所示。傳統(tǒng)VGG-16包括C1-C5層5段卷積,每1段內(nèi)有2~3個卷積層,同時每段尾部連接1個最大池化層用來縮小圖片尺寸[11]。輸入數(shù)據(jù)格式為 224×224×3像素數(shù)據(jù),VGG-16網(wǎng)絡(luò)層每段卷積核數(shù)量依次為64-128-256-512-512,模型訓練中全部使用3×3的卷積核和2×2的池化核,比1個7×7的卷積核實現(xiàn)更多非線性變換(前者使用3次Relu激活函數(shù),而后者只有1次),使網(wǎng)絡(luò)對特征的學習能力更強[11]。本文利用VGG-16 模型更深的深度和更小的卷積濾波器尺寸,隱式增強了正則化特點。隨著層的深度增加,心電信號基礎(chǔ)特征學習能力更強。

圖2 微調(diào)VGG-16網(wǎng)絡(luò)結(jié)構(gòu)
本文提出一種基于深度遷移學習的心電信號分類方法(ECG classification method based on deep transfer learning,ECDT)。基于遷移學習本身特點:少量ECG數(shù)據(jù)集利用在大量樣本中預(yù)訓練好的模型提取特征向量。本文深度遷移模型整體流程如圖3所示。ECG信號識別分類共分為六個部分:原始數(shù)據(jù)的預(yù)處理,心拍劃分及數(shù)據(jù)集的構(gòu)建,預(yù)模型特征提取,分類模型訓練,利用分類模型對驗證集識別,數(shù)據(jù)集分類結(jié)果。首先,VGG-16模型作為特征提取器對預(yù)處理后的ECG數(shù)據(jù)集進行特征提取,再用特征向量代替原生數(shù)據(jù)集,加入一個256維隱藏層神經(jīng)單元和一個6維全連接輸出層神經(jīng)單元,最后每個分類結(jié)果經(jīng)過柔性最大值函數(shù)(Softmax)分類,變成“歸一化”的概率。利用分類模型對ECG驗證集數(shù)據(jù)分類,根據(jù)概率值判別ECG信號類別,用混淆矩陣統(tǒng)計分類結(jié)果。

圖3 深度遷移模型整體流程
圖3中具體分類模型訓練步驟如下:訓練開始之前,將訓練模型初始化,權(quán)值W和偏置b設(shè)置為隨機數(shù),從構(gòu)建的數(shù)據(jù)訓練集中每次隨機取出10個樣本為一個訓練組,作為構(gòu)建的網(wǎng)絡(luò)模型輸入。
(3)


(4)

(5)
由式(5)證明得:
(6)
式(6)表示第L層各個神經(jīng)元激活值輸出矢量的和為1,即ECG信號類別S激活值相加為1。由式(5)得到最終輸出層的形式,即Softmax之后輸出形式為[A1,A2,A3,A4,A5,A6]向量,分別代表ECG信號六個類別概率。將輸出矢量與目標給定的真實矢量通過交叉熵代價函數(shù)對比來衡量兩者的相似性。交叉熵函數(shù)定義如下:
(7)

(8)

(9)
最后,通過交叉熵代價函數(shù)取平均計算損失函數(shù),判斷是否滿足精度要求。如果不滿足,則返回樣本輸入繼續(xù)訓練;如果滿足,則保存當前權(quán)值和偏置,以此分類訓練完成。對驗證集分類時,直接使用已訓練好的模型訓練。
為驗證本文所提方法有效性,基于深度學習的心電信號分類方法(ECG classification method based on deep learning,ECD)在相同樣本數(shù)據(jù)集上進行識別分類,與ECDT方法對比。ECD方法使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)對心電信號識別分類,該網(wǎng)絡(luò)模型是由4個卷積層、4個池化層、3個全連接層和1個Softmax層組成。將預(yù)處理后心電信號作為輸入,通過一系列卷積和池化操作提取原始圖像特征,輸出層經(jīng)Softmax分類層識別分類,利用混淆矩陣得到分類結(jié)果。
2.3.1 時間復雜度
神經(jīng)網(wǎng)絡(luò)單層時間復雜度定義如下:
(10)
式中:K為每個卷積核邊長;Cin為每個卷積核輸入通道數(shù);Cout為本卷積層具有卷積核個數(shù);ML為每個卷積核輸出特征圖邊長。M定義如下:
(11)
式中:X為輸入尺寸;Padding=1表示填充方式以0填充,使卷積層輸入維度和輸出維度一致,保持邊界信息;Stride為卷積核步長。文獻[11]定義卷積神經(jīng)網(wǎng)絡(luò)整體的時間復雜度為:
(12)
式中:D為神經(jīng)網(wǎng)絡(luò)層數(shù)總和,即網(wǎng)絡(luò)深度;CL為網(wǎng)絡(luò)第L個卷積層卷積核個數(shù)。當L=1時,C0表示卷積層的輸入通道數(shù)。
ECDT分類模型由3層全連接神經(jīng)網(wǎng)絡(luò)組成,輸入為4 096維特征向量,隱藏層由1個256維和1個6維全連接神經(jīng)網(wǎng)絡(luò)組成,卷積核邊長為1,模型時間復雜度為:
(13)
得到的ECDT算法時間復雜度為O(106)數(shù)量級。
ECD分類模型由3個卷積層、3個池化層、3個全連接層組成。輸入224×224×3特征向量,卷積核邊長為3,Stride為1,模型時間復雜度為:
(14)
得到的ECD算法時間復雜度為O(108)數(shù)量級。
2.3.2 空間復雜度
文獻[11]定義的空間復雜度為:
(15)
ECDT算法模型空間復雜度為:
(16)
得到的ECDT算法空間復雜度為O(106)數(shù)量級。
ECD算法模型空間復雜度為:
(17)
得到的ECD算法空間復雜度為O(106)數(shù)量級。
進一步分析式(13)-式(14)、式(16)-式(17) ,可得ECDT運算參數(shù)量為1.05×106,ECD運算參數(shù)量為5.55×106,降低了參數(shù)的運算復雜度,優(yōu)化了深度模型分類性能,從整體上表明了ECDT優(yōu)于ECD。
本文在MIT-BIH數(shù)據(jù)庫上測試,該數(shù)據(jù)庫作為檢測心率失常和分類的數(shù)據(jù)庫基準,總共包含48個記錄,其中采樣頻率為360 Hz,單個記錄時長大約30 min,記錄2個導聯(lián)的數(shù)據(jù)。本文用導聯(lián)1心電圖為訓練數(shù)據(jù),數(shù)據(jù)被標識出QRS波位置和各個心拍心電圖類型。
實驗參數(shù)如下:訓練樣本M=3 600,其中各個類型心電圖包含600個樣本,迭代訓練次數(shù)為15。本文實驗軟硬件配置信息如表1所示。

表1 本機軟硬件配置信息
為全面評估本研究方法對心拍分類結(jié)果,混淆矩陣用于評估心拍分類結(jié)果,主要包括三個評價指標:敏感度(Se)、正檢測率(Pp)、特異性(Sp)[6]。評價指標定義為:
(18)
(19)
(20)
式中:真陽性Tp表示正樣本被預(yù)測為正樣本的數(shù)目;真陰性Tn表示負樣本被預(yù)測為負樣本的數(shù)目;假陰性Fn表示正樣本被預(yù)測為負樣本的數(shù)目;假陽性Fp表示負樣本被預(yù)測為正樣本的數(shù)目。測試數(shù)據(jù)集總體的分類效果用整體精度(OA)表示,定義為:
(21)
式中:Nn、Ll、Rr、Vv、Aa、Pp分別為測試集中正常信號(N)、左束支傳導阻滯(LBBB)、右束支傳導阻滯(RBBB)、房性期前收縮(APC)、室性期前收縮(PVC)、融合性心拍(P)正樣本預(yù)測為正樣本數(shù)目;M為總樣本數(shù)目。
如3.2節(jié)原理所述,心電信號識別評估標準通常用混淆矩陣統(tǒng)計。在統(tǒng)計結(jié)果中,靈敏度Se表示了疾病識別能力,Se越高代表方法對疾病診斷的正確率越高,正檢測率Pp反映了被確診病例中正確檢測疾病的能力,特異性Sp反映了非本類疾病的診斷能力,Sp、Pp越高一定程度上代表誤診的幾率越低[6]。ECDT精度分析結(jié)果如表2所示,ECD精度分析結(jié)果如表3所示。由表2、表3可知,ECDT方法和ECD方法在六類心拍信號上的分類效果。式(21)可得兩種方法總體精度分別為98.10%、96.06%。實驗表明ECDT方法總體精度高于ECD方法。

表2 ECDT方法混淆矩陣統(tǒng)計 %

表3 ECD方法混淆矩陣統(tǒng)計 %
根據(jù)2.1節(jié)、2.2節(jié)所述原理,分別使用ECDT方法和ECD方法訓練數(shù)據(jù)集。ECDT對訓練集迭代15輪訓練,每1輪輸出10組訓練集損失率,每5輪輸出測試集正確率。圖4為ECDT方法模型總體性能,得出訓練集和測試集訓練迭代次數(shù)與準確率(Accuracy)關(guān)系。可以看出,隨著迭代次數(shù)的增加,訓練集和測試集的準確率逐漸增加,僅迭代2輪就達到理想效果。

圖4 ECDT方法模型總體性能
圖5為兩種方法在MIT-BIH數(shù)據(jù)集分類效果,ECDT和ECD得到的識別正確率分別為99.12%、98.12%,兩者的差異主要表現(xiàn)在特征遷移上。圖6是使用本文方法提取的特征圖能夠分別顯示在五段卷積下進行遷移中間特征圖,直觀地表示了遷移特征。在深度模型特征提取中,隨著卷積層數(shù)增加,特征圖由具體特征向抽象特征轉(zhuǎn)化。首先第一層卷積提取整個圖像邊緣信息,第二、三層特征圖提取輪廓信息,第四、五層卷積特征圖提取圖像拐點以及更高層次的特征。層數(shù)越深,稀疏性越強,由此得出,相對于傳統(tǒng)的機器學習,深度遷移模型在稀疏數(shù)據(jù)特征提取上有較大優(yōu)勢。

圖5 兩種方法的訓練效果

圖6 卷積特征圖可視化
根據(jù)式(13)-式(14),式(16)-式(17)可得評估模型訓練的時間復雜度與迭代次數(shù)的關(guān)系。兩種方法在訓練過程中每一輪迭代次數(shù)與對應(yīng)訓練時間如圖7所示。由圖可知,深度遷移學習方法模型每次迭代訓練時間均低于深度學習模型迭代訓練時間,因此深度遷移模型方法大大減少了訓練的每次迭代時間,降低了時間復雜度。

圖7 兩種方法訓練時間與迭代次數(shù)關(guān)系
本文研究方法與近年來國內(nèi)外在MIT-BIH數(shù)據(jù)庫上心電圖識別方法從實驗方法、心拍類別和整體精度(OA)三個方面進行對比,對比情況如表4所示。

表4 本文與其他研究方法對比
從表4可以看出本文方法精確度高于表4中其他方法。文獻[2]和文獻[4]采用了離散小波變換和傳統(tǒng)分類器相結(jié)合來建立分類模型,整體精度分別為93.80%和94.60%;文獻[5]和文獻[16]所用方法在構(gòu)建上相對復雜,僅使用深度神經(jīng)網(wǎng)絡(luò)訓練,整體精度分別為93.50%和93.40%。本文對以上方法進行了改進,將遷移學習和深度學習結(jié)合,利用深度遷移更有效地從數(shù)據(jù)中學習稀疏數(shù)據(jù)特征,整體精度達到了98.10%,說明深度遷移方法確實能夠提高對心電信號的分類性能。
針對現(xiàn)有深度學習網(wǎng)絡(luò)存在訓練時間長和模型復雜度高的問題,本文引入深度遷移學習的方法,實現(xiàn)了對心電信號快速分類。該方法能夠有效減少訓練過程的運算量,提高訓練效率。實驗結(jié)果表明,在時間、精度以及訓練效果上,ECDT方法均優(yōu)于ECD方法,能夠更好地實現(xiàn)心電圖實時監(jiān)測功能。但是在特征遷移方面,針對訓練數(shù)據(jù)集與目標數(shù)據(jù)集相關(guān)性,還需進一步進行研究,更好地利用深度遷移模型的優(yōu)勢,來提高ECDT方法的精度。