黃雄波,丘 陵,劉武萍
(1.佛山職業技術學院電子信息學院,廣東 佛山528137;2.佛山市中醫院藥劑科,廣東 佛山528000)
正常來說,人體自身的血糖調整機制可將其體內的血糖值維持在正常范圍以內。然而,由于胰島素分泌缺陷或其生物作用受損,或兩者兼有所引起的糖、脂肪和蛋白質代謝障礙,往往會促進人體內的血糖值升高,并導致糖尿病的發生[1-2]。研究表明,高血糖對人體的危害非常大,會給人體造成嚴重的疾病以及負面影響,例如急性心肌梗塞、中風、重癥感染、敗血癥、感染性休克、多發性精神病、多器官衰竭等等,嚴重的甚至會導致死亡。按照發病機理的不同,糖尿病可以分為I 型糖尿病和II 型糖尿病兩種。其中I 型糖尿病是由于感染(尤其是病毒感染)、毒物等因素誘發機體產生異常的細胞免疫應答,導致胰島β 細胞損傷,胰島素分泌減少而引起的;II 型糖尿病是由于致病因子的存在,正常的血液結構平衡被破壞,血中胰島素效力相對減弱,并經過漫長的病理過程而形成的[3-5]。
注射胰島素是糖尿病患者維持正常血糖水平的重要手段。為了提升治療效果,有必要對患者未來一段時間(一般為30 分鐘)的血糖濃度進行精確的預測,以便確定注射胰島素的最佳時間和劑量[6]。R.Hovorka 等通過非線性動力系統模擬皮下注射的短效胰島素及腸道的吸收過程,并采用貝葉斯參數估計確定時變模型參數,得到一種有效的非線性血糖預測模型[7]。H.Efendic 等基于生理學與血糖變化的轉移概率,使用高斯函數設計實現了區間概率的血糖濃度短期預測算法,該法對10耀30 分鐘時間范圍的血糖濃度有非常好的預測效果[8]。近年來,基于數據驅動的血糖濃度預測方法得到了長足的發展,利用機器學習和深度學習對既有的血糖序列進行特征提取、非線性映射等處理,其預測精度較基于生理模式的經典預測模型而言,有著不可比擬的優勢[9-11]。鑒于現有的血糖濃度預測模型在小樣本情形下仍有不足,在此設計并實現一種基于小樣本的血糖濃度預測算法。改進后的算法將在保證一定預測精度的情況下,使得血糖序列的采樣時間間隔從原來的5 分鐘延長至3 小時。
受血糖檢測設備或輸入轉換等原因的影響,所獲得的血糖原始序列往往會混雜著少量的異常數據,若直接對這些原始序列進行建模處理,則可能會導致建模結果出現較大的誤差。為此,需要對血糖原始序列進行相關的合理性檢驗,以剔除有明顯偏差的不合理樣本點。同時,為保證原始序列的完整性,應使用合理的數據替換被剔除的樣本點。
對于異常樣本點,常用的檢測與剔除方法有拉依達準則、肖維勒準則、格拉布斯準則、狄克遜準則及t 檢驗準則等。其中,t 檢驗準則的計算過程較為復雜,但其檢測結果更為嚴格和穩健。據此,此處采用t 檢驗準則對血糖原始序列展開檢驗。
記血糖原始序列為yt(t=1,2,...,n),按樣本點的數值大小進行排序,有:

若有:

或

兩式成立,則稱y(1)或y(n)為異常數據,應予以剔除。

而K(n,a)則是對應樣本容量n 與某一置信水平a,并結合t 分布臨界值表計算得到的數值。
當檢測發現異常樣本點之后,則以該樣本點為中心、鄰域半徑為2,選取左右相鄰4 個樣本點,依照Lagrange 插值原理[12],析出對應的插值函數,在此基礎上,得到異常樣本點的合理替換值。Lagrange 插值原理具體如下:
設已知函數y=f(x)在區間[a,b]上n+1 個點x0,x1,...,xn所對應的值為y0,y1,...,yn,要求作一個次數不高于n 次的插值多項式Ln(x),且滿足插值條件:

于是,選取特定的基函數,并用這些基函數的線性組合來表示Ln(xi),便可得到Lagrange 插值多項式:

