改进的单形进化算法及在神经网络上的应用研究

2021-03-13 06:32全海燕郑蒙福
小型微型计算机系统 2021年2期
关键词:邻域勘探粒子

全海燕,易 昭,郑蒙福

(昆明理工大学 信息工程与自动化学院,昆明 650504)

1 引 言

神经网络是一种模拟人类思维的智能算法模型,可以从输入数据、信号中学习其中的规律,但自身存在学习能力不足等缺点.

针对神经网络的不足,许多智能优化算法被应用于神经网络优化中,如烟火算法(Fireworks Algorithm,FWA)[1,2]、差分进化算法(Differential Evolution Algorithm,DE)[3,4]、蚁群算法(Ant Colony Optimization,ACO)[5,6]、遗传算法(Genetic Algorithm,GA)[7,8]、粒子群算法(Particle Swarm Optimization,PSO)[9,10],这些算法由于本身也存在一些缺点,因此许多学者对这些算法进行了改进.郑夏等人[11]为了提高差分进化算法的性能,引入生物地理学优化算法;刘鑫等人[12]为了改善人工蜂群算法存在的不足,引入粒子群算法;贾云璐等人[13]为了提高优化算法的适应性,提出一种改进的布谷鸟算法.

大多数算法通过引入控制参数实现算法的性能,因此增加算法复杂度.Quan等[14]提出了一种新型的智能优化算法--单形进化算法(SSSE),SSSE算法通过建立多角色态搜索策略与单形邻域搜索机制,融合群体协作搜索与竞争选择进化策略,有效地求解最优化问题,SSSE算法具有结构简单,控制参数较少,仅有群体数量一个控制参数,并能灵活地跳出局部极值,且有较好的全局搜索的特性.

为了进一步较好地平衡SSSE算法的开采能力和勘探能力,本文提出了一种改进的单形进化算法(Improved Surface-Simplex Swarm Evolution Algorithm,简称ISSSE),ISSSE算法对SSSE算法的多态平衡搜索的方法作了如下改进:一是将粒子的开采态和中心态以均匀分布的方式选取以提高算法的收敛速度和对解的开发能力;二是将粒子的勘探角色态以均匀分布的方式选取以增强当前种群邻域的勘探和跳出局部最优解的能力.与其他智能优化算法相比较,ISSSE有较高的全局搜索能力,并且改进的算法保持原有仅有一个控制参数的优点.

为提高神经网络的分类性能,将ISSSE算法引入到RBF神经网络中,提出基于改进单形进化算法的RBF神经网络(ISSSE-RBF),然后用UCI标准数据集对优化后的RBF神经网络进行学习,得到RBF的最优权值、偏置和径向基中心.

2 单形进化算法

SSSE算法的实现原理是:基于随机选取的二维子空间,利用定义的粒子单形邻域,实现凸集逼近搜索,提高粒子勘探局部区域与算法收敛性的性能,同时在搜索策略中引入粒子多角色态,实现粒子多样化,提高搜索的全局性[15].

2.1 粒子的二维单形邻域

粒子的二维单形邻域是以均匀分布方式随机选取两个维度(此处两个维度用p、q表示)构建而成,在p、q空间内,搜索算子定义方式如式(1)-式(4)所示:

(1)

(2)

(3)

(4)

2.2 粒子的多角色态

每个粒子可以适度地向3个方向演化:自身邻域、其他粒子位置、最佳粒子位置.如果粒子同时具有3个位置状态:它自己的最佳位置,新找到的位置和随机找到的位置,并选择不同的状态来建立粒子的单形邻域,那么粒子不仅可以将每个粒子的局部区域开发到更准确的优化位置,同时也勘探整个目标空间来寻找全局优化的位置.

基于上述思想,通过目标函数的值分别评估四个新找到的位置,同时,粒子i选择3个位置状态来描述自己的位置,每个位置状态的定义如下:

1)中心角色态:定义为搜索到的最优位置.

2)开采角色态:定义为搜索到的最新位置.

3)勘探角色态:定义为在搜索空间随机定位的位置.

3 改进的单形进化算法

3.1 改进单形进化的原理

整个ISSSE算法的具体步骤如下:

步骤 1.对m个粒子进行随机初始化,方式为:

