王军涛

【摘 要】论文结合遗传算法和BP神经网络的有关概念,对BP神经网络算法的优化进行了研究,同时结合实例对算法的有效性进行了验证。

【Abstract】Based on the concepts of genetic algorithm and BP neural network,the paper studies the optimization of BP neural network algorithm, and the effectiveness of the algorithm is verified by an example.

【关键词】遗传算法;BP神经网络;优化算法

【Keywords】genetic algorithm; BP neural network; algorithm optimization

【中图分类号】TPl83 【文献标志码】A 【文章编号】1673-1069(2017)04-0135-02

1 引言

神经网络是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型,凭借着复杂的系统结构,通过对系统内部节点连接关系的调节,实现对信息的高效处理。作为技术最为成熟的神经网络模拟,BP神经网络具有良好的自学习、自适应以及泛化能力,在许多领域中都有着广泛的应用。而针对BP神经网络在应用环节存在的问题,需要采取相应的优化算法,提升神经网络的收敛速度和处理能力。

2 遗传算法与BP神经网络

遗传算法遵循的是生物界中适者生存的法则,其基本原理,是指将问题参数进行编码,形成染色体,通过迭代的方式,运用选择、变异、交叉等运算,对种群中染色体的信息进行交换,继而形成能够满足优化目标的染色体。

BP(Back Propagation)神经网络最初产生于1986年,属于一种依照误差逆传播算法训练的多层前馈网络,也是当前技术条件下应用最为广泛的神经网络模型之一,其可以对输入-输出模式的映射关系进行学习和存储,同时不需要对能够揭示这些映射关系的方程进行描述。神经网络具备自适应和自组织能力,在进行学习和训练的过程中,可以通过改变突触权重值的方式,更好地适应周边环境的变化。在同一个神经网络中,如果内容不同,学习方式不同,则会产生不同的功能。人工神经网络从本质上看,更加接近具备自主学习能力的系统,可以通过不断的学习,超出最初设计的知识水平。在人工神经网络中,比较常见的学习方法有两种,一是有监督的学习,可以结合标准样本,进行分类或者模仿,二是无监督的学习,在制定相应的学习规则后,系统会根据自身所处环境,进行学习内容的分析和选择,更加接近人脑的功能特点。

3 基于遗传算法的优化BP神经网络算法

3.1 算法基本原理

①BP算法。BP神经网络算法主要包括了数据流的前向计算和误差信号的反向传播两个方面的内容,结合三层BP神经网络的拓扑结构,假定x为网络输入,y为结果输出,当处于正向传播过程时,数据的传输为输入层→隐层→输出层,每一层神经元的状态仅仅会影响下一层神经元,而如果输出层无法获得期望输出,则会自动转向误差信号的反向传播流程。在BP神经网络中,网络的训练实际上是对阈值和权值进行调整的过程,当网络误差缩小到设定值,或者训练步数达到设定步数时,会自动停止训练。

②遗传算法。遗传算法可以从代表问题可能潜在解集的种群开始,种群中的每一个染色体都带有相应的特征,染色体可以看作若干基因的集合,为了便于分析,需要做好编码,完成从表现型到基因型的映射。在演化过程中,依照问题域中存在的个体的适应度,进行个体的挑选和交叉,然后变异出新的解集种群。选择末代种群中的最优个体进行解码,就可以得到问题的近似最优解。

3.2 优化BP算法

BP神经网络算法具有极强的局部寻优能力,但是容易陷入局部极小的问题,遗传算法具有良好的全局优化性和自适应性,但是局部寻优能力不足。对此,可以将遗传算法与BP算法结合起来,实现对于网络拓扑结构和网络权值、网络阈值的优化。

