基于遗传算法的神经网络权值优化方法

2018-11-29 01:04王锦赵德群
电子元器件与信息技术 2018年9期
关键词:权值适应度算子

王锦,赵德群

(北京工业大学 信息学部,北京 100124)

0 引言

伴随着各行各业的智能化的发展,神经网络算法得到了广泛应用。但是就目前来看,常用的BP神经网络尽管具有较高的可塑性,却存在收敛速度慢、学习效率低等问题。采用遗传算法对神经网络权值进行优化,可以使网络自适应能力得到增强,并出示网络实现自进化,所以能够得到更优的神经网络算法。因此,还应加强对基于遗传算法的神经网络权值优化方法的分析,以便更好的进行神经网络的应用。

1 神经网络权值优化问题

在智能控制、传感技术、机器人技术等领域,神经网络得到了广泛应用。但就目前来看,依然缺少较优的神经网络算法,以至于神经网络在应用过程中容易陷入到局部最优的问题中。从结构上来看,神经网络由类似神经元的单元及单元间带权连接弧构成,各单元拥有各自状态。通过反复学习和训练各类样本,神经网络可以实现各连接弧上权值及单元状态调整,直至网络达到稳定状态。此时,利用神经网络可以对网络输入模式和输出模式的映射关系进行反映,达到学习的目的。一般来讲,固定对象系统通过实例训练,就能形成权值分布稳定的神经网络,作为系统的知识表示。而神经网络学习算法的好坏,取决于网络结构和神经元间连接权值。在网络结构已经固定的情况下,则要实现网络权值的优化,即通过训练对参数进行连续优化,完成最优连接权值的查找。权值的整体分布包含网络全部信息,以往需要根据确定的某个权值变化规则进行权值获取,然后通过训练实现权值布局调整。但采用传统的网络权值优化算法,需要沿梯度下降方向进行权值搜索,学习结果对初始权值向量较为敏感,初始权值不同将会直接影响最终结果。同时,采用传统算法也容易出现陷入局部最小的问题,在出现局部极小点时获得的解并非全局最优解。此外,实际计算时仅能凭借经验和实验进行训练速度、学习率等采纳数选取,容易因取值不当造成网络震荡,继而导致网络无法收敛。

2 遗传算法思想与流程分析

2.1 遗传算法思想

早在上世纪70年代,遗传算法得以被提出。由于该算法拥有较强的问题解决能力和广泛适应性,所以在工程研究等领域得到了应用。遗传算法是根据群体遗传学和进化论得到的算法,以生物进化过程为背景,对生物进化步骤进行模拟分析,引入繁殖、杂交、选择等概念,可以根据适者生存、优胜劣汰原则实现不断进化,最终在最适应环境个体上收敛,获得问题最优解[1]。所以采用遗传算法,并非对具体参数搜索空间中的某个解进行评估,而是能够在整个搜索空间中同时搜索大量可行解,避免收敛于局部最优的问题出现。所以采用遗传算法,可以看成是对多维参数空间进行并行搜索,能够将问题解编制成编码串,构成一代种群,实现对解空间的全面覆盖。在此基础上,可以随机进行初代赋值,然后通过一代一代的进化获得最优解。由于该算法具有一定随机性,并且能够实现多点随机搜索,因此可以完成全局最优解的查找。按照这一思路,采用遗传算法需要将优化问题可行解利用二进制编码串表示,得到对应基因链码,当做是物种染色体。而编码串的组成,则被看成是基因块。结合问题求解目标,可以对适应函数进行定义,从而对可行解的优劣进行衡量。从随机群染色体中进行搜索,对所有个体适应值进行分别计算,可以完成染色体群复制。按照固定概率实现交换变异,可以得到新的染色体群。最终,直至得到的个体拥有足够适应值或达到最大代数,可以得到最优解。

2.2 遗传算法流程

