李逸群,谷雪蓮,孫毅勇
(1.上海理工大學 醫療器械與食品學院,上海 200093;2.上海微創電生理醫療科技股份有限公司,上海 201318)
房顫(Atrial Fibrillation,AF)是一種常見的心律失常疾病,容易誘發心力衰竭、腦卒中、心肌梗死等疾病,導致較高的致殘率和死亡率,危害人類健康與生命安全[1]。對于一些發作時長較短或無癥狀的陣發性心律失常,傳統心電監護設備不易捕捉,致使臨床診斷較為困難、漏診率增加[2]。單導聯心電儀作為一種模擬人體胸導聯動態實時監測心電信號的裝置,相比傳統的心電圖機,具有長時記錄連續采集、易操控、易佩戴、可提供異常心電回放等功能,因此使用單導心電記錄儀檢測陣發性房顫具有重要的臨床意義。
房顫發作時,心電圖表現為不規則的RR 間期,P 波消失,代之為F 波。經典檢測方法主要通過RR 間期分析[3],時域法或頻域法分析P 波形態[4-5]。Steven 等[6]通過期望最大化算法構造P 波高斯混合模型以判斷P 波消失,其靈敏度、特異性分別為98.09%、91.66%;Du 等[7]使用QT 間期中RR 間期差、F 波均值、標準差作為特征來檢測,其靈敏度、陽性精確率、準確率分別為94.13%、98.69%、93.67%;Lian等[8]通過RR 間期和兩個相鄰RR 間期差為特征構造平面直角坐標系,每條數據劃分為包含32、64、128 個RR 間期的連續時間窗口,并對每個窗口進行AF 檢測,其靈敏度、特異性分別為95.90%、95.40%;孟丹陽等[9]先利用信息熵和連續小波變換篩選出奇異波形并識別出R 波,然后構建BP神經網絡將其時域特征作為訓練數據用于陣發性房顫識別,最終使用AFDB 數據庫進行驗證,其靈敏度、特異性、準確率分別為96.45%、95.03%、96.05%;魏曉玲等[10]提取心房信號的遞歸矩陣和兩個相鄰信號的相干譜作為特征,利用多特征融合與卷積神經網絡結合的方法來識別房顫,最終使用MIT-BIH 數據庫進行驗證,其靈敏度、特異性、準確率分別為99.88%、91.36%、95.62%。這些方法主要依賴人工提取特征,其過程可能丟失重要信息,從而難以反應數據的內在屬性導致算法性能下降,無法適用于龐大的群體。同時,人工特征提取計算代價較大,不利于臨床實時檢測。
近年來基于深度學習技術的模型可自動挖掘數據間的關聯信息并學習有效特征,在語音識別、圖像分類、文本翻譯等領域表現出色。Liman 等[11]設計兩個獨立的神經網絡,分別從ECG 和心率中提取相關特征,最終合并至遞歸神經網絡用于描述相關序列,然后通過支持向量機(SVM)進行最終決策,其靈敏度、特異性分別為72.30%、98.70%;Hong 等[12]利用譜聚類算法構造中心波并提取相關特征,結合13 層深度殘差網絡用于房顫檢測,使用數據為2017 計算心臟會議(Computing in Cardiology,CinC)提供,其中官方F1 分值為0.84;高碩等[13]利用卷積神經網絡自動提取心電特征,通過投票法和學習法的集成策略識別房顫,最終使用中國心血管病數據庫進行驗證,準確率為94.60%。高魯棒性模型依賴于大量的數據,而實際采集的數據大多為正常竇性心律樣本,房顫只占少數。相比其他類樣本,房顫樣本分布不平衡,且許多非房顫節律表征出與房顫類似的不規則RR 間期,導致房顫識別準確率下降?,F有文獻算法中訓練集和測試集均源于同一數據集,雖表現出較高的識別精度,但面向臨床數據則效果下降,導致模型泛化能力弱,且數據預處理階段耗費大量時間,難以應用在單導心電記錄儀進行陣發性房顫檢測。
縮減特征工程,使用端到端的訓練方式盡可能使模型從原始輸入到輸出,可給予模型更多的自動調節數據空間,以增加模型的整體契合度。因此,本文設計一種端到端的神經網絡,并與移動式單導心電記錄儀相結合進行陣發性房顫檢測,首先通過MIT-BIH 數據庫驗證算法可行性,然后使用臨床數據驗證算法泛化能力,提高檢測效率,使模型具有更高的普適性。
經典的機器學習先經過人工特征提取然后訓練分類器模型進行預測。人工特征設計需要大量的專家知識,Lecun 等[14]最早提出卷積神經網絡(Convolutional Neural Networks,CNN)并用于手寫數字識別。近年來,CNN 作為一種廣泛應用的分類器在語音識別、人臉識別、姿態分析、自然語言處理甚至腦電波分析等方面均有突破。標準CNN 包含卷積層、池化層和全連接層。
本文實驗數據來自MIT-BIH 標準心電數據庫。為改善算法魯棒性,本文從多個數據庫中選取不同類型的數據,如心律失常數據庫(MIT-AD)[15]、惡性室性心律失常數據庫(MIT-MVA)[16]、房顫數據庫(MIT-AFD)[17]、持續性房顫數據庫(MIT-LAFD)[18]、正常竇性心律數據庫(MITNSR)等[19],同時將上海遠心醫療科技有限公司自主研發的單導心電記錄儀(Ryhthm WatchTM)采集的60 例數據作為全新的未知數據來測試算法泛化能力,數據采集得到倫理委員會批準和患者知情同意[20]。該數據集以醫生判定結果作為標準判斷算法分析檢測的正確與否。受試者包含男 性37 例(71.7%),女 性23 例(38.3%),年 齡37~76(64.12±9.13)歲,其中臨床診斷為陣發性房顫32 例,正常竇性心律28 例。每例采樣率為256Hz,時長為30s。
本文將數據集中訓練集記為TR,驗證集記為TE,表示為:

