Matlab基于遗传算法改进极限学习机ELM实现数据预测

 一、极限学习机的概念

       极限学习机(Extreme Learning Machine) ELM,是由黄广斌提出来的求解单隐层神经网络的算法。

       ELM最大的特点是对于传统的神经网络,尤其是单隐层前馈神经网络(SLFNs),在保证学习精度的前提下比传统的学习算法速度更快。

二、极限学习机的原理

ELM是一种新型的快速学习算法,对于单隐层神经网络,ELM可以随机初始化输入权重和偏置并得到相应的输出权重。

Matlab基于遗传算法改进极限学习机ELM实现数据预测

(选自黄广斌老师的PPT)

对于一个单隐层神经网络(见Figure 1),假设有Matlab基于遗传算法改进极限学习机ELM实现数据预测个任意的样本Matlab基于遗传算法改进极限学习机ELM实现数据预测,其中Matlab基于遗传算法改进极限学习机ELM实现数据预测Matlab基于遗传算法改进极限学习机ELM实现数据预测。对于一个有Matlab基于遗传算法改进极限学习机ELM实现数据预测个隐层节点的单隐层神经网络可以表示为

Matlab基于遗传算法改进极限学习机ELM实现数据预测

其中,Matlab基于遗传算法改进极限学习机ELM实现数据预测为激活函数,Matlab基于遗传算法改进极限学习机ELM实现数据预测为输入权重,Matlab基于遗传算法改进极限学习机ELM实现数据预测为输出权重,Matlab基于遗传算法改进极限学习机ELM实现数据预测是第Matlab基于遗传算法改进极限学习机ELM实现数据预测个隐层单元的偏置。Matlab基于遗传算法改进极限学习机ELM实现数据预测表示Matlab基于遗传算法改进极限学习机ELM实现数据预测Matlab基于遗传算法改进极限学习机ELM实现数据预测的内积。

       单隐层神经网络学习的目标是使得输出的误差最小,可以表示为

Matlab基于遗传算法改进极限学习机ELM实现数据预测

即存在Matlab基于遗传算法改进极限学习机ELM实现数据预测Matlab基于遗传算法改进极限学习机ELM实现数据预测Matlab基于遗传算法改进极限学习机ELM实现数据预测,使得

Matlab基于遗传算法改进极限学习机ELM实现数据预测

可以矩阵表示为

Matlab基于遗传算法改进极限学习机ELM实现数据预测

其中,Matlab基于遗传算法改进极限学习机ELM实现数据预测是隐层节点的输出,Matlab基于遗传算法改进极限学习机ELM实现数据预测为输出权重,Matlab基于遗传算法改进极限学习机ELM实现数据预测为期望输出。

Matlab基于遗传算法改进极限学习机ELM实现数据预测

Matlab基于遗传算法改进极限学习机ELM实现数据预测

Matlab基于遗传算法改进极限学习机ELM实现数据预测Matlab基于遗传算法改进极限学习机ELM实现数据预测

为了能够训练单隐层神经网络,我们希望得到Matlab基于遗传算法改进极限学习机ELM实现数据预测Matlab基于遗传算法改进极限学习机ELM实现数据预测Matlab基于遗传算法改进极限学习机ELM实现数据预测,使得

Matlab基于遗传算法改进极限学习机ELM实现数据预测

其中,Matlab基于遗传算法改进极限学习机ELM实现数据预测,这等价于最小化损失函数

Matlab基于遗传算法改进极限学习机ELM实现数据预测

传统的一些基于梯度下降法的算法,可以用来求解这样的问题,但是基本的基于梯度的学习算法需要在迭代的过程中调整所有参数。而在ELM算法中, 一旦输入权重Matlab基于遗传算法改进极限学习机ELM实现数据预测和隐层的偏置Matlab基于遗传算法改进极限学习机ELM实现数据预测被随机确定,隐层的输出矩阵Matlab基于遗传算法改进极限学习机ELM实现数据预测就被唯一确定。训练单隐层神经网络可以转化为求解一个线性系统Matlab基于遗传算法改进极限学习机ELM实现数据预测。并且输出权重Matlab基于遗传算法改进极限学习机ELM实现数据预测可以被确定

Matlab基于遗传算法改进极限学习机ELM实现数据预测

其中,Matlab基于遗传算法改进极限学习机ELM实现数据预测是矩阵Matlab基于遗传算法改进极限学习机ELM实现数据预测的Moore-Penrose广义逆。且可证明求得的解Matlab基于遗传算法改进极限学习机ELM实现数据预测的范数是最小的并且唯一。

三、遗传算法

• 遗传算法(Genetic Algorithm,GA)是一种进化算法,其基本原理是仿效生物界中的“物竞天择、适者生存”的演化法 则,它最初由美国Michigan大学的J. Holland教授于1967年提出。 • 遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的,而一个种群则由经过基因(gene)编码的一 定数目的个体(individual)组成。因此,第一步需要实现从表现型到基因型的映射即编码工作。初代种群产生之后,按照 适者生存和优胜劣汰的原理,逐代(generation)演化产生出越来越好的近似解,在每一代,根据问题域中个体的适应度 (fitness)大小选择个体,并借助于自然遗传学的遗传算子(genetic operators)进行组合交叉和变异,产生出代表新 的解集的种群。这个过程将导致种群像自然进化一样,后生代种群比前代更加适应于环境,末代种群中的最优个体经过解 码(decoding),可以作为问题近似最优解。

