1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/Y56Ulppr
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
RNN是一种特殊的神经网络结构, 它是根据"人的认知是基于过往的经验和记忆"这一观点提出的. 它与DNN,CNN不同的是: 它不仅考虑前一时刻的输入,而且赋予了网络对前面的内容的一种’记忆’功能.RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。
4.部分源码
data = xlsread('数据1.xlsx');
u = data(:,1:3);
x = data(:,4:5);
%数据归一化
x1= x(:,1);xmin1 = min(x1);xmax1 = max(x1);
x2= x(:,2);xmin2 = min(x2);xmax2 = max(x2);
x1=(x1)/(xmax1);
x2=(x2)/(xmax2);
x = [x1,x2];
u1= u(:,1);umin1 = min(u1);umax1 = max(u1);
u2= u(:,2);umin2 = min(u2);umax2 = max(u2);
u3= u(:,3);umin3 = min(u3);umax3 = max(u3);
%RNN;
[xpre,A,B,C,D] = func_RNN(u,x);
function [xpre,Aw,Bw,Cw,Dw] = func_RNN(u,x);
dtrain = u';
dtest = x';
%网络参数初始化
Nin = 3;
Nhi = 32;
Not = 2;
%权重初始化
Aw = rand(Nhi,Nhi);
Bw = rand(Not,Nhi);
Cw = rand(Nhi,Nin);
Dw = rand(Nhi,1);
xpre= zeros(Not,length(u));
%RNN网络训练
Lr = 0.002;
for ij=1:80
ij
for t=1:length(dtrain)
%从输入到隐层
if t==1
States = Cw*dtrain(:,t) + Dw;
else
States = Cw*dtrain(:,t) + Aw*fx(:,t-1) + Dw;
end
%从隐层到输出
for n=1:Nhi
fx(n,t) = 1/(1+exp(-States(n,:)));%通过sigmoid函数
end
xpre(:,t) = Bw*fx(:,t);
%误差计算
Error = xpre(:,t)-dtest(:,t);
%权值更新
[Aw,Bw,Cw,Dw]=func_wdata(t,Lr,Error,dtrain,fx,Aw,Bw,Cw,Dw);
end
end
05_057_m