基于主成分的SFLABP网络模型在帕金森氏病分类中的应用

时间:2022-08-19 03:05:55

基于主成分的SFLABP网络模型在帕金森氏病分类中的应用

摘要:针对BP神经网络学习效率低、容易陷入局部最优等缺点,提出了一种基于主成分分析的混合蛙跳算法(Shuffle Frog Leaping Algorithm)优化的BP神经网络模型。使用主成分分析法对高维数据进行特征提取,作为网络输入;采用混合蛙跳算法优化 BP 神经网络的权系数和阈值,构建基于混合蛙跳算法神经网络的帕金森病分类模型。最后,以UCI中Parkinson数据为例,实验表明,新模型优于传统的BP网络。

关键词:主成分分析;混合蛙跳算法;BP神经网络;帕金森氏病;分类

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)04-0861-05

Based-on PCA of SFLABP Neural Network Model in Application of Parkinson Disease’S Classification

ZHANG Zhi-hao,TANG De-yu

(College of Medical Information Engineering,Guangdong Pharmaceutical University,ZhongShan 528458,China)

Abstract:For the shortcomings of BP neural network which is low learning efficiency and is easy to trap into local optimum, according to these problems, a new BP neural network model optimized by Shuffle Frog Leaping Algorithm based on Principal Component Analysis is proposed. Using Principle Component Analysis to extract the features of high dimensional data, the input variables; the bias of BP neural network are optimized by Shuffle Frog Leaping Algorithm and then build the classification model of Parkinson's disease based on SFLABP neural network. At last, taking the data of Parkinson from UCI for example, the experiment result demonstrates the new model is better than the traditional BP neural network.

Key words:principal component analysis (PCA); shuffle frog leaping algorithm (SFLA); BP neural network; Parkinson; classification

随着智能计算的不断发展,人工神经网络由于其自身的适应能力和学习能力,在医疗诊断上的应用越来越广泛,其中BP神经网络[1]是人工神经网络中应用最广的一种神经网络,但由于其具有学习效率低、参数选择敏感、网络结构难确定、易陷入局部收敛等缺点,给实际应用带来了一定的困难,尤其是当网络输入变量过多时,网络结构更复杂,网络训练负担过重,学习效率骤降,将高维数据在不影响较多期望的前提下降维,网络的学习效率才会有所提高,BP网络的实际应用也将更有价值。

混合蛙跳算法,是2003年由Eusuff 和Lansay提出的一种基于启发式搜索的全局优化群体智能算法,它具有全局搜索能力强、参数少、原理简单易实现等特点,将混合蛙跳算法与BP网络结合,利用SFLA的全局搜索优化BP网络的结构参数,可以有效解决BP网络易陷入局部最优等问题。

为了解决BP网络中的缺陷,该文利用了主成分分析法降维与SFLA 全局搜索能力强等优点,网络输入使用PCA降维,网络参数使用SFLA优化,提高了BP网络的学习效率,实验证明,新模型更优。

1 主成分分析

主成分分析是由霍特林于1933年第一个提出的,主要是根据降维的思想,在损失较少信息期望的前提下,将多个相互关联的指标转化为几个综合指标的多元统计分析方法。其主要计算步骤为:

设有m个指标,n个对象的各项指标组成了原始数据矩阵

1)对进行标准化处理,使各项指标的均值为0,方差为1,具有可比性,即令:

(1)

2)计算各指标的相关系数矩阵R与R的特征值

(2)

3)确定主成分的个数

计算各个主成分的方差贡献率与累计贡献率,一般取累计贡献率达的特征值所对应的第一、第二、…,第p个主成分。

(3)

4)计算主成分的因子载荷矩阵I

其中为λ的特征向量。 (4)

5)根据因子载荷矩阵,确定各主成分表达式,得到各主成分得分。

2 混合蛙跳算法

混合蛙跳算法[2],在模拟青蛙群体寻找食物时,将蛙群分为几个子种群,每个子种群以及每只青蛙觅食的思想相互传递相互影响,将全局信息混合交换与局部信息深度搜索相结合,局部深度搜索能够快速有效地在一个特定区域内寻优,加快寻优速度;而全局混合交换可以避免个体陷入局部最优,使得算法能够跳出局部最优,不断靠近全局最优。算法的基本流程[3]如下:

1)初始化种群X。确定青蛙的数量F、种群以及每个种群青蛙的个数m,n,与青蛙最大步长。

2)随机产生初始青蛙,计算各个蛙的个体适应度值,并按个体适应度值的大小进行降序排列,并记录最优解。

3)将青蛙进行分组,将青蛙分成m个子种群,每个子种群有n只青蛙,分组规则如下:

(5)

即将第1只青蛙放入第1个子种群,第2只青蛙放入第2个子种群,…,第m只青蛙放入第m个子种群,第m+1只青蛙放入第1个子种群,第m+2只青蛙放入第2个子种群,依此类推,直至全部青蛙分组完毕。

4)对每一个分组进行模因进化,即局部搜索最优。进化过程如下:

a)找出该分组中个体适度值最差与最优的个体

b)对个体适度值最差的个体进行更新,更新策略为:

i.蛙跳步长更新: (6)

ii.位置更新: (7)

如果优于,则=,否则,再重复i,ii步骤,若此时的还比差,则随机产生一只新的青蛙代替

2)重新将进化完的各个分组进行混洗,对青蛙进行重新排序和分组,得到最优解。

3)重复计算(3)(4)(5)直至满足迭代条件为止。

3 BP神经网络

BP神经网络[1]是一种单向传播的多层前馈网络,其主要特点是信号前向传递,误差反向传播。其拓扑结构如图所示:

