徐久強(qiáng), 張金鵬, 賈玉其, 邵建新
(東北大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 遼寧 沈陽(yáng) 110169)
心電圖的發(fā)展歷史已經(jīng)有百余年,經(jīng)過(guò)幾代人的努力,心電圖已經(jīng)是判斷心臟健康程度、檢查各種心律、心肌供血、心肌傳導(dǎo)等病癥最便捷、最經(jīng)濟(jì)的手段.心電記錄的數(shù)量隨著心電描記技術(shù)的廣泛采用和信號(hào)采集技術(shù)的進(jìn)步顯著增長(zhǎng),但傳統(tǒng)的心電圖人工審閱效率低且誤診率高.心電圖的自動(dòng)化診斷是一項(xiàng)艱巨的任務(wù),很多企業(yè)、高校、科研院所開(kāi)始進(jìn)行心電圖計(jì)算機(jī)自動(dòng)化診斷的研究.
束支傳導(dǎo)阻滯是指希氏束分叉以下部位的傳導(dǎo)阻滯,束支傳導(dǎo)阻滯的準(zhǔn)確判斷對(duì)冠心病等癥狀有著預(yù)警作用.心肌梗死、心肌損傷等病癥的判斷依據(jù)會(huì)受束支傳導(dǎo)阻滯判斷結(jié)果的嚴(yán)重影響,因此準(zhǔn)確識(shí)別出束支傳導(dǎo)阻滯將對(duì)其他心臟疾病的判斷起到輔助作用.
臨床12導(dǎo)聯(lián)同步靜態(tài)心電圖是目前醫(yī)院門(mén)診進(jìn)行常規(guī)檢查的主要手段,診斷過(guò)程主要是尋找心電信號(hào)的特征波形并測(cè)量必要參數(shù),然后據(jù)此進(jìn)行病癥判斷,實(shí)質(zhì)上就是對(duì)心電圖進(jìn)行分類(lèi).從心電圖的表征來(lái)說(shuō)各種心臟疾病的診斷標(biāo)準(zhǔn)因患者的性別、年齡、各種身體自然因素等的不同而呈現(xiàn)細(xì)微差異,難以建立統(tǒng)一標(biāo)準(zhǔn),因此基于統(tǒng)計(jì)學(xué)習(xí)方法的分類(lèi)策略被廣泛應(yīng)用.心電圖分類(lèi)策略主要有兩種:一是提取心電圖的特征參數(shù),然后對(duì)心電現(xiàn)象進(jìn)行識(shí)別,文獻(xiàn)[1-2]提取心電圖特征后,采用支持向量機(jī)、最優(yōu)路徑森林等方法進(jìn)行分類(lèi),這類(lèi)方法嚴(yán)重依賴(lài)于特征參數(shù)提取的準(zhǔn)確性;二是根據(jù)心電信號(hào)的形態(tài)進(jìn)行分類(lèi),文獻(xiàn)[3-5]分別采用卷積神經(jīng)網(wǎng)絡(luò)、自編碼器、受限玻爾茲曼機(jī)等進(jìn)行心電信號(hào)分類(lèi).心電信號(hào)具有周期性,采用神經(jīng)網(wǎng)絡(luò)對(duì)心電信號(hào)分類(lèi)可按照數(shù)據(jù)單元長(zhǎng)度分為單心搏模式和多心搏模式.無(wú)論采取何種模式,在給出分類(lèi)結(jié)果后都應(yīng)聚合為整例心電圖的診斷結(jié)論.
希氏束分為左右束支,按阻滯類(lèi)型可分為左束支傳導(dǎo)阻滯(LBBB)和右束支傳導(dǎo)阻滯(RBBB),束支傳導(dǎo)阻滯會(huì)導(dǎo)致心室肌激動(dòng)延遲和異常,心電圖上表現(xiàn)為QRS波群時(shí)限延長(zhǎng)和形態(tài)異常.本文重點(diǎn)研究基于靜息12導(dǎo)聯(lián)心電圖的束支傳導(dǎo)阻滯的自動(dòng)化診斷,自動(dòng)診斷結(jié)果最后交由醫(yī)生進(jìn)行診斷核實(shí),以提高工作效率和準(zhǔn)確性.具體研究適用于多導(dǎo)聯(lián)心電圖的卷積神經(jīng)網(wǎng)絡(luò)模型(multi-lead convolutional neural network,MLCNN),并以MLCNN作為基學(xué)習(xí)器研究基于集成學(xué)習(xí)的束支傳導(dǎo)阻滯識(shí)別方法.
圖1所示為本文束支傳導(dǎo)阻滯心電圖識(shí)別方法的整體流程,包含數(shù)據(jù)預(yù)處理、模型訓(xùn)練、集成預(yù)測(cè)和多心搏診斷4個(gè)部分.首先將12導(dǎo)聯(lián)心電圖分割為單心搏的數(shù)據(jù)切片作為數(shù)據(jù)集;然后抽取數(shù)據(jù)集的20%作為測(cè)試集保留,其余用于模型訓(xùn)練;基于bootstrapping方法從剩余數(shù)據(jù)中抽取若干個(gè)子集,每個(gè)子集按照8∶2的比例分配給訓(xùn)練集和驗(yàn)證集.本文以3個(gè)模型集成為例,獲取3個(gè)數(shù)據(jù)子集dataset 1,dataset 2和dataset 3.3個(gè)數(shù)據(jù)子集分別采用不同的濾波算法進(jìn)行處理,處理后輸入MLCNN,訓(xùn)練得到3個(gè)(model 1,model 2和model 3)表現(xiàn)良好但具有差異的模型.接著將子集中預(yù)留的驗(yàn)證集輸入3個(gè)模型并用貝葉斯方法融合3個(gè)模型的輸出作為單心搏分類(lèi)結(jié)果.最后采用簡(jiǎn)單投票法將1例心電圖的多個(gè)心搏分類(lèi)結(jié)果結(jié)合起來(lái)得到診斷結(jié)論.
本文使用的心電數(shù)據(jù)時(shí)長(zhǎng)為10 s,采樣頻率為500 Hz,組織為12×5 000(12導(dǎo)聯(lián)×500 Hz×10 s)的矩陣,一切操作針對(duì)該矩陣進(jìn)行.心電信號(hào)是體表弱電生理信號(hào),極易受到噪聲干擾,其中由肌肉收縮、呼吸、電極位置變化等引起的基線(xiàn)漂移嚴(yán)重影響心電圖波形測(cè)量.在數(shù)據(jù)預(yù)處理階段,首先采用文獻(xiàn)[6]提出的形態(tài)學(xué)濾波方法對(duì)心電信號(hào)進(jìn)行基線(xiàn)矯正以排除基線(xiàn)漂移對(duì)后續(xù)波形檢測(cè)的影響;然后利用文獻(xiàn)[7]提出的單導(dǎo)聯(lián)心電波形檢測(cè)方法對(duì)各導(dǎo)聯(lián)分別進(jìn)行檢測(cè),得到12導(dǎo)聯(lián)所有心搏的P波、QRS和T波的起止點(diǎn)及峰值點(diǎn)信息.隨后綜合12導(dǎo)聯(lián)信息,對(duì)于第k個(gè)心搏,以第k-1個(gè)心搏各導(dǎo)聯(lián)最晚的T波結(jié)束點(diǎn)作為起始點(diǎn),以當(dāng)前心搏的各導(dǎo)聯(lián)最晚的T波結(jié)束點(diǎn)作為終止點(diǎn),得到若干個(gè)長(zhǎng)度不等的12導(dǎo)聯(lián)單心搏數(shù)據(jù)切片(去除第一個(gè)不完整的心搏).有研究表明束支傳導(dǎo)阻滯依靠I,V1和V6 3個(gè)導(dǎo)聯(lián)就可以準(zhǔn)確識(shí)別[8],所以只提取這3個(gè)導(dǎo)聯(lián)數(shù)據(jù),并且將單心搏的采樣點(diǎn)數(shù)重采樣歸一化到400個(gè),得到若干3×400的矩陣數(shù)據(jù)單元.
單導(dǎo)聯(lián)心電信號(hào)是一維時(shí)間序列,利用一維卷積神經(jīng)網(wǎng)絡(luò)模型[9]進(jìn)行分類(lèi)較為常見(jiàn).Jun 等[10]將心電信號(hào)轉(zhuǎn)換為二維灰度圖像,并利用二維卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行分類(lèi),12導(dǎo)聯(lián)心電圖表示為12×5 000的二維矩陣.由于心電圖同導(dǎo)聯(lián)內(nèi)(橫向)相互關(guān)聯(lián),而不同導(dǎo)聯(lián)間(縱向)相對(duì)獨(dú)立,這不同于二維圖像結(jié)構(gòu),因此本文考慮多導(dǎo)聯(lián)心電數(shù)據(jù)的特殊性,設(shè)計(jì)了MLCNN模型,基礎(chǔ)卷積單元和網(wǎng)絡(luò)結(jié)構(gòu)如圖2,圖3所示.
將I,V1以及V6 3個(gè)導(dǎo)聯(lián)的單心搏心電數(shù)據(jù)組成3×400的矩陣,設(shè)置相應(yīng)的一維卷積核,使其按行卷積得到feature map.由基礎(chǔ)卷積單元構(gòu)建多導(dǎo)聯(lián)心電圖的卷積神經(jīng)網(wǎng)絡(luò)模型MLCNN,MLCNN具有13層網(wǎng)絡(luò)結(jié)構(gòu):6個(gè)卷積層、4個(gè)池化層和3個(gè)全連接層.整個(gè)MLCNN除池化層和激活層外有9層需要訓(xùn)練參數(shù),前6層為卷積層,后3層為全連接層,共計(jì)62 723個(gè)參數(shù).輸出層采用Softmax函數(shù)進(jìn)行三分類(lèi).
訓(xùn)練使用mini-batch基于反向傳播的梯度下降法來(lái)優(yōu)化多項(xiàng)邏輯回歸目標(biāo).批數(shù)量為256,在前兩個(gè)全連接層dropout為0.5,學(xué)習(xí)率為0.01,且當(dāng)驗(yàn)證集停止提升時(shí)以10的倍數(shù)衰減.同時(shí),初始化權(quán)重取樣于標(biāo)準(zhǔn)高斯分布,偏置項(xiàng)初始化為0.前3個(gè)卷積層使用1×5的卷積核,步長(zhǎng)為3,后3個(gè)卷積層使用1×3的卷積核,步長(zhǎng)為1,激活函數(shù)使用ReLU.
圖1 心電圖分類(lèi)整體流程
圖2 卷積單元
圖3 MLCNN模型的結(jié)構(gòu)
對(duì)數(shù)據(jù)集dataset 1,dataset 2和dataset 3分別進(jìn)行不同的濾波操作(FIR濾波、IIR濾波和0.5~58 Hz 的帶通濾波).將3個(gè)經(jīng)過(guò)濾波后的數(shù)據(jù)集分別輸入MLCNN,訓(xùn)練得到model 1,model 2和model 3.以下是訓(xùn)練過(guò)程,圖4為訓(xùn)練流程圖.
步驟1 初始化神經(jīng)網(wǎng)絡(luò)的權(quán)重和偏置.
步驟2 隨機(jī)選擇小批量數(shù)據(jù)樣本(Dk,Lk)送入神經(jīng)網(wǎng)絡(luò),Dk為數(shù)據(jù),Lk為分類(lèi)標(biāo)簽.
步驟3 按照式(1)計(jì)算誤差E,并計(jì)算參數(shù)調(diào)整量.式中dk是目標(biāo)矢量,yk是輸出矢量.
(1)
步驟4 判斷是否滿(mǎn)足訓(xùn)練目標(biāo)要求,如果不滿(mǎn)足要求,轉(zhuǎn)步驟5,否則保存參數(shù),訓(xùn)練完成.
步驟5 判斷是否連續(xù)五輪訓(xùn)練更新權(quán)重沒(méi)有引起損失函數(shù)的值變化.如果模型性能沒(méi)有提升則變更學(xué)習(xí)率,更新權(quán)重,轉(zhuǎn)步驟2;否則更新權(quán)重再轉(zhuǎn)步驟2.
圖4 模型訓(xùn)練流程圖
為了增強(qiáng)分類(lèi)性能,本文采用以MLCNN作為基學(xué)習(xí)器的同質(zhì)集成學(xué)習(xí)思想,將自助采樣的數(shù)據(jù)集在數(shù)據(jù)差異化處理后分別輸入MLCNN進(jìn)行訓(xùn)練,在得到的預(yù)測(cè)模型基礎(chǔ)上用貝葉斯方法進(jìn)行融合以實(shí)現(xiàn)集成學(xué)習(xí).基于modeli融合后的分類(lèi)結(jié)果result由式(2)確定,P(y=j|modeli)是第i個(gè)分類(lèi)器modeli給出的結(jié)果屬于類(lèi)別j的概率.
(2)
一般束支傳導(dǎo)阻滯在心電圖的所有心搏都會(huì)體現(xiàn),可以將1例心電圖中多個(gè)心搏的分類(lèi)結(jié)果聯(lián)合起來(lái)給出診斷結(jié)論.假設(shè)1例心電圖中共有n個(gè)心搏,每個(gè)心搏的分類(lèi)結(jié)果有三種為A,B和C,本文采用簡(jiǎn)單投票法對(duì)心搏分類(lèi)情況進(jìn)行統(tǒng)計(jì),票數(shù)最多的分類(lèi)即為心電圖的最終結(jié)論.
本文實(shí)驗(yàn)數(shù)據(jù)來(lái)自中國(guó)醫(yī)科大學(xué)附屬第一醫(yī)院的臨床資料,由心臟科醫(yī)生給出診斷標(biāo)注.實(shí)驗(yàn)使用了5 250例心電圖,共計(jì)50 151個(gè)心搏單元.其中3 500例心電圖用于單心搏分類(lèi)模型的訓(xùn)練與測(cè)試,1 750例心電圖用于多心搏投票預(yù)測(cè)(見(jiàn)表1).為驗(yàn)證本文方法的有效性,從單心搏分類(lèi)模型數(shù)據(jù)集的每類(lèi)中抽取20%用作心搏分類(lèi)功能測(cè)試,剩余部分用于訓(xùn)練.表1展示了數(shù)據(jù)的分布情況,表中的其他類(lèi)包含除LBBB和RBBB外的其他心電圖.
本例分類(lèi)模型為三分類(lèi),假定任一分類(lèi)為正例,則另外兩類(lèi)為負(fù)例.由此可針對(duì)每個(gè)類(lèi)別分別統(tǒng)計(jì)4個(gè)基本統(tǒng)計(jì)量TP(true positive),FP(false positive),FN(false negative)和TN(true negative),由以上統(tǒng)計(jì)量可以計(jì)算靈敏度、特異度、正確率和準(zhǔn)確率等4個(gè)性能評(píng)估指標(biāo).文獻(xiàn)[10]給出了參數(shù)含義和計(jì)算方法.
表2給出了3個(gè)分類(lèi)模型和模型融合后在測(cè)試集上得到的混淆矩陣,可以看出任一模型分類(lèi)性能良好且模型間具有差異.由混淆矩陣計(jì)算評(píng)價(jià)參數(shù),得到表3,集成后3種心搏識(shí)別的正確率分別為98.40%,99.01%和98.06%,與單一分類(lèi)器相比均有所提升,靈敏度、特異度以及準(zhǔn)確率集成后的結(jié)果沒(méi)有顯著變化.整體正確率由混淆矩陣中所有類(lèi)別預(yù)測(cè)結(jié)果與標(biāo)簽一致的樣本數(shù)除以總樣本數(shù)計(jì)算得到,3個(gè)基礎(chǔ)分類(lèi)器的整體正確率分別為97.18%,94.32%和96.88%,集成后的正確率提升為97.73%.表4所示為1 750條心電圖測(cè)試樣例結(jié)合多心搏進(jìn)行診斷的測(cè)試結(jié)果,總正確率為98.80%,且具有高靈敏度和特異度.實(shí)驗(yàn)結(jié)果表明本文采用的基于集成學(xué)習(xí)的束支傳導(dǎo)阻滯識(shí)別方法可以有效識(shí)別左、右束支傳導(dǎo)阻滯心電圖,該方法具有較好的診斷效能.
表1 數(shù)據(jù)分布表
表2 預(yù)測(cè)混淆矩陣
表3 實(shí)驗(yàn)評(píng)價(jià)參數(shù)
表4 多心搏聯(lián)合預(yù)測(cè)結(jié)果
本文提出了以MLCNN作為基學(xué)習(xí)器,通過(guò)貝葉斯方法融合多個(gè)模型進(jìn)行多導(dǎo)聯(lián)單心搏心電圖分類(lèi)的集成學(xué)習(xí)方法,并采用簡(jiǎn)單投票法結(jié)合心電圖的多個(gè)心搏預(yù)測(cè)整例心電圖的最終診斷.3個(gè)基學(xué)習(xí)器的多導(dǎo)聯(lián)單心搏分類(lèi)正確率分別為97.18%,94.32%和96.88%,集成后提升為97.73%,針對(duì)整例心電圖的診斷正確率為98.80%.實(shí)驗(yàn)結(jié)果表明MLCNN是一個(gè)有效的多導(dǎo)聯(lián)心電圖分類(lèi)模型,本文所提方法可以有效識(shí)別左、右束支傳導(dǎo)阻滯心電圖,具有臨床應(yīng)用價(jià)值.