張海斌,劉 娟,劉思璇,程 宇
武漢大學 計算機學院,武漢430072
心電圖(ECG)是利用心電圖機從體表記錄心臟心動周期所產生的電活動變化圖形的技術,記錄的是電壓隨時間變化的曲線。隨著社區醫療服務的發展,心電圖的作用越見顯著,可以及時幫助發現潛在的心臟疾病或先天性心臟病。目前,心電圖已成為臨床最常用的檢查之一,主要用于記錄人體正常心臟的電活動,幫助診斷心律失常、心肌缺血、心臟擴大、肥厚、心肌梗死及部位,判斷藥物或電解質情況對心臟的影響及判斷人工心臟起搏狀況等。臨床檢查上,心電圖主要依靠心電圖醫師對ECG 信號的波形和節律等進行分析,分析結果易受醫師的主觀因素影響。另一方面,各類醫療和體檢等機構每天均產生大量ECG 數據,但有經驗的心電圖醫師資源卻嚴重不足,制約了心電圖的臨床輔助診斷效果。因此,越來越多的研究機構致力于心電圖信號的自動判讀方法的研究。
心電信號的采集經常受到各種類型的噪聲的污染,包括基線漂移、電干擾、肌肉顫動干擾和運動偽信號[1]。噪聲污染影響采集到的心電圖信號的質量。心電信號的質量好壞,決定著波形特征和節律特征檢測的難易程度,因而直接決定著最終診斷的準確性。質量極差的心電圖幾乎無法獲得其波形或節律等有效信息,即使是經驗豐富的醫生也很難對其進行正確判讀,不適用于臨床應用。因此,在利用計算機方法對心電信號進行自動判讀之前,有必要對其質量進行評估,及時剔除臨床不可接受的心電信號。自PhysioNet/CinC Chanllenge 2011(PICC)以來,越來越多的學者開始對此進行研究[2]。現有的心電信號質量評估方法大體可分為兩類:基于規則或啟發式的評估方法和基于機器學習的評估方法。
在規則或啟發式的研究方法中,文獻[3]基于心率特異性信號小波分解系數得到的能量熵來評估是否可以從門診病人的單導聯心電圖中獲得可靠的心率,在標記好的數據集上的靈敏度和特異性分別為94%和98%,但該方法對P 波、T 波等波形受噪聲干擾的數據檢測結果不佳。Maan等人提出了一種基于導聯相關性和Kors矩陣的心電質量評價方法,在PICC 數據庫對該方法進行評價,正確率為92.2%[4]。Johannesen和Galeotti制定規則丟棄無信號變化、大振幅偏移的心電圖記錄,通過高通濾波器和三次樣條函數檢測基線漂移、電力線和偽影來進行質量評估,該方法在PICC 測試集上的準確率為90%[5]。Zhang Yatao 等 人 使 用Lempel-Ziv complexity來評估心電信號的質量,實驗結果表明LZ 值對噪聲信號比較敏感,尤其是高頻噪聲信號[6]。Naseri 等人則提出了基于能量凹陷指數(energy-concavity index)和心電信號相關性測量來對心電信號進行分析[7]。文獻[8]提出了一種基于簡單啟發式融合和模糊綜合評判的心電圖質量評價方法。該方法通過提取波形基本特征,結合柯西分布、矩形分布和梯形分布建立了模糊向量。選擇有界算子和加權隸屬度函數進行評價和分類。在PICC 測試數據集上的準確率、敏感度和特異度分別為0.946、0.903和0.93。
在機器學習方法中,文獻[9]采用結構相似性對兩個心電圖的圖像進行比較,通過聚類方法選擇具有代表性的心電圖圖像作為模板,再通過線性判別分類器進行質量評估,該方法在UCSF 數據庫上的準確率為0.931,在PICC 數據集上的準確率為0.825。Behar 等人通過7個信號質量指數(pSQI、baseSQI、sSQI、kSQI、bSQI、rSQI和pcaSQI)共72個特征來設計分類器,并在PICC、MITBIHA、MICMIC II數據集上進行測試,利用高斯核函數的SVM分類器,對于竇性心律正常的心電圖,分類準確率達到99%,對于心律失常的心電圖,分類準確率達到95%[10-12]。同樣,Clifford 等人也通過6 個信號質量指數(iSQI、bSQI、fSQI、sSQI、kSQI和pSQI)作為特征來設計多分類器(NB、SVM、MLP 等)進行質量評估,在PICC 測試集上取得了92.6%的準確率[13]。在文獻[14]中,Kuzilek 提出了三級算法來評估ECG 信號。第一步提出簡單規則對心電圖做一個簡單分類,基于閾值,給心電圖一個分數。第二步計算特征,這些特征被給予SVM 用于計算得分。最后,組合第一步和第二步的分數來確定心電圖信號質量。該方法在PICC數據庫上進行測試,訓練集和測試集得分分別為0.999和0.836。
但已有的研究,無論是規則化還是機器學習的方法,都存在一定的局限性:第一,噪聲環境下計算各種特征尤其是形態學特征,仍然是一項具有挑戰性的任務。第二,臨床環境下,心電專家很難提出一套合適的規則來對心電圖質量的好壞進行判定,閾值參數的設定也非常困難。
深度學習(Deep Learning,DL)是機器學習研究中一個新的領域,其動機在于建立、模擬人腦進行分析學習。深度學習通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發現數據的分布式特征表示,在計算機視覺[15]、圖像處理[16]、語音識別[17]、自然語言處理[18]等領域已經取得了很好的成果。
卷積神經網絡(Convolutional Neural Network,CNN)在計算機視覺、圖像處理等方面都取得了不錯的成績。在心電疾病多分類領域也有研究[19-20]。本文基于卷積神經網絡對心電信號的質量進行評估,用經過標記的“質量可接受”和“質量不可接受”的原始心電圖數據進行卷積神經網絡訓練,通過網絡模型自己尋找分類特征,最終學習得到心電信號質量評估模型。
很多心電圖信號中部分片段質量不可接受,而部分片段的質量可接受。如果質量可接受的部分信息足夠多,則該心電圖也能用于臨床。與其他方法直接對心電圖整體的質量進行評估的策略不同,本文基于片段對心電圖進行質量評估,可以得到更精細的評估結果。
臨床上在對心電圖進行診斷分析時,更多的是將心電信號當作圖像來分析。卷積神經網絡是一種深度前饋人工神經網絡,已成功地應用于圖像識別方向。典型的卷積神經網絡主要由輸入層、卷積層、池化層、內積層和輸出層組成。本文將心電圖質量評估問題看成是將心電信號分為臨床可接受和臨床不可接受的兩分類問題,并使用文獻[21]中的3 層卷積神經網絡來構建分類模型,模型示意圖如圖1所示。
輸入層:輸入層加載模型的輸入并產生用于饋送給卷積層的輸出。臨床診斷下,心電圖節律異常需要根據連續多個心動周期做出判斷,單一或少數幾個心動周期很難發現問題,因此本文模型輸入的數據格式定義為1×1×3 000,即3 000 個采樣點長度的一維數據,代表著一段時間長度的心電信號,這樣,既保證了得到的質量可接受的數據片段能用于節律異常診斷,也能最大化地找到“質量可接受”數據。同時數據采樣頻率為500 Hz。
圖1 CNN模型結構
目前,常見心電圖主要是單導聯、8 導聯、12 導聯等。并且不同來源的心電信號,其采樣頻率和采樣長度也不同。當需要對采樣頻率不是500 Hz的多導聯心電信號作為輸入時,需要對每個導聯進行降采樣或過采樣以調整采樣頻率為500 Hz。
卷積層:卷積層將輸入層輸出的數據與一組可學習濾波器卷積,每個濾波器在輸出圖像中產生一個特征映射。給定一個輸入信號序列xt,t=1,2,…,n 和濾波器wt,t=1,2,…,m。輸入層的特征被一個卷積核進行卷積,再加上一個額外的偏置b,之后通過激活函數得到輸出特征。第l 層的第i 個神經元的輸入ali定義為:
池化層:池化層的輸入是上一層卷積層的輸出結果,它的目的主要是對輸入的空間維度進行下采樣,降低特征向量維度。常見的池化操作是取核區域內所有神經元的最大值(MAX)或者平均值(AVE)。對上一個卷積層輸出的特征向量,將其劃分為多個區域Rk,k=1,2,…,K ,每一個區域的大小即池化size的大小,有:
內積層:也稱之為全連接層。經過之前的卷積層、池化層后,樣本數據已經被映射到隱藏層的特征空間中,內積層就是將之前學習到的特征又映射到樣本分類空間中。在這個模型中有兩個內積層。其中,最后一個卷積層的輸出通過SoftMax 激活函數輸出屬于每個類別的概率。
經模型訓練過程,得到本模型采用的CNN 網絡結構如表1。經過3個卷積池化操作和2個全連接層操作后,模型輸出數據屬于某一類別的概率值。通過概率值即可判斷該數據屬于二分類中的哪一類。
表1 本文采用的CNN網絡結構
由模型輸入數據的條件可知,當對多導聯心電圖進行質量分析時,如果每個導聯的長度大于3 000 個采樣點的長度,最后通過模型判斷,該心電圖的每個導聯都有多個輸出結果,分別表示該導聯各個小片段數據的信號質量分析結果。
PhysioNet/CinC Chanllenge 2011 挑戰賽(PICC)期望參賽選手評估心電圖信號質量,以獲得質量可接受的心電圖數據。本文從PICCset-a數據集上選取模型訓練需要的數據。該數據集包含1 000份數據,是標準12導聯心電信號,采樣頻率是500 Hz,采樣時長10 s。每份數據均經過多名醫生標記為“質量不可接受”(unacceptable)或者“質量可接受”(acceptable)。該數據集可以通過文獻[22]進行下載獲取。
考慮到模型輸入層數據的要求和數據樣本的數量,本文將set-a 數據集中每個導聯的心電信號截取成6 s、3 000個采樣點長度的訓練樣本數據。數據經處理和心電醫生標記后得到4 878份數據用于模型訓練,其中“質量可接受”數據2 719 份,“質量不可接受”數據2 159份。圖2(a)是該數據集中被標記為“質量可接受”標簽的數據,圖2(b)~(d)是該數據集中被標記為“質量不可接受”標簽的數據。
PICC 2011 挑戰賽數據的長度為5 000 個采樣點,為滿足模型輸入的條件,先將數據分割成3 000 個采樣點長度的片段。這里,每個導聯的數據均被分割成2個小片段。再將每個片段作為模型的輸入數據進行預測得到結果,最后將每個片段的結果進行綜合分析得到該份數據的質量分析結果。
圖2 PICC標記ECG信號
實驗數據中,正類表示“質量不可接受”,負類表示“質量可接受”。用TP 表示正確預測的正類數,TN表示正確預測的負類數,FN 表示將正類預測為負類的數目,FP 表示將負類預測為正類的數目,對于正確率accuracy(Acc) ,敏感性sensitivity(Se) ,特異性specificity(Sp),有:
本文使用Caffe框架,實驗軟件平臺采用Windows10系統、Pycharm 和Anaconda 2,硬件環境是16 GB 內存,intel?Core? i5-7200 CPU @ 3.40 GHz,主頻3.41 GHz的Dell計算機。
本文采用隨機梯度下降法來最小化損失函數,經模型調試,模型訓練時batchsize 設為50,即每次輸入的樣本數為50;基礎學習率為0.01;epoch為50,共進行50輪訓練迭代。
對用PICCset-a 數據集訓練好的模型采用獨立的PICCset-b 數據集進行評估。PICCset-b 數據集共有500份標準的12 導聯心電圖信號,采樣頻率和與PICCset-a數據集格式一樣。用PICCset-a數據集上訓練好的模型和基于片段策略,在PICCset-b上測試,不僅可以在實際情況中設置不同的閾值給出每張心電圖的質量評估結果,還能確定具體可用的數據片段。圖3 是數據集NO.2794112心電圖,各導聯中每個小片段數據“質量不可接受”的概率評估結果(保留2 位小數,下同)為{(0.01,0.03),(0.03,0.06),(1.00,1.00),(0.04,0.08),(0.70,0.72),(0.67,0.58),(0,0),(0,0),(0,0),(0,0),(0,0),(0.01,0)}。III導聯2個小片段評估為“質量不可接受”的概率都為1。但其他導聯小片段數據質量不可接受的概率都非常小,因此該心電圖全局會判定為質量可接受,同時給出局部評估結果,后續可以不對III導聯的信號進行特征檢測,避免因為噪聲干擾造成特征提取不準的問題。圖4 是NO.2969646 心電圖,各導聯每個小片段數據“質量不可接受”的概率評估結果為[(0.34,
0.50),(0.40,0.94),(0.22,0.97),(0.35,0.92),(0.44,1.00),(0.44,0.96),(0.29,1.00),(0.21,0.90),(0,0),(0.03,
0.59),(0.12,0.98),(0.25,0.99)]。2 個導聯的前部分信號“質量不可接受”的概率都很小,后部分信號“質量不可接受”的概率很大,該心電圖可以根據實際情況給出全局分析結果,特定情況下可以丟棄后部分“質量不可接受”信號,利用前半部分信號進行下一步的分析。
圖3 NO.2794112 ECG信號
圖4 NO.2969646 ECG信號
從實驗分析也可以看出,采用小片段進行分析,給出全局分析結果的同時,也提供局部質量分析結果,能更準確地找出心電圖信號“質量可接受”的片段,對后續的特征提取和自動判讀更有價值。
在set-b 測試集上進行全局質量評估,實驗設定:80%以上的小片段檢測為“質量不可接受”,則全局判定為“質量不可接受”,否則全局判定為“質量可接受”。與心電醫生標記的結果比較,共472 份心電數據判定正確,正確率達到0.944,其中,敏感性Se 為0.964,特異性Sp 為0.924。
表2是本文方法和其他方法的對比結果,Xia等人[23]提出的正則矩陣(Matrix of Regularity)融合信號質量多項特征,準確率為0.929,由于質量不可接受數據不確定性較大,種類較多,該方法特征規則主要針對缺失信號、導聯信號交叉和不規則節拍等質量不可接受信號,因此質量不可接受的識別率(Se)相對較低,而質量可接受的數據在這些特征規則的判定下識別率(Sp)較高。Clifford等人[12]提取6種信號質量指數(SQIs),通過實驗對比發現5個特征組合的分類器準確率最高,運用在多層感知機(MLP)上的準確率為0.940,運用支持向量機(SVM)的方法,準確率為0.916,相比于MLP 對這些特征進行再學習不同,原特征在SVM方法中對“質量可接受”數據區分度不大,特異性Sp 有待提高。Kalkstein等人[24]則根據先驗知識,針對該數據集制定相應規則,在set-b上的準確率為0.912。而本文方法在不需要顯示手動提取信號質量特征,也不需要選取規則和閾值的情況下,準確率和敏感性均最高,相較于“質量可接受”的數據,模型對“質量不可接受”的預測能力更強,原因在樣本標記時,質量可接受與否的界定存在主觀因素,存在噪聲干擾但臨床還能接受的數據標記為正常,模型在學習時會將這類噪聲當做“質量不可接受”類別的特征,誤判為“質量不可接受”。針對該問題,后續研究會增加模型訓練的樣本數,保證數據和標簽的差異性,使模型具有更強的泛化能力,更準確地學習到不同類別的特征。
表2 本文方法與其他方法的實驗結果
臨床環境下采集的心電信號往往由于含有大量的噪聲使得心電特征提取和診斷變得異常困難,評估心電信號質量將有助于后續研究。卷積神經網絡是一種深度前饋人工神經網絡,已成功地應用于圖像識別方向。本文使用一維卷積神經網絡模型來對心電信號質量進行分析。模型通過3個卷積、池化層和2個全連接層,將輸入的信號數據進行二分類概率輸出。經過心電醫生標記,PICC set-a 數據集上訓練得到的模型,在set-b 數據集上測試,準確率為0.944,敏感性為0.964,特異性為0.924,相比其他方法,在不需要顯示提取特征的情況下,分類效果得到一定的提升。
對心電圖進行質量評估的主要目的是減少由于心電信號不可接受而造成的誤報警。已有方法大多對心電圖進行整體分析,一旦判定為質量不可接受,就不會對該心電圖進行后續的特征檢測或疾病分類。本文基于小片段數據分析,當質量不可接受數據比較少,質量可接受的數據足夠多,該心電圖也能用于臨床研究。在心電圖信號采集無法避免噪聲干擾的情況下,可以最大限度地利用已有數據進行臨床輔助診斷。