数理医药学杂志 2008年第21卷第3期 文章编号:1004—4337(2008)03—0259—04 中图分类号:R311 文献标识码:A ・医学数学模型探讨・ BP神经网络在疾病预测中的应用 王俊杰 陈景武 (山东省潍坊医学院卫生统计教研室潍坊261042) 摘要: 目的:探讨BP神经网络在疾病预测中的应用 方法:设计合适的BP神经网络模型,用Matlab7.0编写模型程序,利 用精神分裂症影响因素拟合模型。结果:BP神经网络在精神分裂症发病与否的预测中取得了较好的效果 结论:BP神经网络在流 行病学中有良好的应用前景。 关键词:BP神经网络; 疾病预测; BP算法; 精神分裂症 BP神经网络是人工神经网络的一种,它通过模仿生物大 经元广泛连接构成神经网络。BP网络通常含有输入层、隐含 脑神经系统信息处理功能实现输入与输出之间的任意非线性 层(中间层)和输出层,每层均包括多个神经元,输入层与输出 优化映射,有着传统统计方法无法比拟的适应性、容错性及自 层各有一层,隐含层根据需要可以设多层,也可不设。神经元 组织性等优点,特别是用传统统计方法效果不好或不能达到 之间通过权相互连接,前一层神经元只对下一层神经元作用, 目的时,采用BP神经网络往往能收到较好的效果,它在疾病 同层神经元之间无相互作用,权值的大小代表上一级神经元 预测中有着广阔的应用前景。 对下一级神经元的影响程度,如图1所示。网络中作用于神 经元的激励函数通常采用的是S型函数(sigmoid可微函数), l BP神经网络基本结构及BP算法基本原理 见式(1)。 BP神经网络的基本处理单元是神经元(即节点),大量神 厂(z)一(1+8一Q) (1) -、+-+-+-+一+一+ +-+一+-+一+”+-+一+一+-+-+-+ +一+-+-+-— 卜- +-+ 2004,1:21. 4结束语 0 郑云枫,彭国平.栀子药材HPLC指纹图谱的研究.南京中医药大 本研究通过采集中药材HPLC指纹图谱数据,建立符合 学学报(自然科学版),2005,1:45 ̄47. 药材特征的数学模型,分析待测药材的质量等级及产地分布, 易中宏,胥秀英,郑一敏,王龙.茯苓药材指纹图谱模糊模式识别研 得到了很好的辨别效果,该模型可以广泛应用于各种中药材 究.现代中药研究与实践,2004,4:62. 的分析和评估。 袁鹏,张铭光。袁敏等.模糊聚类分析法在郁金裂解色谱测定指纹 图谱中的应用研究.计算机与应用化学,2005,3:201 ̄205. 参考文献 。 聂磊,罗国安,曹进,王义明.中药二维信息指纹图谱模式识别.药 学学报,2004,2:136~139. 1王瑾,胡璨华.中药指纹图谱的研究概述.解放军药学学报,2004, 7 邓捷圆,高广慧,孙晓军,赵春杰.不同产地白芷药材HPLC指纹 3:214 ̄216. 图谱的研究.药学服务与研究,2004,4:335~339. 2杨桂芳,王鹏.中药指纹图谱的建立方法和作用.时珍国医国药,8 胡宝清.模糊理论基础.武汉大学出版社,2004,10:179~181. The Quality Assessment and Origin Analysis Model of Chinese Herbal Medicines based on the weighted Fuzzy Recognition Lan Jibin。et al (College of Mathematics and Information Science,Guangxi University,Nangning 530004) Abstract As the quality of the medicines on the market varies greatly,based on the weighted fuzzv Dat— tern recognition Of quality assessment and origin analysis model of Chinese herbal medicines,a method using HPLC fingerprint of the medicines is presented to assess the quality and origin in this paper.The numerical experiments show that the method has good resolution.By an example,it is verified that this model is more feasible and effective than the previous mode1 in practice. Key words fingerprint;fuzzy pattern recognition;weighted;threshold 收稿日期:2008一O1—10 通讯作者:陈景武 ・ 259 ・ 维普资讯 http://www.cqvip.com
Journal of Mathematical Medicine Vo121 .No.3 2008 式中Q为调节激励函数形式的参数,称增益值。Q值越大,S 形曲线越陡峭;反之,曲线越平坦,通常取Q=I。 BP算法(Back Propagation)是为了解决多层前向神经网 的调整规则是向后传播学习算法,具体来说,BP算法是建立 组成,在正向传播过程中,输入信息由输入层经隐含层逐层处 理,并传向输出层,如果输出层得不到期望的输出,则转入反 向传播,逐层递归的计算实际输入与期望输入的差即误差,将 值,最终使得误差信号最小。 络的权值调整而提出来的,也称为反向传播算法,即网络权值 通过修改各层神经元的权 .~ 误差信号沿原来的连接通道返回,在梯度下降法的基础 的,训练过程由正向传播和反向传播 输入层 隐含层 输出层 z 代表输入变量, 代表输出变量,o代表神经元 图1 BP网络拓扑结构 2 BP网络的建模过程及模型设计要点 值)均落在Sigmoid传递函数变化较大的区间,使网络的训练 速度最快,改善网络的性能,当然如果输入及输出值原本就位 于[0,1]区间内,可不进行的归一化处理,归一化处理可采取 以下两种形式: 一乃 /( 一 在流行病学中,可以应用BP网络建立疾病的预测模型, 建模的基本过程如下:首先收集导致疾病发生的主要影响因 素及疾病发生的结果;然后把影响因素及疾病结果输入到设 计好神经网络模型中进行反复训练,直到网络收敛(即达到预 期的训练误差),在训练过程中可适当采用一定的技巧使网络 的训练速度最快、误差最小、模型最优;最后用建立好的模型 进行疾病预测。下面具体探讨网络模型的设计要点。 2.1确定训练样本 训练样本应来源于研究总体的一个随机无偏样本,并且 按随机、对照、重复及盲法等原则收集资料、整理资料、分析资 料,保证训练结果的无偏性。训练样本含量适宜,含量过大会 一 ) (2) /( 一) (3) 上式中 为归一化后样本中第J个样品的第i个输入变 量,刁 为原始资料第J个样品的第i个输入变量;如,~与 , 为原始资料第J个样品的第 个输入变量的最大值和最 小值。 2.3 BP网络的初始化 开始训练时,首先进行网络权值的初始化,这是因为如果 初始权值选择不当,有可能造成训练时间过长,误差平面陷入 局部极小 ,甚至不收缩。所以网络的初始权值一般取[一1 造成训练速度偏慢,训练结果过分逼近训练集(或者说是该研 究的外部真实性较差),使得网络的推广泛化能力降低,况且, 大样本的收集大大增加了工作量;样本过小其代表性不够,使 训练结果不够可靠(或者说是该研究的内部真实性较差)。一 般来说,网络的结构越复杂,所需样本越多,结构越简单,所需 样本可相应减少。对于单层BP网络可参照Logistic回归对 样本含量的一般要求,当样本含量与连接权的个数比为10:1 ,1]之间的随机数,这样可保证每个神经元的权值都能够在型 传递函数变化梯度最大的地方进行调节。 2.4输入层的设计 输入层仅设一层,输入神经元的个数与输入变量的个数 相同。 2.5隐含层的设计 一就基本能够满足要求,多层BP网络的样本量应在此基 是隐含层的层数,对BP网络而言,一个三层BP网络就 础上根据网络的复杂程度适当增加。 2.2变量值的归一化处理 归一化处理的目的是把变量值归一到区间[~1,1]内,此 可以完成任意的n维到m维的映射,一般情况下,采用单隐层 的网络就可满足要求;二是隐含层神经元的个数,隐单元数目 的确定比较复杂,与资料的特点、输人输出单元的数目都有关 系,往往根据设计者的经验和多次试验来确定,本文采取类似 于统计学中建立”最优”多元回归方程中逐步向前法和向后法 的方式来确定隐单元的数目,该方法如下:先根据以下公式『3 原因大致有两个:一是因为BP网络中非线性传递函数的值域 一般在区间[一1,1]内,因此输入及输出变量的取值都限于这 26O・ 个区间之内。二是为了使输入值(特别是那些比较大的输入 ・ 维普资讯 http://www.cqvip.com 数理医药学杂志 确定一个隐单元数的范围, 一 2008年第21卷第3期 如何克服局部极小。BP算法可以使权值收缩到某个值, (4) +口 但并不能保证其误差平面的全局最小值,这是因为采用梯度 下降发可能会产生一个局部最小值。对于这个问题,可采用 附加动量法l_7]、遗传算法等。 4模型拟合实例 式中 为输入单元数,m为输出单元数,a为[1,103之间 的常数。 然后放人足够多的隐单元,通过训练将那些不起作用的 隐单元逐步剔除,直到不收缩为止(此即灵敏度修剪算法 ]); 或者在开始时放入比较少的神经元,逐步增加隐单元的数目, 直到达到比较合理的隐单元数目为止。 2.6输出层的设计 某市通过随机抽样、多因素逐步Logistic回归分析该市的 4所精神病医院的精神分裂症新发病例及其对照各131例,筛 选出影响精神分裂症发病的主要因素共1O个:X1(本人学 历)、X2(母亲学历)、X3(婚姻状况)、X4(事件经历史)、X5(性 输出层仅有一层,输出层神经元的个数与所希望得出的 预测变量数目相等。 格)、X6(32作学习压力)、X7(母亲孕龄)、X8(出生体重)、X9 (家族史)、XlO(q ̄双亲抚养史)。变量赋值如表1。 3其它需要注意的问题 4.1确定训练样本及测试样本。以上述131对样品作为训 如何提高网络的泛化能力。网络的泛化能力,通俗的说 练样本,另外选取精神分裂症患者及正常人各2O例作为测试 就是网络对新样本的预测能力。网络的泛化能力与网络的结 样本。 构和训练样本的特性有关,一般说来,网络的隐节点数与隐层 4.2设计合适的神经网络参数。输入神经元1O个,单层隐 数越少,网络的泛化能力越强,因此在实际应用时尽可能采用 含层,隐含层神经元数目4~13个之间,通过灵敏度修剪算法 较少的隐节点数和隐层数来得到较优的网络,另外,加入噪声 确定隐含层的最佳神经元个数,输出层神经元个数为1;训练 等也可以提高网络的泛化能力[ 。 次数1000次,训练目标0.01,学习速率0.1;隐含层采用型正 如何提高网络的训练速度与收敛速度。为提高训练速 切函数tansig,输出层采用型对数函数logsig,网络训练的函 度,可采用变化的学习速率或自适应的学习速率l_6]。 数设定为trainlm。 表1精神分裂症发病影响因素及量化 4.3编写程序。应用Matlab7.0编写BP神经网络程序如下: p一[0 1 3 1 0 0 3 0 1 0;0 1 1 2 2 1 4 1 2 1;……] ; 输入训练样本的输入变量P for i一1:1O P(i,:)一(p(i,:)--min(p(i,:)))/(max(p(i,:))--min(p(i,:))); %输入变量的归一化处理 end t一[1 1 1 1 1 1 1……] ; %输入训练样本的输出变量t threshold=[0 1;0 1;0 1;O 1;0 1;0 1;0 1;0 1;0 1;0 1]; 限定输入变量的最大值与最小值 nO一[4 5 6 7 8 9 10 11 12 13 14]; %隐含层神经元的个数 for i一1:l1 net=newff(threshold,K[no(i),1],{ tansig',"logsig"}, trainlm'); 设定网络训练函数 net.trainParam.epochs=1000 ̄ %设定训练次数 net.trainParam.goal ̄0.01; %设定训练目标 LP.1r=0.1; %设定学习速率 net=init(net); %网络的初始化 维普资讯 http://www.cqvip.com
Journal of Mathematical Medicine Vo1.21 No3 .2008 net=train(net,P,t); 网络训练 %输入预测样本的输入变量 归一化处理 p_test=[0 1 3 1 0 0 3 0 1 0;0 1 1 2 2 1 4 1 2 1;…… for i=1:10 Ptest(i,:) (p_test(i,:)--min(p__test(i,:)))/(max(p_test(i,:))--min(p_test(i,:))); end Out=sie(net,Ptest);r _输出预测变量 输入预测样本的实际结果 绘制预测误差曲线 x一[1 1 1 1 1 1 1 1……]; plot(1:40,X一0ut); 种类型,是否满足正态性、独立性等条件均可用于BP网络建 4.4 训练结果。通过反复训练发现,当隐含层神经元个数为 8时,网络的训练速度最快,仅需要9次训练便达到到了预期 的训练误差,训练的速度也比均匀,网络振荡最小。 4.5测试样本的前瞻性考核。把40个测试样本的调查资料 输入上述训练好的BP神经网络模型进行前瞻性考核,如果按 照预报误差大于0.05时为预测错误的标准,则病例中有2例 模。疾病的发病过程亦是一个受多因素影响的复杂过程,利 用传统的统计方法预测疾病的发生过程往往存在很大的局限 性,而BP神经网络的优点恰恰适合预测疾病的发生过程。 BP神经网络的设计直接关系到网络的应用效果,在应用时按 照资料的特点从每一细节考虑网络的设计。当然,BP网络在 流行病学领域的应用刚刚起步,尚存在一些问题有待解决,如 预测错误,正常人有3例预测错误,灵敏度及特异度分别为 90 、85 ,预测的一致率为87.5 ,前瞻性考核的效果较好, 通过预测误差曲线也可看出,如图2。 权重系数的假设检验,计算权重系数的可信区间,含隐含层时 权重系数的流行病学意义,输入变量的选择等都还需要进一 步研究。 参考文献 1 Martin S,Werner V,Reinhard R Neural networks and logostoe re- gression:Part I.Comp Stat Data Analy,1996,21:661. 2 Haykin,S神经网络原理(叶世伟等译).第2版.机械工业出版社, 2004. 3飞思科技产品研发中心.神经网络理论与MATLAB7实现.第1 版.电子工业出版社,2005. 4邓伟,金丕焕,林果为.BP神经网络修剪算法筛选白血病预后危险 因素.复旦学报(医学版),2003,2:154~157. 5 HolmstromL,KoistinenP—Using Additive Noise in Back-Propaga- tion-IEEE Trans・Neura1 Networks.1992,3:24 ̄38. 6张洪,邹乐君,沈晓华.BP神经网络在测井岩性识别中的应用.地 图2预测误差曲线 5讨论 质与勘探,2002,38(6):63 ̄65. 7武妍,施鸿宝.一种模糊规则动态调整BP算法中参数的方法.计算 机研究与发展,1998,35(8):689 ̄693. BP神经网络是一种非传统的多元非线性模型,可以识别 变量间复杂的非线性关系,功能十分强大,而且无论变量是何 ・ 262 ・
因篇幅问题不能全部显示,请点此查看更多更全内容