①权值优化。在传统的BP网络中,连接权值的学习算法容易陷入局部极小,无法得到全局最优。对此,可以引入遗传算法代替传统的学习方法,对神经网络的权值进行优化。在这个过程中,需要解决几个比较关键的问题,一是编码方案,可供选择的权值编码方式包括实数编码和二级制编码,前者是以实数表示权值,非常直观,不过需要对遗传算子进行重新设计,后者是利用0,1字符串表示权值;二是适应度函数,引入遗传算法后,网络的机构以确定,在这种情况下,网络的误差越大,适应度越小;三是进化过程,主要是对选择、交叉、变异算子的选择,如果必要,也可以重新设计;四是混合训练神经网络,遗传算法能够在大规模、复杂性的空间中实现可靠搜索,而且不需要有关误差函数梯度的信息,优势相当明显。可以通过在误差函数中增加惩罚项的方式,降低网络的复杂程度。

②权值和结构同时优化。BP神经网络连接权的进化,要求明确的网络结构,网络结构直接影响着神经网络本身对于信息的处理能力。神经网路的结构包括了网络连接方式(拓扑结构)和节点转换函数,完善的结构不仅需要能够对问题进行有效解决,还不能存在冗余节点和冗余连接。伴随着进化算法的应用,网络设计在很多时候被看作搜索问题,评价的标准包括了抗噪性、学习准确率以及泛化能力等。结构进化的关键体现在结构编码和算子设计,而结构编码方案则会影响算子设计的效果。以三层前馈型BP网络为例,其输入层和输出层节点的数量已经确定,优化算法需要重点研究隐含层的节点数量。考虑到问题本身的复杂性,二进制编码的方法并不适用,因此选择实数编码,在隐含层节点增加二级制编码作为控制基因,通过随机函数产生。当控制基因的数值为0时,对应的隐含层节点对输出层无用,而当控制基因的数值为1时,隐含层节点对输出层作用。需要注意的一点,当选择实数编码方案时,为了明确编码的长度,需要确定隐层的最大神经元数目。

4 仿真试验

结合已知数据,对某地区小麦吸浆虫的发生程度进行预测。对问题进行深入分析,可以转化为相应的输入输出系统,可以通过神经网络进行表达。现有的研究成果表明,小麦吸浆虫的发生与气候因素关系密切,因此可以利用气象因子对问题进行分析。选择2000年到2015年的气象数据,设置40个研究样本,以x1-x14表示需要处理的原始数据(气象因子),Y表示小麦吸浆虫的发生程度。从减小误差的角度,对原始数据进行预处理。以优化后的BP算法进行神经网络训练,结合训练结果进行MATLAB仿真。在仿真试验中,需要做好一些关键参数额的设置,遗传算法和BP算法的最大代数分别为100,BP算法均方误差为0.001,会激活函数为双曲正切S型,线性输出层,学习算法被设置为经过改进的自适应学习率的梯度下降学习算法。

设定14作为隐层神经元的上限,由于编码长度固定且迭代代数一定,在所有的试验中,遗传算法的复杂度都是相同的。结合仿真试验分析,隐含神经元的最优数目为5、6、7,与传统方法得到的结果基本一致。相比较而言,利用遗传算法同时进行结构和权值的优化,最为显着的优势在于能够对隐层神经元的数目进行自适应确定,减少尝试的次数,提升计算效率。

而结合相应的训练结果分析,利用遗传算法进行BP神经网络连接权值的优化,相比较传统算法更加有效,不过同样需要进行网络结构的尝试,换言之就是选择合适的隐层神经元数目。不仅如此,利用遗传算法同时对神经网络的权值和结构进行优化,智能型更强,可能找到合适的初始权值和优秀的网络结构,不过,如果数据烦琐,搜索的速度会变慢。

5 结语

总而言之,基于遗传算法进行BP神经网络算法的优化,可以充分发挥遗传算法对于全局搜索的高效性和高鲁棒性,在实际应用中效果显着。当遗传算法将网络全局优化到一定程度后,可以利用BP算法进行微调,加快网络收敛速度,减少训练失败问题。