国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

嵌入改進(jìn)SENet的卷積神經(jīng)網(wǎng)絡(luò)連續(xù)血壓預(yù)測

2021-04-12 05:18:32陳曉雷張愛華林冬梅
計算機(jī)工程與應(yīng)用 2021年7期

常 昊,陳曉雷,張愛華,李 策,林冬梅

1.蘭州理工大學(xué) 電氣工程與信息工程學(xué)院,蘭州 730050

2.蘭州理工大學(xué) 甘肅省工業(yè)過程先進(jìn)控制重點(diǎn)實(shí)驗室,蘭州 730050

3.蘭州理工大學(xué) 電氣與控制工程國家級實(shí)驗教學(xué)示范中心,蘭州 730050

近年來的統(tǒng)計數(shù)據(jù)表明,心血管疾?。–ardiovascular Disease,CVD)是危害全球公共健康的“第一殺手”,其致死率遠(yuǎn)超腫瘤和慢性呼吸系統(tǒng)疾病[1]。2016年,中國成人高血壓發(fā)病率大約為25.2%并且逐年上漲,此外心血管疾病有低齡化的趨勢。

血壓波形中包含心血管系統(tǒng)的豐富信息,可以反映心臟收縮力、血管彈性與阻力、全身血容量及血液物理狀態(tài)等屬性,因此如果能夠獲取一段時間內(nèi)的血壓特征或一段時間內(nèi)的血壓變化趨勢,就可以得到更豐富的生理信息,從而對心血管疾病進(jìn)行有效的預(yù)防及治療。目前最準(zhǔn)確的血壓測量方法是導(dǎo)管穿刺法,但是這種方法屬于有創(chuàng)測量,容易造成出血、感染等一系列風(fēng)險。事實(shí)上,血壓信號可以由脈搏信號預(yù)測得出,并且脈搏信號可以采用無創(chuàng)方式進(jìn)行測量,因此利用脈搏信號進(jìn)行血壓預(yù)測具有重要的研究意義。

近年來,國內(nèi)外研究人員提出了一些血壓預(yù)測方法。方杰等[2]提出一種基于小波分析與BP 神經(jīng)網(wǎng)絡(luò)相組合的預(yù)測模型;王月猛等[3]利用Elman 神經(jīng)網(wǎng)絡(luò)的時間記憶特性,建立了連續(xù)血壓模型,最終完成連續(xù)血壓測量;張佳骕等[4]提出一種新型卷積遞歸神經(jīng)網(wǎng)絡(luò)血壓模型,該模型首先使用卷積神經(jīng)網(wǎng)絡(luò)層自動提取脈搏波的波形特征,然后使用遞歸網(wǎng)絡(luò)層依據(jù)連續(xù)心動周期血壓變化關(guān)系對波形特征進(jìn)行校正,最后使用全連接網(wǎng)絡(luò)層預(yù)測出當(dāng)前的血壓值;Su等[5]提出了一種由多層長短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)構(gòu)成的新型深度遞歸神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)能顯著提高血壓的長期預(yù)測精度。然而,上述方法大多用于逐點(diǎn)血壓預(yù)測,速度欠佳,在對整個血壓序列進(jìn)行預(yù)測時,精度不足。為克服現(xiàn)有方法的不足,本文在課題組已有工作[6-8]基礎(chǔ)上,提出基于改進(jìn)SENet卷積神經(jīng)網(wǎng)絡(luò)和自學(xué)習(xí)參數(shù)濾波器的連續(xù)血壓預(yù)測方法。實(shí)驗結(jié)果表明,利用本文方法由脈搏波形預(yù)測血壓波形的預(yù)測精度更高,預(yù)測速度更快,預(yù)測出的血壓波形更平滑。

1 嵌入改進(jìn)SENet的卷積神經(jīng)網(wǎng)絡(luò)

1.1 原始SENet

SENet(Sequeeze-and-Excitation Network)[9]由Momenta公司在CVPR2017會議上提出,并贏得了ImageNet 2017的圖像識別冠軍。

SENet最初的目標(biāo)是用于學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)中不同channels 的feature map權(quán)重,這種結(jié)構(gòu)可以建模通道之間的相互依賴關(guān)系,捕捉空間相關(guān)性,從而提高網(wǎng)絡(luò)的表示能力,在計算機(jī)視覺領(lǐng)域獲得了極好的效果[10-11],其原始結(jié)構(gòu)如圖1所示。