步骤 2.对于群体中的每个粒子i,以均匀分布方式随机选取两个维度p、q构建搜索子空间R2,按照式(5)-式(8)所示更新粒子位置:

(5)

(6)

(7)

(8)

步骤 3.更新每个粒子在Rn上的4个新中心角色位置,如式(9)-式(12)所示:

(9)

(10)

(11)

(12)

步骤 4.由测试函数f(x)判断群体搜到粒子的优劣,以此确定粒子的3个角色态:

1)中心角色态:xic(t+1);

2)开采角色态:xil(t+1)={xic1(t+1),xic2(t+1),xic3(t+1),xic4(t+1)};

3)勘探角色态:xig(t+1).

步骤 5.记录群体中最优粒子xoc(t+1)的位置,返回步骤2,直到最优位置收敛到稳定不变的给定精度.

3.2 测试函数

为验证改进算法的性能,使用如表1所示的测试函数进行测试.

表1中的f1和f2是单峰函数,可测试算法的收敛精度;f3因极值点在陡峭的峡谷很难获取正确的搜索方向;f4~f7具有多个局部极值,可测试算法的全局搜索能力;f8因震荡剧烈难以找到全局最优值.

表1 测试函数Table 1 Test functions

3.3 性能测试与研究

本节中,测试参数m对ISSSE性能的影响,并用表1的标准测试函数证明ISSSE的可靠性.粒子数过多时会限制算法的收敛速度,降低算法的效率,在实验中不考虑m=50的情况.取m=10,20,30,40,并独立运行50次得到的收敛曲线如图1(a)-图1(h)所示.

由图1(a)-图1(h)可知,随着ISSSE算法的唯一参数--群体粒子数量m的增加,ISSSE算法可以在较少迭代次数的情况下,得到更高精度的解,且在取m=40时解的精度最高,取m=10时解的收敛精度和收敛速度最差.

图1 ISSSE求解f1-f8函数的收敛曲线Fig.1 Convergence curves of the ISSSE function f1-f8

此外,为了更好地显示ISSSE算法的性能,将它与SSSE和一些新的算法[14,16,17]进行求解精度的对比,为了公平起见,使用文献[14]中的参数:m=30,对f1~f8进行50次独立运行,实验结果如表2所示.

由表2知,对大部分函数ISSSE算法在均值上比其他算法小,有较好的求解精度;ISSSE算法在标准差上比其他算法小,有较好的可靠性.

表2 独立运行50次的求解精度Table 2 Solution accuracy of 50 independent runs

3.4 解的精度分析

将ISSSE算法与SFFCS[13]算法作性能比较,实验结果如表3所示.

实验条件设置一致:适应度计算次数FCmax=3×105,f1~f8分别独立运行100次,迭代次数为75000,ISSSE的参数设置为:40.

从表3可看出,对单峰函数f1和f2来说,ISSSE算法提高了解的精度,并显示出较高的稳定性,其中,在f1上,ISSSE取得了全局最优解,在f2上,ISSSE算法取得解的均值和方差比SFFCS算法高出7个数量级,显示出较高精度和稳定性.在f3上,ISSSE算法的精度和稳定性略差于SFFCS算法.在有众多局部极值点的多峰函数f4~f8中,ISSSE均表现出较高的精度和较高的稳定性,其中,在f4上,ISSSE算法取得解的精度比SFFCS算法高出1个数量级,在f5~f8上,ISSSE取得全局最优解.

表3 FC相同时最优解的统计值Table 3 Statistics of the optimal solution when FC is the same

3.5 收敛速度分析

收敛误差ε均设置为10-5时,两种算法的适应度计算次数的统计值如表4所示,为了公平起见,对f1~f8独立运行100次.

表4 收敛误差相同时FC的统计值Table 4 Statistics of FC when convergence error is the same

从表4可看出,在单峰函数和复杂的多峰函数中,ISSSE算法和SFFCS算法都能收敛到指定的误差范围内,但是ISSSE算法的标准差比SFFCS算法小,说明ISSSE算法比SFFCS算法更稳定,收敛速度更快.

