吳磊,徐凱
(1.重慶醫科大學附屬第一醫院 信息中心,重慶 400016;2.重慶交通大學 信息科學與工程學院,重慶 400074)
隨著信息科技的快速發展,醫院診療工作趨向于智能化、精細化和高效化,人們在享受醫療服務的同時,對就醫體驗要求更高。準確有效地預測醫院門診量可以為醫療資源配置等活動提供科學依據和決策支持,因此,門診量的精準預測為開展醫療工作和提高服務質量有重要作用。
合理的預測方法和預測模型是提高門診量預測準確度的關鍵因素。在早期的研究中,ARIMA模型[1]、移動平均季節指數模型[2]、灰色GM(1,1)模型[3]和模糊時間序列模型[4]等方法在門診量預測領域得到廣泛應用。這些模型及方法相對簡單,都是通過對歷史門診量數據進行取樣擬合實現預測功能,在時間序列預測領域效果較好,然而在處理非線性數據時不能較好地模擬和獲取數據的非線性特征,導致預測結果穩定性較差。
門診量預測不是一個簡單的時間序列問題,而是包含空氣質量、天氣和時間等各種非線性因素[5]。為了更好地獲取門診量數據非線性特征和提高預測精度,神經網絡和組合預測方法[6-7]在門診量預測方面具有強大的優勢。
本研究提出一種深度神經網絡(Deep Neural Net-work,DNN)預測模型,由RBM層和預測層組成,采用無監督學習方法預訓練網絡模型初始參數和提取數據特征,預測層引入殘差結構使信息跨層傳輸,防止梯度消失,最后使用梯度下降法對整個網絡模型的參數進行微調。將某醫院的門診量數據作為樣本訓練模型并加以實現,通過仿真實驗驗證了深度神經網絡模型進行門診量預測時準確率更好。
典型的受限玻爾茲曼機(Restricted Boltzmann Machine,RBM)是深度學習算法的重要組成部分,由1個可見層v和1個隱含層h組成的雙層網絡。可見層用來輸入樣本數據,隱含層用于數據特征提取,層內相互獨立,層與層之間神經元全連接。RBM的結構如圖1所示。

圖1 RBM模型結構
對于RBM的模型來說,給定可見層輸入v和隱含層輸出h,聯合組態方程為式(1)。
(1)
式中,ai和bj分別為可見層神經元i和隱含層神經元j的偏置信息;vi和hj分別為可見層神經元i輸入值和隱含層神經元j輸出值;wij為權重矩陣;n,m分別為可見層和隱含層神經元的個數。
當參數確定時,聯合概率分布表示為式(2)。
(2)
Z為歸一化因子,計算式為式(3)。
(3)
分別計算可見層v節點集合和隱含層h節點集合的邊緣概率,計算式為式(4)、式(5)。

(4)

(5)
根據以上公式,可以推導出可見層和隱含層的條件概率分布為式(6)、式(7)。
(6)
(7)
根據條件概率分布,可以分別計算出可見層神經元i和隱含層神經元j的激活概率,為式(8)、式(9)。
(8)
(9)
式(8)、式(9)中,σ(·)為sigmoid函數。
采用對比散度(CD-k)方法近似求解參數梯度,選取樣本vi計算公式P(hj=1|v),根據該分布采樣隱含層向量h,計算正向梯度

(10)
式中,μ表示模型學習率。
1.2.1 建立網絡模型
根據人們就醫習慣,在病情允許情況下,一般都會選擇在工作日就醫。隨著互聯網技術的應用,預約掛號成為主要就醫方式,醫生排班也幾乎全部集中在工作日,因此,每月的工作日天數是影響醫院門診量的關鍵因素。在醫院門診量預測中可以將歷史門診量數據和工作日天數作為輸入信息。
深度神經網絡包含多個隱含層,層與層之間都是全連接,層數越多,訓練的參數就越多,計算量就越大,引起梯度消失和梯度爆炸問題。為避免這種問題,在預測層引入殘差學習結構(ResNet),激活函數采用ReLU函數能夠解決正區間梯度消失問題,加快訓練速度,表達式如式(11)。
(11)
式中,si為輸出層輸出;wjk為隱含層到輸出的權重矩陣;ck為輸出層偏置;xi為下一年每月工作日天數作為輸入樣本數據。
根據前文所述,本研究所提出的深度神經網絡預測模型結構如圖2所示。

