王譯文,黎建軍,曲再鵬
(中國計(jì)量大學(xué) 機(jī)電工程學(xué)院,浙江 杭州 310018)
糖尿病是一種由于胰腺分泌胰島素不足或者不能分泌導(dǎo)致的慢性疾病[1]。國際糖尿病聯(lián)盟(IDF)官網(wǎng)最新發(fā)布的第10版全球糖尿病地圖報(bào)告顯示,糖尿病導(dǎo)致了全球超過1/10的死亡,截止到2021年,全球5.37億20~79歲成人患有糖尿病,約占全世界該年齡段總數(shù)的1/10,預(yù)計(jì)到2045年糖尿病患者數(shù)量將增長到7.83億,其中中國是全球糖尿病成人患者數(shù)量最多的國家[2]。胰島素泵,又稱人工胰臟,是目前最有望成為糖尿病患者血糖科學(xué)管理與治療的設(shè)備。連續(xù)血糖監(jiān)測(cè)設(shè)備(CGMS)是人工胰臟的重要組成部分,它為胰島素泵提供實(shí)時(shí)的血糖信息,胰島素泵控制器根據(jù)血糖數(shù)據(jù)信息調(diào)節(jié)胰島素輸注量使患者身體維持健康的血糖水平[3]。由于糖尿病患者的血糖變化是一個(gè)復(fù)雜的非線性過程,同時(shí)胰島素作用于人體具有時(shí)滯性,實(shí)現(xiàn)低血糖暫停是確保糖尿病患者安全的前提,預(yù)測(cè)性血糖監(jiān)測(cè)系統(tǒng)這一功能通過算法預(yù)測(cè)血糖水平下降到閾值以下,能夠提前暫?;蛘{(diào)節(jié)胰島素輸注[4]。
血糖預(yù)測(cè)模型分為知識(shí)驅(qū)動(dòng)模型、數(shù)據(jù)驅(qū)動(dòng)模型和混合模型三大類,知識(shí)驅(qū)動(dòng)模型需要構(gòu)建人體血糖生理模型,其參數(shù)通常不精確,實(shí)現(xiàn)過程特別復(fù)雜[5]。隨著血糖傳感技術(shù)的不斷發(fā)展,近年來基于數(shù)據(jù)驅(qū)動(dòng)的血糖預(yù)測(cè)模型逐漸增加,數(shù)據(jù)驅(qū)動(dòng)模型主要基于CGM采集的血糖測(cè)量序列,還有一些方法將輸入(葡萄糖、膳食、胰島素、運(yùn)動(dòng)等)結(jié)合起來,Zecchin等[6]采用了15名T1D受試者的數(shù)據(jù),通過基于神經(jīng)網(wǎng)絡(luò)算法添加不同輸入進(jìn)行對(duì)比實(shí)驗(yàn),用平均絕對(duì)誤差以及時(shí)間增益來評(píng)估預(yù)測(cè)效果,結(jié)果表明,胰島素輸入以及攝入碳水化合物相關(guān)的輸入并不會(huì)改善30 min內(nèi)的短期預(yù)測(cè)效果。從糖尿病患者的實(shí)際血糖管理角度出發(fā),多輸入數(shù)據(jù)的采樣與統(tǒng)計(jì)復(fù)雜程度較大,可應(yīng)用性不高,因此盡可能選取方便采集的數(shù)據(jù)作為輸入特征,Hamdi等[7]采用了差分進(jìn)化(DE)算法加權(quán)的支持向量回歸(SVR)方法預(yù)測(cè)短期血糖,選取了12例糖尿病患者的真實(shí)CGM數(shù)據(jù)進(jìn)行了驗(yàn)證,取得了較高的預(yù)測(cè)精度。Li等[8]提出了一種基于漏積分神經(jīng)元和嶺回歸學(xué)習(xí)算法優(yōu)化的回聲狀態(tài)網(wǎng)絡(luò)結(jié)構(gòu),比極限學(xué)習(xí)機(jī)(ELM)和反向傳播(BP)算法具有更佳的預(yù)測(cè)效果。在時(shí)序預(yù)測(cè)領(lǐng)域循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)一直比傳統(tǒng)預(yù)測(cè)方法具有獨(dú)特的優(yōu)勢(shì),RNN的變體長短記憶單元(long-short term memory,LSTM)以及門控循環(huán)網(wǎng)絡(luò)(gated recurrent unit,GRU)近年來已在時(shí)序預(yù)測(cè)各領(lǐng)域表現(xiàn)出較好的預(yù)測(cè)效果[9],Sun等[10]采用了一個(gè)具有一個(gè)LSTM層、一個(gè)雙向LSTM層和幾個(gè)完全連接層的序列模型在預(yù)測(cè)血糖濃度,基于評(píng)估標(biāo)準(zhǔn),LSTM網(wǎng)絡(luò)優(yōu)于線性平均移動(dòng)差分(ARIMA)和SVR。滕建麗等[11]采用一種基于GRU血糖預(yù)測(cè)模型,比基本RNN網(wǎng)絡(luò)、LSTM、支持向量回歸具有更好的預(yù)測(cè)精度。由于RNN方法在面對(duì)長序列預(yù)測(cè)時(shí)無法完全消除梯度消失和梯度爆炸等問題,而Transformer模型能夠解決該問題,同時(shí)可以捕獲長期相關(guān)性[12],因此Transformer模型在時(shí)序預(yù)測(cè)方面得到了廣泛關(guān)注,近年來開始逐步研究并應(yīng)用于各領(lǐng)域[13-15]。
本文旨在將Transformer模型應(yīng)用于血糖預(yù)測(cè)領(lǐng)域。首先在預(yù)測(cè)效果優(yōu)異性方面,與其他模型進(jìn)行對(duì)比分析;同時(shí),在預(yù)測(cè)性能分析方面,探究不同輸入長度對(duì)模型預(yù)測(cè)精度的影響;最后,在預(yù)測(cè)長度有效性方面,通過克拉克網(wǎng)格誤差分析Transformer模型的臨床適用性。
Transformer模型是一個(gè)序列到序列的模型,它由輸入層、解碼層、譯碼層和輸出層四部分組成,如圖1。不像傳統(tǒng)的RNN順序結(jié)構(gòu),它是一種基于Self-Attention機(jī)制的架構(gòu),具有更好的并行運(yùn)算能力以及可解釋性。因此,Transformer模型在一些特定時(shí)間序列預(yù)測(cè)場(chǎng)景應(yīng)用中具有一定的適用性。
圖1 Transformer模型原理框架Figure 1 Transformer model principle framework
輸入層主要由嵌入層與位置編碼層組成,嵌入層主要用于序列數(shù)據(jù)的向量輸入,經(jīng)過輸入Embedding層得到嵌入向量:Xu={x1,x2,…,xT},Xu∈RT×dModel,其中T為輸入序列的長度,dModel為嵌入層的維度,x1~xT為輸入序列中第1~T位置的嵌入向量。
位置編碼層是為了確定序列的位置信息,由于沒有RNN與CNN中的遞歸層和卷積層,僅僅依靠自注意力機(jī)制無法獲取輸入的順序信息,需要主動(dòng)將序列的順序信息傳遞給模型,Transformer采用正弦和余弦函數(shù)對(duì)序列Xu進(jìn)行位置編碼來得到相對(duì)位置和絕對(duì)位置,其公式為
PE(t,2i)=sin(t/10 0002i/dModel),
(1)
PE(t,2i+1)=cos(t/10 0002i/dModel)。
(2)
式(1)(2)中,t表示當(dāng)前序列位置,i表示維度,2i表示偶數(shù)位置,2i+1表示奇數(shù)位置,dModel表示輸入特征的維度,PE表示由奇數(shù)列和偶數(shù)列所得到的位置編碼結(jié)果。將位置編碼信息加入到嵌入層得到向量Gu表示為
Gu=Xu+PE。
(3)
編碼層是由多頭注意力層、前饋全連接層和兩個(gè)殘差連接和歸一化層組成。
(4)
(5)
前饋全連接層是由兩個(gè)線性變換組成,中間有一個(gè)ReLu激活函數(shù),由于僅僅依賴多頭注意力機(jī)制不能夠達(dá)到理想情況,通過該層可以提升網(wǎng)絡(luò)的性能,其數(shù)學(xué)表達(dá)式如下:
FFN(x)=max(0,xW1+b1)W2+b2。
(6)
式(6)中:W1和W2為權(quán)值矩陣;b1和b2為偏置項(xiàng),x為輸入。
殘差連接和歸一化層的作用主要是提高信息傳遞深度,防止梯度消失,加快模型的收斂能力。
(2)對(duì)比可焊性可知,R1,R6,R10,W1以及PDC的可焊性大致排序:R6>R1>R10>PDC>W1。
譯碼層中間的結(jié)構(gòu)與編碼器相似,但是譯碼層中的注意力層與編碼器的有所不同,譯碼器是自回歸的,在序列預(yù)測(cè)中考慮未來位置的信息會(huì)對(duì)當(dāng)前位置的信息造成干擾,為了防止未來信息可能被提前利用,因此將未來信息用函數(shù)掩碼掉,本文的預(yù)測(cè)模型中將譯碼層用線性層替換。
輸出層主要由一個(gè)線性變換層和一個(gè)Softmax層構(gòu)成,其中線性變換層是一個(gè)簡單的全連接神經(jīng)網(wǎng)絡(luò)層,它可以將譯碼器輸出的向量結(jié)果轉(zhuǎn)換到指定的維度,最后通過Sigmoid壓縮函數(shù)和反歸一化處理得到對(duì)應(yīng)的輸入序列的預(yù)測(cè)值Y={y1,y2…yT}。
本文數(shù)據(jù)來源于美國國立衛(wèi)生研究院發(fā)布的DirectNet糖尿病臨床數(shù)據(jù)集,該數(shù)據(jù)集記錄著有100多名糖尿病兒童患者的連續(xù)血糖數(shù)值,數(shù)據(jù)采樣時(shí)間間隔為5 min,由專業(yè)的連續(xù)血糖監(jiān)測(cè)系統(tǒng)所得。圖2為某糖尿病患者連續(xù)3 d監(jiān)測(cè)的血糖變化曲線。
圖2 某糖尿病患者連續(xù)3 d血糖變化曲線Figure 2 Blood glucose curve of a diabetic patient for 3 consecutive days
均方根誤差和平均百分比誤差被廣泛當(dāng)作量化血糖預(yù)測(cè)模型性能的兩個(gè)評(píng)估指標(biāo)。均方根誤差和平均百分比誤差的計(jì)算公式如下:
(7)
(8)
本文使用血糖歷史值作為模型輸入序列,為了探究Transformer與其他模型的預(yù)測(cè)性能,分別使用LSTM、GRU和Transformer的方法進(jìn)行血糖預(yù)測(cè)。以RMSE和MAPE作為上述模型血糖預(yù)測(cè)精度的評(píng)估指標(biāo),選用5 min的輸入序列時(shí)長為例,分別采用數(shù)據(jù)集的前70%作為訓(xùn)練集,后30%作為測(cè)試集。為避免血糖預(yù)測(cè)的偶然性,對(duì)5名糖尿病患者進(jìn)行不同預(yù)測(cè)時(shí)長(5 min、15 min、30 min、45 min、60 min)的RMSE以及MAPE的結(jié)果對(duì)比,如表1和表2。
表1 5名糖尿病患者的RMSE
表2 5名糖尿病患者的MAPE
分析表1與表2中的數(shù)據(jù)可知,Transformer算法在不同預(yù)測(cè)時(shí)長內(nèi)的預(yù)測(cè)效果均優(yōu)于其他兩種算法。另外,由于不同患者的血糖波動(dòng)特性存在差異,在某些患者的短期血糖預(yù)測(cè)中,Transformer算法表現(xiàn)出了更小的預(yù)測(cè)偏差,且預(yù)測(cè)偏差不會(huì)隨預(yù)測(cè)時(shí)長的增長而發(fā)生顯著的變化。
血糖預(yù)測(cè)模型是根據(jù)歷史血糖值來預(yù)測(cè)未來短期血糖值,所以模型輸入的序列長度會(huì)影響模型預(yù)測(cè)性能。若將Transformer模型應(yīng)用于人工胰臟的高、低血糖的預(yù)警系統(tǒng)中,利用先驗(yàn)知識(shí)充分反映出患者的未來趨勢(shì),則必須對(duì)歷史血糖值輸入序列長度做更深一步的研究分析。
不同輸入序列長度下,本文采用平均百分比誤差(MAPE)作為模型預(yù)測(cè)性能的衡量標(biāo)準(zhǔn),以5~30 min輸入序列長度下的歷史血糖值作為模型輸入,預(yù)測(cè)患者未來1h內(nèi)的血糖水平,并通過MAPE值評(píng)估模型預(yù)測(cè)精度,結(jié)果如圖3。
圖3 不同預(yù)測(cè)時(shí)長序列下的效果對(duì)比圖Figure 3 Comparison of effects under different prediction time series
由圖3可知,當(dāng)輸入序列在5~30 min范圍變化時(shí),不同輸入序列下的血糖預(yù)測(cè)是存在差異的,其中輸入序列時(shí)長為20 min時(shí)的MAPE最低,表明此時(shí)預(yù)測(cè)效果最優(yōu)。說明血糖預(yù)測(cè)依賴短期歷史輸入序列中的信息,以及增加一定的輸入序列長度能夠提高血糖預(yù)測(cè)效果。同時(shí),不同輸入序列下MAPE的數(shù)值差異表明,不同輸入序列下的血糖水平對(duì)血糖預(yù)測(cè)精度具有重要影響作用。
克拉克誤差網(wǎng)格分析(Clarke error grid analysis,EGA)是一種用于評(píng)估血糖值量技術(shù)準(zhǔn)確性的臨床性方法[16]。EGA圖分別根據(jù)血糖預(yù)測(cè)值在A、B、C、D、E共5個(gè)區(qū)域來表示不同程度的預(yù)測(cè)效果。為了表現(xiàn)出血糖預(yù)測(cè)的準(zhǔn)確性,A、B、C、D、E這5個(gè)區(qū)域分別有以下定義:①A區(qū)域:表示在臨床上具有準(zhǔn)確性,預(yù)測(cè)值與實(shí)際值的偏離度不超過20%;②B區(qū)域:表示預(yù)測(cè)值與實(shí)際值的偏離度超過20%,但其誤差在可接受范圍內(nèi);③C區(qū)域:表示可能會(huì)引起血糖的無效矯正,導(dǎo)致高血糖和低血糖的發(fā)生;④D區(qū)域:表示預(yù)測(cè)值與實(shí)際值的偏差不在正常范圍內(nèi),其預(yù)測(cè)值偏差較大,不具有參考價(jià)值;⑤E區(qū)域:表示錯(cuò)誤處理。若預(yù)測(cè)點(diǎn)在A、B區(qū)域范圍內(nèi),則表明預(yù)測(cè)值是較為準(zhǔn)確并且是可被接受的。
取2.3節(jié)得到最優(yōu)的20 min的輸入序列時(shí)長進(jìn)行分析,其不同預(yù)測(cè)時(shí)長的EGA圖如圖4所示,并作出EGA圖中的A、B、C、D、E區(qū)域占比表見表3。由表3和圖4可知,在血糖未來預(yù)測(cè)時(shí)長為5 min時(shí),A區(qū)域的占比為100%,能夠達(dá)到最佳的血糖預(yù)測(cè)效果;當(dāng)血糖未來預(yù)測(cè)時(shí)長為10 min、15 min、20 min、25 min、30 min時(shí),其A、B區(qū)域占比總和一直保持100%,在預(yù)測(cè)中依然有著較高的準(zhǔn)確性,能夠達(dá)到理想的血糖預(yù)測(cè)效果;
表3 不同預(yù)測(cè)時(shí)長下的EGA各區(qū)域占比
圖4 5~60 min預(yù)測(cè)時(shí)長的EGA圖(順序從左往右)Figure 4 EGA chart of 5~60 min prediction duration ( from left to right )
當(dāng)血糖預(yù)測(cè)時(shí)長在30~60 min內(nèi)時(shí),D區(qū)域的占比在較低的水平上保持上升,A、B區(qū)域的占比之和仍處在較高水平,能夠?qū)崿F(xiàn)良好的預(yù)測(cè)。以上分析表明,在無進(jìn)餐、運(yùn)動(dòng)以及胰島素輸注的影響下,30 min內(nèi)的血糖預(yù)測(cè)是能夠達(dá)到較高的預(yù)測(cè)精度。
本文提出了基于Transformer的短期血糖預(yù)測(cè)模型,并與LSTM和GRU進(jìn)行對(duì)比分析,以RMSE和MAPE作為血糖預(yù)測(cè)性能的評(píng)估指標(biāo),結(jié)果表明,相較于LSTM和GRU預(yù)測(cè)模型,Transformer模型在血糖預(yù)測(cè)中具有更加優(yōu)異的表現(xiàn)。另外,對(duì)于不同輸入序列長度下的Transformer模型進(jìn)行對(duì)比討論,由MAPE評(píng)估指標(biāo)分析結(jié)果表明,輸入序列時(shí)長為20 min的預(yù)測(cè)效果最優(yōu)。最后,進(jìn)一步對(duì)未來不同預(yù)測(cè)時(shí)長內(nèi)的預(yù)測(cè)效果進(jìn)行探究,采用克拉克網(wǎng)格誤差分析圖表現(xiàn)其預(yù)測(cè)性能,結(jié)果表明,Transformer血糖預(yù)測(cè)模型是一種較好的短期血糖預(yù)測(cè)方法。