由于既有的血糖序列是屬于小樣本的情形,為了提高辨識建模的精度,有必要進行相應的樣本擴充處理。與上述的異常樣本的插值替換處理不同,樣本擴充的插值范圍為整個樣本取值區間。由于此時的插值函數需要滿足更多的樣本點,于是導致了插值多項式次數的增加,從而引起龍格(Runge)現象。為了獲得更好的插值效果并同時增強插值函數的整體光滑度,此處采用分段的三次樣條函數來完成樣本擴充,即插值函數是由一段一段的三次多項式(二階連續導數)拼合而成的曲線。
設在區間[a,b]上的插值節點a=x0<x1<...<xn=b 與所對應的函數值分別為y0,y1,...,yn,若函數S(x)為三次樣條插值函數,則下列3 個條件成立[13-14]:
條件1:S(x)=yi, i=0,1,...,n;
條件2:在每一個小區間[xi-1,xi]上是一個關于x的三次多項式;
使下式:



將原始的小樣本血糖序列代入式(8)耀(10),于是在相鄰樣本點[xi-1,xi]之間求得一個對應的三次樣條插值函數Si(x)。根據實際需要,將[xi-1,xi]劃分為n 等份,有[xi-1,xi-1+Δx,...,xi-1+(n-1)Δx,xi],易知,將xi-1+φΔx(φ=0,1,...,n-1)代入Si(x),便可完成樣本插值的擴充處理。
小樣本血糖序列在剔除異常樣本及樣本擴充之后,便可進行預測模型的構建。注意到血糖序列本身具有的非線性和非平穩的特點,在此選用廣義回歸神經網絡對小樣本血糖序列進行預測。廣義回歸神經網絡是屬于徑向基神經網絡的一種改進,具有很強的非線性映射能力及高度的容錯性,特別是在小樣本的情形下,其逼近能力和學習收斂速度比徑向基神經網絡具有更優越的性能[15-16]。
基于廣義回歸神經網絡的小樣本血糖濃度預測模型的構成如圖1 所示。其中包括輸入層、模式層、求和層和輸出層,其網絡輸入X= [x1x2...xn]T,而網絡輸出Y=yi,i=0,1,...,m。

圖1 預測模型構成示意圖
如圖1 可見,輸入層的神經元數目等于待預測血糖濃度序列點的前p 個連續的樣本;模式層的神經元數目與學習樣本的數目n 相等,該層的每個神經元的傳遞函數如下式所示:

式中,X 為輸入變量,Xi為第i 個神經元對應的學習樣本,σ 為光滑因子,即高斯函數的標準差。
求和層用于對所有模式層神經元的輸出進行算術求和及加權求和,如下式所示:

而輸出層神經元的取值是將求和層的輸出進行相除,即:

綜上所述,可以得到如下的小樣本血糖濃度預測算法:
算法名稱:小樣本血糖濃度預測算法
輸入:血糖原始序列yt(t=1,2,...,n)
輸出:血糖序列的m 個預測值yt(t=n+1,n+2,...,m)
步驟1:利用式(1)耀式(5)對yt進行計算分析,若存在異常樣本,跳轉步驟2,否則,跳轉步驟3;
步驟2:以步驟1 檢測發現的異常樣本點為中心,選取其左右相鄰的4 個樣本點,代入式(7)求得Lagrange 插值多項式函數,并將新的函數插值替換異常樣本點;
步驟3:以[1,n]為插值區間,利用式(8)耀(10)求出對應的三次樣條插值函數,并在各個子區間[t,t+1](t=1,2,...,n-1)中,根據實際需要以細分的時間間距完成樣本插值擴充處理,完成異常樣本剔除及擴充處理的血糖序列記為
步驟4:將分拆為訓練樣本和測試樣本,對廣義回歸神經網絡進行訓練,打印輸出網絡參數,算法結束。
為驗證本算法的有效性及先進性,選取美國國立衛生研究院發布的DirecNet(Diabetes Research in Children Network)糖尿病臨床數據集進行實驗。該數據集有100 多名糖尿病兒童患者的連續血糖數值,采樣時間間隔為5 min,由專業的連續血糖監測系統采集所得。
實驗在PC 機上進行,硬件配置為:Intel 酷睿i5 4570 四核CPU、Kingmax DDR3 16GB RAM、Western Digital 500 G Hard Disk;操作系統與開發環境為:Microsoft Windows10、MATLAB R2013。
在實驗過程中,著重對比現有算法與本算法在辨識精度和計算開銷等技術指標上的差異,并對相關實驗結果加以詳細分析與討論。
隨機選取10 名患者的某1 天(24 小時)的血糖序列進行濃度預測建模分析,實驗的過程包括:
步驟a:分別以Δt=1h、2h、3h、4h 對原始實驗樣本抽樣,得到三種不同時間間隔的小樣本序列;
步驟b:用式(1)耀式(7)分別對步驟a 中三種小樣本序列進行異常樣本點剔除和替換;
步驟c:用式(8)耀式(10)分別對步驟b 中的各種小樣本序列進行三次樣條插值的樣本擴充處理;
步驟d:在MATLAB R2013 中,分別對各名患者的原始序列、不同時間間隔的小樣本序列進行基于廣義回歸神經網絡的預測模型的訓練和構建。
5.2.1 原始血糖序列的各項預處理結果
以5#患者為例,其原始血糖序列如圖2 所示。該血糖序列的采樣時間間隔Δt=5 min,共有288 個樣本點。