圖2 深度神經網絡模型結構
本研究將前一年每月門診量數據和工作日天數作為預測模型的輸入,輸入信息結構為:1月門診量,1月工作日天數,……,12月門診量,12月工作日天數;后一年每月工作日天數作為殘差結構跨層輸入信息,對預測結果進行引導;模型輸出為后一年的月門診量預測結果。第一層輸入信息能夠獲取歷史門診量數據與工作日天數之間的關系,殘差結構的輸入信息對預測結果進行引導實現更高預測精度。網絡結構設計輸入層24個神經元,輸出層12個神經元,根據經驗公式[8]確定隱含層為2層,神經元節點數分別為24、12。
1.2.2 算法流程
深度神經網絡門診量預測算法操作步驟如下。
步驟1:對樣本進行歸一化處理,劃分訓練樣本集和測試樣本集;
步驟2:建立深度神經網絡模型,初始化相關參數,包括權重、偏置和學習率等;
步驟3:模型預訓練階段,采用逐層訓練方法,先訓練第一個RBM,根據式(10)更新權重和偏置;上一層RBM的輸出作為下一層的輸入,再次訓練,直至獲取每一層的初始化參數結束;
步驟4:訓練神經網絡,對模型各層參數進行微調,采用梯度下降法對每層參數進行調整,最終訓練結束得到深度神經網絡模型。
步驟5:輸入測試樣本集,對深度神經網絡模型進行精確性驗證。
以某醫院2014-2018年的門診量數據作為試驗數據,抽取學習樣本80%作為訓練集,20%作為測試集。訓練集用于訓練模型,更新參數;測試集用于檢驗模型的預測精度。
采用平均相對誤差(MRE)和均方根相對誤差(MSRE)來對模型預測進度進行評價和比較,如式(12)、式(13)。
(12)
(13)
式(12)、式(13)中,fi表示實際的值;yi表示預測的值。
在Matlab環境下進行仿真實驗,將ARIMA模型[1]、GM模型[3]、BP神經網絡模型和深度神經網絡模型分別用于門診量預測。
本研究將RBM的學習率設為0.05,激活函數為sigmoid函數。重構誤差是預訓練階段對樣本數據進行特征提取的效果評價指標,重構誤差越小,學習效果越好,其提取特征更具有代表性。在預訓練階段,3層RBM的重構誤差變化曲線圖如圖3所示。

圖3 3層RBM重構誤差變化曲線圖
由圖3可知,每層RBM重構誤差均隨著重構次數增加而不斷變小,其中第3層RBM在第50次重構訓練時重構誤差已經將至0.000 53。2層RBM和3層RBM的重構誤差曲線極為接近,因此,深度神經網絡模型2層RBM學習之后,即可從原始樣本中提取代表性較強的數據特征,本研究神經網絡模型能夠提取較強的數據特征。
在預測模型微調階段,設置網絡訓練算法最大次數為1 000次,學習率為0.1。對比模型得到的預測結果如圖4所示。

圖4 4種模型的門診量預測值
可以看出,深度神經網絡模型預測曲線更加接近實際值曲線,預測效果明顯優于其他模型,說明解決非線性系統問題,深度神經網絡模型具有更好的適應性,適用于醫院門診量預測。
ARIMA模型和GM模型無法考慮到其他因素對門診量的影響,當外界因素發生變化時,預測結果誤差就大。預測誤差比較曲線如圖5所示。

圖5 4種模型預測誤差對比圖
可以看出對12個月的門診量預測數據誤差值,其中深度神經網絡模型的預測結果大多數誤差值分布更近于0。表明工作日天數作為影響門診量的主要因素,對預測結果的準確性起著極大作用,在樣本數據較少的情況下,也能獲取較高的預測精度。
對比模型平均相對誤差和均方根相對誤差的比較結果如表1所示。

表1 4種模型預測誤差比較表
可以看出深度神經網絡預測方法的平均相對誤差和均方根誤差均最小。說明本研究提出的深度神經網絡預測模型預測精度和穩定性都優于傳統的預測模型,預測性能最好。
本研究使用的深度神經網絡模型進行門診量預測,雖然該模型為非線性模型,但只包含2個隱層,并且各層神經元個數較少,因此計算效率高。使用如下仿真設備:Intel(R)Core(TM)i5-8500 CPU@3.00 GHz 3.00 GHz,內存(RAM)為8 GB,64位操作系統,程序運行6.81秒便可以獲取最優預測效果,預測所用時間極少。在樣本數量大,隱層數多且隱層神經元個數多時,需要訓練的參數會急劇增加,預測速率會受到影響。在這種情況下,可以考慮采用并行計算的方法來提速,這也是當前的研究熱點,這里不予贅述。
針對醫院門診量預測問題,考慮歷史門診量數據和工作日天數因素,提出一種基于深度神經網絡的門診量預測方法,使用RBM對樣本數據進行特征提取和網絡參數預訓練;預測層引入殘差結構使輸入信息能夠跨層傳輸,引導預測結果;最后對整個網絡模型的參數進行微調達到最優。實驗結果表明,在小樣本數據情況下,該模型能夠較好地提取樣本數據特征,非線性擬合能力強,預測精度優于對比模型,能較好地逼近實際情況。深度神經網絡模型具有更好的預測效果,能夠為現代醫院資源優化配置提供更為準確的參考依據。
本研究重點考慮了歷史門診量數據和工作日天數作為預測主要因素,未能考慮其他因素對預測結果的影響,如空氣質量、氣象等,將在今后的研究中可融合多種外界因素,展開進一步研究。