教学优化算法的改进及应用

2018-11-17 01:48平良川孙自强
计算机工程与设计 2018年11期
关键词:测试函数原点适应度

平良川,孙自强

(华东理工大学 化工过程先进控制和优化技术教育部重点实验室,上海 200237)

0 引 言

教学优化算法(teaching and learning based optimization,TLBO)存在易陷入局部最优、后期搜索停滞等不足[1-5]。为此,许多学者对其进行了研究与改进。Anouar等[6]将混沌理论引入到TLBO算法中,利用混沌优化来加强算法跳出局部最优的能力;于坤杰等[7]提出一种基于反馈的精英教学优化算法(FETLBO),算法在“学”阶段后加入反馈阶段,增加了学员的学习方式;高立群等[8]将差分进化算法的交叉操作引入到TLBO算法的“学”阶段,提出了带交叉操作的教学优化算法(C-TLBO)。

本文从TLBO算法的基本迭代公式出发,对算法的收敛过程进行分析,论证了TLBO算法在收敛后期存在的“原点偏好”缺陷,并提出改进方案。针对TLBO算法存在的“早熟”收敛现象,采用分科学习和学习阈值的方法来提高迭代前中期学员的多样性。由此提出一种改进教学优化算法(modified TLBO,MTLBO),并通过4个测试函数来验证改进算法的有效性。最后,应用MTLBO算法优化BP神经网络参数,建立基于MTLBO算法的BP神经网络预测模型(MTLBO-BP),对比分析结果表明,本文提出的改进预测模型具有更好的预测效果。

1 教学优化算法

1.1 基本教学优化算法

在TLBO算法中,每个学员相当于优化问题的一个解,学员的某门功课看作为优化问题的一个变量。适应度最好的学员选为教师。基本TLBO算法分为“教”阶段和“学”阶段。

(1)“教”阶段

(1)

difference=rk×(Xteacher-TFk×Xmean)

(2)

(2)“学”阶段

“学”的过程如下(取较小函数值为更好适应度)

(3)

1.2 “教”阶段的“原点偏好”特性

图1 算法收敛阶段的“教”过程

当TFk=2时,算法具有了全局搜索能力,可以在学员收敛区域S之外的空间Snew探索,此时学员的更新公式如下

(4)

difference=rk×(Xteacher-2×Xmean)

(5)

difference≈-rk×Xmean

(6)

(7)

2 教学优化算法的改进

2.1 改进方案

2.1.1 消除“教”阶段的“原点偏好”特性

对算法的“教”阶段进行改进,提出自适应基准。学员学习的新知识为

difference=rk×(Xteacher-(TFk×
(Xmean-Xdatum)+Xdatum))

(8)

其中,Xdatum=Xj,表示随机选取一名学员代替原点作为基准。由式(8)可见,在“教”阶段,TFk=1时,式(8)和式(2)相同,学员向教师学习;TFk=2时,学员探索的基准由原来固定的原点变为随机选取的学员。在算法的前中期,学员的多样性有所提高。随着算法收敛,difference→0,学员能够从全局探索逐渐转为局部开发,提高了算法后期的收敛性,从而提高算法的求解精度。

2.1.2 “学”阶段的改进

(9)

(10)

其中,r为(0,1)上的随机数。可见,“学”阶段有两点改进:

(1)学习步长α=(r1,r2,…,rD),即针对不同的科目采用不同的学习步长,增加了学员学习方向的多样性。

(2)当rand<θ时,学员根据自身的经验进行学习;当rand>θ时,学员向适应度更好的学员学习。θ为(0,1)范围内随迭代次数递减的函数。随着迭代次数的增大,学员逐渐由根据自己的经验学习转为向适应度更好的学员学习,算法逐步由全局探索转为局部开发。

2.2 MTLBO算法实现步骤

改进教学优化算法具体算法步骤如下:

(1)根据具体优化问题设定学员个数,学习维度,学员属性范围和学习经验,并初始化学员。

(2)计算各学员的适应度,选取适应度最好的学员作为教师。

(3)随机选取一名学员作为“教”阶段的基准。

(4)“教”阶段,教师根据式(1)、式(8)进行教学,提高班级学员的平均水平,并采用基本教学优化算法的方式更新学员。

(5)根据迭代次数计算学习阈值。

(6)“学”阶段,如式(9)所示,学员之间相互学习,或者根据自身的经验学习。

(7)如果学员取得更好的适应度,则更新自身位置,并根据式(10)更新自身的学习经验。

(8)重复步骤(2)至步骤(7),直到满足终止条件。

算法流程图如图2所示。

图2 MTLBO算法流程

2.3 实验仿真测试及分析

选取4个存在众多局部最优的测试函数来验证本文提出的MTLBO算法的有效性。为了验证基本TLBO算法的“原点偏好”特性,本文对标准测试函数进行改进,在标准测试函数中引入参变量N,函数中的变量xi改为xi-N,变量范围也做相应的调整。改进测试函数见表1。

与经典测试函数相比,改进测试函数的搜索空间及最值点沿坐标轴正方向平移N个单位,搜索空间的形状则保持不变。

将TLBO算法、FETLBO算法[7]、C-TLBO算法[8]以及MTLBO算法进行比较。4种算法使用相同的测试参数,设置如下:班级学员数NP=20,测试函数维数D=20,最大迭代次数kmax=1000,参变量N分别取0、 0.2xbound、 0.4xbound、 0.6xbound、 0.8xbound及xbound,其中xbound为标准测试函数的变量边界。每种情况独立运行30次,测试结果见表2至表5。

