Elman神经网络

Elman神经网络是由Jeffrey L. Elman  于1990年提出,是一种反馈神经网络

 

网络原型

 

 

 

 网络计算步骤:

 

 

Matlab中  关于Elman神经网络的重要函数:

newelm()---生成一个Elman神经网络

trains()---根据已设定的权值和阈值对网络进行顺序训练

traingdx()---自适应学习速率动量梯度下降反向传播训练函数

learngdm()---动量梯度下降权值和阈值学习函数

 

一个简单的例子:

 

% 初始化
clear ; close all; clc
p=[0.4413 0.4707 0.6953 0.8133 0.4379 0.4677 0.6981 0.8002 0.4517 0.4725 0.7006 0.8201;...
    0.4379 0.4677 0.6981 0.8002 0.4517 0.4725 0.7006 0.8201 0.4557 0.4790 0.7019 0.8211;...
    0.4517 0.4725 0.7006 0.8201 0.4557 0.4790 0.7019 0.8211 0.4601 0.4811 0.7101 0.8298]'; 
%拟合输入函数矩阵,3个样本  每个样本12个变量
t=[0.4557 0.4790 0.719 0.8211;0.4601 0.4811 0.7101 0.8298; 0.4612 0.4845 0.7188 0.8312]'; %拟合目标函数矩阵
P_check=[0.4557 0.4790 0.719 0.8211 0.4601 0.4811 0.7101 0.8298  0.4612 0.4845 0.7188 0.8312]';%测试网络稳定性的数据矩阵
t1=[0.4615 0.4891 0.7201 0.8330]';%测试网络稳定性的目标矩阵;
threshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1];%设置每个变量的取值范围

P_check;
net=newelm(threshold,[17,4],{'tansig','purelin'});%建立网络模型
net.trainparam.epochs=3000;%最大迭代次数3000
net.trainparam.goal=0.0001;%迭代目标误差值
net=init(net);%初始化网络
[net,tr]=train(net,p,t);%训练网络
PN=sim(net,P_check);%仿真
figure(1);%打开新窗口作图
X=[1,2,3,4];

plot(X,PN,'r*',X,t1,'bo');
title('o为真实值,*为预测值');%作图

 

转载于:https://www.cnblogs.com/youpointyu/p/6821928.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值