圖1 原始SENet結(jié)構(gòu)

SENet可以大幅提升CNN性能,該模塊自動學(xué)習(xí)每一個特征通道的重要程度,能夠提取與任務(wù)相關(guān)的特征并抑制與任務(wù)無關(guān)的特征。SENet 對于運(yùn)算后維度為C×W×H(c為通道數(shù)目,W、H為特征圖的長和寬)的特征矩陣U進(jìn)行以下兩步處理。

(1)對U進(jìn)行一個Squeeze 操作,即將每個W×H的矩陣映射成一個1×1的通道描述符,如式(1)所示:

(2)對U執(zhí)行excitation操作,通過linear層為每個通道學(xué)習(xí)特定采樣的激活,并經(jīng)過一個sigmoid 函數(shù)得到每個通道不同的激活權(quán)重,在將權(quán)重作用到每個通道上。

1.2 改進(jìn)SENet

原始SENet 內(nèi)部通道建模過程如圖2 所示,原始SENet 將卷積層每個通道的描述符作為全連接層的輸入。這種結(jié)構(gòu)對時序數(shù)據(jù)適應(yīng)性不夠良好,不能根據(jù)數(shù)據(jù)的時間依賴關(guān)系進(jìn)行建模,因此不適合由時序脈搏信號預(yù)測血壓。

圖2 原始SENet內(nèi)部通道建模過程

本文針對脈搏-血壓數(shù)據(jù)時序特征,對原始SENet內(nèi)部通道建模過程進(jìn)行了改進(jìn),即將原始SENet的內(nèi)部通道依賴關(guān)系由Linear 層改為可以利用時序數(shù)據(jù)的GRU[12-13]層,如圖3 所示。改進(jìn)后的SENet 將卷積層每個通道的描述符輸入到GRU中,使得GRU輸出的權(quán)重可以加權(quán)到每個通道上,從而使卷積神經(jīng)網(wǎng)絡(luò)擁有利用時序信息的能力。

圖3 改進(jìn)的SENet內(nèi)部通道建模過程

1.3 基于改進(jìn)SENet的卷積神經(jīng)網(wǎng)絡(luò)

以改進(jìn)SENet 為基礎(chǔ),本文提出了如圖4 所示的基于改進(jìn)SENet的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。

圖4 基于改進(jìn)SENet的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

其工作流程如下:

底層架構(gòu)為卷積神經(jīng)網(wǎng)絡(luò),輸入一維的脈搏序列,利用卷積神經(jīng)網(wǎng)絡(luò)提取出脈搏中的特征,每進(jìn)行一層卷積運(yùn)算都會增加通道數(shù)并且縮小特征尺寸。例如輸入為200 時間步的脈搏序列:經(jīng)過第一層卷積通道數(shù)為80,輸出特征長度為100;經(jīng)過第二層卷積通道數(shù)變?yōu)?00,輸出特征長度變?yōu)?0;依次類推,最后輸出通道為200,特征長度為1(用linear 層調(diào)整),此時輸出維度為(batch,200,1),每個通道剛好對應(yīng)預(yù)測血壓每一個時間步長的值。

與此同時,每層卷積之間加入改進(jìn)的SENet對通道之間依賴關(guān)系進(jìn)行建模,改進(jìn)的SENet將每個通道池化成通道描述符(將通道所有值池化成一個特征值)后,將每個通道的描述符當(dāng)作時序數(shù)據(jù)輸入到GRU 網(wǎng)絡(luò)中,GRU 的長度即為通道個數(shù),如圖3 所示。GRU 每個時間步的輸出代表每個通道的權(quán)重,以此加權(quán)到卷積輸出的每個通道上,從而使卷積神經(jīng)網(wǎng)絡(luò)可以利用脈搏的時序信息。

1.4 改進(jìn)SENet的卷積神經(jīng)網(wǎng)絡(luò)計算復(fù)雜度

由于經(jīng)典SENet 卷積神經(jīng)網(wǎng)絡(luò)和改進(jìn)SENet 卷積神經(jīng)網(wǎng)絡(luò)的計算復(fù)雜度區(qū)別僅在于兩個內(nèi)嵌模塊之間的不同,與卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)無關(guān),所以本文通過比較兩種網(wǎng)絡(luò)內(nèi)嵌模塊的計算復(fù)雜度來研究改進(jìn)SENet卷積神經(jīng)網(wǎng)絡(luò)的計算復(fù)雜度。

