基于PSO的人工神经网络学习算法的研究
2009-10-26崔兆顺韩双旺
崔兆顺 韩双旺
[摘要]PSO算法由于具有独特的信息共享机制而得到广泛应用。介绍人工神经网络的基本原理以及网络学习及泛化的方法,以此为基础将POS算法作为学习算法用于人工神经网络训练,给出基于PSO的神经网络学习算法的设计方法,并通过实验,验证PSO算法在训练集错误率方面的优越性。
[关键词]PSO算法人工神经网络网络学习与泛化
中图分类号:TP2文献标识码:A文章编号:1671-7597(2009)0710042-01
粒子群算法用于神经网络优化主要包括两大方面:一是用于网络学习(也称网络训练),即优化网络各层之间的连接权值;二是优化网络的拓扑结构。本文的主要工作则集中在用PSO算法进行人工神经网络训练这一方面。
一、人工神经网络的基本原理
人工神经网络模型是基于生物学中神经网络的基本原理而建立起来的一种模仿人脑工作方式的计算模型,可以被看作一种具有大量连接的并行分布处理系统,它可以通过学习获取知识和解决问题,并将知识存储在连接权值中(对应生物神经元的突触)[1]。神经元是神经网络的基本处理单元,它的模型如下图1所示。
图1单输入神经元
从上图可以看出,标量输入P乘以权值w得到WP,将其送入累加器并与偏置值b相加得到的值n通常被称为净输入,它被作为参数送入传输函数f,通过f的运算产生标量输出a。神经网络的设计者可以选择特定的传输函数不并根据学习规则调整权值w和偏置值b以满足特定的需要。其中的传输函数主要包括三种类型:阶跃传输函数、线性传输函数和logsig传输函数。结构图中的f指传输函数。两个或多个并行操作的神经元组成神经网络的层,典型的神经网络可以包括一层或多层[2]。
二、人工神经网络学习和泛化
人工神经网络具有学习并获取知识的能力。所谓学习,就是修改神经网络的权值和偏置值的过程。而指导神经网络进行权值更新的规则就被称为学习算法(也称训练算法)。
网络学习(也称网络训练)通常有两种方式:有监督学习(有教师学习)与无监督学习(无教师学习)。两者之间的差别在于在学习的过程中是否有与输入相对应的目标输出对训练进行指导。目前大多数的神经网络采用的都是有监督学习。它是一个重复的过程,当每个输入作用到网络上时,网络的实际输出与目标输出相比较,然后学习规则调整该网络的权值和偏置值,使得网络的实际输出进一步靠近目标输出[3]。
网络的泛化能力主要由以下几个因素所影响:
1.待求解问题的复杂程度。它取决于问题本身,因而无法控制。
2.样本特性。只有当训练样本足以表征所研究问题的一些主要或基本特性时,网络通过合理的学习机制可以使其具有泛化能力,合理的样本结构是网络具有泛化能力的必要条件。
3.网络自身的因素。这些因素包括网络结构、网络初始权值的设定和网络的学习算法等。网络的结构因素主要指网络的隐层数以及各隐层中节点的个数对泛化能力的影响。
三、人工神经网络学习算法
PSO作为一种新兴的进化算法,其收敛速度快、鲁棒性高、全局搜索能力强,且不需要借助问题本身的特征信息(如梯度)。将PSO与神经网络结合,用PSO算法来优化神经网络的连接权值,可以较好地克服BP神经网络的问题,不仅能发挥神经网络的泛化能力,而且能够提高人工神经网络的收敛速度和学习能力。
(一)特征提取
整个特征提取过程分为三个阶段,首先应对数据进行深入分析,接着使用t检验法获取与任务相关的特征范围,最后是选择合适的方式进行特征提取。首先应该明确的是,特征提取的目标是体素点。
基于感兴趣区的特征提取首先应确定感兴趣区。它可以通过神经学家手工进行划定,也可以借助软件找出这些激活区的精确的解剖部位,并根据激活脑区的分布情况,确定感兴趣区。特征提取的具体过程如下:
Step1:划定感兴趣区并找到t值最大的点,纪录该点所属的坐标和脑区。Step2:将这些坐标对应的数据的体素点找到。Step3:计算以这些点为圆心,预定值为半径的球内体素点强度的平均值,并以此作为特征向量。Step4:如果是最后一帧图,则停止;否则扫描下一帧图,执行第二步。
(二)算法思想
将PSO作为学习算法来优化感知机网络权值的关键在于以下两点:
1.建立PSO粒子的维度空间与人工神经网络连接权值之间的映射。粒子群中每个粒子的维度分量都对应为神经网络中的一个连接权值。也就是说神经网络中有多少个连接权傲其中包括偏置旬,作为学习算法的PSO中的每个粒子就应该有多少维。
2.使用人工神经网络的均方误差作为PSO的适应函数,通过PSO算法强大的搜索性能使网络的均方误差最小化。
假设该人工神经网络共有d个输入,输出层有n个神经元,隐层共有m个神经元。网络共有d*m+m*n+m+n个权值以及偏置值,因而基于PSO的学习算法中的粒子的维度就应为d*m+m*n+m+n。对于大部分分类问题,二层感知机隐层的传输函数f一般采用Sigmod函数。对于输入X,人工神经网络应有以下输出:
式3-1)
以上网络在含有P个样本的训练集上的均方误差,也是PSO的适应函数,如下:
(式3-2)
基于以上分析,该学习算法可以设计如下:
Step1:将神经元之间的所有连接权值编码成实数向量来表示种群中的个体。Step2:随机生成这些向量的群体,接着按照算法原步骤迭代。Step3:迭代中新生成的个体向量还原为神经网络权值,计算所有样本通过神经网络产生的均方差,这一步骤等同于粒子群算法中计算粒子的适应度。Step4:如果均方差小于系统指定的误差精度,则训练过程停止,否则迭代继续进行,直到达到最大迭代次数。
(三)性能评价
对于前馈人工神经网络,通常采用分类问题和函数逼近问题对其性能的测试。在网络训练中对学习算法进行测试而得到的性能指标通常有以下四种:
1. :训练集的分类错误率,它的值是由训练集中分类错误的样本数目除以训练集的总样本数目而得到的。
2. :测试集的分类错误率,它的值是由测试集中分类错误的样本数目除以测试集的总样本数目而得到的。任何测试集中的样本在训练阶段是不允许出现在训练集中的。
3. :训练集上的均方误差。
4.:测试集上的均方误差,也称泛化均方误差。
用多层感知机网络求解分类问题时,这四个性能指标都可以使用。而对于函数逼近和拟合问题,只有后两种指标可以使用,因为在函数逼近问题中没有输出分类。
(四)实验分析
本实验选用Breast Cancer标准分类问题数据集做为测试实例。为了达到测试和比较的目的,除了PSO之外,还选用了GA(标准遗传算法)、GD(梯度下降算法)、快速传播算法(quick propagation)和BP算法对感知机人工神经网络的权值进行了优化,并将这些算法的分类性能进行了分析与比较。其中,快速传播算法的影响因子设为1.75,学习速率设为0.1;BP算法学习速率和动量参数都设为0.1。
Breast Cancer分类问题共包括600个样本,每个样本都由有9个分类属性组成,它只有1个输出。隐层节点数设为8个,这样相应的二层感知机人工神经网络的结构就为9-8-1,网络的权值总数共9*8+8*1+8+1=89个。
四、小结
自上世纪80年代以来,智能优化算法(如人工神经网络、混沌算法、遗传算法等)通过模拟或揭示某些自然现象和过程而发展起来,为优化理论提供了新的思路和手段,并在科学、经济以及工程领域得到了广泛应用。粒子群优化算法是一种基于种群搜索策略的自适应随机算法。作为智能优化算法中的一种,它可用于求解大部分的优化问题,并在工程实践中表现出巨大潜力,现已广泛应用于神经网络、模糊系统控制、模式识别等多个领域。
参考文献:
[1]J.Kennedy,R.Mendes.Population structuer and particle swarm performance[J].Proceedingo f IEEE conference on Evolutionary Computation,2006:1671-1676.
[2]J.Kennedy,R.C.Eberhart. A discrete binary version of the particle swarm optimization algoirthm[J].Proceeding of Intenrational Confeernce on System,Man,and Cybenretics,2007:4104-4109.
作者简介:
崔兆顺(1973-),男,甘肃天水人,硕士,天水师范学院物信学院讲师。主要研究方向:智能信息系统和数据挖掘;韩双旺,男,硕士,天水师范学院物信学院讲师,主要研究方向:地理信息系统和软件开发技术。