因心電信號為離散的時間序列,故將訓練數據作為輸入樣本表示為:

其中,xi(t)表示為第i個樣本信號,xi(t)={xi[ 1 ],xi[ 2 ],…,xi[t]},記t時刻采樣點值為一個特征值,xi(t)∈?1250,∧為信號索引集合,yi作為信號類別,yi∈[0,1],其中1為房顫,0為非房顫。本文模型采用3 個局部區域塊用來表示特征,每塊含M個濾波器,尺寸為(Sb,b=1,…4)不等,通過輸入特征向量進行卷積運算,其輸出作為下一塊輸入,可表示為:

其中,t=(1,2…1250 -Sb+1),權重wk∈?Μ@Sb,bk∈?Μ為濾波器所對應的偏置系數,輸入信號xi(t)經過線性運算后再由非線性激活函數Relu 進行線性修正以保證網絡稀疏性,加速模型收斂,其過程可表示為:

為了降低下一層輸入維度,約減參數,本文對結果C 采取最大池化操作,其本質是起到平移不變性作用,舍棄不明顯特征,剔除信號扭曲變形帶來的影響,減少計算代價。同時,為了防止每一層經過線性修正后的輸出值范圍發生變化,可對池化后結果進行歸一化處理,使得訓練集批量樣本分布服從標準正態分布,減小梯度彌散,網絡更加穩定[21]。
將“分布式特征表示”映射到樣本標記空間,故本文設計Lk(k=1,…,5) 層感知器,如圖1 所示(彩圖掃OSID 碼可見,下同)。在C3 卷積層經過池化操作得到M個2 維特征圖,再計算每個特征圖的平均值,得到一個Vm(m=1,2,…,130)特征向量。該向量為輸入信號xi(t)的抽象特征表示,通過權重矩陣連接至L1~L4,其每層輸出通過式(4)計算的結果作為下一層輸入。本文最后采用邏輯回歸分類器將L5層作為輸出層,該層輸出結果s 通過Sigmoid函數計算出預測結果,可表示為:

式(5)中P為分布式特征屬于類別yc的后驗概率,θ為回歸系數。通過優化θ使得代價函數J(θ) 最小,以此刻畫預測值和真實值的接近程度,表示如下:


