陳德華,洪靈濤,潘喬
(東華大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,上海 201620)
摘要:糖尿病在治療過程中,其生化檢驗(yàn)指標(biāo)的變化受患者基本特征、指標(biāo)等影響。文中針對(duì)預(yù)測(cè)患者糖尿病生化指標(biāo)的問題,結(jié)合神經(jīng)網(wǎng)絡(luò)等機(jī)器學(xué)習(xí)方法,構(gòu)建了一個(gè)基于改進(jìn)神經(jīng)網(wǎng)絡(luò)的糖尿病生化指標(biāo)預(yù)測(cè)模型。該模型考慮了糖尿病生化指標(biāo)和患者的基本特征對(duì)指標(biāo)的影響,同時(shí)又將患者之前的檢驗(yàn)數(shù)據(jù)樣本加入到模型中。實(shí)驗(yàn)證明,對(duì)于糖尿病患者的指標(biāo)數(shù)據(jù),3個(gè)主要血檢指標(biāo)預(yù)測(cè)訓(xùn)練集的R2值達(dá)到0.772 1、0.551 8、0.706 3,測(cè)試集的R2值達(dá)到了0.644 7、0.584 0、0.804 6,對(duì)比實(shí)驗(yàn)也證明了該模型相較于常用的機(jī)器學(xué)習(xí)模型有著更好的預(yù)測(cè)效果。
關(guān)鍵詞:糖尿病;神經(jīng)網(wǎng)絡(luò);指標(biāo)預(yù)測(cè)
中圖分類號(hào):TP302文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674-7720.2017.05.017
引用格式:陳德華,洪靈濤,潘喬.基于改進(jìn)神經(jīng)網(wǎng)絡(luò)的糖尿病生化指標(biāo)值預(yù)測(cè)[J].微型機(jī)與應(yīng)用,2017,36(5):54-56,59.
0引言
糖尿病作為一個(gè)高發(fā)的內(nèi)分泌疾病,其各項(xiàng)指標(biāo)的預(yù)測(cè)都有很重要的意義。糖化血紅蛋白(HbA1c) 指標(biāo)是人體血液中紅細(xì)胞內(nèi)的血紅蛋白與血糖結(jié)合的產(chǎn)物, 通??梢苑从郴颊呓?~12周的血糖控制情況;空腹血糖(Glu)指標(biāo)能夠代表基礎(chǔ)胰島素的分泌功能;而胰島素釋放試驗(yàn)(Ins)反應(yīng)了胰β細(xì)胞的儲(chǔ)備功能,這些糖尿病的主要指標(biāo)預(yù)測(cè)具有調(diào)整治療方案、評(píng)估患者狀態(tài)、衡量治療結(jié)果等重要的實(shí)際意義。
以往糖尿病的指標(biāo)預(yù)測(cè)僅僅停留在醫(yī)學(xué)領(lǐng)域或者簡(jiǎn)單的統(tǒng)計(jì)分析上。隨著機(jī)器學(xué)習(xí)技術(shù)的發(fā)展,各類機(jī)器學(xué)習(xí)模型也被應(yīng)用到醫(yī)療行業(yè)的各個(gè)領(lǐng)域。但是對(duì)于大量有不同特性的數(shù)據(jù)樣本,許多機(jī)器學(xué)習(xí)的模型過于泛用,而對(duì)于糖尿病指標(biāo)數(shù)據(jù)的預(yù)測(cè)而言,以往的模型大多停留在解決指標(biāo)間的相關(guān)性上,而沒有考慮到患者一直以來的指標(biāo)變化。同時(shí)患者指標(biāo)變化數(shù)據(jù)具有不規(guī)則時(shí)序特性,這些特性也阻礙了一些模型應(yīng)用到這類特殊的數(shù)據(jù)集上。
本文提出了一個(gè)基于改進(jìn)神經(jīng)網(wǎng)絡(luò)的模型,該模型不僅充分考慮到患者指標(biāo)間的相互影響,同時(shí)通過加入隱藏層來擬合患者多次檢查中不規(guī)則的時(shí)序特性,對(duì)比實(shí)驗(yàn)也證明了該模型相較于常用的機(jī)器學(xué)習(xí)模型有著更好的預(yù)測(cè)效果。
1糖尿病臨床數(shù)據(jù)建模
糖尿病臨床數(shù)據(jù)主要由兩部分組成:患者的基本信息,此維數(shù)據(jù)主要包括了患者的性別、年齡、妊娠狀態(tài)等;患者的檢驗(yàn)數(shù)據(jù),此維數(shù)據(jù)主要包括了患者歷次的各項(xiàng)生化指標(biāo)的檢驗(yàn)時(shí)間和指標(biāo)值。
由以上兩類數(shù)據(jù)源可以得到一個(gè)以患者、時(shí)間和患者屬性(包括患者特征和指標(biāo)等)為3個(gè)維度的三維數(shù)據(jù)模型,而這個(gè)數(shù)據(jù)模型有以下特點(diǎn):
?。?)不規(guī)則的時(shí)序特性
例1.表1中列舉了一個(gè)患者血液檢查中糖尿病主要指標(biāo)的數(shù)據(jù)樣本。該數(shù)據(jù)的時(shí)間跨度從2011年~2012年,共有5次檢查數(shù)據(jù),每次檢查與上一次檢查的時(shí)間間隔分別為110天、103天、128天和60天。
例1中可以看到,醫(yī)療數(shù)據(jù)的確具有時(shí)序特性,但相較于標(biāo)準(zhǔn)的或者較為正規(guī)的時(shí)序數(shù)據(jù)集,醫(yī)療數(shù)據(jù)的時(shí)序點(diǎn)更為殘缺和稀疏。這就使得很多數(shù)學(xué)模型并不適用于真實(shí)醫(yī)療數(shù)據(jù)的預(yù)測(cè)。
?。?)指標(biāo)和患者基本信息具有相關(guān)性
例2. 表2為不同性別分組A1C指標(biāo)的統(tǒng)計(jì)描述。展示了不同年齡和性別分組的情況下患者的A1C指標(biāo)分布情況。從例2中可以看出,不同性別的患者指標(biāo)分布并不均勻,同時(shí)患者的年齡對(duì)指標(biāo)的分布也有著影響。
?。?)指標(biāo)間具有相關(guān)性
患者的指標(biāo)存在相互影響的關(guān)系,相關(guān)資料也表明,患者的疾病指標(biāo)也與很多的患者特性有著諸多相關(guān),所以指標(biāo)間的相互影響不可忽略。
2神經(jīng)網(wǎng)絡(luò)及存在的不足
BP神經(jīng)網(wǎng)絡(luò)[1 2]是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。神經(jīng)網(wǎng)絡(luò)擅長(zhǎng)于處理內(nèi)部機(jī)制復(fù)雜的問題,具有較強(qiáng)的非線性映射能力,因而神經(jīng)網(wǎng)絡(luò)在處理指標(biāo)間、患者基本屬性與指標(biāo)預(yù)測(cè)的關(guān)系時(shí)有較強(qiáng)的能力[3]。但是,由于需要同時(shí)考慮到患者多次檢查對(duì)患者指標(biāo)的影響,一般的神經(jīng)網(wǎng)絡(luò)無法處理多次輸入之間的關(guān)系,不能很好地適應(yīng)當(dāng)前的數(shù)據(jù)模型。因而為了較好地預(yù)測(cè)糖尿病患者的幾個(gè)主要指標(biāo)變化,提高預(yù)測(cè)精確度,本文利用糖尿病患者特征、治療時(shí)間和治療過程中的指標(biāo)變化特性,提出了一個(gè)基于神經(jīng)網(wǎng)絡(luò)的改進(jìn)神經(jīng)網(wǎng)絡(luò)模型,利用了BP神經(jīng)網(wǎng)絡(luò)[2 3]中的思想,來完成糖尿病指標(biāo)的預(yù)測(cè)。
3預(yù)測(cè)模型架構(gòu)
根據(jù)上節(jié)的描述,考慮到患者的各種特征對(duì)指標(biāo)預(yù)測(cè)的影響,將患者性別、年齡、妊娠狀態(tài)等也作為模型的輸入。同時(shí),如例1種所述,考慮到醫(yī)療數(shù)據(jù)所具有的時(shí)序特性,本文在改進(jìn)的模型中加入了一個(gè)隱藏層,用于保存上一次隱層的輸出,并將它用于下一次的隱層計(jì)算,以此來擬合醫(yī)療數(shù)據(jù)的時(shí)序特性。為了簡(jiǎn)化部分計(jì)算,減低模型可能的過擬合概率,模型將一些與預(yù)測(cè)結(jié)果直接相關(guān)的輸入單獨(dú)列出,作為特殊的節(jié)點(diǎn)輸入,直接連接到輸出節(jié)點(diǎn)。
3.1模型描述
實(shí)驗(yàn)中的模型是基于BP神經(jīng)網(wǎng)絡(luò)改進(jìn)的,具體包括4個(gè)層次,即輸入層、隱藏層1、隱藏層2和輸出層次。
將輸入?yún)?shù)x1,x2,…,xn記作x,對(duì)輸入?yún)?shù)先進(jìn)行線性變換,對(duì)于隱層1節(jié)點(diǎn)j的輸入有:
其中ωTj表示連接輸入層和隱層1節(jié)點(diǎn)j的權(quán)值向量,ωi→j表示輸入層節(jié)點(diǎn)i到隱層j的權(quán)值,n表示輸入層節(jié)點(diǎn)數(shù)量。
隱層中激勵(lì)函數(shù)選用sigmoid函數(shù),所以為了保證sigmoid有較好的感知效果,本文利用sigmoid在定義域?yàn)?附近較為敏感的特性,結(jié)合數(shù)據(jù)特點(diǎn),將式(1)中的kj進(jìn)行雙曲變換,然后再附上偏置量,由此得到隱層的激勵(lì)函數(shù)為:
其中pi表示隱層1節(jié)點(diǎn)i的輸出,βi為對(duì)應(yīng)偏置量。
隱層2的節(jié)點(diǎn)i保存著上一次隱層1節(jié)點(diǎn)的輸出,將隱層的節(jié)點(diǎn)i輸出記作yi,隱層2的節(jié)點(diǎn)i所保存的值記作y′i(注:隱層1、2的節(jié)點(diǎn)數(shù)相同),則對(duì)于隱層節(jié)點(diǎn)i的實(shí)際輸出有:
yi=pi+αiy′i(3)
其中αi表示隱層2節(jié)點(diǎn)i所對(duì)應(yīng)的輸出權(quán)值。
對(duì)于輸入層中包含特殊節(jié)點(diǎn)N,筆者認(rèn)為在這樣一份時(shí)序數(shù)據(jù)中,每條數(shù)據(jù)的時(shí)間與其輸出有直接關(guān)系,則不將該節(jié)點(diǎn)通過隱層處理,而是直接連接到輸出層。將隱層的輸出y1,y2,…,yn記作y,在輸出層采用purelin函數(shù),可以得到輸出層的輸出zj為:
zj=υTj·y+γj·g+bj=∑m1υi→j·yi+γj·g+bj(4)
其中υTj表示連接隱層和輸出層節(jié)點(diǎn)j的權(quán)值向量,υi→j表示隱層節(jié)點(diǎn)i到輸出層節(jié)點(diǎn)j的權(quán)值,bj表示對(duì)應(yīng)偏置量,m為隱層節(jié)點(diǎn)數(shù)量,g表示特殊節(jié)點(diǎn)輸入值,γj為對(duì)應(yīng)權(quán)值。
3.2學(xué)習(xí)過程
整個(gè)訓(xùn)練過程基本采用BP算法的思想,首先,模型的整體MSE為:
其中rj 為預(yù)測(cè)結(jié)果的實(shí)際值。為后續(xù)計(jì)算方便,這里添加了系數(shù)12。
訓(xùn)練學(xué)習(xí)過程以最小化MSE為目的,利用梯度下降算法,以目標(biāo)負(fù)梯度方向?qū)?shù)進(jìn)行調(diào)整,對(duì)于誤差函數(shù)(5)和給定學(xué)習(xí)率η,參數(shù)ωi→j的負(fù)梯度變化量為:
同理,根據(jù)式(10)同樣的推導(dǎo)方式可以得到其他參數(shù)的變化量為:
4實(shí)驗(yàn)評(píng)估
本實(shí)驗(yàn)中的醫(yī)療數(shù)據(jù)源于國(guó)內(nèi)某大型三甲醫(yī)院的糖尿病患者的醫(yī)療數(shù)據(jù)。共有348位患者的信息,每個(gè)患者至少包括了3條以上的檢查數(shù)據(jù)。共1 399條檢查數(shù)據(jù)。數(shù)據(jù)以7:3的比例劃分訓(xùn)練集和測(cè)試集。模型的輸出為預(yù)測(cè)時(shí)間下的A1C、GLU、INS 3個(gè)指標(biāo)的值。
4.1模型評(píng)價(jià)標(biāo)準(zhǔn)和參數(shù)設(shè)定
首先對(duì)模型的數(shù)值數(shù)據(jù)進(jìn)行歸一化處理。本節(jié)選取均方誤差(Mean Square Error, MSE)和決定系數(shù)(coefficient of determination, R2)來作為實(shí)驗(yàn)的評(píng)價(jià)指標(biāo)。兩者的計(jì)算公式如下:
后續(xù)實(shí)驗(yàn)均選取R2來衡量實(shí)驗(yàn)結(jié)果。
圖1給出了在不同BP迭代次數(shù)的情況下模型的R2值??梢钥吹剑?dāng)BP的迭代次數(shù)大于500次時(shí),模型預(yù)測(cè)結(jié)果的R2值已經(jīng)基本保持不變。所以本文實(shí)驗(yàn)中對(duì)于每一次BP過程,每一個(gè)參數(shù)迭代500次或迭代至該參數(shù)收斂為止。
實(shí)驗(yàn)時(shí)模型采用動(dòng)態(tài)學(xué)習(xí)率,學(xué)習(xí)率在每一個(gè)新樣本進(jìn)入模型時(shí)更新,學(xué)習(xí)率公式為:
其中,η′為上一個(gè)樣本時(shí)模型的學(xué)習(xí)率。本系列實(shí)驗(yàn)中學(xué)習(xí)率的初始值為0.05。
4.2實(shí)驗(yàn)結(jié)果評(píng)估
在上述實(shí)驗(yàn)條件下,經(jīng)過100次隨機(jī)初值實(shí)驗(yàn)獲得3個(gè)指標(biāo)值預(yù)測(cè)結(jié)果的R2均值。實(shí)驗(yàn)可以看出,該模型對(duì)于本數(shù)據(jù)集的預(yù)測(cè)效果較好,無論是訓(xùn)練集還是測(cè)試集的決定系數(shù)R2都在0.6~0.8左右,模型的擬合程度較好。
實(shí)驗(yàn)過程中進(jìn)行了對(duì)比實(shí)驗(yàn),對(duì)比實(shí)驗(yàn)中使用了普通的BP神經(jīng)網(wǎng)絡(luò)、xgboost等算法對(duì)相同的數(shù)據(jù)進(jìn)行了預(yù)測(cè),在表4中可見各個(gè)算法的對(duì)指標(biāo)預(yù)測(cè)的R2值。在對(duì)比實(shí)驗(yàn)結(jié)果中可以看到,本文提出的模型總體的表現(xiàn)最好; xgboost在測(cè)試集表現(xiàn)與本文提出的模型相近,但是迭代次數(shù)在20次時(shí)就已過擬合。而一般的神經(jīng)網(wǎng)絡(luò)模型擬合的效果較差,并不能達(dá)到良好的預(yù)測(cè)效果。
5結(jié)論
本文提出了一個(gè)基于BP神經(jīng)網(wǎng)絡(luò),針對(duì)糖尿病醫(yī)療數(shù)據(jù)集所構(gòu)建的改進(jìn)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型。與一般的神經(jīng)網(wǎng)絡(luò)相比,該模型針對(duì)于特定數(shù)據(jù)集,添加了隱層用來保存上一次隱層節(jié)點(diǎn)的輸出,修改了隱層的激勵(lì)函數(shù),加入了特殊節(jié)點(diǎn)來更好地?cái)M合數(shù)據(jù)。在第四節(jié)的實(shí)驗(yàn)中,可以看到本文所構(gòu)建的模型對(duì)于糖尿病的醫(yī)療數(shù)據(jù)集的預(yù)測(cè)有良好的表現(xiàn)。在預(yù)測(cè)準(zhǔn)確性上,要優(yōu)于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)及其他的模型。
參考文獻(xiàn)
?。?] Cai Binghuang, Jiang X. A novel artificial neural network method for biomedical prediction based on matrix pseudo-inversion[J]. Journal of Biomedical Informatics, 2014, 48(3):114-121.
?。?] PAPPADA S M, CAMERON B D, ROSMAN P M, et al. Neural network based real time prediction of glucose in patients with insulin-dependent diabetes[J]. Diabetes Technology & Therapeutics, 2011, 13(2):13541.
[3] WYSOCKI, LAWRYN'CZUK A, MACIEJ. Elman neural network for modeling and predictive control of delayed dynamic systems[J]. Archives of Control Sciences, 2016, 26(1):117 142.
?。?] RODRIGUEZ P, WILES J, ELMAN J L. A recurrent neural network that learns to count[J]. Connection Science, 1999, 11(1):540.