逯 鵬, 王漢章, 毛曉波, 趙宇平, 劉 超, 尚莉伽, 孫智霞
(1.鄭州大學 電氣工程學院,河南 鄭州 450001;2.中醫(yī)藥智能科學與工程技術研究中心,河南 鄭州 450001;3.中國中醫(yī)科學院,北京 100020;4.北京市東城區(qū)中小學衛(wèi)生保健所,北京 100007;5.鄭州大學第五附屬醫(yī)院,河南 鄭州 450052)
脈搏波是一種非平穩(wěn)的低頻微弱生理信號,其中蘊含的生理病理特征可用于人體病理的輔助診斷[1]?;诿}搏波解決心血管疾病分類方法主要分為模型驅動和數(shù)據(jù)驅動[2-3]。模型驅動主要是基于領域先驗知識構建模型求解最優(yōu)解;數(shù)據(jù)驅動是基于大量脈搏波數(shù)據(jù)訓練的端到端深度學習模型。
傳統(tǒng)脈搏波分類方法通常提取具有明確生理意義的時域參數(shù)和頻譜[4-5]等作為樣本特征,通過支持向量機、隨機森林、K-近鄰等算法實現(xiàn)分類識別。對于微弱脈搏波信號,主波、重搏前波、重搏波等[6]基準特征直觀反應脈搏波形態(tài)信息,但此類特征提取的準確性易受噪聲影響,且手工設計特征不足以精準地表達原始脈搏波數(shù)據(jù),與心血管疾病關聯(lián)性強的樣本特征[7]有待進一步研究。隨著深度學習技術發(fā)展,基于深度學習的脈搏波分類方法得到廣泛研究。
利用卷積神經(jīng)網(wǎng)絡[8]、深度融合神經(jīng)網(wǎng)絡[9]等自動學習脈搏波內在規(guī)律和表示層次,建立脈搏波與疾病的非線性映射關系,取得較好的脈搏波分類效果。而網(wǎng)絡訓練的前提是大量有效標注數(shù)據(jù)。脈搏波臨床數(shù)據(jù)標注成本高,需要較長時間周期才能建立高質量的大規(guī)模標注數(shù)據(jù)。在小樣本脈搏波標注數(shù)據(jù)中,數(shù)據(jù)驅動的訓練方法獲取有效特征[8]的難度大。
自編碼器是一種結構對稱的神經(jīng)網(wǎng)絡,包含編碼器和解碼器兩部分,使重構脈搏波盡可能與輸入相似。訓練中,隱層通過自學習提取輸入數(shù)據(jù)的有效特征,且減弱模型對數(shù)據(jù)標簽的依賴,符合脈搏波數(shù)據(jù)特點。
針對脈搏波臨床數(shù)據(jù)有限、標注成本高影響分類效果的問題,設計一種基于CAE-Net(convolutional autoencoder networks)的脈搏波分類模型,在CAE特征自學習中,引入時域特征損失,約束網(wǎng)絡壓縮重構過程。其次,重用CAE編碼層網(wǎng)絡結構和初始權重構建CAE-Net,實現(xiàn)心血管疾病的輔助分類。
自編碼器[10]是基于反向傳播算法學習到一個“恒等映射”。脈搏波作為一種非線性、非平穩(wěn)的微弱生理信號,傳統(tǒng)自編碼器難以有效提取特征表示。利用AE(autoencoder)重構、降維特性和CNN局部特征提取能力構建CAE[11-12],通過卷積層、池化層和反卷積等多層疊加,獲取層次特征映射,實現(xiàn)脈搏波低維特征自學習。
結合脈搏波波形特點,在CAE中引入脈搏波時域特征約束,使模型充分提取脈搏波的有效特征。編碼器采用3個卷積層、3個最大池化層和1個全連接層;解碼器包括3個反卷積層、3個反池化層和1個全連接層。圖1為CAE結構圖,Conv1d、Max_pooling、FC、DeConv1d和Depooling分別代表一維卷積層、最大池化層、全連接層、反卷積層和反池化層。
圖1 CAE結構圖Figure 1 Structure of CAE mode
cl=f(Wl?X+bl);
(1)
c′l=Maxpooling(cl)。
(2)
式中:Wl、bl分別為第l層網(wǎng)絡的權重和偏差;f(·)為ReLU函數(shù);Maxpooling(·)為最大池化操作。
如圖1所示,在網(wǎng)絡訓練過程中,編碼器逐層獲取輸入數(shù)據(jù)的特征映射,經(jīng)過Flatten層和FC層后,得到隱層的一維特征向量。相反,解碼器利用隱層特征通過反卷積層、反池化層等重構輸入脈搏波信號,并通過式(3)的損失函數(shù)評估CAE對脈搏波重構性能。
(3)
(4)
訓練中,在網(wǎng)絡損失函數(shù)中加入波峰、波谷損失約束,指導特征自學習過程。通過設定網(wǎng)絡隱層神經(jīng)元數(shù)量M,調整表征向量大小。
CAE-Net采用預訓練和微調的方法,實現(xiàn)心血管疾病的脈搏波分類識別[13]。重用預訓練CAE編碼層網(wǎng)絡和權重,在隱層輸出后加入全連接層等構建分類網(wǎng)絡,圖2顯示了CAE-Net網(wǎng)絡架構。
圖2 基于CAE-Net的脈搏波分類模型Figure 2 Pulse wave classification model of CAE-Net
預訓練中,利用CAE的壓縮重構特性,實現(xiàn)輸入脈搏波信號特征自學習。使隱層神經(jīng)元數(shù)量M小于輸入脈搏波維度,經(jīng)過多層卷積操作獲取脈搏波的低維特征表示。
微調過程中,CAE-Net重用并凍結編碼層結構和權重,之后添加全連接層,并根據(jù)類標簽信息進一步優(yōu)化全連接層參數(shù)。CAE-Net的損失函數(shù)為
(5)
本文使用數(shù)據(jù)采集于350余名志愿者(年齡在22~72歲)的橈動脈脈搏波。其中包含心血管病患者60例(男性26名,女性34名),正常人290例(男性163名,女性127名)。采集設備為ZM-300脈象儀,采樣頻率200 Hz,單條采集時間40 s。整個采集過程在醫(yī)師指導下完成,且符合數(shù)據(jù)采集規(guī)范流程。
脈搏波屬于低頻生理信號,其主要頻率分布于0~20 Hz,易受基線漂移和工頻噪聲等干擾。采用小波閾值去噪法[14]對原始信號進行濾波處理,提升脈搏波信噪比,以降低噪聲對模型性能影響。圖3為濾波前后脈搏波信號。
圖3 濾波前后脈搏波信號Figure 3 Pulse wave signal before and after filtering
脈搏波作為一種準周期生理信號,其單周期是對一個心動周期內心臟功能的重要反映。實驗采用迭代滑動窗口法識別脈搏波波谷進行周期劃分[15],并對分割后的信號進行插值處理,使單周期脈搏波樣本長度等于248。圖4為脈搏波周期分割。
圖4 脈搏波周期分割Figure 4 Period segmentation of pulse wave
實驗中,對采集數(shù)據(jù)進行預處理后,共獲取脈搏波數(shù)據(jù)8 600條,其中正常脈搏波數(shù)據(jù)6 830條,異常數(shù)據(jù)1 770條,包含心律失常、心肌缺血和高血壓等3種常見心血管疾病。
模型評估采用準確率Acc、靈敏度Sen、精確度Pre和F1值。4個評價指標計算式如下:
(6)
(7)
(8)
(9)
式中:TP為將正例樣本預測為正的數(shù)量;TN為將負例樣本預測為負的數(shù)量;FP為負例樣本預測為正的數(shù)量;FN為將正例樣本預測為負的數(shù)量;Acc為模型分類準確率;Sen衡量模型對異常波形的識別能力;Pre為被分為異常的樣本中實際為異常的比例;F1為Sen和Pre的調和均值。
本文實驗平臺為臺式計算機,處理器為AMD Ryzen 2600X,主頻3.60 GHz,16 GB內存,NVIDIA GTX1060顯卡,運行環(huán)境:Windows10 64位,Python 3.6,Tensorflow-2.1.0。
基于預訓練的CAE,重用編碼器網(wǎng)絡結構和權重,構建CAE-Net進行如下實驗。
實驗1選取包括正常、心血管疾病在內的脈搏波數(shù)據(jù)進行實驗,驗證CAE-Net分類效果。
CAE-Net的輸入向量維數(shù)為248,第一個卷積層卷積核數(shù)量為16,尺寸為3×1,步長為1,卷積過程采用ReLU激活函數(shù),并對輸入邊緣進行補零填充;池化層采用尺寸為2×1、步長為2的窗口進行最大值池化;設定隱層神經(jīng)元數(shù)量M=100;輸出層激活函數(shù)為softmax函數(shù)。其他參數(shù)見表1。
表1 CAE-Net各層參數(shù)Table 1 Parameters of CAE-Net
CAE-Net對心血管疾病脈搏波分類準確率如圖5所示??梢钥闯?,隨著訓練次數(shù)不斷增加,CAE-Net脈搏波分類準確率達到98.00%。
圖5 CAE-Net分類正確率Figure 5 Classification accuracy of CAE-Net
實驗2為進一步驗證模型的有效性,采用其他分類器進行對比實驗。
(1)SVM方法:利用SVM徑向基函數(shù)分別對主成分分析(principal component analysis,PCA)的降維特征和CAE隱層特征進行分類。
(2)CNN方法:利用與CAE編碼器結構相同的一維CNN網(wǎng)絡對脈搏波數(shù)據(jù)進行有監(jiān)督學習。
(3)CAE-Net(MSE)方法:將絕對均值誤差作為卷積自編碼器網(wǎng)絡的損失函數(shù),對脈搏波進行分類識別。
(4)深度融合神經(jīng)網(wǎng)絡MIRNet[16]方法:將Inception模塊與殘差模塊融合,降低模型過擬合,提升網(wǎng)絡分類準確率。
各網(wǎng)絡采用五折交叉驗證并取均值,分類結果見表2。從表2可知,當隱層神經(jīng)元數(shù)量M=100時,相較于PCA-SVM,CAE-SVM方法獲得較高準確率,且靈敏度明顯高于PCA-SVM的77.11%。在SVM方法中,CAE的特征提取效果優(yōu)于PCA,所提取脈搏波特征與心血管疾病的關聯(lián)性更強。
表2 不同分類器對比結果Table 2 Comparison results of different classifiers %
在相同數(shù)據(jù)集中,引入時域特征約束的CAE-Net分類準確率為98.00%,高于CAE-Net(MSE),且兩種CAE-Net分類準確率均高于CNN。其中,加入時域特征約束的CAE-Net性能更優(yōu),其F1值達到94.40%。
相較于文獻[16]的融合神經(jīng)網(wǎng)絡MIRNet,CAE-Net的靈敏度、準確率和F1值等指標均更優(yōu),且CAE-Net的靈敏度達到93.39%。綜上,在小樣本、弱標注的脈搏波數(shù)據(jù)上,本文的CAE-Net在基于脈搏波的心血管疾病分類任務中更具優(yōu)越性。
為了直觀顯示CAE-Net的性能,對CAE-Net的原始脈搏波輸入和輸出進行t-SNE可視化處理,如圖6所示。其中藍色圓點代表心血管疾病樣本,紅色叉點代表正常樣本。由圖6看出,CAE-Net改善了模型在脈搏波數(shù)據(jù)上的分類性能。
圖6 脈搏波數(shù)據(jù)可視化Figure 6 Visualization of pulse wave data
基于深度學習的脈搏波分類依賴大量標記數(shù)據(jù),針對脈搏波臨床數(shù)據(jù)有限、標注成本高影響分類效果的問題,設計基于CAE-Net的脈搏波分類模型。結合脈搏波形特點,在CAE中引入脈搏波時域特征約束,利用CAE壓縮重構特性,提升模型對低維特征學習能力;其次,重用預訓練CAE編碼層網(wǎng)絡結構和權重構建CAE-Net。所設計網(wǎng)絡在心血管疾病脈搏波數(shù)據(jù)集上分類的準確率達到98.00%,對異常波形的識別精確度達95.43%,能夠有效提取與心血管疾病強關聯(lián)性的特征,同時預訓練過程無須使用脈搏波標簽,提升模型在小樣本脈搏波數(shù)據(jù)上分類效果。
受樣本數(shù)據(jù)量的限制,本文僅研究了模型對異常脈搏波的分類識別,未對心血管疾病做出更為詳細的分類。后續(xù)工作將研究相關數(shù)據(jù)增廣技術,并擴展模型在脈搏波信號時序及空間上的特征提取能力,進一步提升其應用價值。