Press "Enter" to skip to content

基于遗传算法的BP神经网络在汇率预测中的应用研究(Matlab代码实现)

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

 

目录

 

2 实数编码的遗传算法与神经网络的结合

 

3 Matlab代码及详细文章

 

1 遗传算法

 

(1)遗传算法(Genetic Algorithms, GA)是一种全局寻优搜索算法,它通过将问题编码为由基因组成的染色体,然后通过模拟自然界的进化过程,对染色体的适应性进行选择、交叉、变异操作,经过不断的循环处理从而产生代表问题解的染色体。GA具有很强的鲁棒性,由于GA针对问题编码的染色体进行操作,隔离了问题本身的特性,所以具有广泛的适应性。同时由于算法从多初始点开始并行操作,可防止搜索过程收敛于局部极值。另一方面,交叉算子的使用是GA不同于盲目搜索与完全随机搜索、它是一种在当前最优的基础上构造更优解的过程,因此具有一定的启发式搜索和梯度搜索效率高的优点。GA通过群体实现搜索过程,使它不同于单点搜索,且易于并行化,从而提高算法的效率。

 

(2)遗传算法的一般描述。首先确定染色体(即个体)的编码形式,确定计算染色体适应值的函数,确定群体规模N,杂交率Pc,变异率Pm 等参数。然后可进行编程计算。

 

更详细总结见:

 

智能优化算法——遗传算法(Python&Matlab实现)

 

2 实数编码的遗传算法与神经网络的结合

 

用遗传算法训练神经网络可以采用二进制编码或实数编码。考虑到本文的神经网络规模较大,本文采用实数编码,步骤如下:

 

 

(6)重复(3). (4) . (5)直到下一代群体满为止。使用GA反复优化神经网络的权值,计算当前群体中个体的适应值,得到适应值最大的个体 bestpop.

 

(7)对 bestpop进行解码,此时得到的参数组合已经充分接近最佳参数组合、在此基础上用BP算法进行学习,得到网络的最优权值。

 

(8)用得到的最优权值进行模拟(预测)。

 

 

3 Matlab代码及详细文章

 

本文仅展现部分代码,全部代码及文章见:

 

基于遗传算法的BP神经网络在汇率预测中的应用研究(Matlab代码实现)

 

function error = objfun_BP(x,inputnum,hiddennum,outputnum,net,inputn,outputn)
%该函数用来计算适应度值
%x          input     个体
%inputnum   input     输入层节点数
%outputnum  input     隐含层节点数
%net        input     网络
%inputn     input     训练输入数据
%outputn    input     训练输出数据
%error      output    个体适应度值
%提取
w1=x(1:inputnum*hiddennum);
B1=x(inputnum*hiddennum+1:inputnum*hiddennum+hiddennum);
w2=x(inputnum*hiddennum+hiddennum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum);
B2=x(inputnum*hiddennum+hiddennum+hiddennum*outputnum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum);
%网络进化参数
net.trainParam.epochs=20;
net.trainParam.lr=0.1;
net.trainParam.mc = 0.8;%动量系数,[0 1]之间
net.trainParam.goal=0.01;
net.trainParam.show=100;
net.trainParam.showWindow=0;
 
%网络权值赋值
net.iw{1,1}=reshape(w1,hiddennum,inputnum);
net.lw{2,1}=reshape(w2,outputnum,hiddennum);
net.b{1}=reshape(B1,hiddennum,1);
net.b{2}=B2;
%网络训练
net=train(net,inputn,outputn);
an=sim(net,inputn);
error=sum(abs(an-outputn));

 

4 运行结果

 

 

 

 

 

 

 

 

5 参考文献

 

[1]惠晓峰,胡运权,胡伟.基于遗传算法的BP神经网络在汇率预测中的应用研究[J].数量经济技术经济研究,2002(02):80-83.

 

6 写在最后

 

部分理论引用网络文献,如有侵权请联系删除。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。