王量弘 李馨 陳鈞穎 楊濤 王新康 高潔
房顫是一種常見的心律失常,按發(fā)作時(shí)間的長(zhǎng)短可以分為陣發(fā)性房顫、持續(xù)性房顫和永久性房顫[1]。 房顫發(fā)作期間的心率高達(dá)100 ~160 次/min,速度快且不規(guī)則[2],可導(dǎo)致心血管系統(tǒng)紊亂。 房顫往往伴隨著嚴(yán)重的并發(fā)癥,如腦卒中、心肌梗死等,對(duì)健康產(chǎn)生極大威脅。
心電圖依靠心臟周圍的人體表面所呈現(xiàn)的電位差來反映心肌活動(dòng)情況,目前已成為心血管疾病臨床診斷的主要手段之一。 然而,傳統(tǒng)的心電圖診斷工作量大、耗時(shí)長(zhǎng)。 在房顫的診斷中,醫(yī)生主要依賴患者的臨床癥狀與心電信息[3],后者主要包括:①絕對(duì)不規(guī)則的RR 間期;②P 波消失,出現(xiàn)不規(guī)則的f 波,頻率350 ~600 次/min;③當(dāng)心房周期活動(dòng)可見時(shí),心房激動(dòng)周期通常<200 ms。 由此可見,房顫患者的心電圖特征可概括為形態(tài)與節(jié)律差異,其中節(jié)律差異對(duì)房顫的診斷更為關(guān)鍵。
隨著計(jì)算機(jī)輔助診斷技術(shù)的日益興起,大量房顫自動(dòng)檢測(cè)算法被提出。 有學(xué)者基于房顫發(fā)作期間伴有明顯的RR 間期不規(guī)則現(xiàn)象,通過計(jì)算心率變異性和香農(nóng)熵來檢測(cè)房顫[4-6];也有不少學(xué)者利用P 波特征、TQ 間期、小波特征來檢測(cè)房顫[7-9]。在基于心電圖特征的房顫?rùn)z測(cè)算法中,節(jié)律與形態(tài)特征相結(jié)合的方式對(duì)房顫特征的描述尤為重要。
隨著深度學(xué)習(xí)技術(shù)的發(fā)展,深度神經(jīng)網(wǎng)絡(luò)因能夠自動(dòng)提取特征等優(yōu)勢(shì)而廣泛應(yīng)用于算法[10-14]。本研究提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN) 和雙向長(zhǎng)短期記憶(bidirectional long short-term memory, Bi-LSTM)網(wǎng)絡(luò)、可用于房顫分類預(yù)測(cè)的深度學(xué)習(xí)框架。 模型可以將輸入的心電數(shù)據(jù)分類為房顫發(fā)生前30 min 內(nèi)數(shù)據(jù)、正常竇性心律數(shù)據(jù)和房顫發(fā)生時(shí)數(shù)據(jù),并輸出相應(yīng)標(biāo)簽,因此,可根據(jù)輸入的心電信號(hào)有效預(yù)測(cè)30 min 內(nèi)發(fā)生的房顫事件。 算法的總體架構(gòu)如圖1所示。 模型將Ⅱ?qū)?lián)和V1導(dǎo)聯(lián)數(shù)據(jù)進(jìn)行預(yù)處理后作為輸入,模型前端加入CNN 用于心電數(shù)據(jù)重構(gòu)并提取機(jī)器特征。 本研究中,CNN 采用ReLU 激活函數(shù)來增加網(wǎng)絡(luò)復(fù)雜度和增強(qiáng)學(xué)習(xí)能力,同時(shí)在卷積層后使用最大池化層進(jìn)行特征降維;模型后端則使用了Bi-LSTM 網(wǎng)絡(luò),從正、反兩個(gè)時(shí)序方向提取深層的房顫特征,并引入注意力機(jī)制,調(diào)整特征權(quán)重和優(yōu)化預(yù)測(cè)模型。
圖1 算法的總體架構(gòu)
本研究使用了長(zhǎng)時(shí)房顫數(shù)據(jù)庫、MIT-BIH 房顫數(shù)據(jù)庫和MIT-BIH 正常竇性心律數(shù)據(jù)庫,針對(duì)不同數(shù)據(jù)庫的差異進(jìn)行歸一化處理并濾波,得到滿足本研究模型輸入標(biāo)準(zhǔn)的數(shù)據(jù)集。 再將數(shù)據(jù)集中的心電信號(hào)數(shù)據(jù)分割為心搏,進(jìn)行標(biāo)準(zhǔn)化處理后輸入CNN 模型,在提取心電特征后送入下一層Bi-LSTM網(wǎng)絡(luò),結(jié)合注意力機(jī)制對(duì)輸入的心搏進(jìn)行分類。
本研究使用的實(shí)驗(yàn)平臺(tái)是TensorFlow 開源框架。 該平臺(tái)由谷歌公司開發(fā)設(shè)計(jì),被廣泛應(yīng)用于機(jī)器學(xué)習(xí)、深度學(xué)習(xí)的研究任務(wù)中。 本研究使用Adam 優(yōu)化算法進(jìn)行模型訓(xùn)練,在一定程度上解決了傳統(tǒng)梯度下降法中的優(yōu)化問題。
長(zhǎng)時(shí)房顫數(shù)據(jù)庫保存了84 例陣發(fā)性或持續(xù)性房顫患者的長(zhǎng)程心電圖記錄,其中每條記錄的時(shí)長(zhǎng)均控制在24 ~25 h,都包括兩個(gè)同步導(dǎo)聯(lián)Ⅱ、V1的心電信號(hào)。 采樣頻率為128 Hz,數(shù)據(jù)分辨率為12 位,電壓動(dòng)態(tài)變化范圍為-20 ~20 mV。
MIT-BIH 房顫數(shù)據(jù)庫中保存了23 條心電記錄,每條記錄的持續(xù)時(shí)間為10 h,同樣也記錄了兩個(gè)同步導(dǎo)聯(lián)Ⅱ、V1的心電信號(hào)。 采樣頻率為250 Hz,數(shù)據(jù)分辨率為12 位,電壓的動(dòng)態(tài)變化范圍為- 10 ~10 mV。
MIT-BIH 正常竇性心律數(shù)據(jù)庫中保存有心律失常實(shí)驗(yàn)室18 位受試者的長(zhǎng)程心電圖記錄。 納入該數(shù)據(jù)庫的受試者無明顯心律失常,其中男5 例,26 ~45 歲;女13 例,20 ~50 歲。 采樣頻率為128 Hz,每條記錄中也包含Ⅱ?qū)?lián)和V1導(dǎo)聯(lián)的數(shù)據(jù),記錄時(shí)長(zhǎng)均為25 h 左右。
根據(jù)算法目標(biāo)將整體數(shù)據(jù)分割為三種集合:竇性心律心電數(shù)據(jù)、房顫患者發(fā)病前30 min 內(nèi)心電數(shù)據(jù)、房顫患者房顫發(fā)生時(shí)心電數(shù)據(jù),分別對(duì)應(yīng)標(biāo)簽N、N′、AF。 在每個(gè)數(shù)據(jù)庫中,按照以下方式進(jìn)行目標(biāo)數(shù)據(jù)集的提取:①在長(zhǎng)時(shí)心電數(shù)據(jù)庫中提取N、N′、AF 標(biāo)簽;②在MIT-BIH 房顫數(shù)據(jù)庫中提取AF標(biāo)簽;③在MIT-BIH 正常竇性心律數(shù)據(jù)庫中提取N標(biāo)簽。 三類標(biāo)簽的心電信號(hào)如圖2 所示。對(duì)房顫發(fā)生前30 min 以上的竇性心律心電數(shù)據(jù),本研究不單獨(dú)設(shè)置標(biāo)簽。 考慮到需要將這些數(shù)據(jù)與房顫發(fā)生前30 min 內(nèi)的心電數(shù)據(jù)加以區(qū)分,因此為便于數(shù)據(jù)處理,將其并入標(biāo)簽N。
圖2 對(duì)應(yīng)N、N′、AF 三類標(biāo)簽的心電圖
1.3.1 統(tǒng)一樣本格式 由于不同數(shù)據(jù)庫的采樣頻率、數(shù)據(jù)分辨率、濾波程度、標(biāo)簽類型等諸多因素并不一致,因此通過數(shù)據(jù)庫截取的數(shù)據(jù)集不能直接作為輸入數(shù)據(jù)使用,在使用前需要統(tǒng)一標(biāo)準(zhǔn)。 本研究中將所有數(shù)據(jù)統(tǒng)一重采樣至128 Hz、分辨率統(tǒng)一至32 位,以便精確計(jì)算特征值,在模型中表述為float32。
1.3.2 濾波 心電信號(hào)是一種很微弱的低頻信號(hào),采集設(shè)備、環(huán)境和人體各種生理活動(dòng)都會(huì)對(duì)心電圖造成干擾。 原始心電圖中一般包含大量噪聲,而這對(duì)那些對(duì)噪聲敏感的分類模型來說是致命的,因此需要對(duì)原始數(shù)據(jù)進(jìn)行濾波處理。 本研究主要考慮解決基線漂移現(xiàn)象和高頻噪聲干擾這兩個(gè)對(duì)模型影響較大的問題,使用一個(gè)一階巴特沃斯帶通濾波器來過濾原始的心電信號(hào)。
1.3.3 數(shù)據(jù)切割 N、N′、AF 三類標(biāo)簽數(shù)據(jù)集中均記錄了時(shí)長(zhǎng)為30 min 的心電數(shù)據(jù),對(duì)應(yīng)的數(shù)據(jù)長(zhǎng)度為230 400 個(gè)采樣點(diǎn),這個(gè)數(shù)量對(duì)于模型來說過于龐大。 本研究為了精簡(jiǎn)輸入,從三個(gè)標(biāo)簽數(shù)據(jù)集中分別以7.5 s 連續(xù)截取,共裁剪了30 min 時(shí)長(zhǎng)的數(shù)據(jù)作為一個(gè)獨(dú)立的數(shù)據(jù)集。 為了保證每段數(shù)據(jù)之間盡可能相對(duì)獨(dú)立,從每個(gè)數(shù)據(jù)集中僅隨機(jī)抽取5段作為輸入集合,剩余部分將被用于數(shù)據(jù)均衡。
1.3.4 歸一化處理 不同人群的心電信號(hào),其幅值分布可能有較大差異。 在模型的數(shù)學(xué)計(jì)算中,數(shù)量級(jí)較大的數(shù)據(jù)往往占據(jù)主導(dǎo)地位,導(dǎo)致預(yù)測(cè)模型對(duì)幅值小的心電信號(hào)不敏感。 本研究采用Min-Max 歸一化方法對(duì)濾波后的心電信號(hào)進(jìn)行標(biāo)準(zhǔn)化。 這種標(biāo)準(zhǔn)化方式統(tǒng)計(jì)了樣本中的最大值與最小值,并以兩個(gè)最值將整體的分布按比例映射到0 ~1,從而得到新的分布。 對(duì)于某個(gè)樣本值xi,經(jīng)標(biāo)準(zhǔn)映射后的xi′可按下式計(jì)算:
有許多傳統(tǒng)的機(jī)器學(xué)習(xí)方法通過加入更多的專家特征,實(shí)現(xiàn)房顫預(yù)測(cè)[15-19],但這種特征提取方式需要花費(fèi)更多的時(shí)間成本和醫(yī)療資源,臨床應(yīng)用的時(shí)效性差,并不適用于預(yù)測(cè)短時(shí)間內(nèi)發(fā)作的房顫事件。 本研究利用CNN 對(duì)原始的多導(dǎo)聯(lián)心電序列進(jìn)行重構(gòu),從中提取具有預(yù)測(cè)意義的機(jī)器特征,并使其取代專家特征。
卷積核的大小決定了其感受野的范圍;感受野越大,能感受到的錨點(diǎn)信息越多,獲得的特征效果可能更好,但同時(shí)計(jì)算量也會(huì)倍增,不利于模型深度的增加。 為了盡可能多地保留特征并將其送入下一層LSTM 網(wǎng)絡(luò),本研究將卷積核的最大邊長(zhǎng)設(shè)置為5,并采用有填充的方式來保存數(shù)據(jù)的邊緣信息。 第一層卷積,網(wǎng)絡(luò)著重考慮在不丟失過多信息的情況下將序列的特征向量表征至更深層次。 第一層卷積在選擇卷積核尺寸時(shí),需要將兩個(gè)導(dǎo)聯(lián)的數(shù)據(jù)寬度進(jìn)行融合,并把維度降至一維,通過增加卷積核數(shù)量來提升特征提取能力。 第二層卷積也被用于高維特征的提取,但主要目標(biāo)是降維,以保證不超過原始心電序列的時(shí)序規(guī)模。
由于線性不可分問題始終存在,而卷積層并不能解決這個(gè)問題,因此,本研究引入了激活函數(shù),用來加強(qiáng)模型的表達(dá)能力。 本研究選擇ReLU 作為CNN 層之間的激活函數(shù)。 它是一個(gè)分段函數(shù):當(dāng)輸入<0 時(shí),函數(shù)值恒為0;當(dāng)輸入≥0 時(shí),函數(shù)值與輸入相等。
池化層也是該網(wǎng)絡(luò)的組成部分,主要是用于特征降維,也能在一定程度上防止過擬合。 由于節(jié)律變化是模型預(yù)測(cè)房顫的主要依據(jù),因此,盡可能地保留節(jié)律信息是選擇池化方式的關(guān)鍵,而最大池化能夠保證最大限度地保留這類信息。 本研究在第一層激活層后加入一層最大池化層,用于壓縮過長(zhǎng)的張量長(zhǎng)度,并進(jìn)行特征降維;在第二層激活層輸出后也增加了一個(gè)最大池化層,其尺寸根據(jù)下一層LSTM 模型的輸入確定。
輸入的Ⅱ?qū)?lián)和V1導(dǎo)聯(lián)數(shù)據(jù)經(jīng)過CNN 后,輸出一個(gè)合適的張量并將其輸入Bi-LSTM 模型。 本研究將原始數(shù)據(jù)集的時(shí)間作為Bi-LSTM 的輸入時(shí)間序列維度;將原始數(shù)據(jù)集經(jīng)過CNN 生成的通道維度,作為Bi-LSTM 的輸入特征向量維度;同時(shí),將原始數(shù)據(jù)集的導(dǎo)聯(lián)維度降至1,不作為Bi-LSTM 輸入的某一維度。 考慮到ReLU 函數(shù)在LSTM 訓(xùn)練過程中很容易造成梯度爆炸,而sigmoid 函數(shù)的非飽和區(qū)間較窄,容易造成梯度消失,本研究中的算法采用tanh 函數(shù)作為記憶單元的激活函數(shù)。 由于本研究采用的Bi-LSTM 在輸出上有兩層相向的LSTM 層,因此其為原始LSTM 模型輸出的兩倍,相應(yīng)地,Bi-LSTM 模型輸出張量的長(zhǎng)度為批處理大小、寬度為時(shí)間序列長(zhǎng)度、通道數(shù)為隱藏層的單元數(shù)量。 關(guān)于兩組輸出的結(jié)合方式,本研究采用了對(duì)應(yīng)位置取和,將兩組合并為長(zhǎng)、寬、通道數(shù)均不變的一組特征向量,由此得到了該模塊的輸出維度。
該輸出張量經(jīng)上述計(jì)算后,輸入注意力模型。為了避免前一層加和可能導(dǎo)致的特征值值域分布溢出問題,采用tanh 激活函數(shù)對(duì)輸入進(jìn)行非線性轉(zhuǎn)換。 本研究采用軟注意力機(jī)制,通過設(shè)定可訓(xùn)練權(quán)重向量W,將其與非線性激活后的張量作矩陣乘法;每個(gè)時(shí)間序列步中,長(zhǎng)度為隱藏層單元個(gè)數(shù)的特征向量被轉(zhuǎn)換為權(quán)重系數(shù)。 權(quán)重系數(shù)矩陣再通過一個(gè)softmax 激活函數(shù)作歸一化處理,即可得到標(biāo)準(zhǔn)化的權(quán)重系數(shù)矩陣α,此時(shí)矩陣的長(zhǎng)為批處理大小、寬為時(shí)間序列長(zhǎng)度。 再利用矩陣α對(duì)注意力模型的輸入張量進(jìn)行加權(quán)求和,并重新調(diào)整尺寸為二維,即可得到注意力系數(shù)矩陣。
在注意力模型輸出前,還加入了一層激活層,激活函數(shù)選擇tanh 函數(shù)。 該層輸出后直接經(jīng)過一個(gè)全連接層,輸出向量直接通過argmax 函數(shù)轉(zhuǎn)換為獨(dú)熱編碼類型的向量,以實(shí)現(xiàn)對(duì)三種房顫相關(guān)標(biāo)簽的預(yù)測(cè)。
在數(shù)據(jù)集的劃分上,本研究采用了五折交叉驗(yàn)證的方式進(jìn)行整體模型的訓(xùn)練與測(cè)試,其中訓(xùn)練集占80%,驗(yàn)證集占20%。 根據(jù)訓(xùn)練方案確定每層的參數(shù),如表1 所示。
表1 卷積神經(jīng)網(wǎng)絡(luò)參數(shù)
本研究引入了混淆矩陣,用來具體觀察模型在每一個(gè)特定類中的表現(xiàn),并從混淆矩陣中提取了準(zhǔn)確率、精確率、召回率和F1分?jǐn)?shù)這4 個(gè)統(tǒng)計(jì)指標(biāo), 分別記作Acc、P、R和F1,其具體的數(shù)學(xué)定義如下:
(1) 準(zhǔn)確率是指被預(yù)測(cè)正確的陰性樣本和陽性樣本數(shù)量之和占總樣本數(shù)量的比例,可按如下公式計(jì)算:
(2) 精確率是指所有被預(yù)測(cè)為陽性且真實(shí)標(biāo)簽也為陽性的樣本數(shù)量占預(yù)測(cè)標(biāo)簽為陽性的總樣本數(shù)量的比例,可按如下公式計(jì)算:
(3) 召回率是指所有被預(yù)測(cè)為陽性且真實(shí)標(biāo)簽也為陽性的樣本數(shù)量占真實(shí)標(biāo)簽為陽性的總樣本數(shù)量的比例,可按如下公式計(jì)算:
(4)F1分?jǐn)?shù)是指綜合了精確率與召回率的一種平衡分?jǐn)?shù),其數(shù)學(xué)定義為二者的調(diào)和平均數(shù),可按如下公式計(jì)算:
其中,TP表示為預(yù)測(cè)為陽性標(biāo)簽且實(shí)際也為陽性標(biāo)簽的樣本數(shù)量;TN表示預(yù)測(cè)為陰性標(biāo)簽且實(shí)際也為陰性標(biāo)簽的樣本數(shù)量;FP表示預(yù)測(cè)為陽性標(biāo)簽但實(shí)際為陰性標(biāo)簽的樣本數(shù)量;FN表示預(yù)測(cè)為陰性標(biāo)簽但實(shí)際為陽性標(biāo)簽的樣本數(shù)量。
為了確定訓(xùn)練超參數(shù)學(xué)習(xí)率和批處理的大小,本研究在固定LSTM 隱藏層單元數(shù)量為64 的情況下,對(duì)比了不同學(xué)習(xí)率和批處理大小對(duì)模型訓(xùn)練速度的影響。 進(jìn)行大量實(shí)驗(yàn)后通過觀察準(zhǔn)確率曲線的收斂情況,篩選了其中6 個(gè)有代表性的模型A—F,通過學(xué)習(xí)率和批處理大小的組合得出相對(duì)較高的準(zhǔn)確率(表2)。 由表2 可以發(fā)現(xiàn),學(xué)習(xí)率與模型的收斂速度呈正相關(guān),但不同的學(xué)習(xí)率可能會(huì)導(dǎo)致不同的收斂情況。 本研究所用數(shù)據(jù)的驗(yàn)證集在學(xué)習(xí)率為0.003 0 附近、批處理大小為64 時(shí)達(dá)到最佳表現(xiàn),此時(shí)模型預(yù)測(cè)房顫的準(zhǔn)確率為0.90。
表2 學(xué)習(xí)率和批處理大小對(duì)模型訓(xùn)練速度的影響分析
在統(tǒng)一學(xué)習(xí)率、批處理大小的情況下,本研究比較了不同的隱藏層單元數(shù)量對(duì)模型表現(xiàn)的影響。采用不同隱藏層單元數(shù)量訓(xùn)練模型,選出了4 個(gè)各項(xiàng)參數(shù)表現(xiàn)良好的模型,其訓(xùn)練過程中所使用的模型參數(shù)及性能表現(xiàn)如表3 所示。
表3 不同隱藏層單元數(shù)量模型的性能表現(xiàn)對(duì)比
從表3 中可知,本研究所提出模型的最高準(zhǔn)確率約0.934,精確率約0.930,召回率約0.933,F1分?jǐn)?shù)約0.931。 從訓(xùn)練的多個(gè)模型來看,不同模型均能收斂且表現(xiàn)良好,可以證明所提出的模型魯棒性較強(qiáng)。 N 類被誤分為N′類的情況是當(dāng)前模型的主要問題。 從醫(yī)學(xué)角度來看,N′類的精確率較高,有利于從一般人群的心電圖篩查中更準(zhǔn)確地識(shí)別潛在的房顫患者,這對(duì)疾病篩查具有很重要的臨床意義。 為了解決這一問題,我們將在今后的研究中嘗試采用更多的網(wǎng)絡(luò)結(jié)構(gòu),以進(jìn)一步改進(jìn)預(yù)測(cè)效果。
房顫的初步診斷主要依賴心電圖。 利用現(xiàn)有的工程技術(shù),人們已經(jīng)對(duì)心電圖展開了細(xì)致而深入的研究,在房顫自動(dòng)檢測(cè)與房顫長(zhǎng)短期預(yù)測(cè)等領(lǐng)域取得了一定的成果。 盡管目前對(duì)于房顫自動(dòng)檢測(cè)算法的研究較多,模型應(yīng)用也十分廣泛,但在房顫的預(yù)測(cè)上仍然存在諸多挑戰(zhàn)。 首先,當(dāng)前研究在房顫預(yù)測(cè)方面過分依賴專家特征,傳統(tǒng)的SVM、K近鄰法等都需要花費(fèi)大量的醫(yī)療資源和人力成本,這是當(dāng)前研究面臨的瓶頸。 雖然近年來有不少深度學(xué)習(xí)模型被應(yīng)用于房顫的預(yù)測(cè)任務(wù)中,但模型預(yù)測(cè)的準(zhǔn)確率與附加的專家特征數(shù)量仍然緊密相關(guān)。 本研究從已知的公開數(shù)據(jù)庫出發(fā),提取了Ⅱ?qū)?lián)和V1導(dǎo)聯(lián)數(shù)據(jù)并重新規(guī)劃了數(shù)據(jù)形式,構(gòu)建了Bi-LSTM房顫預(yù)測(cè)模型。 在模型前端的輸入部分,加入了CNN 用于心電數(shù)據(jù)重構(gòu),并提取機(jī)器特征;在模型后端,增加了一層注意力模型,用于優(yōu)化預(yù)測(cè)模型。本研究提出的算法能夠有效預(yù)測(cè)房顫發(fā)生前30 min內(nèi)數(shù)據(jù)、正常竇性心律數(shù)據(jù)和房顫發(fā)生時(shí)數(shù)據(jù)。 該模型性能表現(xiàn)優(yōu)良,克服了傳統(tǒng)模型對(duì)專家特征的依賴,同時(shí)保障了較高的準(zhǔn)確率,能夠滿足臨床對(duì)房顫?rùn)z測(cè)便捷性、高效性的要求。
本研究提出的模型在以下幾方面有進(jìn)一步的研究空間:①為了數(shù)據(jù)的歸一化處理,本研究將多個(gè)數(shù)據(jù)庫的多導(dǎo)聯(lián)數(shù)據(jù)作了最小匹配,僅保留了兩個(gè)導(dǎo)聯(lián)的數(shù)據(jù)作為輸入,而近年來12 導(dǎo)聯(lián)數(shù)據(jù)庫逐漸豐富,可以考慮進(jìn)一步擴(kuò)展導(dǎo)聯(lián)數(shù),以實(shí)現(xiàn)更好的預(yù)測(cè)效果。 ②整體模型尺寸龐大,雖然在實(shí)時(shí)性上有所改進(jìn),但是若要進(jìn)一步用于臨床實(shí)時(shí)監(jiān)護(hù),還需要進(jìn)一步減少參數(shù)數(shù)量。