PSO—BP算法在医学中的应用
2013-04-29叶财智唐德玉
叶财智 唐德玉
摘要:粒子群优化算法(PSO)是一种带有全局随机性质的群体搜索演化算法, 鲁棒性强,通过微粒群优化算法同BP算法的结合 ,解决BP算法收敛速度慢,容易陷入局部最小值的问题,并实验证明PSOBP算法其收敛性能,学习速度和稳定性要优于BP算法。再结合实际需求,以印第安人肝癌疾病为例对PSOBP算法在医学中的应用进行探讨。
关键词: 粒子群算法;BP算法;PSOBP算法 ;印第安人肝癌;医学应用
中图分类号:TP301 文献标识码:A 文章编号:1009-3044(2013)07-1689-05
随着医疗改革政策的出台,越来越多的政策惠及于民,老百姓看病难的问题渐渐得到解决,但是看病并不能帮助老百姓解决根本性的问题-看好病,能够从根本上预防一些疾病,提前对疾病做出医学疗效的预测,合理控制药剂,药量的使用 ,让老百姓能够远离疾病的折磨和困扰,从而提高医疗服务的质量,降低患者的就医成本和用药成本,进而保证百姓的身体健康,这样才是百姓所需要的。在云计算和大数据的时代背景下,医院存有患者的大量数据,通过对海量数据的处理,建立预测模型,再对这个模型进行测试训练,挖掘出数据中潜藏的有价值的信息或者诊断规则,得到合适的算法模型,辅助医学诊断治疗成为了可能。
该文简单介绍了BP算法和微粒群优化算法,重点讨论了两种算法的结合,形成了PSOBP算法,并使用其优化BP算法的初始权值和阈值,并实验验证其比BP算法更具优越性,最后以印第安人肝癌疾病为医学应用事例,对PSOBP算法进行应用分析。
1 BP算法神经网络
BP神经网络(backpropagation,BP)是从仿生学的角度上模仿的生物智能科学行为,是基于误差反向传播的多层前向神经网络,具有良好的自适应、自组织和极强的学习、联想、容错和抗干扰能力[1].BP神经网络能模拟任意线性与非线性函数,因而具有良好的预测能力.其包含输入层,隐含层,输出层,各层都有一些神经元,与相邻层的所有各单元均互相连接,两个单元间的连接强度称为“权值”.主要步骤如下:
①确定BP神经网络结构。根据研究的具体问题设置BP神经网络输入层,隐含层,输出层,各层的节点数
②初始化BP神经网络相关参数,包括各连接层之间的权值和阈值,以及学习率
③根据隐含层输出H和预测误差O,计算网络输出误差
④判断误差是否符合要求,不满足的话。根据误差,调整各层误差, 更新网络连接权值和阈值。
⑤判断迭代是否结束,若没有结束,返回③。
2 粒子群优化(PSO)算法
粒子群优化(Particle Swarm Optimization, PSO)算法微粒群算法(PSO ) 是由Kennedy 和Eberhart等[2,3] 于1995 年开发的一种演化计算技术, 来源于对一个简化社会模型的模拟。通过群体中个体之间协作和信息的共享来搜索全局的最优解,其追随两个最优位置运行的信息共享原理为优化算法设计提供了崭新的思路. 这两个位置中的一个是粒子目前找到的最优解gbest,另一个是邻域内的个体目前找到的最优解 Pbest[4].
在微粒群算法中,粒子是D维搜索空间里没有质量和体积,带有位置和速度信息的微粒,并且在搜索空间里以变动的速度飞行,该飞行速度根据个体的飞
行经验和群体的飞行经验进行动态调整[5]。设搜索空间里存在n个微粒,则第i个微粒个体的位置可表示为Xi=(Xi1,Xi2,, Xi3,Xi4,.....Xin);飞行速度Vi=(Vi1,Vi2,, Vi3,Vi4,.....Vin);微粒i所经历的最好适应值的位置为Pi=(Pi1,Pi2,, Pi3,Pi4,.....Pin);微粒群体经历的最优位置为Pg=(Pg1,Pg2,, Pg3,Pg4,.....Pgn);
微粒的位置和速度通过以下公式进行更新[6]
其中:W是惯性系数,表示的微粒的历史速度对当前速度的影响;c1和c2表示加速因子,c1调节微粒飞向自身最优位置,c2调节微粒飞向全局最优位置,通常可以取c1=c2=2[6];rand1和rand2为均匀分布的随机数,范围在0到1之间,包括0和1,xidk为第k 次迭代粒子i 位置矢量的第d 维分量[7];速度公式(1)的第二项表明微粒个体的认知能力;第三项表明社会认知能力。基于公式(1)、(2)的微粒群算法称作基本微粒群算法[8]。
标准PSO 的算法流程图如图1所示。
3 基于PSOBP算法的研究
粒子群优化算法高效,结构简单,收敛速度快,容易实现,性能稳定,通过粒子群算法去优化BP神经网络的权值和阈值比BP神经网络算法随机产生权值和阈值获得的结构更具稳定性和优越性。
PSOBP算法步骤如下:
Step1:通过训练样本确定BP神经网络输入层,隐含层 ,输出层各层的节点数。
Step2:根据Step1中确定好的BP神经网络结构,建立关于BP神经网络权值和阈值同微粒群粒子维度空间的映射关系,即神经网络连接权值和阈值的总数目等于微粒群的维数,初始化微粒群的有关参数:惯性权值W,加速常数C1和C2以及初始位置X和初始速度V,设置最大最小速度,种群规模以及进化代数。
Step3: 设置[error=i=1i=n|Oi预测-Oi实际|]即训练误差和函数作为BP神经网络适应度评价函数,当error的值最小时,微粒群粒子的适应度达到最高,此时问题获得最优解。Oi预测为神经网络的预测输出,Oi实际 为神经网络的实际输出。
Step4: 根据BP神经网络的训练误差和Step3计算微粒群粒子的适应度值。
Step5: 比较各个粒子的适应度值与其历史最优位置的优劣,如果更好,则更新该粒子的适应度值作为粒子的最优位置,即Pbest 。
Step6: 比较各个粒子的适应度值同群体的历史最佳位置g best的优劣, 若更优,则更新gbest.
Step7: 根据2中公式1和公式2调整微粒的速度,更新微粒的位置
Step8: 根据种群的最优位置调整BP神经网络的相关参数,主要是连接权值和阈值。
Step9:对更新的粒子群进行适应度评价,判断迭代次数是否达到结束条件,如果满足结束条件,则算法停止,则如果不满足,则应该转入Step5继续迭代,直至满足结束条件为止。
4 PSOBP算法与BP算法的实验对比
Matlab是一种高性能的可视化科学和工程计算软件,它提供了完备的神经网络工具箱.可以大大节省对神经网络学习算法编程的时间,同时也提高了网络输出的精度.使建立起的网络更加可靠有效[9]。所以实验是在matlab的环境下进行的。
通过随机产生1900组关于函数z=x^2+y^2(-5 BP算法实验结果如图2: PSOBP算法的实验结果如图3: 通过图3和图 4比较,可以发现PSOBP算法在迭代次数上明显优于BP算法,BP算法需要1000epochs,PSOBP算法只需要epochs,BP算法和PSOBP算法在误差(MSE)训练数据和测试数据的拟合程度较高,但是PSOBP算法误差程度比BP算法更小。BP算法的的误差是5.0598E-006,PSOBP算法的误差是1.0454E-007. 由于医学上对于预测要求较高,预测的不稳定对于医学的诊断结果影响较大,所以我们重复了20次试验 分别记录下了BP算法和PSOBP算法的的误差,获得了PSOBP算法误差与BP算法误差曲线分布情况如图4。 由图4可以看出BP算法的误差波动大,不稳定,PSOBP算法的误差相对稳定,波动小,BP算法误差大部分范围都比PSOBP算法大了几个级数。由于PSOBP算法的稳定性更好和误差更小,作为医学实验的预测算法从效果上和准确性上来说会明显要优于BP算法。(注:粗线表示BP算法所得误差,细线表示PSOBP算法所得误差) 5 PSOBP算法在医学中的应用 5.1印第安人肝癌数据集 为了验证提出的PSOBP算法在医学中应用的有效性和可行性,采用UCI机器学习数据库网站提供的关于印第安人肺癌数据集作为實验的样本集。所使用的实验材料来自于 Bendi Venkata Ramana等教授于2012年5月21日所建立的Indian Liver Patient Dataset ,该数据集主要是针对印第安人肝癌患者记录,共有583条记录样本,9个输入属性为连续性数值属性,1个输入属性为非数值属性,一个类别标记属性“是否肝脏患者”(或称为输出属性),“是否肝脏患者”属性数值有1 和2两种,当“是否肝脏患者”属性值为1时,表示为印第安肝癌患者,数值值为2时,表示非印第安肝癌患者,该样本包含441个男性记录,142个女性记录。416个肝癌患者记录,167个非肝癌患者记录。 样本集属性说明如下:患者年龄,性别,总胆红素,结合胆红素,Alkphos 碱性磷酸酶,谷丙转氨酶,谷草转氨酶,总蛋白,白蛋白,白蛋白与球蛋白的比率,是否肝癌患者 5.2实验结果与分析 首先对数据集进行预处理,将性别非数值属性转换为数值属性男性用数值1表示,女性用数值0表示,处理完成后,选取前570条记录作为训练集,后13条记录作为测试集。通过PSOBP算法对前570记录进行训练,得到训练好的神经网络,然后通过训练好的网络对13条记录进行测试,获得测试后的结果,由于输出属性实际数值为1,2整数,预测结果是非整数值,所以采用四舍五入的取整处理。 通过30次重复实验,发现印第安肝癌患者通过PSOBP算法的获得预测曲线稳定在以下两种情况。 如图5和图6所示。 实际数值曲线为: 通过图5,图6同图7进行比较,结合表1可以发现,前期由于实际数值的波动性较小,数值稳定,所以能够较好的预测到结果,而后期由于数值有较大波动,预测结果有所差异,但整体的预测准确率稳定在85%,对于医学诊断预测能够具有良好的辅助作用,当准确率提高时,有利于增加医学预测诊断的实效性。 6 结束语 印第安人肝癌疾病实验事例证明了PSOBP算法能够应用于医学预测诊断中,预测准确度较高且稳定,能够很好的服务于医学领域,在医学行业中有很大的发展前景,相信随着PSOBP的各类改进算法的涌现和算法同各种医学信息的磨合,一定可以为百姓带来更多的方便,为社会和经济带来更大的效益。 参考文献: [1] 张卉.基于粒子群优化BP神经网络的房价预测[J].价值工程,2012(14). [2] Kennedy J , Eberhart R. Part icle sw arm op t im izat ion[A]. P roc IE E E Int Conf on N eu ral N etw orks [C].Perth, 1995. 194221948. [3] Eberhart R, Kennedy J. A new op t im izer using part iclesw arm theory [A]. P roc 6th Int S ymposium on MicroMachine and H um an Science[C ]. Nagoya, 1995. 39243. [4] 谢晓锋,张文俊,杨之廉.微粒群算法综述[J].控制与决策,2003(2):129-131. [5] 刘宇,覃征,史哲文,简约粒子群优化算法[J].西安交通大学学报,2006(8):883-887. [6] 袁代林,程世娟,陈虬.一种新形式的微粒群算法[J].计算机工程与应用,2008,44(33):57-59. [7] 王安娜,陶子玉,姜茂发,等.基于PSO和BP网络的LF炉钢水温度智能预测[J].控制与决策,2006,21(7):814-817. [8] 王辉.一种新型的多种群微粒群算法[J].计算机工程与应用,2010(35):45-48. [9] 王钰,郭其一,李维刚.基于改进BP神经网络的预测模型及其应用[J].计算机测量与控制,2005(5):39-42.