APP下载

一种基于粒子群优化的极限学习机

2013-03-20毕浩洋

郑州大学学报(理学版) 2013年1期
关键词:学习机权值适应度

王 杰, 毕浩洋

(郑州大学电气工程学院 河南郑州450001)

0 引言

传统的基于梯度下降算法神经网络(如BP神经网络)已经被广泛应用于多层前馈神经网络的训练中[1],但是该网络学习速度慢、容易陷入局部最优解以及在不同的应用场合参数调整复杂.

Huang等人在2004年提出了一种新型的前馈神经网络[2],即极限学习机(ELM).在ELM中,输入权值和隐含层偏差被随机初始化给定,输出权值矩阵利用广义逆(MP)计算得到.相比传统前馈神经网络,ELM学习速度更快、精度更高、参数调整简单,已经得到了不少学者的关注研究[3-4],但是在实际应用过程中,为了达到理想的误差精度,ELM通常需要大量的隐含层节点.

粒子群算法由Kennedy和Eberhart[5-6]在1995年提出,该算法模拟鸟集群飞行觅食的行为,鸟之间通过集体的协作使群体达到最优目的,是一种基于群体智能的优化方法.鸟类捕食最优策略就是搜索目前离食物最近的鸟的周围区域.在粒子群优化算法中,每个待优化的问题的解都是搜索空间中的一个粒子.每个粒子对应一个适应度(fitness value),每个粒子同时对应一个速度,速度决定粒子的移动方向和距离,粒子群就在解空间中搜索最优粒子.粒子群优化算法因为其算法规则简单、收敛速度快、可调参数少、寻优能力强,已经在神经网络优化方面得到了广泛的应用[7-9].

本文提出了粒子群极限学习机算法,利用粒子群优化算法优化选择极限学习机的输入层权值和隐含层偏差,从而计算出输出权值矩阵.通过与其他算法比较,验证了粒子群极限学习机在隐含层节点数目以及网络泛化性上的优势.

1 极限学习机(ELM)

对于 N 个任意的各不相同的样本(xi,yi),其中 xi=[xi1,xi2,…,xin]T∈Rn,yi=[yil,yi2,…,yim]T∈Rm,则一个具有L个隐层节点,激励函数为g(x)的前馈神经网络的输出可以表示为

其中,ai=[ai1,ai2,…,ain]T,是输入层到第i个隐含层节点的输入权值,bi是第 i个隐藏层节点的偏差(bias);βi=[βi1,βi2,…,βim]T是连接第 i个隐藏层结点的输出权值;ai·xi表示向量 ai和 xi的内积.其中激励函数 g(x)可以选择为“Sigmoid”,“Sine”或“RBF”等.

如果这个具有L个隐含层结点的前馈神经网络能以零误差逼近这N个样本,则存在ai,bi,βi使

(2)式可以简化为

H被称作网络的隐含层输出矩阵,在极限学习机算法中,输出权值和偏差可以随机给定,隐层矩阵H就变成一个确定的矩阵,这样前馈神经网络的训练就可以转化成一个求解输出权值矩阵的最小二乘解的问题,只需要求出输入权值的最小二乘解就能完成网络的训练,输出权值矩阵β可由(4)式得到

其中H+表示隐含层输出矩阵H的Moore-penrose广义逆.

2 粒子群优化算法(PSO)

PSO中,每个优化问题的解都是搜索空间中的一只鸟,称之为“粒子”.所有的粒子都有一个由适应度函数决定的适应值,每个粒子被赋予记忆功能,能记住所搜寻到的最佳位置,并且每个粒子还有一个速度决定它们飞翔的方向和距离,然后粒子们就追随当前的最优粒子在解空间中搜索.搜索的过程为在每一次迭代中,粒子通过跟踪两个“极值”来更新自己.一个就是粒子本身所找到的最优解,这个解叫做个体极值pBest,另一个极值是整个种群目前找到的最优解,这个极值是全局极值gBest.

在D维空间中,由 n个粒子组成的种群 X=(X1,X2,…,Xn),其中第 i个粒子的位置为 Xi=(xi1,xi2,…,xiD)T.将Xi带入适应度函数f(Xi)中计算出适应度值粒子位置Fitnessi.第i个粒子的速度为Vi=(vi1,vi2,…,viD)T,其 中 粒 子 i 的 个 体 极 值 为 Pi=(Pi1,Pi2,…,PiD)T,种 群 的 全 局 极 值 为 Pg=(Pg1,Pg2,…,PgD)T.

