滕建麗 容芷君 許 瑩 但斌斌
1(武漢科技大學(xué)機(jī)械自動(dòng)化學(xué)院 湖北 武漢 430081) 2(武漢市第五醫(yī)院 湖北 武漢 430050)
據(jù)最新流行病學(xué)調(diào)查數(shù)據(jù),我國(guó)糖尿病患病率高達(dá)10.9%,血糖達(dá)標(biāo)患者僅為49.2%[1]?!叭斯ひ认佟?Artificial Pancreas,AP)是一種替代胰腺內(nèi)分泌功能從而把血糖控制在生理范圍以內(nèi)的電子機(jī)械裝置,有望成為強(qiáng)化血糖控制的新方案[2]。近年來,連續(xù)血糖監(jiān)測(cè)技術(shù)(Continues Glucose Monitoring,CGM)的逐步成熟極大地推動(dòng)了“人工胰腺”的發(fā)展,但是由于血糖濃度時(shí)間序列具有時(shí)變性、非線性和非穩(wěn)定性等特點(diǎn)[3],嚴(yán)重影響了血糖預(yù)測(cè)精度,制約了“人工胰腺”的閉環(huán)控制性能。
血糖預(yù)測(cè)模型主要分為兩大類:基于生理模型的血糖預(yù)測(cè)和基于數(shù)據(jù)驅(qū)動(dòng)的血糖預(yù)測(cè)。生理模型一般較為復(fù)雜,使用過程涉及大量參數(shù),而人體血糖是一個(gè)動(dòng)態(tài)調(diào)節(jié)過程,易受各種因素的干擾,這導(dǎo)致建模過程中個(gè)性化的參數(shù)識(shí)別過程困難[4],同時(shí)預(yù)測(cè)精度較低。隨著傳感器技術(shù)的發(fā)展,研究人員利用各種傳感器獲得的血糖及其他數(shù)據(jù)指標(biāo),構(gòu)建了基于數(shù)據(jù)驅(qū)動(dòng)的血糖預(yù)測(cè)模型。Zecchin等[5]構(gòu)建了基于神經(jīng)網(wǎng)絡(luò)的血糖預(yù)測(cè)模型,并研究了不同輸入特征對(duì)預(yù)測(cè)精度的影響。結(jié)果表明,當(dāng)預(yù)測(cè)時(shí)間小于30分鐘時(shí),增加除CGM以外的特征對(duì)預(yù)測(cè)精度并無顯著影響。還有一些研究表明,胰島素和碳水化合物攝入量對(duì)于血糖預(yù)測(cè)模型來說是冗余特征,僅使用CGM數(shù)據(jù)作為輸入特征就已足夠[6]。此外,血糖預(yù)測(cè)模型主要應(yīng)用于“人工胰腺”,過多的輸入特征會(huì)給患者使用帶來不便。因此,目前很多基于數(shù)據(jù)驅(qū)動(dòng)的血糖預(yù)測(cè)模型研究都僅采用CGM數(shù)據(jù)作為模型輸入特征。王延年等[3]提出了一種自適應(yīng)噪聲的完整聚合經(jīng)驗(yàn)?zāi)B(tài)分解與極限學(xué)習(xí)機(jī)相結(jié)合的短期血糖預(yù)測(cè)模型,預(yù)測(cè)效果較好。Alia等[7]提出了一種基于人工神經(jīng)網(wǎng)絡(luò)的血糖預(yù)測(cè)方法,該方法相對(duì)于支持向量回歸、自回歸和極限學(xué)習(xí)機(jī)具有更好的預(yù)測(cè)效果。Hamdi等[8]采用支持向量回歸預(yù)測(cè)短期血糖,并采用差分進(jìn)化方法對(duì)其參數(shù)進(jìn)行優(yōu)化,取得了較好的預(yù)測(cè)效果。此外,還有一些學(xué)者運(yùn)用ARIMA、高斯混合模型、正規(guī)學(xué)習(xí)、增強(qiáng)學(xué)習(xí)、隨機(jī)森林、卡爾曼濾波等方法構(gòu)建了血糖預(yù)測(cè)模型。這些模型能在一定程度上實(shí)現(xiàn)短期血糖預(yù)測(cè),但是當(dāng)預(yù)測(cè)步長(zhǎng)(Prediction Horizon,PH)增大時(shí),預(yù)測(cè)效果就會(huì)大大降低,因此有必要對(duì)其進(jìn)行進(jìn)一步研究。
在時(shí)序建模方面,循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNN)相對(duì)于其他網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)勢(shì)更為突出,對(duì)于實(shí)值時(shí)序預(yù)測(cè)問題而言,循環(huán)神經(jīng)網(wǎng)絡(luò)建模類似于自回歸分析,但是它能構(gòu)建比傳統(tǒng)時(shí)間序列復(fù)雜的多的模型,基本RNN及其兩種變體—長(zhǎng)短記憶單元(Long-Short Term Memory,LSTM)和門控循環(huán)網(wǎng)絡(luò)(Gated Recurrent Unit,GRU)已在交通流量、客流量等時(shí)序預(yù)測(cè)問題上被證明比傳統(tǒng)的SVR、BP等方法具有更好的預(yù)測(cè)效果,當(dāng)預(yù)測(cè)步長(zhǎng)增加時(shí),其預(yù)測(cè)效果也要顯著優(yōu)于傳統(tǒng)方法[9-11]??紤]到血糖時(shí)間序列的非線性和復(fù)雜性,本文將門控循環(huán)單元網(wǎng)絡(luò)應(yīng)用于血糖預(yù)測(cè)領(lǐng)域,并進(jìn)行深入探討。
相較于傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò),循環(huán)神經(jīng)網(wǎng)絡(luò)可通過循環(huán)結(jié)構(gòu)傳遞信息,實(shí)現(xiàn)信息的持久化[11],因而可用于對(duì)文本語句、時(shí)間序列、生物信號(hào)序列等序列數(shù)據(jù)建模?;镜难h(huán)神經(jīng)網(wǎng)絡(luò)主要也可概括為輸入層、隱藏層和輸出層,與前饋型神經(jīng)網(wǎng)絡(luò)相比,循環(huán)神經(jīng)網(wǎng)絡(luò)在隱藏層采用自連接,如圖1(a)所示,其展開形式如圖1(b)所示。若輸入向量X=(x0,x1,…,xp-1)T,則時(shí)刻t各層的狀態(tài)為:
圖1 循環(huán)神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)
Ht=fhh(WhhHt-1+WxhXt)
(1)
Yt=fhy(WhyHt)
(2)
式中:fhh和fhy分別為隱藏層到隱藏層、隱藏層到輸出層的激活函數(shù),一般為Sigmoid函數(shù)或tanh函數(shù);Wxh、Whh和Why分別為輸入層和隱藏層、隱藏層和隱藏層、隱藏層和輸出層之間的連接權(quán)重矩陣。
基本RNN采用BPTT算法進(jìn)行參數(shù)調(diào)整,與訓(xùn)練深層前饋神經(jīng)網(wǎng)絡(luò)所遇問題相似,訓(xùn)練基本RNN的過程也存在梯度消失或梯度爆炸問題[12]。此外,基本循環(huán)神經(jīng)網(wǎng)絡(luò)無法實(shí)現(xiàn)長(zhǎng)期依賴,即它無法記憶時(shí)間步長(zhǎng)過長(zhǎng)的信息?;诖?,出現(xiàn)了基本RNN的兩種變體——LSTM和GRU網(wǎng)絡(luò),其變化示意圖如圖2所示。
圖2 網(wǎng)絡(luò)結(jié)構(gòu)變化示意圖
為了解決基本RNN網(wǎng)絡(luò)所存在的梯度消失、梯度爆炸,以及無法實(shí)現(xiàn)長(zhǎng)期依賴等問題,Hochreiter等[13]于1997年首次提出了長(zhǎng)短記憶單元(Long-Short Term Memory,LSTM),其良好的預(yù)測(cè)性能在多個(gè)領(lǐng)域得到了證實(shí)。LSTM是基本RNN的一種變體,它采用長(zhǎng)短記憶單元替代基本RNN隱藏層中的激活函數(shù),其結(jié)構(gòu)如圖3所示。除原始激活函數(shù)外,該記憶單元還包含由Sigmoid函數(shù)構(gòu)成的輸入門、遺忘門和輸出門,以及一系列的乘法和加法操作。輸入門控制新信息Xt合并到長(zhǎng)期記憶中,遺忘門控制過去單元狀態(tài)Ct-1的保留程度,輸入門和遺忘門共同決定著單元狀態(tài)(Ct)的更新,輸出門基于單元狀態(tài)Ct控制隱藏層Ht輸出。Sigmoid函數(shù)將上一時(shí)間點(diǎn)隱藏層信息和當(dāng)前輸入信息線性變換所得數(shù)據(jù)轉(zhuǎn)化為0~1之間數(shù)值輸出,一方面控制信息的記憶程度,另一方面也解決BP算法引起的梯度消失和梯度爆炸問題。
圖3 長(zhǎng)短記憶單元
LSTM由于其良好的預(yù)測(cè)性能被廣泛運(yùn)用于時(shí)間序列問題預(yù)測(cè),但是其復(fù)雜的內(nèi)部結(jié)構(gòu)也導(dǎo)致模型訓(xùn)練速度降低?;诖?,Cho等[14]于2014年提出了一種基于LSTM的變體——GRU網(wǎng)絡(luò)單元,如圖4所示。GRU網(wǎng)絡(luò)中并沒有明確的單元狀態(tài),它利用一個(gè)復(fù)位門實(shí)現(xiàn)了LSTM中遺忘門和輸入門的作用,利用更新門控制隱藏層狀態(tài)的更新,GRU的這種內(nèi)部結(jié)構(gòu)使得它一方面繼承了LSTM的優(yōu)勢(shì),另一方面又減少了模型訓(xùn)練所需參數(shù),從而降低了模型訓(xùn)練時(shí)間。
圖4 GRU單元
GRU隱藏層輸出計(jì)算過程如下:
Rt=σ(WrxXt+WrhHt-1)
(3)
Zt=σ(WzxXt+WzhHt-1)
(4)
(5)
(6)
本文數(shù)據(jù)來源于武漢市某三甲醫(yī)院的美奇連續(xù)血糖監(jiān)測(cè)儀,該監(jiān)測(cè)儀每3分鐘測(cè)得一次血糖數(shù)據(jù),可獲得連續(xù)的血糖監(jiān)測(cè)數(shù)據(jù)。本文選取20位糖尿病患者數(shù)據(jù)。圖5是某患者連續(xù)5日血糖變化曲線。
圖5 某患者連續(xù)5日血糖變化曲線
本文對(duì)血糖數(shù)據(jù)的預(yù)處理主要有:1)平穩(wěn)性檢驗(yàn)。首先對(duì)每位患者的原始序列數(shù)據(jù)進(jìn)行單位根檢驗(yàn),判斷其平穩(wěn)性。若平穩(wěn),則對(duì)原始數(shù)據(jù)不作處理;若非平穩(wěn),則進(jìn)行差分處理。2)數(shù)據(jù)歸一化。為了更好地訓(xùn)練模型,采用最值歸一化方法對(duì)差分后數(shù)據(jù)縮放到(0,1)區(qū)間內(nèi)。3)數(shù)據(jù)集的轉(zhuǎn)換。本文的時(shí)間序列數(shù)據(jù)無法直接應(yīng)用于模型,須按時(shí)間順序?qū)⑵滢D(zhuǎn)換成由輸入X和輸出Y組成的監(jiān)督型數(shù)據(jù)樣本。4)數(shù)據(jù)集的劃分。本文將經(jīng)前三步處理所得的每位患者的監(jiān)督型樣本數(shù)據(jù)隨機(jī)劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集,其所占比例分別為70%、20%和10%。
本文采用深度學(xué)習(xí)框架Keras中的Sequential模型,利用add函數(shù)添加各網(wǎng)絡(luò)層。
1)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)置。經(jīng)多次試驗(yàn),構(gòu)建單層GRU網(wǎng)絡(luò),輸出維度為5,添加全連接層連接隱藏層與輸出層,全連接層激活函數(shù)為L(zhǎng)inear。
2)模型參數(shù)設(shè)置。對(duì)于循環(huán)神經(jīng)網(wǎng)絡(luò)而言,網(wǎng)絡(luò)的輸入序列長(zhǎng)度T是一個(gè)很重要的參數(shù),它不僅決定了RNN的深度,也影響著預(yù)測(cè)結(jié)果的精度?;诖?,本文首先根據(jù)式(7)計(jì)算時(shí)間序列的自相關(guān)系數(shù)。取自相關(guān)系數(shù)約等于0.5時(shí)的時(shí)間延遲τ,令N=τ,取時(shí)間序列T分別等于{N-20,N-15,N-10,N-5,N,N+5,N+10,N+15,N+20},進(jìn)行單變量控制試驗(yàn),取預(yù)測(cè)步長(zhǎng)為20時(shí)均方根誤差最小的為最終輸入序列長(zhǎng)度T。
(7)
式中:τ為時(shí)間延遲;ut、ut+τ為均值;σt、σt+τ為標(biāo)準(zhǔn)差;E為期望;R(t,t+τ)為自相關(guān)系數(shù)。
此外,本文選擇絕對(duì)值均差MAE作為損失函數(shù),均方根反向傳播(RMSProp)作為優(yōu)化器。每次訓(xùn)練所含樣本數(shù)為32,訓(xùn)練輪數(shù)為200次,為防止模型在訓(xùn)練集上準(zhǔn)確率下降,添加EarlyStopping操作,若連續(xù)5次迭代過程不發(fā)生變化,則停止訓(xùn)練。
為了量化模型預(yù)測(cè)性能,本文分別選取均方根誤差(Root Mean Square Error,RMSE)、平均絕對(duì)百分誤差(Mean Absolute Percentage Error,MAPE)和克拉克誤差網(wǎng)格分析法(Clarke Error Grid Analysis,EGA)作為模型預(yù)測(cè)性能評(píng)價(jià)指標(biāo)??死苏`差網(wǎng)格分析是為了評(píng)估患者的測(cè)量血糖值和參考血糖的臨床精確度而于1987年開發(fā)的分析方法[15]。目前它已成為評(píng)估血糖預(yù)測(cè)算法精度的一種常用方法,該方法可以評(píng)估血糖實(shí)際水平和預(yù)測(cè)水平的臨床效果差異[7]。
均方根誤差計(jì)算公式如下:
(8)
平均絕對(duì)百分誤差計(jì)算公式如下:
(9)
本文構(gòu)建基于GRU網(wǎng)絡(luò)的短期血糖預(yù)測(cè)模型,表1和表2分別是20位不同患者預(yù)測(cè)步長(zhǎng)分別為2步(提前期=6 min)、10步(提前期=30 min)、16步(提前期=48 min)和20步(提前期=60 min)時(shí)的RMSE和MAPE??梢钥闯觯A(yù)測(cè)誤差大體上隨預(yù)測(cè)步長(zhǎng)的增加而增加,但也有少數(shù)情況相反。由于患者血糖波動(dòng)狀況不同,不同患者的預(yù)測(cè)誤差大小具有很強(qiáng)的差異性,相對(duì)而言,血糖波動(dòng)幅度小的預(yù)測(cè)效果更好。其中,預(yù)測(cè)效果最好的在提前期為60 min時(shí)其RMSE為0.230 6 mmol/L,MAPE為3.557 4%。
表1 提前期分別為6 min、30 min、48 min和60 min的RMSE mmol/L
表2 提前期分別為6 min、30 min、48 min和60 min的MAPE %
為了探究GRU相較于其他方法的預(yù)測(cè)性能,本文與支持向量回歸(SVR)、基本RNN和LSTM等方法進(jìn)行對(duì)比。SVR參數(shù)設(shè)置:kernel為徑向基神經(jīng)網(wǎng)絡(luò),C=10,gamma=0.1?;綬NN激活函數(shù)為tanh,其他參數(shù)與GRU相同,LSTM結(jié)構(gòu)和參數(shù)都與GRU相同。表3是幾種不同方法的平均絕對(duì)百分誤差,由表3可知,提前期為60 min時(shí),GRU的預(yù)測(cè)誤差為7.34%,LSTM的預(yù)測(cè)誤差為7.92%,傳統(tǒng)RNN的預(yù)測(cè)誤差為10.78%,SVR的預(yù)測(cè)誤差為12.37%,即對(duì)于血糖預(yù)測(cè)問題,GRU的方法最優(yōu)。對(duì)于模型運(yùn)行時(shí)間而言,GRU的平均時(shí)間為42.21 s,LSTM的平均時(shí)間為51.66 s,即GRU的運(yùn)算速度相對(duì)LSTM更快。
表3 幾種不同方法誤差比較 %
克拉克誤差網(wǎng)格分析法是一種圖形工具,它根據(jù)血糖預(yù)測(cè)值落在A、B、C、D、E五個(gè)區(qū)域的概率來評(píng)估血糖預(yù)測(cè)方法的準(zhǔn)確性。圖6是使用上述方法預(yù)測(cè)某患者未來60 min血糖變化的克拉克誤差網(wǎng)格分析結(jié)果,落在A區(qū)域的值具有較高的預(yù)測(cè)精度,它表明預(yù)測(cè)值偏離實(shí)際值不超過20%。由圖6可知,所有點(diǎn)均落在A、B區(qū)域內(nèi),使用GRU預(yù)測(cè)時(shí),A區(qū)域占比98.392 9%,B區(qū)域占比1.607 1%。使用LSTM時(shí),A區(qū)域占比89.523 8%,B區(qū)域占比10.476 2%。使用基本RNN,A區(qū)域占比78.75%,B區(qū)域占比21.25%。使用SVR時(shí),A區(qū)域占比64.166 7%,B區(qū)域占比35.833 3%。由此可得,GRU的預(yù)測(cè)效果相較于其他模型更好。
圖6 不同模型的克拉克誤差分析
在僅針對(duì)CGM數(shù)據(jù)的研究中,大多都是直接利用神經(jīng)網(wǎng)絡(luò)構(gòu)建輸入序列與輸出序列的對(duì)應(yīng)關(guān)系,通過迭代循環(huán)確定輸入神經(jīng)元個(gè)數(shù)。本文首先結(jié)合ARIMA的建模思想,利用自回歸系數(shù)初步確定模型輸入序列長(zhǎng)度,縮小迭代范圍,然后利用具有記憶特性的GRU網(wǎng)絡(luò)預(yù)測(cè)未來60 min患者血糖變化。與傳統(tǒng)SVR方法相比,GRU方法的預(yù)測(cè)精度顯著增加。與基本RNN和LSTM方法相比,RMSE、MAPE和克拉克誤差網(wǎng)格分析結(jié)果也表明,GRU的預(yù)測(cè)精度最高,并且其平均訓(xùn)練時(shí)間要低于LSTM,因此是一種比較好的短期血糖預(yù)測(cè)方法。