• 遗传算法有三个基本操作:选择(Selection)、交叉(Crossover)和变异(Mutation)。 • (1)选择。选择的目的是为了从当前群体中选出优良的个体,使它们有机会作为父代为下一代繁衍子孙。根据各个个体的 适应度值,按照一定的规则或方法从上一代群体中选择出一些优良的个体遗传到下一代种群中。选择的依据是适应性强的 个体为下一代贡献一个或多个后代的概率大。 • (2)交叉。通过交叉操作可以得到新一代个体,新个体组合了父辈个体的特性。将群体中的各个个体随机搭配成对,对每 一个个体,以交叉概率交换它们之间的部分染色体。 • (3)变异。对种群中的每一个个体,以变异概率改变某一个或多个基因座上的基因值为其他的等位基因。同生物界中一样, 变异发生的概率很低,变异为新个体的产生提供了机会。

遗传算法的基本步骤:

1)编码:GA在进行搜索之前先将解空间的解数据表示成遗传空间的基因型串结构数据, 这些串结构数据的丌同组合便构成了丌同的点。 2)初始群体的生成:随机产生N个初始串结构数据,每个串结构数据称为一个个体,N个 个体构成了一个群体。GA以这N个串结构数据作为初始点开始进化。 3)适应度评估:适应度表明个体或解的优劣性。丌同的问题,适应性函数的定义方式也丌 同。

4)选择:选择的目的是为了从当前群体中选出优良的个体,使它们有机会作为父代为下一 代繁殖子孙。遗传算法通过选择过程体现这一思想,进行选择的原则是适应性强的个体为 下一代贡献一个或多个后代的概率大。选择体现了达尔文的适者生存原则。 5)交叉:交叉操作是遗传算法中最主要的遗传操作。通过交叉操作可以得到新一代个体, 新个体组合了其父辈个体的特性。交叉体现了信息交换的思想。 6)变异:变异首先在群体中随机选择一个个体,对于选中的个体以一定的概率随机地改变 串结构数据中某个串的值。同生物界一样, GA中变异发生的概率很低,通常取值很小。

Matlab基于遗传算法改进极限学习机ELM实现数据预测

遗传算法工具箱:

• MATLAB内嵌遗传算法工具箱: gadst • Sheffield大学遗传算法工具箱: gatbx • 北卡罗来纳大学遗传算法工具箱: gaot

initializega函数:

Matlab基于遗传算法改进极限学习机ELM实现数据预测

ga函数:

Matlab基于遗传算法改进极限学习机ELM实现数据预测

Matlab基于遗传算法改进极限学习机ELM实现数据预测

遗传算法优化BP神经网络初始权值与阈值:

Matlab基于遗传算法改进极限学习机ELM实现数据预测

四、部分代码

%遗传算法主程序
%Name:genmain05.m
clear
clf
popsize=20; %群体大小
chromlength=10; %字符串长度(个体长度)
pc=0.6; %交叉概率
pm=0.001; %变异概率

pop=initpop(popsize,chromlength); %随机产生初始群体
for i=1:20 %20为迭代次数
[objvalue]=calobjvalue(pop); %计算目标函数
fitvalue=calfitvalue(objvalue); %计算群体中每个个体的适应度
[newpop]=selection(pop,fitvalue); %复制
[newpop]=crossover(pop,pc); %交叉
[newpop]=mutation(pop,pc); %变异
[bestindividual,bestfit]=best(pop,fitvalue); %求出群体中适应值最大的个体及其适应值
y(i)=-max(bestfit);
n(i)=i;
pop5=bestindividual;
x(i)=decodechrom(pop5,1,chromlength)*10/1023;
pop=newpop;
end

fplot('x^2-4*x+20',[0 10])
hold on
plot(x,y,'r*')
hold off


[z index]=min(y); %计算最大值及其位置,这里取的是y向量中的最大值,如果求最小值应该取min,同时修改适应度函数
x5=x(index)%计算最大值对应的x值
y=z

Matlab基于遗传算法改进极限学习机ELM实现数据预测

 Matlab基于遗传算法改进极限学习机ELM实现数据预测

 Matlab基于遗传算法改进极限学习机ELM实现数据预测

 Matlab基于遗传算法改进极限学习机ELM实现数据预测

 Matlab基于遗传算法改进极限学习机ELM实现数据预测

Matlab基于遗传算法改进极限学习机ELM实现数据预测

   》》  喜欢可以关注我

Matlab基于遗传算法改进极限学习机ELM实现数据预测

上一篇:解决BUG:CS1617: 选项“6”对 /langversion 无效;必须是 ISO-1、ISO-2、3、4、5 或 Default


下一篇:C++学习笔记