APP下载

基于神经网络的遗传算法研究与分析

2021-07-20张润泽

网络安全技术与应用 2021年6期
关键词:权值适应度算子

◆张润泽

(大连理工大学 辽宁 116000)

随着理论基础的不断完善,神经网络算法得到了快速的发展,并且被广泛应用在工业设计,军事发展以及生物医学等方面,且研究过程取得了较大的进展。对于神经网络来说,学习能力是衡量神经网络算法的重要指标,但是就神经网络算法自身缺陷来说,依然存在着较大的缺陷,即通过梯度下降的模式使得最终结果落入局部最小化,导致收敛速度变慢。

1 传统BP 算法和遗传算法

1.1 传统神经元网络算法

目前的算法研究中,关于神经算法主要存在3 种,分别是前向多层神经网络,自组织神经网络以及Hopfield 神经网络,其中最为广泛使用的是前向多层神经网络,也被称之为神经网络MLFN 算法的主要结构为单向多层结构,每一层由多个神经组织单元构成,且每层的神经元组织结构在功能上是相互独立的,单向结构决定了整个网络结构中的数据信息依靠层与层之间相互传递,且数据信息只能自下而上,进行单一方向的传输[1],例如传统的BP 算法中就是依靠Delta学习规则进行网络结构内的权值修正,在算法执行过程中,数据会从一个方向逐渐传输,直至到网络的每一个角落,而从另一个方向修正权值,第L层的第j个神经元的第i个权值的修正值定:

例如在第L层的第j个神经元上,为了将第i个输入信号和第j个输出信号进行关系连接,设定一个权值Wji,从而建立了网络中上层和下层之间的关联,这样计算出来的误差可以清晰地反映出来自上下两层,一般称之为Delta 函数:

通过上面的公式可以看出,在一个完整的调节适应过程中,任何参数的变化应该和该参数的输入端和输出端相互对应起来,形成一定的误差比例。而参数η就是学习效率,决定了这个迭代计算过程的速度,而误差g决定整个迭代过程的次数[2]。

1.2 遗传算法

遗传算法是一种求解最优化结果的手段,其主要核心为对研究区域内的样本进行随机的抽取,并对样本个体进行逐一编码,同时将初代样本进行自适应度计算,选取合适的适应度样本作为下一代的研究对象,对筛选后的样本进行交叉配对,然后对交叉配对和遗传变异后的个体在进行新一轮的自适应度计算,得到新一代的研究个体,循环往复,不断执行算法,直到结束条件达到预期设定的目标为止[3]。

2 基于遗传算法的人工神经网络

2.1 权值编码

权值编码的本质意义是整个神经网络内所有的权值看作是一个完整的染色体组,通过统计得到相应的染色体数量,对权值用对应的维数实数表示。在常用的GA 中一般会选用二进制进行编码,同时对于连续参数的优化处理过程中,一般通过将空间进行离散化处理,此过程中存在相应的误差,所以不能够完整的反映出自身的结构,所以一般采用实数编码的方式直接进行描述,这样省去了解码步骤,提高了整体运算精度和实际操作的速度[4]。

2.2 参数设定以及函数的选择

通常状态下,神经网络中的隐节点和输出层一般会选用Sigmoid函数,即:

由于染色体表示权值,那么适应度函数可以理解为整个神经网络的误差,且误差越大表示函数的适应度越小,对于采样的群体,一般会包含如下的信息,如采样的种群规模,数据的交叉概率以及传输过程中数据的变异概率,网络的层数,每一层的网络神经元数等,传统的遗传算法对于上述的参数设定一般具有较强的建设性和包容性,改变其中的某一项参数或者几项参数的数值,一般对于结果的影响力很小[5]。

2.3 初始化

2.4 计算适应度值

根据随机产生的权值向量对应的神经网络,对给定的输入集和输出集计算出每个神经网络的全局误差,并根据适应度函数计算出对应的适应度值。误差越小的样本,适应度值越大,意味着染色体越好。

2.5 算子执行