从算法流程上来看,通过对生物遗传机制进行借鉴,算法由初始化、选择、杂交和突变构成,为随机化非线性算法。在初始化过程中,需要对神经网络结构、输入样本集、输出样本集进行确定,得到权值编码和个体位串长,根据编码映射确定权值与个体位串关系。在选择阶段,需要完成染色体个数等遗传参数的设置,同时完成自适应调整算法的设定,得到随机初始群体,包含N个个体。对所有个体位串进行译码,则能获得N组网络权值和结构相同的N个网格。输入样本集,并实现前向传播,可以获得N个输出。利用适应度函数进行网络评价,即以误差函数倒数为评价函数,可以对各染色体适应度值进行计算。而计算误差较大时,得到的适应度值将越小。在遗传空间进行适应度优选,可以完成函数值大的多个个体选择,淘汰适应度小的个体。采用交叉、变异遗传算子,可实现当前群体处理,获得下一代群体。反复实现迭代,可以实现权值优化。

3 遗传算法在神经网络权值优化中的应用

3.1 网络编码

网络编码为神经网络权值优化的基础,因为遗传算法无法直接用于进行空间参数的处理,仅能对基因链码表达形式的个体进行处理。在网络编码上,可以采用二进制编码、实数编码等方式。通常的情况下,采用二进制编码方法进行问题解的参数形式转换,如式(1)所示,为各解实际值X与二进制位串标示值B的关系。式中,X在[Xmax,Xmin]范围内取值,L为B的长。无需外部信息,仅凭适应函数值即可进行优化搜索。

针对复杂系统优化问题,采用二进制编码过于繁杂,算法的收敛精度和速度都会受到一定程度的影响,导致算法缺乏空间搜索能力。而采用实数编码,则能根据个体空间与可行解空间对应关系进行个体解码,将码串长度看成是神经网络权值个数[2]。针对神经网络权值优化问题,由于权值均以实数表示,所以可以直接利用实数编码方式,使各权值与实数对应,然后通过串连进行各位串的位表达。确定编码方式后,可以实现初始化操作,在编码最大范围内得到随机初始值。经过遗传算子操作后,得到的初始化网络还要加强合理性分析,对各神经状态进行扫描,确定存在输入和输出值。一旦发现输入或输出全为零,还要判定为无效神经元,可直接删除。

3.2 函数选取

实际进行适应度函数选取时,还应认识到适应度越大的染色体进行下一代繁殖的机会越大。所以选择算子还应发挥产生大量适应度值大的个体的作用,确保个体能够更多的参与到下一代繁殖中,得到更多的后代个体。由于网络权值拥有固定的进化结构,所以可以忽律网络复杂度等结构参数,达到简化计算的目标。结合这一思路,在染色体个数为N的条件下,假设第i各染色体为xi,对应的适应度值为fi,还要利用选择算子完成染色体复制。而在得到的下一代种群中,可以按照式(2)进行复制染色体个数的计算。

3.3 算子设计

在标准的遗传算法中,还包含交叉算子和变异算子。采用交叉算子,可以使存在于原本群体中优良个体得到保存,并且也能完成新的解空间搜索,得到多样性个体[3]。但是如果按照概率随机进行交叉,尽管可以使个体多样性得到保持,从局部最优中挑出,但也会因交叉概率过大导致算法收敛过慢。实际进行算子设计时,可以采用两点算术杂交方法,得到具有较强搜索能力的实数编码。在种群数量较大的情况下,将产生明显差别。针对参与交叉配对的染色体,还要在相应元素差e实现阈值θ引入,在e>θ的条件下,编码相差度φ应当加1,直至φ大小超出3时,可时配对个体进行交叉配对,否则需要进行参与配对个体的重新选择。

