李欣悅 葛 慧
(中國航天系統(tǒng)科學(xué)與工程研究院 北京 100048)
常見的連續(xù)無創(chuàng)動脈血壓測量方法有動脈張力測定法、容積補償法和超聲法,但這些方法魯棒性差且操作較為復(fù)雜。脈搏波參數(shù)測定法是當(dāng)前一個重要的研究方向,利用PPG信號特征參數(shù)與動脈血壓間的關(guān)系來建立動脈血壓測量模型。該方法可以分為脈搏波傳播時間法(Pulse Transit Time,PTT)和脈搏波特征參數(shù)法兩類。PTT法計算出脈搏波從心臟位置傳導(dǎo)至PPG信號測試點的時間差,利用線性回歸模型建立PPT與收縮壓(Systolic Blood Pressure,SBP)和舒張壓(Diastolic Blood Pressure,DBP)的關(guān)系[1]。理論表明,PPG和EGG信號與動脈血壓間存在著某種關(guān)系,因而可利用深度學(xué)習(xí)技術(shù)提取PPG和EGG的特征參數(shù)來建立其與動脈血壓間的關(guān)系[2]。但此方法需要使用電極線采集EGG信號,這會增加設(shè)備的復(fù)雜度。
脈搏波特征參數(shù)法對PPG信號進行特征篩選并通過機器學(xué)習(xí)算法來建立其與動脈血壓間的關(guān)系,但是設(shè)計良好的特征需要充足的先驗知識,因而具有局限性[3]。有研究者提出對PPG信號使用自編碼器技術(shù)來提取特征,實驗結(jié)果表明,較人工設(shè)計的特征參數(shù),該方法的精確度更高[4]。然而這些對于連續(xù)動脈壓的預(yù)測,EGG信號不是必要的。
近年來,CNN在圖像識別、自然語言處理領(lǐng)域被廣泛應(yīng)用,在特征提取上表現(xiàn)優(yōu)異。VGGNet[5]是一種典型的CNN結(jié)構(gòu),此算法使用VGGNet來提取每搏血壓值所對應(yīng)的PPG信號特征參數(shù),并將其輸入到神經(jīng)網(wǎng)絡(luò)的全連接層來預(yù)測與動脈血壓間的關(guān)系。較于先前的方法,此算法優(yōu)點為:僅使用單路PPG信號,降低了采集設(shè)備的復(fù)雜度,增強算法魯棒性;使用CNN提取每搏血壓值所對應(yīng)的PPG信號特征參數(shù),去除了對先驗知識的依賴并提高了動脈血壓測量值的準(zhǔn)確度。
卷積神經(jīng)網(wǎng)絡(luò)[6]是一類包含卷積計算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),是深度學(xué)習(xí)的代表算法之一。其具有表征學(xué)習(xí)能力,能夠按其階層結(jié)構(gòu)對輸入信息進行平移不變分類,因此也被稱為平移不變?nèi)斯ど窠?jīng)網(wǎng)絡(luò)[7]。
CNN一般由輸入層、隱含層、輸出層所構(gòu)成,輸入層可以處理多維數(shù)據(jù),隱含層通常由若干卷積層、池化層和全連接層所組成,使用線性整流函數(shù)(ReLU)作為激活函數(shù)。
對于卷積層可設(shè)定一個或多個卷積核,對輸入進行卷積操作后,會得到一個或多個特征圖,將特征圖連接到池化層。池化層將根據(jù)設(shè)定的步長,對特征圖進行下采樣,輸出更少的數(shù)據(jù)。如此反復(fù)接入卷積層、池化層,能在低層次的特征表示上進一步提取隱藏特征,得到高層次的特征表示。最終將提取的高層次特征表示連接到一層或多層全連接層中進行非線性組合以得到輸出,以完成學(xué)習(xí)目標(biāo)。典型的CNN結(jié)構(gòu)如圖1所示。
圖1 CNN結(jié)構(gòu)圖
根據(jù)ICS理論,當(dāng)訓(xùn)練集的樣本數(shù)據(jù)與測試樣本集分布不一致時,訓(xùn)練得到的模型無法很好地泛化。在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中,每一層的輸入在經(jīng)過層內(nèi)操作之后將不同于輸入的信號分布,并且經(jīng)過前向神經(jīng)網(wǎng)絡(luò)的傳播,信號分布差異逐漸累積,導(dǎo)致網(wǎng)絡(luò)難以收斂。
批標(biāo)準(zhǔn)化(Batch Normalization,BN)能有效解決這一問題。BN算法常與批量隨機梯度下降算法一同使用,在計算神經(jīng)網(wǎng)絡(luò)的前向傳播時,對每層每批m個輸入數(shù)據(jù)B={x1,x2,…,xn}做以下處理:
(1)
(2)
式中:μB為輸入數(shù)據(jù)的均值;σB為輸入數(shù)據(jù)的方差;ε為超參數(shù);γ和β是通過模型學(xué)習(xí)所得;yi表示批標(biāo)準(zhǔn)化后的數(shù)據(jù)。
參數(shù)的優(yōu)化過程依賴損失函數(shù),通常會根據(jù)具體的任務(wù)來設(shè)定損失函數(shù),在訓(xùn)練過程中迭代更新神經(jīng)網(wǎng)絡(luò)參數(shù)以最小化損失函數(shù),直到其值滿足某一閾值。評價指標(biāo)能評估訓(xùn)練所得的神經(jīng)網(wǎng)絡(luò)的泛化能力。
在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時,為減少泛化誤差,限制模型學(xué)習(xí)能力,故使用帶有參數(shù)范數(shù)懲罰的損失函數(shù)。此算法使用帶有L2范數(shù)的均方誤差(MSE)作為損失函數(shù):
(3)
(4)
將平均誤差(ME)、標(biāo)準(zhǔn)差(SE)和相關(guān)系數(shù)(CC)作為模型評價指標(biāo),具體公式如下:
(5)
(6)
(7)
式中:μ是平均誤差。
在機器學(xué)習(xí)中,一個小規(guī)模的測試集意味著平均測試誤差估計的統(tǒng)計不確定性,無法只根據(jù)模型在小規(guī)模測試集的性能來推斷其真實性能。為解決這一問題,有學(xué)者提出k折交叉驗證法,將數(shù)據(jù)集分成k個不重合的子集,第i個子集作為驗證集,其余k-1個子集數(shù)據(jù)作為訓(xùn)練集,對神經(jīng)網(wǎng)絡(luò)進行k次訓(xùn)練和驗證。最終,驗證誤差可估計為k個驗證誤差的均值。
本文所使用的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,輸入是單通道的PGG信號,中間層是VGG-16網(wǎng)絡(luò),輸出是中心動脈壓的SBP和DBP。VGG-16包含13個卷積層(圖2中CONV1-64代表第一個包含64個卷積核的卷積層)、5個最大池化層和3個全連接層,卷積核的尺寸均是3,步長為1,最大池化層參數(shù)均是2。在每個卷積層和全連接層之后使用BN和ReLU激活函數(shù)。
圖2 整體網(wǎng)絡(luò)結(jié)構(gòu)圖
本文所設(shè)計的動脈壓算法實現(xiàn)流程如圖3所示。首先對PPG信號進行濾波處理以實現(xiàn)去噪、平滑;對PPG信號進行歸一化處理;將PPG信號分割為多個單周期;對每個單周期PPG信號進行插值處理以得到固定長度;將處理完成后的單周期PPG信號及其對應(yīng)的SBP和DBP輸入到神經(jīng)網(wǎng)絡(luò)中進行訓(xùn)練,獲得動脈壓值和PPG數(shù)據(jù)間的關(guān)系。
圖3 算法實現(xiàn)流程
從MIMIC數(shù)據(jù)庫中篩選出同時包含PPG信號(f=125 Hz)和動脈血壓信號(f=125 Hz)的13個病人數(shù)據(jù)記錄。在測量過程中,由于呼吸、身體抖動會使得PPG信號產(chǎn)生基線漂移,原始PPG信號及其對應(yīng)的動脈血壓信號如圖4和圖5所示(截取某病人部分?jǐn)?shù)據(jù))。
圖4 MIMIC數(shù)據(jù)庫中的PPG信號
圖5 MIMIC數(shù)據(jù)庫中的ABP信號
因此,在將信號輸入到卷積神經(jīng)網(wǎng)絡(luò)前,需進行濾波處理來去除原始信號中的噪聲。實驗中采用二階巴特沃斯帶通濾波器來濾除基線漂移,其由一個二階巴特沃斯高通濾波器(截止頻率為30 Hz)的和一個二階巴特沃斯低通濾波器(截止頻率為0.5 Hz)疊加組成。此外,使用中值濾波對信號進行平滑處理。濾波結(jié)果如圖6所示。對無噪聲干擾的信號做歸一化處理,使其分布滿足均值為0,方差為1。
圖6 經(jīng)濾波器處理后的PPG信號
已有研究表明,對PPG信號做二階微分得到的加速度容積脈搏波(APG),其波峰值對應(yīng)單周期信號的起點,如圖7所示[7]。因此,利用自適應(yīng)閾值法來識別APG的波峰進而可以確定單周期PPG信號的起始點。實驗中設(shè)定閾值為0.6max(APG(n)),其中max(APG(n))表示當(dāng)前APG信號的最大值,大于此閾值便認(rèn)為是PPG單周期的起始點。實驗結(jié)果表明,閾值系數(shù)設(shè)置為0.6時,能夠篩選出APG信號的波峰,進而可確定出單周期PPG起始點。最終可得如圖8所示的單周期PPG信號。
圖7 PPG信號及其對應(yīng)的APG信號
圖8 單周期PPG信號
根據(jù)切割得到的單周期PPG信號來計算對應(yīng)周期內(nèi)動脈血壓的最大值和最小值,分別記作SBP和DBP,單位均為mmHg,將SBP∈[80,180]且DBP∈[50,130]所對應(yīng)的967個PPG單周期信號及其相應(yīng)的SBP和DBP值作為訓(xùn)練樣本,50個單周期及其相應(yīng)的SBP和DBP值作為測試樣本。
插值法利用曲線中若干已知的采樣點,通過應(yīng)用某些特定的函數(shù),在曲線的某些位置上計算對應(yīng)的函數(shù)值,作為該位置曲線的近似值。常見的插值方法有片段插值、線性插值、多項式插值、樣條插值等。
由于CNN處理的是定長數(shù)據(jù),而單周期切割后的PPG信號數(shù)據(jù)長度各不相同。實驗中采用三次多項式插值法對所得PPG信號進行插值處理,使得單周期PPG信號采樣個數(shù)均為512。
本文提出的神經(jīng)網(wǎng)絡(luò)模型包含1個輸入層、1個VGG-16網(wǎng)絡(luò)和1個輸出層。輸入層用于輸入預(yù)處理完成后的單周期PPG信號,其特征點的個數(shù)為512;VGG-16網(wǎng)絡(luò)包含13個卷積層(卷積核的尺寸均為3,步長為1)、5個最大池化層(參數(shù)均為2)、3個全連接層(神經(jīng)元個數(shù)分別為2 048、512、64);1個輸出層(含2個神經(jīng)元),用于輸出預(yù)估的SBP和DBP。為加快神經(jīng)網(wǎng)絡(luò)收斂速度,在各卷積層及全連接層之后加入BN層。實驗中采取10折交叉驗證法訓(xùn)練并驗證神經(jīng)網(wǎng)絡(luò)性能,選取帶有L2范數(shù)的MSE作為優(yōu)化函數(shù),并利用初始學(xué)習(xí)率為0.006的Adam優(yōu)化器來訓(xùn)練神經(jīng)網(wǎng)絡(luò),選用ME、SD及CC作為模型性能的評價指標(biāo)。
應(yīng)用10折交叉驗證法訓(xùn)練樣本集,訓(xùn)練過程誤差曲線如圖9所示??梢钥闯觯鷥r函數(shù)收斂速度較快,在100輪之后,下降緩慢。模型在測試集上的評價指標(biāo)如表1所示。SBP的精確度為-0.51±3.23 mmHg,DBP的精確度為-0.05±1.89 mmHg,均滿足AAMI所制定的5±8 mmHg的要求[8]。測量的SBP和DBP和真實的SBP和DBP相關(guān)性系數(shù)值分別為0.988和0.981,表明測量值和真實值之間具有強相關(guān)性。
圖9 損失函數(shù)的變化趨勢
表1 算法在測試集的評價指標(biāo)
利用Bland-Altman方法[8]對血壓算法的準(zhǔn)確性進行一致性檢驗,檢驗結(jié)果如圖10和圖11所示。橫軸表示真實血壓值和測量血壓值的平均值;縱軸表示真實血壓和測量血壓的差值。SBP的一致性占比為95%,DBP的一致性占比為95%,可以看出,大多數(shù)測試樣本滿足要求,測量結(jié)果較為準(zhǔn)確。
圖10 SBP的Bland-Altman圖
圖11 DBP的Bland-Altman圖
觀察實驗結(jié)果,在測試樣本中,存在個別實驗對象的估測血壓值和真實血壓值有較大的差異。這表明模型的泛化能力有待提升,未來仍需通過擴增樣本個數(shù)并不斷優(yōu)化模型參數(shù),以進一步提高算法的準(zhǔn)確度。
本文算法使用CNN來提取PPG信號的特征值,進而預(yù)測其與動脈血壓間的關(guān)系。實驗結(jié)果表明,該算法滿足AAMI所制定的標(biāo)準(zhǔn)。在CNN中:通過對PPG信號做卷積、池化和批標(biāo)準(zhǔn)化等操作,能提取出表征局部信號的顯著特征值;通過多層CNN的處理,最終可以得到PPG信號高層次的特征表示來建立其與動脈壓間的關(guān)系。
利用本文算法所求得的血壓值與實際值間具有較好的一致性,SBP與DBP一致性占比均達到95%以上,且SBP與DBP的精確度分別為-0.51±3.23 mmHg和-0.05±1.89 mmHg,均滿足AAMI制定的5±8 mmHg的要求。但仍存在少量測試樣本的真實血壓值和測量值之間有較大的誤差,未來仍需進一步優(yōu)化模型參數(shù)。