算子的选择:通过随机选取的方式,保证了算子选择的偶然性和随机性,随机选择一定数量的样本以后,对选择个体进行适应度计算,将达到一定阈值的样本个体划归到高适应度群体之中,并保存到下一代中去,然后对第一次筛选的样本在进行二次筛选,设定新的阈值条件,不断重复进行迭代,直至满足下一代需求个体数量为止[6]。

交叉算子:在初始阶段设定了交叉参数Pc,表示在每一次操作的样本中都会存在的样本个体进行交叉操作,通常都是通过随机交叉产生的办法,交叉算子可以定义为(c为一个设定值,取值范围在0 到1 之间):

变异算子:设定变异参数大小为Pm,假定在实际操作中样本群体的变异个数为Pm*pop-size,对于选择好的每一个要变异的染色体,为了尽可能好地变异,可以进行多次变异,变异时首先随机生成一个与染色体的各权值同维数的向量d1作为变异方向,可由产生正态分布的随机数的函数随机产生,然后用父代染色体的权值对应的向量和m*d1相加。对每次变异结果,还原成神经网络,并进行性能评估,如果后代优于父代,则结束该父代的变异。

2.6 自适应控制

随着进化迭代次数的不断增加,最终保留下来的样本个体之间的适应度差异不断缩小,交叉算子在整个算法的过程中起到的作用也越来越小,而变异算子的作用逐渐凸显,所以为了保证最终结果的稳定性,需要相应的减少交叉操作的概率,增大变异的概率,对传统的公式进行对应的修正:

其中G代表总的迭代次数,而t表示当前的迭代次数

3 改进算法与传统算法的比较

将上述设计的算法进行仿真模拟,对输入的参数进行相关的统一设置,将神经元的输入节点统一设置为n=10,规定所有的输出节点为m=1,依据相关的计算其隐层节点,由于节点数为整数值,所以取隐层节点的数量k=3,统一设定网络内的学习效率η=0.02,且网络内的数据信息传输都适用于Sigmiod 函数。

为了仿真的简洁性,对算法内的阈值计算进行忽略,结合遗传算法进行相关仿真,设定参数交叉的发生概率为pc=0.4,数据在传输过程中的变异概率为pm=0.01,设定整个过程的样本采样为66 组,其中样本的前40 组可以看作是样本的训练集合,后26 组规定为检验集合,其仿真结果如下:

图1 迭代次数N

图2 神经网络的迭代过程

图3 遗传算法的迭代过程

通过相关的仿真结果可以看出,将遗传算法和神经网络算法相结合,可以明显改善神经网络陷入局部最优的缺陷,同时通过仿真的震荡曲线,可以发现其震荡次数明显减少,同时遗传算法与神经网络算法的结合,为改进后的算法增强了全局的搜索能力,一般的遗传算法中再经过2000 次的迭代以后,曲线会趋于停滞状态,而两种算法结合以后,在经过上千次的迭代以后,其仍然具有一定的收敛空间,且融合以后的算法其精度与神经网络相差不大,但是时间的开销却明显降低。

4 总结

本文提到的神经网络算法主要是在原有的BP算法以及遗传算法的基础上,结合了二者算法的优势,提出了一种最新的二次训练算法,克服了传统神经网络在初始阶段陷入局部最优的缺陷,同时也加快了整体网络函数的收敛速度,提高了神经元网络的搜索效率,降低了整体搜索时间,有着较大的改进。

猜你喜欢

权值适应度算子
与由分数阶Laplace算子生成的热半群相关的微分变换算子的有界性
改进的自适应复制、交叉和突变遗传算法
一种融合时间权值和用户行为序列的电影推荐模型
拟微分算子在Hp(ω)上的有界性
Heisenberg群上与Schrödinger算子相关的Riesz变换在Hardy空间上的有界性
CONTENTS
各向异性次Laplace算子和拟p-次Laplace算子的Picone恒等式及其应用
一种基于改进适应度的多机器人协作策略
基于权值动量的RBM加速学习算法研究
基于多维度特征权值动态更新的用户推荐模型研究