圖2 5#患者原始血糖序列
圖3 為以時間間隔Δt=1 h 對原始血糖序列做抽樣處理所得的小樣本序列,共有24 個樣本點。

圖3 時隔Δt=1h 抽樣處理所得小樣本序列
利用式(1)耀式(5)對圖3 的小樣本序列進行異常樣本點處理,處理后的效果見圖4。通過對比可見,在t=3 和t=22 處已完成異常樣本的剔除和替換。

圖4 異常樣本點處理效果圖
利用式(8)耀式(10)對圖4 的小樣本序列進行以時間間隔Δt=5min 的三次樣條插值函數的擴充處理,處理結果如圖5 所示。

圖5 三次樣條插值處理效果圖
5.2.2 實驗結果討論
為驗證各種不同時間間隔的小樣本擴充序列的預測建模性能,此處將基于廣義回歸神經網絡對原始血糖序列、Δt=0.5h、Δt=1h、Δt=2h 及Δt=3h 等4種小樣本擴充序列進行預測建模分析。以連續4 個小時的相依血糖序列(共48 個樣本點)對下一個血糖濃度進行預測,可設置廣義回歸神經網絡的輸入節點數n=48;將前232 個序列作為訓練樣本,后56個序列作為測試樣本,模式層和求和層的神經元數目p=184。
為了全面考察各種不同時間間隔抽樣所得的樣本序列對預測精度的影響,引入平均絕對百分誤差MAPE 進行有關的性能評價,MAPE 的具體定義為:

式中,yt為輸入序列,為預測序列,n 為序列長度。
在糖尿病的實際臨床治療過程中,為了有效地確定注射胰島素的最佳時間和劑量,醫護人員往往需要對未來30 分鐘范圍內的血糖水平進行預測,以采樣時間間隔Δt=5 min 為例,則需要對未來6 個樣本點進行預測。繼續以5#患者為例,將各種不同時間間隔抽樣所得的擴充樣本序列輸入至廣義回歸神經網絡中進行訓練,并利用訓練所得的網絡模型進行未來6 個樣本點的預測,得到圖6 所示的預測效果圖。分別對10 名患者的各種擴充樣本進行相應的網絡訓練模型,各樣本的MAPE 預測性能詳細見表1 所示。

圖6 5#患者各擴充樣本序列6 步預測效果圖

表1 各抽樣小樣本擴充序列MAPE 預測性能
從圖與表中可知,對各患者而言,以原始血糖樣本訓練所得的模型預測精度最為精確,其MAPE 在98%耀99%之間;隨著抽樣時間間隔的增大,擴充樣本訓練模型的預測精度逐漸下降,在抽樣時間間隔Δt=3 h 時,其MAPE 仍能維持在90%以上,此時仍屬高精度預測。當抽樣時間間隔Δt=4 h 時,MAPE已降至90%以下。在抽樣時間間隔Δt=mh 時,其三次樣條插值函數便需要插入60÷5×m-2 個樣本點,不難發現,抽樣時間間隔越大,插值樣本數量就越多,相應地,插值誤差也就越大。事實上,過多使用擴充樣本進行網絡訓練,所得模型的預測性能確實在逐漸變差。
從上述分析可知,在保證高精度預測的前提要求下,通過三次樣條插值函數的擴充處理,訓練模型所需的樣本抽樣采集時間可以從5 分鐘延長至3 小時。據此便可證明本改進算法是正確和有效的。
針對小樣本血糖濃度預測的醫療實際需求,提出了一種改進的預測算法。改進算法通過對異常樣本進行剔除和替換以及三次樣條插值函數的樣本擴充等處理,實現了在一定采樣時間間隔的條件下,以較少的訓練樣本獲得較為精確的預測模型。下一步的主要工作是研究性能更為優異的插值函數,以便實現延長抽樣時間間隔的同時,進一步提升預測模型的精度。