楊晶東,陳 磊,蔡書琛,解天驍,燕海霞
(1.上海理工大學(xué)光電信息與計算機工程學(xué)院,上海 200093;2.上海中醫(yī)藥大學(xué)基礎(chǔ)醫(yī)學(xué)院,上海 201203)
近些年來,高血壓患病率逐步攀升。血漿同型半胱氨酸(Homocysteine,HCY)水平大于10 μmol/L的高血壓被定義為“H 型”高血壓,在高血壓患者中高達75%為H 型高血壓。HCY 水平升高是冠狀動脈粥樣硬化性心臟病、腦卒中等心腦血管疾病的危險因素[1]。研究證實HCY 水平與心血管疾病的發(fā)生具有正相關(guān)性,Graham 等[2]發(fā)現(xiàn),單獨存在高血壓或HCY 水平升高的患者中,腦卒中死亡風(fēng)險分別為正常人的3.6 倍和4.2 倍,而高血壓與HCY 水平同時升高的患者腦卒中死亡的風(fēng)險則增加至12.1 倍。迄今為止,檢測血液中的HCY 含量多少是臨床診斷H 型高血壓的唯一途徑[3]。
隨著深度學(xué)習(xí)和機器學(xué)習(xí)應(yīng)用到中醫(yī)領(lǐng)域進行相關(guān)研究,中醫(yī)知識的碎片性和經(jīng)驗性不再是難題。隨機森林算法具有較高訓(xùn)練速度,可以對內(nèi)部泛化誤差進行無偏估計。同時隨機森林算法引入了重采樣和屬性選擇的隨機性,對噪聲不敏感,克服了過擬合問題。因此出現(xiàn)了將集成隨機森林應(yīng)用于肺結(jié)節(jié)的良惡性分類。借鑒深度學(xué)習(xí)思想,出現(xiàn)了深度隨機森林算法[4],應(yīng)用于慢性胃炎的中醫(yī)癥候分類,為慢性胃炎診斷提供依據(jù)。Zhang 等[5]采用9 層卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN)對脈搏波進行分類,平均準確率達到了93.49%。文獻[6]提出一種改進的CNN 模型對脈搏波分類,在不同的數(shù)據(jù)集上最高分類精度達到95%;Ouyang 等[7]采用CNN 模型對Ⅱ型糖尿病患者的脈搏波分類,最高精度可達到90.6%,但當CNN 層數(shù)較深時,才能提取到脈搏波深層特征,容易造成梯度消失問題。張選等[8]基于GoolgleNet 和ResNet 框架提出MIRNet 模型對健康和亞健康人群脈象分類,精度可達到87.84%。Chen 等[9]采用基于BasicBlocks 的ResNet 框架BRNet 模型對女性脈搏波分類,判斷是否處在妊娠期,預(yù)測準確率達到89%,接收者操作特征(Receiver operating characteristic,ROC)曲線及其下方圍成的面積(Area under curve,AUC)值為0.91。雖然這些方法一定程度上解決了梯度消失問題,但模型深度多數(shù)處在4~6 層,無法學(xué)習(xí)到脈搏波周期內(nèi)的深度時序特征。楊浩等[10]運用卷積和雙向長短時記憶(Bi-directional long short-term memory,BiLSTM)融合網(wǎng)絡(luò)對心房節(jié)拍分類,精度可達到90.21%。馬明艷等[11]使用CNN-BiLSTM 網(wǎng)絡(luò)對入侵的惡意行為進行檢測,精度達到了92%。該方法在CNN 和BiLSTM 基礎(chǔ)上進行融合,均具有“并聯(lián)”多通道融合特性,當數(shù)據(jù)時序較長時,BiLSTM模型訓(xùn)練時間較長,出現(xiàn)特征冗余問題。本文提出一種異質(zhì)集成混合深度學(xué)習(xí)模型,采用CNN 結(jié)構(gòu)提取脈搏波淺層特征,同時“串聯(lián)”BiLSTM 結(jié)構(gòu)學(xué)習(xí)脈搏波的深層時序特征以及數(shù)據(jù)在時間序列上的相關(guān)性[12]。該模型可以根據(jù)患者脈診信息實現(xiàn)對H 型高血壓患者自主分類,為H 型高血壓患者診斷提供了新思路。
CNN 由輸入層、卷積層、池化層、全連接層和輸出層構(gòu)成。卷積層和池化層數(shù)量根據(jù)輸入需要調(diào)整,一般采用卷積層和池化層交替設(shè)置[13]。CNN 采用了局部連接和共享權(quán)值方式。減少了網(wǎng)絡(luò)權(quán)值數(shù)量,降低了過擬合風(fēng)險。循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent neural network,RNN)可以學(xué)習(xí)任意具有序列特征的神經(jīng)網(wǎng)絡(luò)。當輸入維度增多,RNN 對較早時間的一些節(jié)點的感知力下降,難以學(xué)習(xí)到長時間序列特征,而產(chǎn)生長依賴問題,從而發(fā)生梯度消失或者梯度爆炸現(xiàn)象。長短時記憶(Long short-term memory,LSTM)[14-15]網(wǎng)絡(luò)是一種特殊RNN 網(wǎng)絡(luò),其核心是利用“記憶細胞”記住長期的歷史信息,采用門機制管理,門結(jié)構(gòu)不提供信息,僅用來限制信息量,是一種多層次特征選擇方式。LSTM 解決了RNN 梯度爆炸和消失的問題,使模型能夠?qū)W習(xí)到長時間序列的特征。忘記門、輸入門、輸出門和記憶細胞以及相應(yīng)的更新公式分別為
式中:ft為遺忘門;it、、ot為更新門;ht為輸出門;W為權(quán)重;b為偏置。
但傳統(tǒng)LSTM 只能學(xué)習(xí)序列單向信息,如圖1(a)所示,BiLSTM[16-17]網(wǎng)絡(luò)結(jié)構(gòu)在每一個訓(xùn)練序列的前后同層各連接一個單向LSTM,可從正、反兩方向提取特征,提高模型分類精度。BiLSTM 模型結(jié)構(gòu)如圖1(b)所示。圖1(a)中σ為Sigmoid 函數(shù),它的輸出在0~1 之間,tanh 為雙曲正切函數(shù),輸出在-1~1 之間,c〈t〉為記憶細胞狀態(tài),h〈t〉為隱含層狀態(tài)。圖1(b)中X表示輸入,Y表示輸出,A表示隱藏層。
圖1 LSTM 及BiLSTM 體系結(jié)構(gòu)圖Fig.1 Architecture diagrams of LSTM and BiLSTM
臨床中醫(yī)脈搏波數(shù)據(jù)呈現(xiàn)一維特性,采用一維卷積提取特征,會減少脈搏波特征間的相關(guān)性。針對脈搏波的時間特性,本文采用CNN 提取脈搏波局部特征,并采用BiLSTM 獲取各特征間時序關(guān)系,構(gòu)建基于CNN-BiLSTM 異質(zhì)混合深度學(xué)習(xí)方法,結(jié)構(gòu)圖如圖2 所示,本文提出的H 型高血壓預(yù)測算法步驟為:
圖2 混合卷積雙向長短時記憶網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 CNN-BiLSTM architecture diagram
脈診的脈搏波數(shù)據(jù)由脈診儀采集,樣本采集前,患者需要放松5 min 以上,采樣時間為60 s,采樣觸點壓力依患者脈絡(luò)深淺確定,采樣頻率包括200、700、1 000 Hz。問診樣本根據(jù)門診醫(yī)師詢問患者相關(guān)基礎(chǔ)病癥狀況構(gòu)建量表數(shù)據(jù),為問診分析提供依據(jù)。本文采用上海中醫(yī)藥大學(xué)附屬龍華醫(yī)院及中西醫(yī)結(jié)合醫(yī)院所提供的臨床脈診及問診數(shù)據(jù)。共325 例脈診。男性病例138 例(42.31%),平均年齡(66.35±10.37)歲;女性病例187 例(57.69%),平均年齡(71.32±8.51)歲。H 型高血壓患者125 例,占總病例38.19%,非H 型高血壓患者200 例占總病例61.81%。病例分布如圖3 所示。
圖3 脈診樣本分布Fig.3 Description of samples on pulse-taking diagnosis
脈診采樣頻率包括200、700、1 000 Hz 三種,為了保證數(shù)據(jù)集維度一致性,將1 000、700 Hz 降采樣為200 Hz。由于脈搏信號很容易受到干擾而引入高頻噪聲,嚴重干擾脈搏信號特征提取,甚至導(dǎo)致脈搏波波形突變。為此,本文對原始脈搏波信號進行降噪、去除高頻噪聲等操作。傳統(tǒng)傅里葉變換是一種頻域信號分析方法,很難確定在某個時間點上的具體信號變化,無法分辨信號在時間軸上的突變點。而小波變換具有正交性、方向選擇性、可變的時頻域分辨率等特點,可以有效提取脈搏波信號關(guān)聯(lián)特征。本文選擇Symlets 系列中的Sym7 小波作為小波基對脈象信號進行降噪處理[18]。由于脈搏信號的絕大部分能量都集中在0~15 Hz 之間,降采樣處理后,脈搏波頻率皆為200 Hz,因此設(shè)置9 層脈搏波分解作為默認閾值。被采集者的呼吸和體動會引起脈象信號波動,使脈搏波形變失真,引起脈搏波基線漂移[19],因此必須對脈搏信號進行預(yù)處理,去除存在的脈搏波基線漂移[20]。常用的基線漂移去除方法包括小波變換(Wavelet transform,WT)[21]、經(jīng)驗?zāi)B(tài)分解(Empirical mode decomposition,EMD)[22-23]以及平滑先驗法(Smoothness priors approach,SPA)[24-25],由于脈診波形頻率不同,自適應(yīng)小波級聯(lián)方法需要多次調(diào)整小波分解系數(shù)。平滑先驗法通過調(diào)節(jié)平滑參數(shù)λ實現(xiàn)頻率響應(yīng),簡便易行。因此,本文采用平滑先驗法去除脈搏波基線漂移
式中:p為有效脈搏波信號;I為觀測矩陣的單位矩陣;D2為二階微分矩陣;y為原始信號。
通過選擇不同的正則化參數(shù)可以得到不同的濾波特性。脈搏波信號中基線漂移的頻率為0.2~0.3 Hz,脈搏波的采樣頻率為200 Hz,因此在該采樣頻率下,取λ=2 500 對應(yīng)截止頻率為200×0.002 5 Hz=0.5 Hz,可以有效去除脈搏波信號中低于0.5 Hz 的基線漂移信號。脈搏波樣本采集時間為60 s,包含多個完整周期,對脈搏波樣本截取,使所有樣本單周期內(nèi)數(shù)據(jù)點少于250,提取400 個數(shù)據(jù)點,偏移量為100 個數(shù)據(jù)點,保證每段數(shù)據(jù)均包含一段完整周期[26-27]。因此,每個樣本至少能擴展成114 個包含一個完整周期的波形。本文采用評估參數(shù)信噪比(Signal noise ratio,SNR)和均方根誤差(Root mean square error,RMSE)評估脈搏波去除基線漂移后效果。SNR 值越大,RMSE 值越小,說明去噪效果越好,表達式為
式中:p′(n)為原始信號;p(n)為去基線漂移后信號;N為信號長度。
CNN-BiLSTM 模型超參數(shù)設(shè)置如表1 所示,對于脈診數(shù)據(jù),前3 層為CNN 層,卷積核數(shù)目分別為32、64、128,卷積核長度為3、3、2,步長均為1,各層間添加3 層最大池化層,核長為3、2、2,步長全為1。后兩層采用BiLSTM 模型層,神經(jīng)元數(shù)為32,最后采用全連接層輸出分類結(jié)果。
表1 CNN-BiLSTM 模型超參數(shù)Table 1 Hyper parameters of CNN-BiLSTM model
本文采用5 個二分類算法指標和接收者操作特征(Receiver operating characteristic,ROC)曲線及其下方圍成的面積(Area under curve,AUC)和精度-召回率(Precision-Recall,PR)曲線及其下方圍成的面積平均精度(Average precision,AP)來評價算法性能,包括:靈敏度(Sensitivity,Sen),特異性(Specificity,Spe),準確度(Accuracy,Acc),精確率(Precision,Pre)和F1分數(shù)(F1-score),表達式為
式中:真陽性(True positive,TP)表示將樣本中H 型高血壓正確分類為H 型高血壓的樣本數(shù);假陽性(False positive,F(xiàn)P)表示將樣本中非H 型高血壓分類為H 型高血壓的樣本數(shù);真陰性(True negative,TN)表示將樣本中非H 型高血壓正確分類為非H 型高血壓的樣本數(shù);假陰性(False negative,F(xiàn)N)表示將樣本中H 型高血壓分類為非H 型高血壓的樣本數(shù)。
為了比較各種低頻噪聲方法,本文采用不同小波階數(shù)、基函數(shù)進行對比實驗。圖4 給出了當小波階數(shù)為N,小波基為db、Sym 和Coif 時,脈搏波信噪比SNR 和均方根誤差RMSE 對比情況。表2 給出了不同小波基、不同階數(shù)評估參數(shù)SNR 和RMSE 值。分析可知,Sym7 小波的SNR 最大,為45.540 7;RMSE 最小,為0.037 23。因此,Sym7 作為小波去噪的小波基最為適合。這是由于Symles 小波系列Sym 小波相比db 小波和coif 小波具有更好的對稱性,可以有效減少脈搏波信號重構(gòu)時的相位失真和噪聲。當Sym7 小波基的支撐范圍為13,消失矩為7 時,對于脈搏波能具備較好的正則性,可以較好地集中脈搏波能量,減少邊界效應(yīng)問題。
圖4 不同小波去噪效果比較Fig.4 Comparison of denoising effect of different wavelets
表2 不同小波去噪效果比較Table 2 Comparison of denoising effect of different wavelets
圖5 給出了基線漂移去除3 種典型方法評估指標對比,分析可知,對于H 型高血壓樣本,與WT、EMD 方法相比,SPA 方法保留了脈搏波本征模態(tài)特征,剔除了殘余穩(wěn)態(tài)量,具有較高的SNR 值和較小的RMSE 值,說明SPA 方法更適合作為脈搏波數(shù)據(jù)去除的基線漂移方法。
圖5 基線漂移剔除方法比較Fig.5 Comparison of different baseline shifting methods
原始脈搏波圖像經(jīng)過去除噪聲、基線漂移后的波形圖像如圖6 所示。分析可知,經(jīng)過去噪、基線漂移后,脈搏波震動幅值和均值均有所降低,其中,基線漂移后波形幅值減少12.25%。同時,脈搏波減少了低頻噪聲和極端噪點,波形趨于穩(wěn)定,具有較好的周期性和可區(qū)分性。
圖6 去除噪聲、基線漂移后的數(shù)據(jù)波形圖Fig.6 Pulse waves before and after denoising and baseline drift correction
圖7 顯示了不同的卷積層和雙向長短時記憶層(即模型的深度)對模型性能的影響。可以看出,當卷積層數(shù)為3,雙向長短時記憶層數(shù)為2時,準確度最高。同時AUC 值也最高。將該模型參數(shù)作為集成脈診模型參數(shù)。當模型層數(shù)較少時,模型各項評價指標均較差,無法學(xué)習(xí)到樣本的深層特征,因而準確度較低。而隨著模型深度加深,準確度逐漸提高,但容易導(dǎo)致模型過擬合,降低了模型準確度,因此需要做出折中選擇。
圖7 模型不同深度的性能比較Fig.7 Performance comparison of models at different depths
針對脈診數(shù)據(jù)集,本文采用融合CNN-BiLSTM 模型,與CNN 和BiLSTM 模型進行對比,進行5折交叉驗證,表3 給出了各模型H 型高血壓患者分類評價指標。分析可知,CNN-BiLSTM 模型綜合指標高于其他幾種模型,與CNN 模型和BiLSTM 模型相比,F(xiàn)1-score 分別增加了9.45% 和5.41%,AUC 值分別增加了5.45%和7.27%。這是由于與CNN 模型相比,CNN-BiLSTM 模型增加了BiLSTM 模型,可以有效檢測具有長依賴關(guān)系的脈診序列波形特征,有利于波形相關(guān)性特征提取。與BiLSTM 模型相比,CNN-BiLSTM 模型增加了CNN 模型,可以提取具有局部關(guān)聯(lián)關(guān)系的脈診特征。由于CNN 模型共享卷積核,可以有效提高模型分類速度和準確度。典型機器學(xué)習(xí)模型如隨機森林(Random forest,RF)、梯度提升樹(Gradient boosting decision tree,GBDT)無法學(xué)習(xí)H 型高血壓脈診波形序列的深層特征,將大多數(shù)樣本判斷為負類,少數(shù)樣本判斷為正類,導(dǎo)致精度偏高,靈敏度、特異性偏低。而深度學(xué)習(xí)模型BRNet 雖然采用了ResNet 基本架構(gòu),但精度比CNN-BiLSTM 降低了3.28%,這是由于脈搏波的時序特征是深層特征,BRNet 模型的深度較淺,無法學(xué)習(xí)到所有的脈搏波特征信息。MIRNet 模型在ResNet 模塊的基礎(chǔ)上加入Inception 模塊,模型深度較深,平均精度比CNN-BiLSTM 模型降低了0.44%,可達到0.805 5。但模型深度較深,穩(wěn)定性變差,當數(shù)據(jù)在尺度上縮放時容易降低模型泛化性能。而脈搏波數(shù)據(jù)具有周期性,不同周期之間的尺度在預(yù)處理后仍具有一定的差異性,使MIRNet 模型評價指標波動較大。因此,對于H 型高血壓樣本,CNN-BiLSTM 模型具有較高的分類精度和較好的泛化性能。
表3 脈診各算法評價指標比較Table 3 Comparison of evaluation indexes of pulse diagnosis algorithms %
圖8(a)給出了針對脈診波形樣本,各種模型ROC 曲線對比??梢钥闯?,相比單模型,CNN-BiLSTM 模型ROC 曲線位于坐標平面左上部,與橫軸所圍面積AUC 值最大,達到了0.85,比CNN 模型提升了5.05%,比BiLSTM 模型提升了7.27%。這是由于在較淺層模型下,單層網(wǎng)絡(luò)無法學(xué)習(xí)到脈搏波全部特征。CNN-BiLSTM 模型比RF 提高了14.71%,比GBDT 提升了15.53%,這是由于機器學(xué)習(xí)方法具有數(shù)據(jù)平衡敏感性,使預(yù)測結(jié)果偏向多數(shù)類非H 型高血壓。CNN-BiLSTM 模型比BRNet 和MIRNet 提升了3.08%,這是由于BRNet 采用淺層ResNet 網(wǎng)絡(luò),無法提取深層特征。而MIRNet 模型層數(shù)過深,泛化性能較差。圖8(b)給出了針對脈診波形樣本,各種模型的P-R 曲線。可以看出,CNN-BiLSTM 模型P-R 曲線位于坐標平面右側(cè)與橫軸包圍的面積最大,AP 值達到了0.779。相比單模型CNN、BiLSTM 模型AP 值分別提升了4.77%、20.06%。這是由于CNN 模型深度較淺,無法學(xué)習(xí)脈搏波的深度時序特征,BiLSTM 模型受數(shù)據(jù)維度和周期重復(fù)分割的影響下,泛化性能差,AP 值較低。相比BRNet 和MIRNet,AP 值分別提升了7.74%和0.82%。這也體現(xiàn)了CNN-BiLSTM 模型具有更好的泛化性能。因此,CNN-BiLSTM 模型對于類別不均衡的H 型高血壓脈搏波樣本分類具有更好的分類性能。
圖8 不同算法脈診分類曲線比較Fig.8 Comparison of the classification curves of different algorithms in pulse-taking
表4 給出了不同模型運行一個Epoch 的時間及模型參數(shù)量,典型集成學(xué)習(xí)模型如RF 和GBRT,時間復(fù)雜度和樣本數(shù)量、特征維度以及基分類器的種類數(shù)量具有較強的相關(guān)性,當樣本數(shù)量增加時,運行時間會急劇增加。對于高血壓數(shù)據(jù)集,CNN-BiLSTM模型訓(xùn)練周期高于CNN、BRNet算法。CNN-BiLSTM模型中CNN 模塊同時具有特征提取和降維作用,也減少了BiLSTM 層的運行時間,提高模型的分類性能。MIRNet 模型具有較深層數(shù),參數(shù)量較大,雖具有較好的分類性能,但運行時間較長,當數(shù)據(jù)集增大時運行時間將會進一步增加。綜合來看,CNN-BiLSTM 模型具有較好的時間復(fù)雜度與分類性能平衡效果。
表4 不同模型參數(shù)量和運行時間Table 4 Number different model of parameters and runtime
本文針對脈診的脈圖特征參數(shù)進行分析,并給出特征貢獻率排名,如圖9 所示。脈圖參數(shù)特征貢獻率排名前4 位的特征分別為W1/T、H4/H1、H4、t1/t4,均大于5%。W1/T 表示主動脈壓力升高的持續(xù)時間,與重搏前波的出現(xiàn)時間和外周阻力有關(guān)。H4/H1 主要反映外周阻力高低。當外周血管收縮時,阻力增高,H4/H1 升高(>0.45);反之,外周阻力降低時,H4/H1 變小(<0.30)。H4 是降中峽幅度,表示降中峽谷底到脈搏波圖基線的高度。降中峽高度與舒張壓相對應(yīng),與動脈血管外周阻力、主動脈瓣關(guān)閉功能有關(guān)。前3 位特征貢獻率都反映了H 型高血壓患者的血管外周阻力對分類影響,也體現(xiàn)出H 型高血壓是動脈粥樣硬化與動脈硬化的獨立危險因素。t1/t4與心臟射血功能有關(guān),t1/t4值越大,反映心臟急性射血期速度越慢,左心收縮功能減弱,t4為左心室收縮期時間。反映了H 型高血壓患者心臟急性射血期速度與左心收縮功能。其余特征占比如圖9 所示。
圖9 脈診特征貢獻率排名Fig.9 Feature importance ranking of pulse-taking
本文通過脈診各評估參數(shù)特征貢獻率分析,深入挖掘潛在的脈診特征因素與H 型高血壓分類相關(guān)性,可有效地提高臨床輔助診斷的客觀性和準確性。
針對中醫(yī)學(xué)脈診脈搏波樣本,本文根據(jù)脈診數(shù)據(jù)提出了一種混合深度學(xué)習(xí)分類模型,該模型可以有效地提取脈診局部及全局序列特征,從而提高H 型高血壓的脈診分類精度。實驗結(jié)果表明,與傳統(tǒng)機器學(xué)習(xí)相比,該模型具有較好分類精度和泛化性能,其中,靈敏度、特異性、正確率、F1-score、AUC 值分別達到79.71%、69.56%、77.17%、83.96%、0.850 0。該模型能有效地兼顧H 型高血壓患者脈診綜合特征,對臨床診斷具有較好的參考價值。