在迭代寻优过程中,粒子通过个体极值和全局极值更新自身的速度和位置,即

式中,ω 为惯性权重,调节对解空间的搜索范围,d=1,2,…,D,i=1,2,…,n.其中 D 为待优化问题的维数,n为种群大小,k为当前迭代次数,Vid为粒子速度,c1,c2(非负常数)为加速度因子,通常取c1=c2=2,r1,r2为两个随机数,取值范围为(0,1),以增加搜索随机性.为了防止粒子盲目搜索,一般将位置和速度限制在

3 粒子群极限学习机(PSOELM)

由于ELM随机给定输入权值矩阵和隐含层偏差,由式(1)~(4)可知输出权值矩阵是由输入权值矩阵和隐含层偏差计算得到的,可能会存在一些输入权值矩阵和隐含层偏差为0,即部分隐含层节点是无效的.因此在某些实际应用中,ELM需要大量的隐含层节点才能达到理想的精度.并且ELM对未在训练集中出现的样本反应能力较差,即泛化能力不足.

针对以上问题本文提出了一种粒子群极限学习机算法,利用粒子群优化和极限学习机网络相结合的学习算法,即利用粒子群优化算法优化选择极限学习机的输入层权值和隐含层偏差,从而得到一个最优的网络.训练步骤如下所示:

1)产生种群.粒子数popsize一般设置为20~40个,对于某些复杂问题可以设置100~200个,种群中的个体即粒子是由输入权值矩阵和隐含层偏差构成,粒子长度为D=k·(n+1),其中,k为隐含层节点数目,n为输入层神经元数目,即输入向量的维数.θm=[ω1m1,ω1m2,…,ω1m2,ω2m1,ωm22,…,ωm2k,…,ωmn1,ωmn2,…,ωmnK,…,bm1,bm2,…,bmk],其中,θm为种群中的第m(1≤m≤popsize)个粒子;ωmij、bmj为[-Xmax,Xmax]中的随机数.一般 Xmax=1.

2)对于种群中的每个个体(输入层权值矩阵和隐含层偏差),利用ELM算法(其中网络的隐含层激活函数选取应用最普遍的sigmoid函数)即式(1)~(4)可以计算出输出权值矩阵,利用训练样本计算出初始化种群的每个个体的均方根误差(RMSE),将RMSE作为粒子群优化算法的适应度.计算种群中的第1个粒子θ1的适应度值Fitness_1,令最优适应度值Fitness_best=Fitness_1;并将θ1作为pBest;然后执行以下伪代码.Step1 For(1 <i≤popsize)

{

计算θi的适应度值Fitness_i;If Fitness_i>Fitness_best

则 pBest(i)=θi

Fitness_best=Fitness_i Else pBest(i)= θi-1}

令Fitness_best对应的粒子θ为全局极值gBest.Step2 For(1≤i≤itera)itera为最大迭代次数

{

由(5)~(6)更新粒子速度和位置;

If 满足约束条件或者i>itera

Break

Else 跳转到step1}

3)执行以上伪代码可以得到最优适应度所对应的粒子即输入权值矩阵和隐含层偏差,利用ELM算法可以求得输出权值矩阵.

4 仿真实验

为了测试PSOELM的效果,本文做了一维Sinc函数拟合实验,通过与基于LM算法的BP神经网络(LMBP)、ELM、支持向量机(SVM)3种网络进行比较来测试PSOELM的效果.

Sinc函数表达式为

选取5 000 个数据集{xi,f(xi)},其中 xi服从[-10,10]的均匀分布;产生一组[-0.2,0.2]的均匀分布的噪音 ζi,则训练样本集为{xi,f(xi)+ζi}.同时选取5 000 个测试样本集为{xi,f(xi)},其中 xi为[-10,10]的等间隔采样.

将PSOELM的隐含层节点设置为10个,进化代数分别选择i=1,2,…,7,考虑到测试结果的波动,每次试验做了20组求取平均值(下同),测试PSOELM的RMSE,测试结果如表1所示;设置PSOELM的最大迭代次数为5,将ELM与PSOELM的隐含层节点数目逐渐增加,测试它们的RMSE.测试效果如表2所示.