經(jīng)典SENet當(dāng)隱藏層為40時,內(nèi)嵌模塊Linear層的參數(shù)約為16 000 個。改進(jìn)SENet 內(nèi)嵌模塊包含一個GRU 和一個全連接層,GRU 的輸入為尺寸為1 的通道信息,經(jīng)過多次實(shí)驗,輸出維度在本文實(shí)驗中設(shè)置為40。GRU 參數(shù)計算公式為(input_size+1)×hidden_size×3+hidden_size×3×(hidden_size+1),所以參數(shù)數(shù)目為(1+1)×40×3+40×3×41=5 160 個,加上全連接參數(shù)40×1=40,改進(jìn)SENet 內(nèi)嵌模塊共有5 200 個參數(shù)。因此改進(jìn)SENet 比經(jīng)典SENet 具有更小的空間復(fù)雜度,當(dāng)序列較短時,改進(jìn)SENet 比經(jīng)典SENet 計算復(fù)雜度低。但是,由于GRU 為串行計算,所以當(dāng)序列過長時,改進(jìn)SENet的計算復(fù)雜度比經(jīng)典SENet 更高。因此,本文提出的改進(jìn)SENet 卷積神經(jīng)網(wǎng)絡(luò)適用于中小型長度的時序信號預(yù)測,對超長時序信號的預(yù)測,其時間消耗可能會變大。

2 自學(xué)習(xí)參數(shù)濾波器

本文經(jīng)過實(shí)驗發(fā)現(xiàn),單純依賴改進(jìn)SENet預(yù)測得到的血壓波形包含較多毛刺,需要使用濾波器進(jìn)行平滑處理,但是常見濾波器如高斯濾波,均值濾波等濾波器參數(shù)固定,毛刺消除能力有限。為此本文提出了一種使用神經(jīng)網(wǎng)絡(luò)優(yōu)化的自學(xué)習(xí)參數(shù)濾波器,其結(jié)構(gòu)如圖5 所示,由參數(shù)層、濾波器核及卷積層構(gòu)成。參數(shù)層內(nèi)部為一串隨機(jī)初始值,卷積層的參數(shù)由該初始值經(jīng)過神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)而得到。

其工作流程為:

步驟1先隨機(jī)初始化一個與卷積層尺寸相同的變量作為參數(shù)。

圖5 自學(xué)習(xí)參數(shù)濾波器結(jié)構(gòu)

步驟2該參數(shù)經(jīng)過linear 層學(xué)習(xí),得到一個濾波器核。

步驟3將這個濾波器核應(yīng)用到卷積層的參數(shù)中,利用卷積層的損失反向傳播更新參數(shù)。

加入這種結(jié)構(gòu),可以使卷積神經(jīng)網(wǎng)絡(luò)得到的波形更加平滑。此外,自學(xué)習(xí)參數(shù)濾波器模塊包含三個全連接層和一個卷積層,其中卷積層不參與學(xué)習(xí),只有卷積層的參數(shù)參與學(xué)習(xí),共有大約52個可學(xué)習(xí)參數(shù)(7×3+3+3×7+7),屬于極輕量級模塊。實(shí)驗表明:不加入自學(xué)習(xí)參數(shù)的訓(xùn)練時間平均為0.654 s 每個epoch,加入自學(xué)習(xí)參數(shù)的訓(xùn)練時間平均為0.656 s 每個epoch,加入該模塊比不加入該模塊的計算延遲大約在0.3%左右。在連續(xù)血壓預(yù)測中,由于不需要訓(xùn)練網(wǎng)絡(luò),沒有反向傳播過程,所以輸出信號延遲更可以忽略不計。本文將使用所提出的自學(xué)習(xí)參數(shù)濾波器對改進(jìn)SENet 得到的連續(xù)血壓預(yù)測波形進(jìn)行毛刺消除。

3 基于改進(jìn)SENet卷積神經(jīng)網(wǎng)絡(luò)和自學(xué)習(xí)參數(shù)濾波器的連續(xù)血壓預(yù)測方法

在前文所述工作基礎(chǔ)上,本文提出了基于改進(jìn)SENet 卷積神經(jīng)網(wǎng)絡(luò)和自學(xué)習(xí)參數(shù)濾波器的連續(xù)血壓預(yù)測方法,如圖6所示。