由图1可知,BP神经网络是一种具有三层或三层以上的神经网络,包括输入层、隐含层和输出层,层与层之间多采用全连接的方式,可以被看成是一个从输入到输出的高度非线性映射,即:

以典型的3层BP神经网络结构为例,转移函数采用Sigmoid函数,, (8)

则:

其中为权值,为阈值,为隐含层输出,为输入层节点数,为输出层节点数,

4 PCA-SFLA-BP神经网络模型

标准的BP网络算法学习效率低,收敛速度慢。当输入层的节点数较多时,也易陷入“维数灾”的问题,同样会影响其收敛的速度。

主成分分析[4]基于降维的思想,可以减少BP网络陷入“维数灾”的问题;混合蛙跳算法是一种群体智能优化算法,通过个体间的协作与竞争来实现在多维空间中对最优解的搜索。

因此,在进行BP神经网络训练时,我们使用PCA对网络的输入层节点数进行降维,使用混合蛙跳算法改进优化BP网络的权值和阈值,从而提高网络的学习效率[5][6]。其中适应度函数定义如下:

式中,N为网络输入节点数,为网络预测输出值,为样本实际输出值,q为用于网络训练时输入输出的数据维数,s为网络输出节点数。

整个模型流程图如图2所示:

5 实验结果与分析

为了验证模型的有效性,选用UCI机器学习数据库中的Parkinson数据集作为测试,该数据集有195个样本,由Little于2007年所建,主要针对31位病人,用生物医学仪器进行约6次的发音测试后记录而成,共有23个字段,其中有22个字段为测试的属性,如:MDVP、FO、Jitter、Shimmer、RAP、PPQ、HNR等一些声学参数,1个类标号(status),其值为0和1,1表示为确定病例。其中1有147例 ,0有48例。

上述数据集两类中分别随机选取100例和36例作为网络训练,其余的作为网络测试。并对网络输出重新定义,即将类标号进行了处理,其中[0 1]表示0,[1 0]表示1。

隐含层节点数l采用公式:其中n为输入层节点数,m为输出层节点数,a取1-10。

(11)

构建BP神经网络n-l-m,且本文中混合蛙跳算法的各参数分别为:青蛙规模F=20,子种群数量(模因组组数)m=5,每组中蛙的数量n=4,模因进化迭代次数Ne=10,全局迭代次数max gen=10,相当于总迭代次数为在这种平台上得到了本次实验结果。

5.1利用主成分分析选取网络的输入变量

将UCI中Parkinson[8]数据集的22个属性作为原始数据,按照前面主成分分析的步骤对原始数据进行主成分分析。得到特征值碎石图见图3,累计方差贡献率见表1。由表1可确定前4个特征值的累计方差贡献率已大于80%,所以选取4个主成分,同时也可得出各主成分的表达式与主成分得分,将主成分得分作为网络的输入变量。其中之一的表达式如下:

5.2构建SFLA-BP的帕金森病分类模型

利用主成分得分作为网络的输入,即输入层为4,分别以隐含层为4,6,8,10,输出层为2构造SFLA-BP神经网络的Parkinson分类模型,隐实验结果以随机某10次结果的平均值,其中得到某次实验(隐含层节点数为10)的均方误差图见图4,结果见表2。

由图4可得,应用了主成分分析法,减少网络的输入变量个数,网络的结构得到了简化,以及应用了SFLA优化BP的网络参数,学习率得到提高,网络训练的次数减少,由表2可知:网络的预测效果比较精确,模型有效可用。

5.3 预测结果比较

为了更好地对新模型与传统BP模型进行比较,该文多做了以下两个实验,对未经过主成分分析的数据,建立三层BP神经网络模型与SFLA-BP模型,实验结果仍然以随机某10次结果的平均值,其中得到某两次实验的均方误差图见图5,6,结果见表3,4。

可见:对于Parkinson数据集,PCASFLABP分类模型训练速率与准确率都优于SFLABP网络,更优于传统的BP网络,能较好地改善BP网络。

6 结束语

通过对BP神经网络的研究,该文提出的模型明显优于单纯的BP网络。该模型通过主成分分析对数据集进行降维,SFLA全局优化网络参数,较好地解决了BP神经网络参数复杂、易早熟的问题,得到了较好地分类效果,将对Parkinson诊断方面有较大的帮助。

参考文献:

[1] Haykin S.神经网络原理[M].北京:机械工业出版社,2004.

[2] Eusuff M M, Lansey K E. Optimization of water distribution network begin using shuffled frog leaping algorithm[J].Journal of Water Resources Planning and Management,2003,129(3):210-225.

[3] 王晓笛,何灿.混洗蛙跳算法的研究[J] 电脑知识与技术,2011,7(19):4661-4664.

[4] 许新征,丁世飞,杨胜强,等.煤与瓦斯突出的PCA-BP神经网络预测模型研究[J].计算机工程与应用,2011,47(28):219-222.

[5] 智晶,张冬梅,姜鹏飞.基于主成分的遗传神经网络股票指数预测研究[J].计算机工程与应用,2009,45(26):210-212.

[6] 余华,黄程韦,张潇丹,等.混合蛙跳算法神经网络及其在语音情感识别中的应用[J].南京理工大学学报,2011,5(35):659-663.

[7] 傅荟璇,赵红.MATLAB神经网络应用设计[M].北京:机械工业出版社,2010.

[8] 常崇旺,高国栋,陈洪,等.人工神经网络诊断帕金森病的应用研究[J].中国临床康复,2003(28),7:3818-3819.

上一篇:数字显微系统在霉菌试验中的应用 下一篇:人脸面部表情自动生成系统