从表2至表5可知,当N=0时,4种测试函数的最值点都位于原点。由于存在“原点偏好”特性,TLBO、FETLBO、C-TLBO都达到了全局最优。当参变量N增大时,测试函数的最优点逐渐远离原点,上述3种算法求解的平均值和标准差都有所增大,寻优效果及稳定性出现了下降。MTLBO算法通过改进,消除了“原点偏好”特性,同时在迭代前中期保留了学员的多样性,算法的求解精度与参变量N无相关性。当测试函数的最值点偏离原点时,MTLBO算法仍然具有较高的求解精度和稳定性。由于实际优化问题的最值点往往在一定范围内随机分布,本文提出的MTLBO算法更具实际应用价值。

表1 改进测试函数

表2 Schwefel*函数测试结果对比

表3 Rastrigin*函数测试结果对比

表4 Ackley*函数测试结果对比

表5 Griewank*函数测试结果对比

当N=0.5xbound时,4种算法的收敛曲线如图3所示。

当N=0.5xbound时,4种测试函数的最值点均不在原点。由图3可见,TLBO算法存在迭代前期搜索停滞、算法求解精度低的缺陷。FETLBO、C-TLBO算法通过改进,算法的全局搜索能力有所增强,但在迭代第600步左右,算法陷入局部最优。MTLBO算法消除了“原点偏好”特性,算法在迭代期间一直具有寻优能力,且在收敛速度和求解精度方面明显优于其它3种算法。

图3 TLBO、FETLBO、C-TLBO和MTLBO的收敛曲线

3 MTLBO算法在BP参数优化中的应用

3.1 MTLBO-BP预测模型的建立

针对三层BP神经网络模型对MTLBO算法中的学员进行编码。学员Xi=(ω1,B1,ω2,B2),其中ω1为输入层至隐含层的权值向量,B1为隐含层的阈值向量,ω2为隐含层至输出层的权值向量,B2为输出层的阈值向量。MTLBO算法的优化目标函数为网络输出的均方误差,均方误差较小为更好适应度。算法寻优完成后,取适应度最好的学员,对其进行解码,并用所得的最优权值、阈值建立BP神经网络预测模型。

3.2 MTLBO-BP预测模型有效性验证

为了对比分析MTLBO-BP预测模型的有效性,本文分别建立标准BP模型以及PSO、TLBO、FETLBO、 MTLBO优化BP神经网络的预测模型。选取UCI数据集中4组典型真实测试数据对上述5种预测模型进行测试,数据集选取见表6。

表6 UCI测试数据集

网络的隐含层神经元传递函数采用Tansig函数,输出层神经元传递函数为Purelin函数。PSO、TLBO、FETLBO和MTLBO设置相同的参数,最大迭代次数为500,种群初始化范围为[-1,1]。隐含层节点数m,个体维度D以及种群数量NP的设置见表7。

表7 参数设置

针对每个数据集,5种预测模型分别独立运行10次,预测平均相对百分比误差和平均训练时间分别见表8、表9。

表8 预测平均相对百分比误差/%

表9 平均训练时间/s

针对实际数据集时,BP神经网络的最优权值、阈值往往不在原点。由表8可见,由于MTLBO消除了基本TLBO算法的“原点偏好”特性,相比于TLBO-BP模型,MTLBO-BP模型的预测平均相对百分比误差在各数据集上分别下降了0.88%、2.04%、2.67%和2.89%,且在4个数据集上都取得了最高的预测准确性。由表9可见,与TLBO相比,由于FETLBO增加了反馈阶段,FETLBO-BP模型在各个数据集上的训练时间分别增加了23.7%,29.4%,25.7%,28.9%,而MTLBO-BP模型在各数据集的训练时间仅分别增加了1.62%,1.10%,2.49%,1.60%。对比可见,MTLBO-BP模型具有更好的预测效果。

4 结束语

本文从原理分析了TLBO算法存在的“原点偏好”特性,并提出一种改进的教学优化算法。该算法在“教”阶段引进自适应基准,消除了“原点偏好”特性,在“学”阶段引进分科学习、学习阈值,增强了算法的全局搜索能力。在4种改进测试函数上的实验结果表明,MTLBO算法在求解最值点远离原点的问题时,仍然具有较好的寻优能力。将MTLBO应用到BP神经网络的权值、阈值优化中,建立基于MTLBO的BP神经网络预测模型,针对4组UCI经典测试数据,在预测精度和训练时间方面,将MTLBO-BP模型与BP、PSO-BP、TLBO-BP、FETLBO-BP模型进行对比。实验结果表明,MTLBO-BP模型在增加较短训练时间的情况下,明显提高了预测准确性。可见MTLBO算法在BP神经网络参数优化上具有良好的效果。

猜你喜欢
测试函数原点适应度
改进的自适应复制、交叉和突变遗传算法
基于博弈机制的多目标粒子群优化算法
Book Pilot 飞行选书师,让书重新回到原点
重返历史“原点”的旅程
一种基于改进适应度的多机器人协作策略
具有收缩因子的自适应鸽群算法用于函数优化问题
在原点震荡的扰动Schrödinger-Poisson系统的无穷多个解
带势函数的双调和不等式组的整体解的不存在性
基于空调导风板成型工艺的Kriging模型适应度研究
约束二进制二次规划测试函数的一个构造方法