吴磊,徐凯
(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对样本数据进行特征提取和网络参数预训练;预测层引入残差结构使输入信息能够跨层传输,引导预测结果;最后对整个网络模型的参数进行微调达到最优。实验结果表明,在小样本数据情况下,该模型能够较好地提取样本数据特征,非线性拟合能力强,预测精度优于对比模型,能较好地逼近实际情况。深度神经网络模型具有更好的预测效果,能够为现代医院资源优化配置提供更为准确的参考依据。
本研究重点考虑了历史门诊量数据和工作日天数作为预测主要因素,未能考虑其他因素对预测结果的影响,如空气质量、气象等,将在今后的研究中可融合多种外界因素,展开进一步研究。