楊風(fēng)健,李小琪,李洪亮
(1.東新大學(xué)計(jì)算機(jī)學(xué)系,韓國羅州58245;2.吉林醫(yī)藥學(xué)院生物醫(yī)學(xué)工程學(xué)院,吉林 吉林 132013)
根據(jù)2020 年發(fā)布的《中國心血管健康和疾病》報(bào)告顯示,心血管疾病(Cardio Vascular Disease,CVD)死亡率占所有疾病致死率首位[1]。心律失常是臨床常見而又極具危險(xiǎn)性的心血管疾病[2],在心律失常的診斷中,傳統(tǒng)的心律失常診斷方式依靠醫(yī)生根據(jù)專業(yè)經(jīng)驗(yàn)進(jìn)行判斷,不僅費(fèi)時(shí)費(fèi)力,而且易增加漏診與誤診的概率。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是一種深度前饋神經(jīng)網(wǎng)絡(luò)[3],具有權(quán)重共享和局部連接等特性,在心電圖(Electrocardiogram,ECG)分類識別方面具有較大的優(yōu)勢[4]。
文獻(xiàn)[5]提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的十二導(dǎo)聯(lián)心電圖衍生方法,能夠減少導(dǎo)聯(lián)數(shù)量,并證明了該方法優(yōu)于傳統(tǒng)算法,適用性較強(qiáng)。文獻(xiàn)[6]提出了一個(gè)通過構(gòu)建CNN 模型提取特征,只采用第一導(dǎo)聯(lián)的心電數(shù)據(jù),識別Physionet 數(shù)據(jù)庫中心電信號的五類心拍。文獻(xiàn)[7]采用CNN 模型進(jìn)行心電圖的正、異常2 分類,準(zhǔn)確率大于90%,分類較為簡單,且準(zhǔn)確率尚有提升空間。
該研究旨在利用卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)心電信號自動五分類,為降低數(shù)據(jù)復(fù)雜度,利于在穿戴設(shè)備上實(shí)現(xiàn),采用單導(dǎo)聯(lián)心電信號作為數(shù)據(jù)源,利用小波變換去除掉心電信號中的噪聲,根據(jù)R 波峰位置對心電信號進(jìn)行心拍分割,設(shè)計(jì)并優(yōu)化CNN 模型進(jìn)行心律失常分類識別,提高了分類準(zhǔn)確率。
ECG 信號是一種微弱的生物電信號,易受工頻干擾[8]、基線漂移[9]和肌電干擾[10]三種噪聲干擾,該文采用小波分解與重構(gòu)對ECG 信號進(jìn)行去噪及基線漂移抑制。以心電記錄203 為例,如圖1 所示。取前1 500 個(gè)采樣數(shù)據(jù),對原始信號進(jìn)行8 級小波分解,去除1 級、2 級、3 級和8 級信號成分,將剩余成分重構(gòu)成新的ECG 信號,實(shí)現(xiàn)較好的濾波效果,同時(shí)保留了ECG 信號原有特征。
圖1 信號203預(yù)處理對比
該文通過Python 和TensorFlow2 構(gòu)建一維CNN模型,使用Keras 人工神經(jīng)網(wǎng)絡(luò)庫對模型進(jìn)行訓(xùn)練和測試。心電數(shù)據(jù)來源于美國麻省理工學(xué)院提供的MIT-BIH 心律失常數(shù)據(jù)庫,數(shù)據(jù)由48 條心電記錄組成,每條記錄時(shí)長為30 min,采樣頻率為360 Hz,該研究僅采用MLII 導(dǎo)聯(lián)[11-12]的心電信號作為實(shí)驗(yàn)數(shù)據(jù)。共分為正常心拍(N)、房性早搏(A)、心室的心室異常(V)、左束支傳導(dǎo)阻滯(L)、起搏心拍(P)五類。
圖2 所示為一個(gè)心跳周期的波形圖,由于MITBIH 數(shù)據(jù)庫中的心電數(shù)據(jù)為連續(xù)采樣數(shù)據(jù),為了獲得更大的數(shù)據(jù)樣本,需要首先對心電數(shù)據(jù)進(jìn)行切分,而進(jìn)行數(shù)據(jù)切分首先需要進(jìn)行R 波峰的識別,文中QRS 復(fù)合波中R 波峰位置是由差分運(yùn)算結(jié)合自適應(yīng)閾值法融合檢測確定的,差分閾值法[13]結(jié)構(gòu)原理簡單、容易實(shí)現(xiàn),計(jì)算處理速度快,適用于運(yùn)算復(fù)雜度低的使用場合。
圖2 心跳周期示意圖
在R 波峰位置確定后,以R 波峰位置為基準(zhǔn),向前取100 個(gè)采樣點(diǎn),向后取200 個(gè)采樣點(diǎn)構(gòu)成一個(gè)完整的心拍樣本,每個(gè)心拍樣本定義為:
式中,Rpeak(k)表示心電信號的數(shù)字采樣值,表示第k個(gè)R波峰值。
按照上述方法可將心電信號拆分出92 192 個(gè)心拍樣本,CNN 模型采用9 個(gè)網(wǎng)絡(luò)層級結(jié)構(gòu),包括4 層卷積層、3 層池化層、2 層全連接層,CNN 模型結(jié)構(gòu)如圖3 所示。
圖3 CNN模型結(jié)構(gòu)
設(shè)計(jì)CNN 模型各層參數(shù)設(shè)置如表1 所示。
表1 CNN模型每層的參數(shù)設(shè)置
該文使用Relu 函數(shù)作為卷積層的激活函數(shù),當(dāng)輸入信號小于0 時(shí),非線性激活層會舍去信號特征,從而減小網(wǎng)絡(luò)參數(shù)間的依賴性,避免模型產(chǎn)生過擬合問題。針對多分類模型,輸出層的激活函數(shù)采用softmax 多分類器[14],該分類器會自動選取最大概率作為CNN 分類結(jié)果的輸出。
在模型訓(xùn)練過程中,采用類別交叉熵?fù)p失函數(shù)(Categorical Cross Entropy,CSE)[15]來訓(xùn)練CNN 網(wǎng)絡(luò)模型,多分類的交叉熵?fù)p失函數(shù)計(jì)算如式(2)所示:
式中,N為心拍樣本總數(shù);M為心律失常類別的數(shù)量,該研究分為五類,故M=5,yic為符號函數(shù),當(dāng)?shù)趇個(gè)心拍樣本真實(shí)類別屬于c時(shí),其值為1,否則為0;Pic代表第i個(gè)心拍樣本心律失常類別屬于c的預(yù)測概率。
經(jīng)過多次實(shí)驗(yàn)對比進(jìn)行模型調(diào)參,在表2 所示參數(shù)值時(shí)模型分類效果達(dá)到最佳。
表2 CNN模型主要參數(shù)設(shè)置
該文采用整體準(zhǔn)確率(Overall Accuracy,OA)、正預(yù)測率(Positive Prediction Value,PPV)和靈敏性(Sensibility,SE)三種指標(biāo)對實(shí)驗(yàn)結(jié)果進(jìn)行評估,計(jì)算方法如式(3)-(5)所示:
式中,TP 為正確分類的陽性樣本數(shù);TN 為正確分類的陰性樣本數(shù);FP 為實(shí)際為陰性誤分類成陽性的樣本數(shù);FN 為實(shí)際為陽性誤分類成陰性的樣本數(shù)。
整體準(zhǔn)確率(OA)為正確分類的樣本占所有樣本數(shù)的比例;正預(yù)測率(PPV)為正確分類的陽性樣本被正確預(yù)測的概率;靈敏性(SE)為正確的陽性樣本被正確分類的比例。靈敏性越高,心律失常疾病檢出正確率越高;整體準(zhǔn)確率越高,說明模型分類性能也越好。
該研究將數(shù)據(jù)集按7∶3 比例隨機(jī)劃分訓(xùn)練集和測試集,故訓(xùn)練集心拍樣本量為64 535,測試集心拍樣本量為27 657,每次訓(xùn)練完成后就驗(yàn)證一次。將訓(xùn)練集放入CNN 模型上訓(xùn)練,并根據(jù)驗(yàn)證集在其模型上的分類效果來評估模型的性能。驗(yàn)證集和訓(xùn)練集的準(zhǔn)確率和損失值如圖4-5 所示。
圖4 模型在訓(xùn)練集與驗(yàn)證集的準(zhǔn)確率結(jié)果
圖4 中accuracy 為訓(xùn)練集的準(zhǔn)確率,val_accuracy為驗(yàn)證集的準(zhǔn)確率;圖5 中l(wèi)oss 為訓(xùn)練集的損失值,val_loss 為驗(yàn)證集的損失值。
圖5 模型在訓(xùn)練集與驗(yàn)證集的損失值結(jié)果
通過混淆矩陣可直觀了解預(yù)測的分類和真實(shí)的類別在模型上的表現(xiàn),構(gòu)建一維CNN 模型下的五分類混淆矩陣如圖6 所示。
圖6 CNN模型下的五分類混淆矩陣
水平方向代表預(yù)測的分類,豎直方向代表真實(shí)的分類,矩陣中的數(shù)值代表心拍樣本,0、1、2、3、4 分別代表心律失常的NAVLP 五分類。因此,對角線為正確分類的心拍樣本數(shù)。其中,N 類(正常心拍)正確分類樣本數(shù)有21 400,被錯(cuò)誤分類有56 個(gè)樣本;A類(房性早搏)正確分類樣本數(shù)有476,被錯(cuò)誤分類有109 個(gè)樣本;V 類(心室的心室異常)正確分類樣本數(shù)有2 021,被錯(cuò)誤分類有81 個(gè)樣本;L 類(左束支傳導(dǎo)阻滯)正確分類樣本數(shù)有1 998,被錯(cuò)誤分類有3個(gè)樣本;P 類(起搏心拍)正確分類樣本數(shù)有1 510,被錯(cuò)誤分類有3 個(gè)樣本。對于測試集錯(cuò)誤分類樣本數(shù)最低是L 類和P 類均為3 個(gè)樣本,最高是A 類為109 個(gè)樣本。
從圖4-5 可看出驗(yàn)證集的準(zhǔn)確率幾乎都高于訓(xùn)練集,模型沒有出現(xiàn)過擬合現(xiàn)象,訓(xùn)練集和驗(yàn)證集的誤差均很小,反映了模型分類精度高且穩(wěn)定。根據(jù)圖6 所示的混淆矩陣,按照評價(jià)指標(biāo)公式計(jì)算一維卷積神經(jīng)網(wǎng)絡(luò)(CNN)模型分類結(jié)果的各項(xiàng)指標(biāo),如表3 所示。
表3 CNN模型分類結(jié)果的各項(xiàng)指標(biāo)
由表3 數(shù)據(jù)可知,該文提出的一維卷積神經(jīng)網(wǎng)絡(luò)(CNN)分類模型實(shí)現(xiàn)心律失常五分類的整體準(zhǔn)確率達(dá)99%以上,從正預(yù)測率(PPV)來看,模型對N、V、L、P 類的正預(yù)測均達(dá)99%以上,而模型對A 類的正預(yù)測率為93.3%,說明心拍如果被錯(cuò)誤分類,則被誤診為該類的可能性更高。再從靈敏性角度來看,模型對N、V、L、P 類的靈敏性均達(dá)97%以上,而靈敏性最低的是A 類,為81.3%。綜上所述,模型對于N、V、L、P 四類從正預(yù)測率和靈敏性的角度上均有較好的分類效果,對于A 類的分類效果較差,是因?yàn)镸IT-BIH 數(shù)據(jù)庫關(guān)于A 類樣本數(shù)較少,模型訓(xùn)練次數(shù)不足,能學(xué)習(xí)到的特征相對有限。
該文實(shí)驗(yàn)結(jié)果與其他文獻(xiàn)進(jìn)行比較,結(jié)果如表4所示,可見在準(zhǔn)確率方面有提升,而且CNN 模型結(jié)構(gòu)復(fù)雜度可以接受,利用ST 公司新推出的人工智能工具包STM32Cube.AI,可進(jìn)一步將該算法移植到STM32 微控制器上,實(shí)現(xiàn)便攜式或者穿戴式心律失常分類檢測,實(shí)時(shí)監(jiān)測人體健康狀況。
表4 該文與其他文獻(xiàn)模型分類效果比較
在前人研究的基礎(chǔ)上,構(gòu)建了9 層網(wǎng)絡(luò)結(jié)構(gòu)的一維卷積神經(jīng)網(wǎng)絡(luò)模型,采用公共數(shù)據(jù)庫中的心電數(shù)據(jù)進(jìn)行訓(xùn)練與測試,實(shí)現(xiàn)心律失常的五分類識別,模型最終整體準(zhǔn)確率達(dá)99%以上,取得很好的分類效果。
該文的創(chuàng)新點(diǎn)在于使用單導(dǎo)聯(lián)的心電數(shù)據(jù)和相對簡潔的模型和數(shù)據(jù)運(yùn)算,實(shí)現(xiàn)較高的心律失常分類準(zhǔn)確率,最終目標(biāo)是在穿戴式設(shè)備上予以實(shí)現(xiàn),進(jìn)而達(dá)到實(shí)時(shí)監(jiān)測人體健康狀態(tài)的目的。但是,穿戴式的心電信號來源于實(shí)時(shí)的穿戴設(shè)備檢測,其實(shí)際信號質(zhì)量與MIT-BIH 數(shù)據(jù)庫將存在差別。同時(shí),模型的泛化能力仍有較大提升空間,將在以后研究中繼續(xù)加以改進(jìn)和完善。