熊嘉豪,姜晨希,陳永毅,張 丹*,尹武濤
(1.浙江工業(yè)大學(xué)信息工程學(xué)院,浙江 杭州 310023;2.無錫博智芯科技有限公司,江蘇 無錫 214029)
高血壓作為最常見的慢性病之一,是心腦血管病最主要的危險因素,也是全世界最主要的健康問題。《柳葉刀》近期發(fā)表由倫敦帝國理工學(xué)院和世界衛(wèi)生組織(世衛(wèi)組織)主持撰寫的首份全球高血壓流行趨勢綜合分析報告[1]。報告顯示,自1990 年以來,全球高血壓患者人數(shù)增加一倍,達到12.8 億人,其主要原因為人口增長與老齡化。其中,約有7.2 億人沒有得到必要治療,約有5.8 億人并不知道自己是高血壓患者。
血壓是反映人體心血管系統(tǒng)狀況重要信息的四個生命體征之一。隨著科技的進步和發(fā)展,高血壓實際上是可以提前防控的,連續(xù)和定期的血壓監(jiān)測對于早期診斷和預(yù)防心血管疾病至關(guān)重要。然而多數(shù)患者對自己患病并不知情,并且當(dāng)下對于血壓的監(jiān)測尚且不能兼顧安全性與準(zhǔn)確性,致使很多高血壓病人未能得到及時的治療[2]。人們對自己血壓的實時監(jiān)測是預(yù)防高血壓的必要環(huán)節(jié)。臨床實踐中現(xiàn)有的基于侵入性或基于袖帶的血壓測量技術(shù),并不利于患者對自身血壓的日常測量,且測量結(jié)果精度有待提升[3]。
近年來,連續(xù)血壓測量技術(shù)受到越來越多的研究關(guān)注,其中基于光電容積(PPG)信號的血壓測量技術(shù)成為研究熱點。伴隨著深度學(xué)習(xí)的快速發(fā)展,越來越多的學(xué)者采用深度學(xué)習(xí)方法分析PPG 信號,并通過神經(jīng)網(wǎng)絡(luò)的輸出來預(yù)測血壓值,實現(xiàn)高精度的無創(chuàng)連續(xù)血壓測量。因此,基于深度學(xué)習(xí)方法的血壓預(yù)測技術(shù)對于高血壓相關(guān)疾病的診斷、監(jiān)測和預(yù)防具有重大意義[4]。在基于深度學(xué)習(xí)的血壓預(yù)測算法方面,多數(shù)為PPG 信號中的特征提取并進行特征融合,很少有算法去讓模型能夠更多地關(guān)注PPG 信號中的有用信息,聞博[5]曾提出兩種基于深度神經(jīng)網(wǎng)絡(luò)的無袖帶血壓建模方法,第一種方法是利用三層雙向長短期記憶(Long-Short Term Memory,LSTM)神經(jīng)網(wǎng)絡(luò)對收縮壓(SBP)和舒張壓(DBP)進行預(yù)測,第二種方法是利用近期較為熱門的殘差神經(jīng)網(wǎng)絡(luò)(ResNet18)對收縮壓(SBP)和舒張壓(DBP)進行更為精準(zhǔn)的預(yù)測。與此同時,Mohammad Reza Mohebbian 等人[6]提出一種改進的分組數(shù)據(jù)處理技術(shù),通過光容積圖(PPG)信號連續(xù)估計收縮壓(SBP)和舒張壓(DBP)。王月猛等人[7]提出一種將脈搏信號特征和Elman 神經(jīng)網(wǎng)絡(luò)結(jié)合的方法對血壓值進行預(yù)測。然而PPG 信號中包含的冗余信息占比過高[8],導(dǎo)致模型對PPG 信號的有效信息提取效率過低,這也是血壓測量技術(shù)目前面臨的最大障礙。
為彌補現(xiàn)有研究的不足,本文提出基于時域卷積網(wǎng)絡(luò)(Temporal Convolutional Network,TCN)中嵌入SE 注意力機制模塊(Squeeze-and-Excitation Module)的TCN-SE 神經(jīng)網(wǎng)絡(luò)。該模型在TCN 網(wǎng)絡(luò)中利用膨脹卷積,以求在最大程度保留原始信息的同時,盡可能增大模型的感受野;同時嵌入SE 注意力機制模塊,加強模型對于不同通道信息的關(guān)注度,改善模型對PPG 信號進行特征提取時信息丟失的問題,以便更好地讓模型關(guān)注PPG 信號中的細微特征。通過在公開數(shù)據(jù)集上進行實驗驗證,證明所提出的方法比現(xiàn)有方法更為有效。
傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)由于卷積核大小受限,長期依賴信息的捕獲能力較弱,因此不適合時序問題的建模[9]。時域卷積網(wǎng)絡(luò)(Temporal Convolutional Network,TCN)作為一種特殊的卷積神經(jīng)網(wǎng)絡(luò),能夠很好地處理時序問題,從而受到了研究人員的關(guān)注,在諸多時序數(shù)據(jù)預(yù)測任務(wù)中取得了較好的效果。
在處理序列問題時需要考慮時間,即某時刻只能考慮該時刻以及此前的輸入,因此不能使用普通的CNN 卷積,盡管循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)可以在一定程度上處理時間序列,但“梯度消失”現(xiàn)象使得其難以解決長時依賴問題。因此,需要一種新型的CNN 以更有效地抓取長時數(shù)據(jù),即因果卷積。
因果卷積公式如下:
如圖1 所示,對于時序問題,因果卷積是根據(jù)x1,…,xt以及y1,…,yt-1預(yù)測yt的結(jié)果,使得yt盡可能接近真實值。然而,因果卷積存在一個弊端,若需要考慮的變量x過于久遠,那么就必須相應(yīng)地增加卷積層,通過很多層或更大的過濾器來增加卷積的感受野。然而這可能會引起擬合效果欠佳、訓(xùn)練過程復(fù)雜等問題。
圖1 因果卷積數(shù)據(jù)分析過程
膨脹卷積(Dilated Convolution)又稱空洞卷積,能夠更好地解決以上問題。膨脹卷積通過跳過部分輸入來擴展過濾器的應(yīng)用范圍,使得其能應(yīng)用于大于本身長度的區(qū)域。圖2 顯示了通過大小排列的膨脹卷積增加卷積感受野的整個過程。
圖2 膨脹卷積原理圖
對于空洞數(shù)為d 的膨脹卷積,卷積結(jié)果如下:
式中:K為當(dāng)前卷積核的大小,而(d+1)K+1 即可等價為一個新的卷積核,d+1 被稱作膨脹比。該卷積核首行、首列、尾行、尾列權(quán)重均為零,且每隔d個位置權(quán)重非零,否則權(quán)重即為零。
膨脹卷積巧妙避開池化操作,在確保更高信息完整性的前提下,有效增大感受野,使得每個卷積的輸出都能夠包含更大范圍的信息。膨脹卷積在處理長序列信息的問題時往往能發(fā)揮顯著優(yōu)勢。膨脹卷積的缺點在于,由于信息之間距離較長,其對于大物體的分割效果較為明顯,但對于小物體的分割卻未必可取。同時,由于在膨脹卷積中,卷積并不連續(xù),即并不是每個輸入都得到計算,因此在處理逐像素的預(yù)測問題時,膨脹卷積有其致命缺陷,即會出現(xiàn)網(wǎng)格效應(yīng)(Gridding Effect)。
為解決上述缺點,學(xué)者提出混合膨脹卷積(Hybrid Dilated Convolution)。為消除網(wǎng)格效應(yīng),該結(jié)構(gòu)規(guī)定:疊加的膨脹卷積的dilation rate 不能有大于1 的公約數(shù);最后一層膨脹卷積的dilation rate 最大,且小于等于卷積核的大小。為同時滿足大小物體的分割要求,本文中的膨脹卷積將dilation rate 設(shè)計成鋸齒狀結(jié)構(gòu)。
近些年來,卷積神經(jīng)網(wǎng)絡(luò)在很多領(lǐng)域上都取得巨大的突破,從本質(zhì)上講,卷積是對一個局部區(qū)域進行特征融合,這包括空間上以及通道間的特征融合。對于卷積而言,很大一部分操作是提供局部感受野,即空間上融合更多的特征,或者是提取多尺度空間信息,我們使用的SE 注意力機制模塊,可以讓模型更好地關(guān)注各個通道間的關(guān)系,自動學(xué)習(xí)到不同通道特征的重要程度[10]。
SE 注意力機制模塊主要包括Squeeze(壓縮)操作和Excitation(激發(fā))操作。SE 模塊首先對卷積得到的特征圖進行壓縮操作,得到各個通道的全局特征,然后對全局特征進行激發(fā)操作,學(xué)習(xí)各個通道間的關(guān)系,也得到不同通道的權(quán)重,最后乘以原來的特征圖得到最終特征。本質(zhì)上,SE 模塊是在通道維度上做類似于RNN 中的門操作,這種注意力機制讓模型可以更加關(guān)注信息量最大的通道特征,并且可以抑制噪音和權(quán)重小的通道特征,使得到的最終特征更加貼近于預(yù)期結(jié)果。
SE 模塊可以適用于任何映射:Ftr:X→U,X∈RH′×W′×C′,U∈RH×W×C以卷積為例,卷積核為V=[v1,v2,…vC],其中vC表示第C個卷積核。那么輸出
圖3 SE 模塊結(jié)構(gòu)圖
Squeeze 操作目的為壓縮,即順著空間維度來進行特征壓縮,將每個二維通道變換成一個實數(shù),這個實數(shù)某種程度上具有全局感受野,它表征著在特征通道上響應(yīng)的全局分布,并使得靠近輸入的層也能獲得全局感受野。通常采用global-average-pooling來實現(xiàn),原則上也可以采用更為復(fù)雜的聚合算法。表達式如下所示:
壓縮操作得到全局描述特征,緊接著需要另一種運算方法來抓取各個通道之間的關(guān)系。這個操作需要滿足兩個要求:第一,要足夠靈活,可以學(xué)習(xí)到各個通道之間的非線性關(guān)系;第二,學(xué)習(xí)的關(guān)系不能是互斥的。因此采用類似于RNN 中門的機制,通過參數(shù)W來為每個特征通道生成權(quán)重。并且采用sigmoid 形式的門機制:
最后進行Scale 操作,該操作是將學(xué)習(xí)到的各通道的激活值sc(sigmoid 激活,值0-1)和原始特征值uc相乘得到各個通道的權(quán)重系數(shù),從而使得模型對各個通道的特征更具有辨別能力:
隨著網(wǎng)絡(luò)深度的增加,梯度爆炸成為一大障礙。而對比不同深度網(wǎng)絡(luò)的測試情況,可以發(fā)現(xiàn)更深的網(wǎng)絡(luò)將導(dǎo)致更高的測試誤差和訓(xùn)練誤差,故而求解優(yōu)化問題的難度也更大。這種并非由過擬合引起的準(zhǔn)確率下降被稱為網(wǎng)絡(luò)退化問題。這是因為較深的模型背后是一些非線性層,而非恒等映射,這也表明:恒等映射難以用多個非線性層來近似。而殘差可以更好地解決網(wǎng)絡(luò)退化問題,它使得網(wǎng)絡(luò)可以以跨層的方式進行信息傳遞[11]
殘差塊使用堆疊的非線性層擬合殘差,假設(shè)需要學(xué)習(xí)的映射為y=H(x),則擬合結(jié)果為:
式中:F(x,Wi)=H(x)-x即為要學(xué)習(xí)的殘差映射,F(xiàn)即為殘差。
此外,殘差函數(shù)的形式是可變的,當(dāng)F只有一層時,殘差可寫為:
圖4 所示為殘差塊工作原理。
圖4 殘差塊原理圖
跳過一層或更多層的連接稱為快捷連接。若F(x,Wi)和x的維度相等,則直接通過快捷連接逐個元素相加,再通過非線性激活函數(shù)ReLU(y),可對整個殘差塊添加非線性。
若F(x,Wi)和x的維度不等,則需要在快捷連接中對x進行線性投影以實現(xiàn)維度匹配,方法如下:
以上兩種情況如圖5 所示,(a)為維度相等情況,(b)為維度不等情況。以圖中所示為例,(b)圖方法先用64 個1×1 的卷積將256 維降至64 維,最后再通過256 個1×1 卷積還原為256 維,所需參數(shù)是使用(a)圖方法時的1/17,大大減少計算量和參數(shù)量,該方法在深層網(wǎng)絡(luò)中應(yīng)用十分廣泛。
圖5 殘差塊的兩種鏈接方式
本文提出的神經(jīng)網(wǎng)絡(luò)模型是在TCN 神經(jīng)網(wǎng)絡(luò)模型中嵌入SE 注意力機制模塊,合稱為TCN-SE 神經(jīng)網(wǎng)絡(luò)模型,該神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)是為多分值輸出而設(shè)計的,意味著它能夠從一個PPG 信號同時估計收縮壓和舒張壓。
TCN-SE 神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)如圖6 所示,該模型為現(xiàn)有算法在新的領(lǐng)域上的應(yīng)用,由卷積層、SE 注意力機制模塊、TCN 神經(jīng)網(wǎng)絡(luò)和全連接層疊加而成。卷積層是由一個一維卷積神經(jīng)網(wǎng)絡(luò)構(gòu)成的特征提取器。SE 模塊利用一維卷積神經(jīng)網(wǎng)絡(luò)對輸入信號進行壓縮,然后通過激發(fā)操作得到每個通道的激活值,再通過Scale 操作將每個通道的激活值乘以該通道原始特征值得到各個通道的權(quán)重系數(shù)。TCN模型由三個殘差塊構(gòu)成,每個殘差塊又由兩個膨脹卷積層和一個殘差鏈接構(gòu)成,每個膨脹卷積層都使用ReLU 激活層、規(guī)范化層和dropout 層。
圖6 TCN-SE 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
圖6 給出了TCN-SE 模型的體系結(jié)構(gòu),它是一種混合體系結(jié)構(gòu)。第一層一維卷積神經(jīng)網(wǎng)絡(luò)由16個大小為9×1 的過濾器組成,在輸入體積寬度為9、高度為1 的范圍內(nèi)滑動,計算它們的權(quán)重與它們在輸入體積中連接的9×1 小區(qū)域之間的點積。這將生成16 個激活圖,提供相應(yīng)的過濾器在每個空間位置的響應(yīng),每個特征圖捕獲不同的低級特征。隨后使用SE 注意力機制模塊,該模塊中壓縮方法為使用2 層一維卷積神經(jīng)網(wǎng)絡(luò),每一層卷積神經(jīng)網(wǎng)絡(luò)都是由16 個大小為3×1 的過濾器組成。進行著同第一層一維卷積神經(jīng)網(wǎng)絡(luò)一樣的特征提取操作,然后再通過全局平均池化層進行降維,通過兩層全連接網(wǎng)絡(luò),激活函數(shù)分別為ReLU 和sigmoid 進行激發(fā),得到每個通道的激活值并將特征恢復(fù)到原維度,最后用Scale 方法得到每個通道的權(quán)重系數(shù)。
在先前對PPG 信號進行特征提取和通道關(guān)注后,使用TCN 模型對信號再次進行處理,TCN 模型中第一個殘差模塊由兩個一維膨脹卷積網(wǎng)絡(luò)構(gòu)成,每個膨脹卷積網(wǎng)絡(luò)的卷積數(shù)量為16,卷積核大小為3×1,空洞數(shù)為1,在每次卷積計算后都分別使用BN層,ReLU 激活函數(shù)和dropout 層對數(shù)據(jù)進行進一步處理,最后通過將原始輸入數(shù)據(jù)和輸出數(shù)據(jù)進行特征融合的方式,使得模型可以實現(xiàn)跨層傳遞信息。第二個和第三個殘差模塊功能同第一個殘差塊,只是將卷積核的數(shù)量變?yōu)?2 和64,空洞數(shù)變?yōu)? 和4,這樣一來TCN 模型就可以在卷積核大小不變的情況下,有效增大卷積核的感受野,讓模型能更加全面地關(guān)注PPG 信號內(nèi)的有效信息。
TCN-SE 神經(jīng)網(wǎng)絡(luò)模型的損失函數(shù)是均方誤差(MSE),是處理回歸問題的常用損失函數(shù),公式為:
利用訓(xùn)練集對所構(gòu)建的模型進行訓(xùn)練,其中訓(xùn)練的具體方法采用的是Adam 梯度下降方法,批量大小為100,訓(xùn)練輪數(shù)為500,訓(xùn)練過程中,如果該輪驗證數(shù)據(jù)的損失值較之前的損失值有降低的趨勢,則保存當(dāng)輪的模型參數(shù),直至訓(xùn)練完畢。相比于傳統(tǒng)的梯度下降算法,Adam 方法參數(shù)的更新不受梯度的伸縮變換影響,可以自動調(diào)整學(xué)習(xí)率,計算更加高效,適合應(yīng)用于大規(guī)模的數(shù)據(jù)及參數(shù)場景。
本實驗是基于Keras 深度學(xué)習(xí)框架,利用Pycharm 進行神經(jīng)網(wǎng)絡(luò)模型的構(gòu)建和訓(xùn)練,使用的處理器為Intel(R)Core(TM)i5-9300H CPU@2.40 GHz,并以美國醫(yī)療儀器促進協(xié)會(AAMI)MAE <5 mmHg,STD<8 mmHg 為測試標(biāo)準(zhǔn)。
本文提出的神經(jīng)網(wǎng)絡(luò)模型在加州大學(xué)歐文分校(UCI)機器學(xué)習(xí)知識庫數(shù)據(jù)集上進行測試,該數(shù)據(jù)集來源于公共可用的最大數(shù)據(jù)庫“重癥監(jiān)護中的多參數(shù)智能監(jiān)測(MIMIC-II)”,該數(shù)據(jù)庫擁有重癥監(jiān)護病房(ICU)患者的多參數(shù)同步記錄,包括生理信號和生理參數(shù)。我們提取10 000 名受試者的光容積描記儀(PPG)的記錄,對PPG 信號進行預(yù)處理,去除持續(xù)時間不足的數(shù)據(jù),該數(shù)據(jù)集減少約83%。然后進行數(shù)據(jù)分割,取重疊75%的8 s 窗口作為一個樣本,并以4 的比例因子進行下采樣,能夠捕獲現(xiàn)有研究中觀察到的有用的心臟活動信息。我們將分割好的數(shù)據(jù)集進行下采樣,按照9 ∶1 的比例分為訓(xùn)練集和驗證集,PPG 信號如圖7 所示。
圖7 下采樣后的PPG 信號
本文采取的是在TCN 神經(jīng)網(wǎng)絡(luò)中加入SE 注意力機制模塊,讓該模型可以更好地關(guān)注PPG 信號里面的細微特征,達到精準(zhǔn)區(qū)分血壓的目標(biāo),并對收縮壓和舒張壓進行準(zhǔn)確預(yù)測。整體流程如下。
步驟1 將已經(jīng)分割好的公開數(shù)據(jù)集作為原始PPG 信號進行模型訓(xùn)練。
步驟2 將原始PPG 信號劃分為訓(xùn)練集和驗證集。
步驟3 針對已經(jīng)處理好的PPG 信號構(gòu)建TCN-SE 神經(jīng)網(wǎng)絡(luò),神經(jīng)網(wǎng)絡(luò)模型的損失函數(shù)是均方差損失函數(shù)(MSE)。
步驟4 利用訓(xùn)練集對所構(gòu)建的神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,原始PPG 信號經(jīng)過一次一維卷積層進行特征提取后,再到步驟3 中所構(gòu)建的神經(jīng)網(wǎng)絡(luò)模型中進行訓(xùn)練,其中訓(xùn)練的具體方法采用的是Adam 梯度下降方法,批量大小為100,迭代次數(shù)為500,訓(xùn)練完成后保持該模型參數(shù)不變。
步驟5 利用驗證集,對訓(xùn)練好的模型進行測試,最后得到我們所構(gòu)建的神經(jīng)網(wǎng)絡(luò),預(yù)測血壓的均方誤差loss 的最低值,以及均方誤差loss 的仿真圖,圖8 表示以均方誤差損失函數(shù)作為loss,得到訓(xùn)練集和驗證集的loss 結(jié)果??梢钥吹皆谟?xùn)練到221 輪時驗證集loss 達到最低值,后續(xù)訓(xùn)練雖然有波動,但是驗證集的loss 不會再下降。
圖8 訓(xùn)練集和驗證集loss 結(jié)果
步驟6 模型驗證:
本文提出模型的初衷是設(shè)計一種高效而輕量級的模型,可以部署在資源受限的平臺(如藍牙耳機,智能手表等)[12],以實現(xiàn)長期監(jiān)控。因此,TCN-SE模型能夠同時估計來自同一網(wǎng)絡(luò)的兩個參數(shù):收縮壓(SBP)和舒張壓(DBP),不需要對每個參數(shù)分別建立單獨的模型。這將有助于減少實時分析的時間和計算復(fù)雜度。相比于現(xiàn)有方法,模型深度更深,回歸擬合更好,預(yù)測更準(zhǔn)確。
我們使用200 個樣本進行SBP 和DBP 的預(yù)測并與參考值進行對比,以便更好地可視化性能。如圖9 和圖10 所示。
圖9 200 個樣本DBP 預(yù)測值和參考值對比
圖10 200 個樣本SBP 預(yù)測值和參考值對比
基于19 946 個測試樣本的參考值和預(yù)測值畫出模型數(shù)據(jù)相關(guān)性散點圖,如圖11 所示,測得SBP和DBP 的相關(guān)系數(shù)分別為0.939 4 和0.899 2,高度相關(guān)。
圖11 數(shù)據(jù)散點圖
將本文提出的基于SE 注意力機制模塊的TCN神經(jīng)網(wǎng)絡(luò)與現(xiàn)有的方法進行比較。表1 為本方法與現(xiàn)有算法數(shù)據(jù)對比,表中大部分方法是收縮壓和舒張壓進行單獨預(yù)測訓(xùn)練,從而開發(fā)出獨立的收縮壓和舒張壓預(yù)測模型,在血壓估計階段實現(xiàn)單獨預(yù)測。
表1 所提方法與現(xiàn)有方法性能對比
在這些現(xiàn)有研究中,多數(shù)涉及到特征選擇和特征提取,這樣不僅增加復(fù)雜性,也使模型訓(xùn)練精度下降,本文提出的模型不涉及任何特征選擇步驟,并且該模型可以同時進行收縮壓和舒張壓的預(yù)測,不僅降低復(fù)雜度,在訓(xùn)練精度和速度上也有一定的提升,通過對平均絕對誤差(MAE)和標(biāo)準(zhǔn)差(SD)的對比,可以看出本文提出的模型相比于現(xiàn)有模型提高了血壓預(yù)測的準(zhǔn)確率和可靠性。
在進行血壓預(yù)測的過程中,由于PPG 信號中包含太多冗余信息,導(dǎo)致現(xiàn)有模型不能很好地收集到PPG 信號中有用的信息,這也是該技術(shù)目前面臨的最大障礙。因此,提出一種新型連續(xù)血壓估計的注意力機制模型,采用新型深度學(xué)習(xí)模型和注意力機制模塊,該模型因為含有SE 注意力機制模塊,使得模型可以摒棄一些雜質(zhì)信息,更好地關(guān)注PPG 信號內(nèi)的細微特征,并且由于殘差模塊和膨脹卷積的存在,不僅可以有效地解決梯度消失問題,在防止模型過擬合的同時,增加模型的感受野。最后通過全連接層進行處理得到收縮壓和舒張壓的預(yù)測值。最后通過公開數(shù)據(jù)集中的數(shù)據(jù)對該模型進行測試,并與現(xiàn)有方法進行對比,證明本文所提出方法的有效性。為血壓值測量領(lǐng)域發(fā)展提供一定的技術(shù)支撐,具有廣闊的發(fā)展空間。但文中提出的TCN-SE 模型對于收縮壓的預(yù)測精度還有提升空間,今后工作會對信號預(yù)處理進行改進,繼續(xù)減少輸入數(shù)據(jù)噪音對實驗結(jié)果的影響,使該神經(jīng)網(wǎng)絡(luò)模型能夠在復(fù)雜多變的環(huán)境下表現(xiàn)出良好的性能。