从表1中可知,当隐含层节点固定时,随着迭代次数的增加,训练时间也逐渐增加,训练误差和测试误差则减小.当迭代次数达到一定值时,测试误差减小变缓.由表2可以看出,随着隐含层节点的增加,PSOELM与ELM的RMSE都逐渐减小,当隐含层节点为20个时PSOELM效果达到最佳,而ELM当隐含层节点数目增加到100个时才逐渐稳定,但是仍然没有PSOELM效果好.当隐含层节点数目增加到1 000个时,ELM算法得到的RMSE为0.008 1,误差变化不大,考虑到PSOELM的学习时间较长,没有对其做测试.综合表1、表2,设隐含层设置PSOELM的最大迭代次数为5,隐含层节点数目为20,Sinc函数的拟合曲线如图1所示.

表1 迭代次数对PSOELM的影响Tab.1 The impact of the iteration number to PSOELM

表2 隐含层节点对ELM与PSOELM影响Tab.2 The impact of hidden layer nodes to ELM and PSOELM

在表3中,本文给出了PSOELM、ELM、SVM和LMBP在本实验中的性能对比,其中PSOELM隐含层节点设置为20个,最大迭代次数设置为5,ELM隐含层节点选择为100个,隐含层激活函数为‘sigmoid’.SVM采用libsvm工具包[10],SVM的参数采用交叉验证来完成,LMBP采用matlab自带的神经网络工具箱函数来进行训练,4种算法的性能对比如表3所示.

从表3中可以看出,针对一维Sinc函数拟合实验,PSOELM与SVM的误差最低,泛化性能最好.PSOELM只需要20个隐含层节点就能达到比需要100个隐含层节点的ELM更好的效果.

图1 PSOELM拟合Sinc函数Fig.1 The approximation curves of the Sinc function

表3 4种算法性能比较Tab.3 Four algorithms performance comparison

5 结论

本文提出了一种基于粒子群优化的极限学习机算法,采用ELM的学习算法,利用最小二乘法快速求解输出权值矩阵而不是利用迭代调整的算法;同时采用PSO算法优化输入权值矩阵和隐含层偏差;该算法综合了ELM和PSO的优点:参数调整简单、全局最优性、泛化能力强.并给出了该算法的详细步骤.仿真实验结果表明,该算法只需要较少的隐含层节点就能取得较好的效果.

[1] 刘天舒.BP神经网络的改进研究及应用[D].东北农业大学,2011.

[2] Huang Guangbin,Zhu Qinyu,Siew Cheekheong.Extreme learning machine:theory and applications[J].Neurocomputing,2006,70(1/2/3):489 -501.

[3] Deng W,Chen L.Color imagewatermarking using regularized extreme learning machine[J].Neural Network World,2010,20(3):317-330.

[4] Zong Weiwei,Huang Guangbin.Face recognition based on extreme learning machine[J].Neurocomputing,2011,74(16):2541-2551.

[5] Kennedy J,Eberhart R.Particle swarm optimization[C]//Proceedings of IEEE International Conference on Neural Networks.Piscataway,1995:1942 -1948.

[6] Eberhart R,Kennedy J.A new optimizer using particle swarm theory[C]//Proc of the Sixth International Symposium on Micro Machine and Human Science.Nagoya,1995:39 -43.

[7] 冯冬青,杨书显.氧乐果合成过程的PSO回归BP网络建模方法[J].郑州大学学报:理学版,2011,43(3):113-117.

[8] 严晓明,郑之.基于混合仿生算法的SVM参数优化[J].广西师范大学学报:自然科学版,2011,29(2):115-118.

[9] 徐海龙,王晓丹,廖勇,等.一种基于PSO的RBF-SVM模型优化新方法[J].控制与决策,2010,25(3):368-377.

[10] Chih Chung Chang,Chih Jen Lin.LIBSVM:a library for support vector machines[EB/OL].[2012 -11 -16]http://www.csie.ntu.edu.tw/~ cjlin/libsvm.

猜你喜欢

学习机权值适应度
改进的自适应复制、交叉和突变遗传算法
二进制张量分解法简化神经网络推理计算①
一种融合时间权值和用户行为序列的电影推荐模型
基于随机权重粒子群优化极限学习机的土壤湿度预测
强规划的最小期望权值求解算法∗
一种基于改进适应度的多机器人协作策略
程序属性的检测与程序属性的分类
基于改进极限学习机的光谱定量建模方法
基于极限学习机神经网络的买断制加盟模式订货决策
自适应遗传算法的改进与应用*