Fig.1 CNN structure diagram with 3 convolution layers圖1 具有3 層卷積層的CNN 結構
本文從MIT-AD、MIT-MVA、MIT-AFD、MIT-LAFD、MIT-NSR 共5 個數據庫中選取數據集DS={NSR、AF、AB、AFL、B、BI、HGEA、IVR、NOD、P、PM、PREX、SBR、SVTA、T、VF、VFIB、VFL、VT}的19 種心拍類型作為實驗數據。根據Mar 等[22]建議本文采取跨患者方式DS1={AF } 定義為房顫類,將DS2定義非房顫類,即有DS2=DS-DS1。為減小計算代價,適應神經網絡輸入,設定每個數據序列長度為10s,同時根據節律注釋對每個序列進行標注。由于不同數據庫的采樣頻率存在差異,故對采樣率重新下采樣至125Hz,插值使用Matlab R2014 內置的resample 函數。因正常心拍人群遠遠大于病態人群,故數據分布是類不平衡的。本文數據集中AF 類共12 184 例,除去NSR 和AF 的其他類屬于少數類,此類樣本共計4 875 例。為了增強算法魯棒性,本文對非AF 類進行過抽樣以保證類平衡,非AF 共計為12 203 例,其中包含NSR 類為7 328 例。
因數據集來源于多個數據庫,具有不同的單位量綱,為提升模型的收斂速度和精度,去除數據的單位限制,本文進行歸一化處理,轉化為無量綱的純數值以便不同單位或量級的指標能夠進行比較和加權。常見的歸一化方式有Min-max 標準化、z-score 標準化兩種。本文采用z-score標準化,先求出原始數據的均值μ,標準差σ 經過如下轉換:

使Z 符合標準正態分布,如圖2 所示。
本模型將80%數據集用于訓練,20%用于驗證,采用二元交叉熵作為損失函數,Adagrad 作為優化器,初始學習率設為0.06。初始訓練代數為150 輪,每代訓練樣本為275例。本文采用早停法獲取最佳模型,同時在卷積層和全連接層使用dropout,其系數設為0.5 以防止模型過擬合,架構使用Keras 和Tensorflow 作為后端實現。為減少模型學習時間,本文采用英偉達GTX 2080 Ti GPU 作為硬件計算平臺。通過計算靈敏度(SEN)、特異性(SPE)、陽性精確率(PPV)、準確率(ACC)4 個指標來評估模型分類性能[23],然后經過5 折交叉驗證,求得其平均值作為最終評估指標。其中:

其中,TP 為將房顫預測為房顫樣本數,FP 為將非房顫預測為房顫樣本數,TN 為將非房顫預測為非房顫樣本數,FN 為將房顫預測為非房顫的樣本數。

Fig.2 Data before and after normalization圖2 歸一化前后數據
訓練集與驗證集比例差異使得模型在驗證集上的性能變化明顯,同時從整個數據集中按照一定的比例隨機選擇驗證集會造成模型的不穩定性,特別是數據集相對較小的情況下。為此本文采用K(K=5)折交叉驗證來評估模型穩定性。本文將DS劃分為5 個大小相等的互斥子集,即DS=S1?S2?S3?S4?S5且Si?Sj=?(i≠j),依次將4 個子集選為訓練集,剩余一個為驗證集,經過5 次獨立實驗得出各評估指標最終求出的平均值來驗證算法有效性。
本算法在MIT-BIH 數據庫經過5 折驗證后的結果如表1 所示。從表1 可以看出,模型在第二次劃分的數據集(K=2)下效果最好,靈敏度、特異性、陽性精確率、準確率分別99.23%、98.16%、97.81%、98.64%。其驗證集的平均靈敏度、特異性、陽性精確率、準確率分別為98.41%、97.76%、97.74%、98.07%。最后使用5 次不同的驗證模型分別對60例臨床數據進行測試,首先設置10s 的時長窗口,其移動步長S 分別以10s、8s、5s、3s、1s 為單位對每例數據進行重疊截取,如圖3 所示。此時發現步長為1s 時算法泛化性能最好,其平均靈敏度、特異性、陽性精確率、準確率分別為96.88%、89.29%、91.18%、93.33%,如表2 所示。為更進一步驗證本文算法的可行性,選取有代表性的Erdenebayar等[24]的二分類模式方法進行對比實驗。首先基于本文數據集進行網絡訓練,其驗證集性能表現與本文對比結果如表3 所示。最后,模型采用單導數據進行測試并與文獻方法進行對比,結果如表4 所示。從表4 可知,雖然本文的總體靈敏度相比文獻低1.25%,但其特異性、陽性精確度、準確率比文獻方法高,從而驗證了本方法在陣發性房顫檢測中的是有效性。