为直观的显示原算法和改进算法的收敛速度及勘探能力,将两种算法指定相同的收敛误差,得出部分函数(f6~f8)的收敛过程如图2(a)-图2(c)所示.从图2(a)-图2(c)可以看出:该算法表现出较高的求解能力和较快的收敛速度,前期的曲线趋于平稳,有陷入局部最优解的可能性,随着迭代次数的增加,粒子灵活地跳出了局部区域,表现出了较好的勘探能力.

图2 ISSSE和SSSE求解f6-f8函数的收敛曲线Fig.2 Convergence curve of ISSSE and SSSE for f6- f8 function

总体而言,对多数函数而言,ISSSE算法优于其他算法,表现出较好的收敛速度和求精能力.

4 基于改进单形进化的RBF神经网络算法

智能算法优化RBF的原理是:在搜索空间不断搜索并调整RBF结构参数使网络输出达到期望值,其中结构参数包括两部分:一是隐含层每一个RBF函数的中心C,二是权值W和偏置B.

基于ISSSE算法的RBF神经网络训练算法的步骤如下:

2)对数据进行预处理.训练集样本的输入矩阵A、输出矩阵Y,定义如下:

其中,M为样本数,Q为特征数,N为输出神经元数.

3)定义本文中RBF神经网络误差函数为:

4)输入样本训练神经网络,利用本文提出的ISSSE算法搜索并记录群体中当前最优粒子的位置:Wo,c(n+1)、Bo,c(n+1)、Co,c(n+1).

5)判断网络误差函数收敛到指定精度或迭代次数到最大次数,则停止搜索,反之,返回第4)步.

6)在指定精度或最大迭代次数搜到的最优粒子位置作为C、W、B的训练结果.

7)输入测试样本,得到测试分类结果.

5 基于优化RBF神经网络的仿真结果

采用UCI机器学习数据集里的3组数据对本文所提算法进行验证,分别是Iris、Seed、Wine,将这3个数据集分别用ISSSE-RBF和SSSE-RBF神经网络进行10次独立测试.算法的参数设置为:群体数量统一设置为20,最大迭代次数为1000,权值、偏置和中心的搜索空间为[-1,1].统计10次测试样本分类准确率的最好值(Best)、最差值(Worst)和平均值(Mean),如表5所示.两种方法的训练3个样本的误差迭代图,如图3(a)-图3(c)所示.

表5 3种数据集的分类结果Table 5 Classification results of three data sets

图3 3种数据集的误差迭代图Fig.3 Error iteration graphs of three data sets

从图3(a)-图3(c)可知,ISSSE-RBF比SSSE-RBF跳出局部最优值的能力较强,说明改进的单形进化算法具有更好的勘探和开采能力,在RBF神经网络参数寻优上更有优势.从表5可知,在三个数据集上,基于改进的单形进化算法的RBF神经网络的平均识别率、最好识别率和最差识别率上,均优于基于单形进化算法的RBF神经网络,表明ISSSE-RBF在寻优能力上更加稳定,寻优的精度更高.

6 结论与展望

改进的单形进化算法在保留了SSSE算法结构简单、控制参数唯一、全随机性、全覆盖性等优点的基础上,对算法的单形邻域搜索算子上做了改进,提高了算法的勘探性能.实验表明,对于单峰函数和多峰函数,改进的算法均能显著提高算法的解的精度和算法的收敛速度,并提高了算法的勘探搜索能力.改进的单形进化算法能有效提高SSSE算法的性能,但对于部分函数的性能有待提高,因此后续的工作需要进一步考虑到一些特殊的函数,相信随着上述问题的解决,将会有更精确、性能更完善的新型智能优化算法出现,为解决实际问题带来便利.

将ISSSE应用于RBF神经网络,并用UCI数据集对ISSSE-RBF验证,实验表明改进的单形进化算法具有更好的勘探和开采能力,能更好应用于神经网络的结构参数的寻优.

猜你喜欢
邻域勘探粒子
广东四会市六祖庵遗址考古勘探简报
基于混合变邻域的自动化滴灌轮灌分组算法
碘-125粒子调控微小RNA-193b-5p抑制胃癌的增殖和侵袭
含例邻域逻辑的萨奎斯特对应理论
基于Matlab GUI的云粒子图像回放及特征值提取
立秋
潜艇的由来
一种用于抗体快速分离的嗜硫纳米粒子的制备及表征
问:超对称是什么?
对函数极值定义的探讨