圖6 基于改進(jìn)SENet卷積神經(jīng)網(wǎng)絡(luò)和自學(xué)習(xí)參數(shù)濾波器的連續(xù)血壓預(yù)測方法

其工作步驟如下:

步驟1將光電脈搏序列變換為(batch,seq_len,1)的矩陣作為輸入。

步驟2建立卷積神經(jīng)網(wǎng)絡(luò)模型,在卷積神經(jīng)網(wǎng)絡(luò)之間加入改進(jìn)的SENet模塊。

步驟3光電脈搏訓(xùn)練數(shù)據(jù)輸入到網(wǎng)絡(luò)中得到預(yù)測的連續(xù)血壓序列。

步驟4將獲得的連續(xù)血壓序列通過自學(xué)習(xí)參數(shù)濾波器進(jìn)行毛刺消除。

步驟5毛刺消除后的結(jié)果與真實(shí)連續(xù)血壓序列計算loss,反向傳播不斷迭代更新網(wǎng)絡(luò)參數(shù),直到獲得最佳網(wǎng)絡(luò)參數(shù)。

4 實(shí)驗結(jié)果與分析

4.1 實(shí)驗數(shù)據(jù)

本文實(shí)驗數(shù)據(jù)來自于PhysioNet MIMIC 數(shù)據(jù)庫的光電容積脈搏以及對應(yīng)的有創(chuàng)血壓數(shù)據(jù),約2 000 個左右,每個數(shù)據(jù)包含200 個采樣點(diǎn)(大約為一個周期的脈搏信號)。數(shù)據(jù)維度為(batch,1,200)。使用minmax 將數(shù)據(jù)歸一化到[0,1]之間以加快網(wǎng)絡(luò)收斂速度,使用Adam優(yōu)化器,訓(xùn)練時如果loss值連續(xù)幾個epoch不下降則將學(xué)習(xí)率降低為之前的10%,模型采用pytorch 框架編寫。

4.2 不同方法下的預(yù)測結(jié)果

本文對簡單卷積神經(jīng)網(wǎng)絡(luò)、原始SENet卷積神經(jīng)網(wǎng)絡(luò)和改進(jìn)的SENet 卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行了對比實(shí)驗。如圖7~9為不同卷積層數(shù)下3種方法的測試損失曲線及預(yù)測精度曲線圖。

如圖7 為兩層卷積實(shí)驗結(jié)果,通道數(shù)設(shè)置為80,200。由實(shí)驗結(jié)果可見:原始SENet 卷積預(yù)測精度比簡單卷積神經(jīng)網(wǎng)絡(luò)顯著提高,改進(jìn)的SENet 的精度低于原始SENet。

圖7 兩層卷積神經(jīng)網(wǎng)絡(luò)預(yù)測損失

如圖8為三層卷積實(shí)驗結(jié)果,通道數(shù)設(shè)置為80、150、200。由實(shí)驗結(jié)果可見:改進(jìn)的SENet精度比原始SENet精度提升了5%。

圖8 三層卷積神經(jīng)網(wǎng)絡(luò)預(yù)測損失

圖9為四層卷積實(shí)驗結(jié)果,通道數(shù)為80、100、150、200。由實(shí)驗結(jié)果可見:改進(jìn)的SENet精度比原始SENet精度提升了3.8%。

圖9 四層卷積神經(jīng)網(wǎng)絡(luò)測試損失

由圖7~9可以看出:加入SENet模塊之后,模型loss顯著降低,并且隨著卷積層數(shù)的增加,改進(jìn)的SENet 性能逐漸優(yōu)于原始的SENet。

如圖10~12為卷積神經(jīng)網(wǎng)絡(luò)為四層時,分別使用簡單卷積神經(jīng)網(wǎng)絡(luò)、原始SENet 卷積神經(jīng)網(wǎng)絡(luò)、改進(jìn)的SENet卷積神經(jīng)網(wǎng)絡(luò)預(yù)測得到的連續(xù)血壓波形。

圖10 簡單卷積神經(jīng)網(wǎng)絡(luò)連續(xù)血壓預(yù)測波形

圖11 原始SENet卷積神經(jīng)網(wǎng)絡(luò)連續(xù)血壓預(yù)測波形

圖12 改進(jìn)SENet卷積神經(jīng)網(wǎng)絡(luò)連續(xù)血壓預(yù)測波形

從圖10~12 可以看出:使用改進(jìn)的SENet 卷積神經(jīng)網(wǎng)絡(luò)預(yù)測得到的連續(xù)血壓波形曲線擬合程度要優(yōu)于原始SENet卷積神經(jīng)網(wǎng)絡(luò)。

