医学诊断[1]是医务人员根据病人的病史,症状检查结果等信息进行归纳处理。经过总和分析,得出病因的一个过程,所以得出一个准确,可靠的结论十分重要。推理是诊断的一个重要部分,但由于医生往往凭借自己所掌握的病理学知识和多年积累的经验得出诊断结果,受主观因素影响比较大,可能造成误诊。诊断是指上时一个分类过程,因此根据诊者的睡眠指标(Sleepquality,sleeplatency,sleeptime,sleepefficiency,sleepdisorder,Hypnagogue,Daytimedyfunction)来预测。
神经网络[2]的基本处理单元是神经元(即节点),大量神经元广泛连接构成神经网络。BP网络通常含有输入层、隐含层(中间层)和输出层,每层均包括多个神经元,输入层与输出层各有一层,隐含层根据需要可以设多层,也可不设。神经元之间通过权相互连接,前一层神经元只对下一层神经元作用,同层神经元之间无相互作用,权值的大小代表上一级神经元对下一级神经元的影响度。
BackPropagation是为了解决多层前向神经网络的权值调整而提出来的,也称为反向传播算法,即网络权值的调整规则是向后传播学习算法,具体来说,BP算法是建立在梯度下降法的基础上的,训练过程由正向传播和反向传播组成,在正向传播过程中,输入信息由输入层经隐含层逐层处理,并传向输出层,如果输出层得不到期望的输出,则转入反向传播,逐层递归的计算实际输入与期望输入的差即误差,将误差信号沿原来的连接通道返回,通过修改各层神经元的权引值,最终使得误差信号最小。
1.2神经网络模型的建立
孙高[3]等人利用神经模型BP算法的多层前馈网络,建立用于肺癌诊断的神经网络模型,基于前人的研究,总结了建立神经网络的步骤。
建立神经网略的医学诊断系统的过程可分为4步[4]
Step1,数据的归类整理。根据附件二选取了7个指标(去掉了年龄和性别两个)。从前文已知,文章用聚类分析将14++种病分为8类(分别用y1,y2,+++表示),每类取20组数据(尽量选取更多的疾病),作为神经网络的输入。
Step2,建立神经网络模型。采用BP神经网络。结构采用隐含层单元数确定法。
Strp3,神经网络计算输出。将神经网络的输入内容输入网络,立刻可以得到网络的输出结果。
Step4,匹配推理,得出诊断结论。将神经网络的输出结果(即系统初步诊断的结果,也就是初步判定该病所属的类别)进一步根据前文对每类的定性分析,进而确定具体疾病。
1.3数据的归类整理
1.3.1样本分组
从前文已知,文章用聚类分析将118种病分为8类(分别用Y1+++表示),A组,训练样本:160,每类取20组数据(尽量选取更多的疾病)共160组数据。
B组,测试样本:160,同样选160组数据检测网络性能。
1.3.2疾病诊断的指标选取及量化
在问题一中,根据逐步回归,得到回归方程+++,研究结果表明,年龄与性别对睡眠质量有正显著影响,因此在做進一步研究时,不考虑性别和年龄,认为睡眠质量可以替代它们。
将附件二病例资料库中的病例资料首先要进行归一化处理,处理后的数据作为网络模型的原始数据矩阵。归一化处理的目的时把两个变量固定到区间[-1,1]内,可以改善网络的性能归一化处理可采用一下两种形式。
式中:为归一化后样本中第j个样品的第i个输入变量
为原始资料第j个样品的第i个输入变量
与为原始资料第j个样品的第i个输入变量的最大值和最小值
设输入矢量为X,则X=(X1,X2,X3,X4,X5,X6,X7),输入量Xi别对应疾病诊断的7个临床特征;网络输出矢量为诊断诊断结果(即前文对疾病做出的8项分类),用Y表示,,。
表1类别在神经网络中的代表符号
1.4设计合适的神经网络参数
对于每个诊断网,其包括的指标有几个,则它的输入单元数就为几个,文章有7个。单层隐含层,隐含层数目4~10之间,用过灵敏度修剪算法确定隐含层的最佳神经元个数。而每个诊断网的输出有8种,故输出单元数为3;训练次数为1000次,训练目标为0.0001,学习速度0.1;隐含层采用型正切函数Tansig,输出型采用型对数函数Logsig,网络训练的函数设定为Trainlm。
1.5测试样本的前瞻性考核
将病人的各项诊断指标(即附件二采用的X1,X2,X3,X4,X5,X6,X7七个指标)作为前向网络的输入数据加到其输出端,不断调整神经网络的输出和实际患病情况,当训练样本集网络的输出基本上能保证与实际一致(约80%以上)时,认为神经网络已经可以用来进行预测。将附件二中前50个病例资料输入到上述训练好的BP神经网络进行测试,结果有8例预测错误,预测的一致率为84%。该神经网络前瞻性考核[1]效果较好,可以进行预测。
1.6诊断过程及结果
将附件三提供的10个患者关于睡眠的七个指标输入到训练好的神经网络中,输出的结果为下表4
作者:王子超等
参考文献:
[1]王俊杰,陈景武.BP神经网络在疾病预测中的应用[J].数理医药学杂志,2008,(03):259-262.
[2]闻新,周露,王丹力等.MATLAB神经网络应用设计[M]。北京:科学出版社,2000;207-212.
[3]沈花玉.神经网络在医学诊断中的应用研究[D].天津理工大学,2007.
[4]孙高,周宝森,杨静宇,邬永革.基于人工神经网络的肺癌诊断研究[J].中国卫生统计,1999,(03):15-17.