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