吳磊,徐凱
(1.重慶醫(yī)科大學(xué)附屬第一醫(yī)院 信息中心,重慶 400016;2.重慶交通大學(xué) 信息科學(xué)與工程學(xué)院,重慶 400074)
隨著信息科技的快速發(fā)展,醫(yī)院診療工作趨向于智能化、精細(xì)化和高效化,人們?cè)谙硎茚t(yī)療服務(wù)的同時(shí),對(duì)就醫(yī)體驗(yàn)要求更高。準(zhǔn)確有效地預(yù)測(cè)醫(yī)院門診量可以為醫(yī)療資源配置等活動(dòng)提供科學(xué)依據(jù)和決策支持,因此,門診量的精準(zhǔn)預(yù)測(cè)為開展醫(yī)療工作和提高服務(wù)質(zhì)量有重要作用。
合理的預(yù)測(cè)方法和預(yù)測(cè)模型是提高門診量預(yù)測(cè)準(zhǔn)確度的關(guān)鍵因素。在早期的研究中,ARIMA模型[1]、移動(dòng)平均季節(jié)指數(shù)模型[2]、灰色GM(1,1)模型[3]和模糊時(shí)間序列模型[4]等方法在門診量預(yù)測(cè)領(lǐng)域得到廣泛應(yīng)用。這些模型及方法相對(duì)簡單,都是通過對(duì)歷史門診量數(shù)據(jù)進(jìn)行取樣擬合實(shí)現(xiàn)預(yù)測(cè)功能,在時(shí)間序列預(yù)測(cè)領(lǐng)域效果較好,然而在處理非線性數(shù)據(jù)時(shí)不能較好地模擬和獲取數(shù)據(jù)的非線性特征,導(dǎo)致預(yù)測(cè)結(jié)果穩(wěn)定性較差。
門診量預(yù)測(cè)不是一個(gè)簡單的時(shí)間序列問題,而是包含空氣質(zhì)量、天氣和時(shí)間等各種非線性因素[5]。為了更好地獲取門診量數(shù)據(jù)非線性特征和提高預(yù)測(cè)精度,神經(jīng)網(wǎng)絡(luò)和組合預(yù)測(cè)方法[6-7]在門診量預(yù)測(cè)方面具有強(qiáng)大的優(yōu)勢(shì)。
本研究提出一種深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Net-work,DNN)預(yù)測(cè)模型,由RBM層和預(yù)測(cè)層組成,采用無監(jiān)督學(xué)習(xí)方法預(yù)訓(xùn)練網(wǎng)絡(luò)模型初始參數(shù)和提取數(shù)據(jù)特征,預(yù)測(cè)層引入殘差結(jié)構(gòu)使信息跨層傳輸,防止梯度消失,最后使用梯度下降法對(duì)整個(gè)網(wǎng)絡(luò)模型的參數(shù)進(jìn)行微調(diào)。將某醫(yī)院的門診量數(shù)據(jù)作為樣本訓(xùn)練模型并加以實(shí)現(xiàn),通過仿真實(shí)驗(yàn)驗(yàn)證了深度神經(jīng)網(wǎng)絡(luò)模型進(jìn)行門診量預(yù)測(cè)時(shí)準(zhǔn)確率更好。
典型的受限玻爾茲曼機(jī)(Restricted Boltzmann Machine,RBM)是深度學(xué)習(xí)算法的重要組成部分,由1個(gè)可見層v和1個(gè)隱含層h組成的雙層網(wǎng)絡(luò)??梢妼佑脕磔斎霕颖緮?shù)據(jù),隱含層用于數(shù)據(jù)特征提取,層內(nèi)相互獨(dú)立,層與層之間神經(jīng)元全連接。RBM的結(jié)構(gòu)如圖1所示。
圖1 RBM模型結(jié)構(gòu)
對(duì)于RBM的模型來說,給定可見層輸入v和隱含層輸出h,聯(lián)合組態(tài)方程為式(1)。
(1)
式中,ai和bj分別為可見層神經(jīng)元i和隱含層神經(jīng)元j的偏置信息;vi和hj分別為可見層神經(jīng)元i輸入值和隱含層神經(jīng)元j輸出值;wij為權(quán)重矩陣;n,m分別為可見層和隱含層神經(jīng)元的個(gè)數(shù)。
當(dāng)參數(shù)確定時(shí),聯(lián)合概率分布表示為式(2)。
(2)
Z為歸一化因子,計(jì)算式為式(3)。
(3)
分別計(jì)算可見層v節(jié)點(diǎn)集合和隱含層h節(jié)點(diǎn)集合的邊緣概率,計(jì)算式為式(4)、式(5)。
(4)
(5)
根據(jù)以上公式,可以推導(dǎo)出可見層和隱含層的條件概率分布為式(6)、式(7)。
(6)
(7)
根據(jù)條件概率分布,可以分別計(jì)算出可見層神經(jīng)元i和隱含層神經(jīng)元j的激活概率,為式(8)、式(9)。
(8)
(9)
式(8)、式(9)中,σ(·)為sigmoid函數(shù)。
采用對(duì)比散度(CD-k)方法近似求解參數(shù)梯度,選取樣本vi計(jì)算公式P(hj=1|v),根據(jù)該分布采樣隱含層向量h,計(jì)算正向梯度
(10)
式中,μ表示模型學(xué)習(xí)率。
1.2.1 建立網(wǎng)絡(luò)模型
根據(jù)人們就醫(yī)習(xí)慣,在病情允許情況下,一般都會(huì)選擇在工作日就醫(yī)。隨著互聯(lián)網(wǎng)技術(shù)的應(yīng)用,預(yù)約掛號(hào)成為主要就醫(yī)方式,醫(yī)生排班也幾乎全部集中在工作日,因此,每月的工作日天數(shù)是影響醫(yī)院門診量的關(guān)鍵因素。在醫(yī)院門診量預(yù)測(cè)中可以將歷史門診量數(shù)據(jù)和工作日天數(shù)作為輸入信息。
深度神經(jīng)網(wǎng)絡(luò)包含多個(gè)隱含層,層與層之間都是全連接,層數(shù)越多,訓(xùn)練的參數(shù)就越多,計(jì)算量就越大,引起梯度消失和梯度爆炸問題。為避免這種問題,在預(yù)測(cè)層引入殘差學(xué)習(xí)結(jié)構(gòu)(ResNet),激活函數(shù)采用ReLU函數(shù)能夠解決正區(qū)間梯度消失問題,加快訓(xùn)練速度,表達(dá)式如式(11)。
(11)
式中,si為輸出層輸出;wjk為隱含層到輸出的權(quán)重矩陣;ck為輸出層偏置;xi為下一年每月工作日天數(shù)作為輸入樣本數(shù)據(jù)。
根據(jù)前文所述,本研究所提出的深度神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型結(jié)構(gòu)如圖2所示。
圖2 深度神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)
本研究將前一年每月門診量數(shù)據(jù)和工作日天數(shù)作為預(yù)測(cè)模型的輸入,輸入信息結(jié)構(gòu)為:1月門診量,1月工作日天數(shù),……,12月門診量,12月工作日天數(shù);后一年每月工作日天數(shù)作為殘差結(jié)構(gòu)跨層輸入信息,對(duì)預(yù)測(cè)結(jié)果進(jìn)行引導(dǎo);模型輸出為后一年的月門診量預(yù)測(cè)結(jié)果。第一層輸入信息能夠獲取歷史門診量數(shù)據(jù)與工作日天數(shù)之間的關(guān)系,殘差結(jié)構(gòu)的輸入信息對(duì)預(yù)測(cè)結(jié)果進(jìn)行引導(dǎo)實(shí)現(xiàn)更高預(yù)測(cè)精度。網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)輸入層24個(gè)神經(jīng)元,輸出層12個(gè)神經(jīng)元,根據(jù)經(jīng)驗(yàn)公式[8]確定隱含層為2層,神經(jīng)元節(jié)點(diǎn)數(shù)分別為24、12。
1.2.2 算法流程
深度神經(jīng)網(wǎng)絡(luò)門診量預(yù)測(cè)算法操作步驟如下。
步驟1:對(duì)樣本進(jìn)行歸一化處理,劃分訓(xùn)練樣本集和測(cè)試樣本集;
步驟2:建立深度神經(jīng)網(wǎng)絡(luò)模型,初始化相關(guān)參數(shù),包括權(quán)重、偏置和學(xué)習(xí)率等;
步驟3:模型預(yù)訓(xùn)練階段,采用逐層訓(xùn)練方法,先訓(xùn)練第一個(gè)RBM,根據(jù)式(10)更新權(quán)重和偏置;上一層RBM的輸出作為下一層的輸入,再次訓(xùn)練,直至獲取每一層的初始化參數(shù)結(jié)束;
步驟4:訓(xùn)練神經(jīng)網(wǎng)絡(luò),對(duì)模型各層參數(shù)進(jìn)行微調(diào),采用梯度下降法對(duì)每層參數(shù)進(jìn)行調(diào)整,最終訓(xùn)練結(jié)束得到深度神經(jīng)網(wǎng)絡(luò)模型。
步驟5:輸入測(cè)試樣本集,對(duì)深度神經(jīng)網(wǎng)絡(luò)模型進(jìn)行精確性驗(yàn)證。
以某醫(yī)院2014-2018年的門診量數(shù)據(jù)作為試驗(yàn)數(shù)據(jù),抽取學(xué)習(xí)樣本80%作為訓(xùn)練集,20%作為測(cè)試集。訓(xùn)練集用于訓(xùn)練模型,更新參數(shù);測(cè)試集用于檢驗(yàn)?zāi)P偷念A(yù)測(cè)精度。
采用平均相對(duì)誤差(MRE)和均方根相對(duì)誤差(MSRE)來對(duì)模型預(yù)測(cè)進(jìn)度進(jìn)行評(píng)價(jià)和比較,如式(12)、式(13)。
(12)
(13)
式(12)、式(13)中,fi表示實(shí)際的值;yi表示預(yù)測(cè)的值。
在Matlab環(huán)境下進(jìn)行仿真實(shí)驗(yàn),將ARIMA模型[1]、GM模型[3]、BP神經(jīng)網(wǎng)絡(luò)模型和深度神經(jīng)網(wǎng)絡(luò)模型分別用于門診量預(yù)測(cè)。
本研究將RBM的學(xué)習(xí)率設(shè)為0.05,激活函數(shù)為sigmoid函數(shù)。重構(gòu)誤差是預(yù)訓(xùn)練階段對(duì)樣本數(shù)據(jù)進(jìn)行特征提取的效果評(píng)價(jià)指標(biāo),重構(gòu)誤差越小,學(xué)習(xí)效果越好,其提取特征更具有代表性。在預(yù)訓(xùn)練階段,3層RBM的重構(gòu)誤差變化曲線圖如圖3所示。
圖3 3層RBM重構(gòu)誤差變化曲線圖
由圖3可知,每層RBM重構(gòu)誤差均隨著重構(gòu)次數(shù)增加而不斷變小,其中第3層RBM在第50次重構(gòu)訓(xùn)練時(shí)重構(gòu)誤差已經(jīng)將至0.000 53。2層RBM和3層RBM的重構(gòu)誤差曲線極為接近,因此,深度神經(jīng)網(wǎng)絡(luò)模型2層RBM學(xué)習(xí)之后,即可從原始樣本中提取代表性較強(qiáng)的數(shù)據(jù)特征,本研究神經(jīng)網(wǎng)絡(luò)模型能夠提取較強(qiáng)的數(shù)據(jù)特征。
在預(yù)測(cè)模型微調(diào)階段,設(shè)置網(wǎng)絡(luò)訓(xùn)練算法最大次數(shù)為1 000次,學(xué)習(xí)率為0.1。對(duì)比模型得到的預(yù)測(cè)結(jié)果如圖4所示。
圖4 4種模型的門診量預(yù)測(cè)值
可以看出,深度神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)曲線更加接近實(shí)際值曲線,預(yù)測(cè)效果明顯優(yōu)于其他模型,說明解決非線性系統(tǒng)問題,深度神經(jīng)網(wǎng)絡(luò)模型具有更好的適應(yīng)性,適用于醫(yī)院門診量預(yù)測(cè)。
ARIMA模型和GM模型無法考慮到其他因素對(duì)門診量的影響,當(dāng)外界因素發(fā)生變化時(shí),預(yù)測(cè)結(jié)果誤差就大。預(yù)測(cè)誤差比較曲線如圖5所示。
圖5 4種模型預(yù)測(cè)誤差對(duì)比圖
可以看出對(duì)12個(gè)月的門診量預(yù)測(cè)數(shù)據(jù)誤差值,其中深度神經(jīng)網(wǎng)絡(luò)模型的預(yù)測(cè)結(jié)果大多數(shù)誤差值分布更近于0。表明工作日天數(shù)作為影響門診量的主要因素,對(duì)預(yù)測(cè)結(jié)果的準(zhǔn)確性起著極大作用,在樣本數(shù)據(jù)較少的情況下,也能獲取較高的預(yù)測(cè)精度。
對(duì)比模型平均相對(duì)誤差和均方根相對(duì)誤差的比較結(jié)果如表1所示。
表1 4種模型預(yù)測(cè)誤差比較表
可以看出深度神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)方法的平均相對(duì)誤差和均方根誤差均最小。說明本研究提出的深度神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型預(yù)測(cè)精度和穩(wěn)定性都優(yōu)于傳統(tǒng)的預(yù)測(cè)模型,預(yù)測(cè)性能最好。
本研究使用的深度神經(jīng)網(wǎng)絡(luò)模型進(jìn)行門診量預(yù)測(cè),雖然該模型為非線性模型,但只包含2個(gè)隱層,并且各層神經(jīng)元個(gè)數(shù)較少,因此計(jì)算效率高。使用如下仿真設(shè)備:Intel(R)Core(TM)i5-8500 CPU@3.00 GHz 3.00 GHz,內(nèi)存(RAM)為8 GB,64位操作系統(tǒng),程序運(yùn)行6.81秒便可以獲取最優(yōu)預(yù)測(cè)效果,預(yù)測(cè)所用時(shí)間極少。在樣本數(shù)量大,隱層數(shù)多且隱層神經(jīng)元個(gè)數(shù)多時(shí),需要訓(xùn)練的參數(shù)會(huì)急劇增加,預(yù)測(cè)速率會(huì)受到影響。在這種情況下,可以考慮采用并行計(jì)算的方法來提速,這也是當(dāng)前的研究熱點(diǎn),這里不予贅述。
針對(duì)醫(yī)院門診量預(yù)測(cè)問題,考慮歷史門診量數(shù)據(jù)和工作日天數(shù)因素,提出一種基于深度神經(jīng)網(wǎng)絡(luò)的門診量預(yù)測(cè)方法,使用RBM對(duì)樣本數(shù)據(jù)進(jìn)行特征提取和網(wǎng)絡(luò)參數(shù)預(yù)訓(xùn)練;預(yù)測(cè)層引入殘差結(jié)構(gòu)使輸入信息能夠跨層傳輸,引導(dǎo)預(yù)測(cè)結(jié)果;最后對(duì)整個(gè)網(wǎng)絡(luò)模型的參數(shù)進(jìn)行微調(diào)達(dá)到最優(yōu)。實(shí)驗(yàn)結(jié)果表明,在小樣本數(shù)據(jù)情況下,該模型能夠較好地提取樣本數(shù)據(jù)特征,非線性擬合能力強(qiáng),預(yù)測(cè)精度優(yōu)于對(duì)比模型,能較好地逼近實(shí)際情況。深度神經(jīng)網(wǎng)絡(luò)模型具有更好的預(yù)測(cè)效果,能夠?yàn)楝F(xiàn)代醫(yī)院資源優(yōu)化配置提供更為準(zhǔn)確的參考依據(jù)。
本研究重點(diǎn)考慮了歷史門診量數(shù)據(jù)和工作日天數(shù)作為預(yù)測(cè)主要因素,未能考慮其他因素對(duì)預(yù)測(cè)結(jié)果的影響,如空氣質(zhì)量、氣象等,將在今后的研究中可融合多種外界因素,展開進(jìn)一步研究。