采用变异算子,可以促使个体串的部分位基因值发生变化。针对二进制位串,在字符集为{0,1}的条件下,就是对部分基因位置值进行取反操作,将0变为1,将1变为0,实现局部搜索和加速最优解收敛,也能避免有用遗传模式的丢失,促使个体模式多样性得到增强。实际进行算子设计时,针对实数编码,还要采用反向变异算子,在利用简单变异算子变异后,比较子代与父代适应度函数。在下一代拥有较高适应度函数的情况下,将其看成是反向变异算子子代,否则看成是反方向变异结果子代[4]。针对普通变异,需要在父代上进行ξ添加,在得到的子代拥有较高适应度值时可维持不变,否则将减去ξ。因此在每轮操作后,仅有最优个体能够保留下来,适应值小个体将被淘汰,以免重复竞争。但是这类个体可以参与本轮交叉和变异操作,用于实现下一代搜索指导。在解决寻优问题时,如果存在约束条件,可以在适应值计算前淘汰无法满足条件的个体,以便在新竞争开始前利用新个体进行淘汰个体的替代,从而使收敛速度得到提高,同时保证种群多样性。

3.4 方法实现

在遗传算法实现过程中,还要完成部分参数的提前选择,包含变异概率、初始种群数、交叉概率等等。在初始种群数较大的情况下,可以完成较多解的同时处理,所以可以获得较强的空间搜索能力,但是也将导致迭代时间增加。所以通常的情况下,初始种群数被限定在几十到几百之间[5]。而在交叉概率选取上,由于该数值越大搜索最优解子空间的速度越快,但同时也可能造成算法过早收敛,因此通常限定在0.25到1之间。在变异概率选取上,该数值通常较小,如果过大将尽管可以使个体多样性增强,但是将对收敛性产生影响,因此限定在0.001到0.01范围内。针对某三层前向网络,网络输入层节点数和输出层节点数分别为2和1,隐层节点数为5,可以分别采用标准BP神经网络算法和基于遗传算法的神经网络优化方法。结合需求,可以完成如式(3)的函数选择,并将训练样本和检验样本均设置为30个,交叉概率和变异概率分别为0.4和0.01,精度ε达到0.004。

3.5 优化效果

从训练情况来看,采用标准BP神经网络算法精度能够达到0.0045,在检验过程中精度则能达到0.0046,而采用基于遗传算法的神经网络权值优化方法,算法精度能够达到0.0038,检验精度能够达到0.0038。由此可见,相较于标准算法,采用优化方法可以更好的进行学习成果的复现,并且也可以大奥预设精度要求。而如表1所示,在相对均方误差均为0.0060的情况下,采用标准算法需要经过6237次网络训练,采用优化方法仅需要220次训练。在相对均方误差达为0.0016时,采用标准方法无法经过网络训练达到这一精度水平,采用优化方法则能通过1060次训练达到要求。因此,采用基于遗传算法的神经网络权值优化方法,可以更快的完成网络训练,并实现全局优化。在网络结构较大的情况下,通过对控制参数进行合理设定,则能使方法收敛速度快的优势得到充分发挥。

表1 算法网络训练次数比较Table 1 Comparison of algorithm network training times

4 结论

通过研究可以发现,采用神经网络解决问题,容易出现陷入局部最优的困境,算法无法实现快速收敛。针对这一问题,还要实现神经网络权值优化,才能更好的完成全局最优解的搜索。采用遗传算法,可以通过网络编码和选择适应函数提高神经网络自适应能力,并利用交叉算子和变换算子促使网络进化,使网络性能得到有效改善。从方法实现情况来看,采用遗传算法实现神经网络权值优化后,网络收敛速度和算法精度都得到了改善。

猜你喜欢
权值适应度算子
改进的自适应复制、交叉和突变遗传算法
一种融合时间权值和用户行为序列的电影推荐模型
拟微分算子在Hp(ω)上的有界性
CONTENTS
各向异性次Laplace算子和拟p-次Laplace算子的Picone恒等式及其应用
一类Markov模算子半群与相应的算子值Dirichlet型刻画
一种基于改进适应度的多机器人协作策略
基于权值动量的RBM加速学习算法研究
基于多维度特征权值动态更新的用户推荐模型研究
Roper-Suffridge延拓算子与Loewner链