4.3 自學(xué)習(xí)參數(shù)濾波器處理結(jié)果

圖12所示連續(xù)血壓預(yù)測波形有較多毛刺,為此本文使用所提出的自學(xué)習(xí)參數(shù)濾波器對波形做進(jìn)一步平滑。

當(dāng)卷積層為四層,自學(xué)習(xí)參數(shù)濾波器核長度分別為7、9、11 時分別進(jìn)行平滑,得到的損失曲線如圖13 所示。從圖13 可以看出在濾波器核長度為7 時得到了最好的效果。

圖13 不同Kernel length下的測試損失

經(jīng)過自學(xué)習(xí)參數(shù)濾波器平滑后預(yù)測連續(xù)血壓如圖14 所示。對比圖12,可以看出波形中的大部分毛刺被濾除,波形更加平滑。

圖14 自學(xué)習(xí)參數(shù)濾波器連續(xù)血壓預(yù)測波形

4.4 本文方法與其他方法的比較

比較本文方法與其他方法的性能,實(shí)驗結(jié)果如表1所示。

表1 本文方法與其他方法的比較

表中Normal conv代表簡單卷積神經(jīng)網(wǎng)絡(luò),括號內(nèi)為卷積層數(shù);SENet conv表示嵌入SENet的卷積神經(jīng)網(wǎng)絡(luò);GRU SENet conv 為嵌入改進(jìn)SENet 的卷積神經(jīng)網(wǎng)絡(luò);Self params kernel表示嵌入改進(jìn)SEnet的卷積神經(jīng)網(wǎng)絡(luò)加入自學(xué)習(xí)參數(shù)濾波器。

由表1可見,使用卷積結(jié)構(gòu)后預(yù)測精度整體上比未使用卷積結(jié)構(gòu)的BP 神經(jīng)網(wǎng)絡(luò)及文獻(xiàn)[2]方法有大幅提高,本文提出的改進(jìn)SENet卷積神經(jīng)網(wǎng)絡(luò)在卷積層數(shù)為二層、三層和四層時比簡單卷積神經(jīng)網(wǎng)絡(luò)預(yù)測精度提升了34.8%、23.5%和36.0%,在三層、四層時比原始SENet 卷積神經(jīng)網(wǎng)絡(luò)預(yù)測精度提升了5.1%、12.6%。并且在加入自學(xué)習(xí)參數(shù)的方法之后,對波形的平滑性有很大的提升。

5 結(jié)論

本文提出了基于改進(jìn)SENet 卷積神經(jīng)網(wǎng)絡(luò)和自學(xué)習(xí)參數(shù)濾波器的連續(xù)血壓預(yù)測方法。實(shí)驗結(jié)果表明,改進(jìn)SENet 可以比簡單卷積神經(jīng)網(wǎng)絡(luò)更好地對脈搏數(shù)據(jù)的時間依賴關(guān)系進(jìn)行建模,自學(xué)習(xí)參數(shù)濾波器可以更加有效地消除預(yù)測波形中的毛刺,這兩種方法的有機(jī)結(jié)合使本文方法可以更精確地由脈搏波形預(yù)測血壓波形。此外,改進(jìn)SENet卷積神經(jīng)網(wǎng)絡(luò)也可應(yīng)用于天氣、股票、運(yùn)動軌跡等一維連續(xù)時序信號的預(yù)測問題。下一步工作將研究如何將自注意力[14]機(jī)制應(yīng)用到連續(xù)血壓預(yù)測上,并且通過稀疏化[15,16]手段對其進(jìn)行改進(jìn),在確保預(yù)測精度的同時減少預(yù)測方法的運(yùn)算量。

涿鹿县| 庆城县| 平利县| 安吉县| 普格县| 马关县| 封丘县| 毕节市| 武平县| 安福县| 娄烦县| 玛曲县| 鹿邑县| 左云县| 汉源县| 溧阳市| 临桂县| 天峻县| 崇明县| 高陵县| 兴仁县| 红原县| 西畴县| 连平县| 云浮市| 广丰县| 若尔盖县| 湾仔区| 丰宁| 清苑县| 彩票| 冷水江市| 太仓市| 万盛区| 曲阜市| 泾川县| 利川市| 蒙阴县| 临洮县| 富锦市| 驻马店市|