Table 1 Performance of algorithm in verification set表1 算法在驗證集的性能表現

Fig.3 Clinical data(30s duration)圖3 臨床數據(30s 時長)

Table 2 Algorithm performance in real data表2 算法在臨床數據的性能表現

Ta ble 3 Comparison of the performance of the literature algorithm with algorithm of this paper in the verification set表3 文獻算法與本文方法在驗證集上的性能對比
本文算法與近幾年其他同類算法結果如表5 所示。Erdenebayar 等[24]先對數據進行帶通濾波和離散小波變換以去除基線漂移和高頻分量,最終基于7 層CNN 模型進行分類,雖然該研究在MIT 數據集上取得較高的分類性能,但其原始樣本僅包含房顫類與正常類,樣本來源較為單一,難以反映實際臨床情形,最終因算法魯棒性較差無法應用至臨床檢測。本文采用文獻[24]方法基于同一測試集進行對比研究,表4 的結果表明本文指標整體上要優于文獻算法。文獻方法預處理數據要30s 時長,而本文僅需要10s;Fan 等[25]采用兩種不同濾波器的卷積流分別提取ECG特征,最終將融合特征通過3 層感知層映射為2 個標記空間,其數據來源于CinC,數據時長為20s,最高靈敏度、特異性、陽性精確率、準確率分別為93.77%、98.77%、91.78%、98.13%;Wang[26]提出一種CNN與修改動態遞歸網絡(ENN)堆疊的方法,該方法引入調節上下文單元反饋信息的權重值α,同時考慮來自上下文單元的信息與全部隱含層信息反饋,最高靈敏度、特異性、準確率分別為97.90%、97.10%、97.40%。盡管Fan 等在訓練集中復制房顫類樣本以阻止網絡學習非相關特性以增強梯度方向效果,但該做法并未引入新的特征信息,不具備總體樣本代表性;文獻[27]所采用的數據集中存在房顫類樣本占比少、類間分布不平衡問題;文獻[28]采用個體內分類模式,忽略了個體間的差異[29],導致算法普適性差難以在臨床檢測中應用。本文采用端到端的神經網絡,剔除了人工提取形態特征易錯、易漏等問題[30-31],與Wang 所使用的原始ECG 序列相比,雖讓采用了帶通濾波消除基線漂移及肌肉噪聲的干擾使得相關特征更加明顯,但其預處理因增加了計算代價因而降低了房顫的實時檢測效率。與傳統的房顫識別相比,尤其像基于RR 間期識別算法需要40s-120s 數據,本文采用10s 數據更好地提高了效率,方便了臨床診斷,同時進一步驗證了本文方法在陣發性房顫檢測中的有效性。特別是本文使用的模型基于圖形處理器計算平臺,對單個樣本的處理時間為5ms 左右,可為單導心電記錄儀及實時云計算應用提供參考。

Table 4 Performance comparison of algorithm in this paper and the literature algorithm in clinical data表4 本文和文獻算法在臨床數據的性能對比
本文提出基于一維卷積神經網絡的陣發性房顫識別方法,該方法將CNN 自動提取的心電特征輸入到二元分類器中再進行房顫識別。采用MIT-BIH 數據庫進行實驗,結果表明算法可行,在單導心電記錄儀采集的數據上進行測試,結果表現出算法良好的泛化優勢,對單個樣本的處理時間也表明該方法具有較高的計算效率,可為移動式單導心電記錄儀及實時云計算提供參考,也可為臨床提供輔助診斷。但該方法在二分類情況下噪音類數據對精度的影響是后續需研究的問題。下一步擬從以下幾方面研究更進一步優化模型:①擴充實際臨床樣本驗證算法精度、采用多途徑數據集測試模型泛化能力;②加入噪聲數據,由二分類變為四分類問題,提升模型魯棒性;③結合循環神經網絡進行建模分析。

Table 5 Presentation of similar studies in recent years表5 近幾年同類研究結果展示