Elman神经网络介绍以及Matlab实现

发布时间:2018-06-28 19:27,

浏览次数:745

, 标签:

Elman

Matlab

Elman神经网络介绍

1.特点

Elman神经网络是一种典型的动态递归神经网络,它是在BP网络基本结构的基础上,在隐含层增加一个承接层,作为一步延时算子,达到记忆的目的,从而使系统具有适应时变特性的能力,增强了网络的全局稳定性,它比前馈型神经网络具有更强的计算能力,还可以用来解决快速寻优问题。

2.结构

Elman神经网络是应用较为广泛的一种典型的反馈型神经网络模型。一般分为四层:输入层、隐层、承接层和输出层。其输入层、隐层和输出层的连接类似于前馈网络。输入层的单元仅起到信号传输作用,输出层单元起到加权作用。隐层单元有线性和非线性两类激励函数,通常激励函数取Signmoid非线性函数。而承接层则用来记忆隐层单元前一时刻的输出值,可以认为是一个有一步迟延的延时算子。隐层的输出通过承接层的延迟与存储,自联到隐层的输入,这种自联方式使其对历史数据具有敏感性,内部反馈网络的加入增加了网络本身处理动态信息的能力,从而达到动态建模的目的。其结构图如下图1所示,

其网络的数学表达式为:

其中,y为m维输出节点向量;x为n维中间层节点单元向量;u为r维输入向量;为n维反馈状态向量;为中间层到输出层连接权值;为输入层到中间层连接权值;

为承接层到中间层连接权值;g()为输出神经元的传递函数,是中间层输出的线性组合;f()为中间层神经元的传递函数,常采用S函数。

3.与BP网络的区别

它是动态反馈型网络,它能够内部反馈、存储和利用过去时刻输出信息,既可以实现静态系统的建模,还能实现动态系统的映射并直接反应系统的动态特性,在计算能力及网络稳定性方面都比BP神经网络更胜一筹。

4.缺点

与BP神经网络一样,算法都是采用基于梯度下降法,会出现训练速度慢和容易陷入局部极小点的缺点,对神经网络的训练较难达到全局最优。

基于Matlab实现Elman神经网络

在MATLAB中,Elman神经网络可以通过调用newelm()实现。

例子:利用Elman神经网络实现MATLAB的数据预测。

%输入数据 P=[3.2 3.2 3 3.2 3.2 3.4 3.2 3 3.2 3.2; 9.6 10.3 9 10.3 10.1 10 9.6 9 9.6

9.2; 3.45 3.75 3.5 3.65 3.5 3.4 3.55 3.5 3.55 3.5; 2.15 2.2 2.2 2.2 2 2.15 2.14

2.1 2.1 2.1; 140 120 140 150 80 130 130 100 130 140; 2.8 3.4 3.5 2.8 1.5 3.2 3.5

1.8 3.5 2.5; 11 10.9 11.4 10.8 11.3 11.5 11.8 11.3 11.8 11; 50 70 50 80 50 60 65

40 65 50 ]; %训练数据 T=[2.24 2.33 2.24 2.32 2.2 2.27 2.2 2.26 2.2 2.24];%输出实际值

TestInput=[3.2 3.9 3.1 3.2 3.0; 9.5 9 9.5 9.7 9.3; 3.4 3.1 3.6 3.45 3.3; 2.15 2

2.1 2.15 2.05; 115 80 90 130 100; 2.8 2.2 2.7 2.6 2.8; 11.9 13 11.1 10.85 11.2;

50 50 70 70 50];%测试数据 TestOutput=[2.24 2.2 2.2 2.35 2.2]; %输出实际值

[pn,minp,maxp,tn,mint,maxt]=premnmx(P,T); p2= tramnmx(TestInput,minp,maxp);%创

建Elman神经网络 net_1 = newelm(minmax(pn),[8,1],{'tansig','purelin'},'traingdm'); %设

置训练参数 net_1.trainParam.show =50; net_1.trainParam.lr = 0.01;

net_1.trainParam.mc =0.9; net_1.trainParam.epochs =10000; net_1.trainParam.goal

=1e-3; net=init(net_1);%初始化网络 %训练网络 net = train(net,pn,tn); %使用训练好的网络,自定义输入 PN

= sim(net,p2); TestResult= postmnmx(PN,mint,maxt);%仿真值反归一化 %理想输出与训练输出的结果进行比较 E

=TestOutput - TestResult%计算误差 MSE=mse(E);%计算均方误差 figure(1) plot(TestOutput,'bo-'

); hold on; plot(TestResult,'r*--'); legend('真实值','预测值'); save('Elman.mat','net'

);

运行结果如下:

误差结果为:

E =[0.48% 0.40% 0.12% 9.47% 2.28%]

平均误差为:2.55%

matlab newelm,Elman神经网络介绍以及Matlab实现相关推荐

  1. Elman神经网络预测的Matlab实现

    Elman神经网络的matlab实现,其中Z为原始数据. 本文选用的Elman神经网络是一种典型的局部回归网络,属于反馈神经网络,与前向神经网络非常相似,具有更强的计算能力,其突出优点是具有很强的优化 ...

  2. matlab中的神经网络怎么用,matlab怎么搭建神经网络

    1.怎样用matlab建立bp神经网络 net=train(net, p, t);把这句改成net=train(net, p', t');试试,matlab应该默认使用列向量.或者直接使用matlab ...

  3. matlab中的神经网络怎么用,matlab如何编写神经网络

    1.matlab中神经网络怎么使用 可以直接用神经网络工具箱,GUI内设置训练的输入.目标.训练方法.迭代次数等. 谷歌人工智能写作项目:小发猫 2.matlab神经网络工具箱怎么使用训练好的神经网络 ...

  4. 神经网络算法二matlab实现,模糊神经网络算法之MATLAB实现.doc

    模糊神经网络算法之MATLAB实现.doc 用户名 密码 提 交登录 注册 矿业人生的空间主页博客相册|个人档案 |好友 |i 贴吧 查看文章 [转] 模糊神经网络算法之 MATLAB 实现2011- ...

  5. matlab中的神经网络怎么用,matlab神经网络训练方法

    如何利用matlab进行神经网络预测 matlab 带有神经网络工具箱,可直接调用,建议找本书看看,或者MATLAB论坛找例子. 核心调用语句如下:%数据输入%选连样本输入输出数据归一化[inputn ...

  6. matlab如何显示神经网络的均方误差,matlab神经网络工具箱

    1.输入nftool;点击next 2.输入特征X 和目标值Y如下:[注意按行/按列] 3.设置训练集/验证集/测试机比例:[一般默认为0.7:0.15:0.15] 4.设置隐藏层个数:[需要调的参数 ...

  7. Elman神经网络与自适应共振网络(ART)

    这几天在回过头看一些比较基础的东西,发现了两个早期研究的神经网络,Elman与ART网络,类似于上世纪80年代的hopfield神经网络,BM/RBM/DBN,RBF,SOM,以及同时期的SVM算法等 ...

  8. 神经网络仿真逻辑回归,神经网络仿真实验matlab

    BP神经网络 网络仿真具体什么意思?为什么进行仿真?仿真有什么用?(初学BP...) 用样本去训练一个BP网络,然后用新的样本作为输入,再通过这个已经训练好的BP网络,得到的数据就是仿真的结果,这就是 ...

  9. 【Matlab】开发环境介绍及学习方法

    文章目录 1.简介 2.开发环境 3.MATLAB编程入门 4.Simulink动态仿真环境介绍 5.学习方法 1.简介 理工科的学生相信大家对MATLAB都不陌生了. MATLAB是是矩阵实验室(M ...

最新文章

  1. python学起来难不难-新手学python数据分析难不难?
  2. java中获取时间6,Java中获取指定日为星期几及其他日期操作(2)
  3. 中国大学moocpython笔记_用Python玩转数据,中国大学MOOC(慕课)答案公众号搜题
  4. Cloud for Customer里XML view的加载原理
  5. 在地图上 添加柱状_如何做出一份惊艳的PPT地图页?这2个字,你一定要知道!...
  6. php做一个微信退款,PHP实现微信申请退款流程实例代码
  7. ObjC学习6-分类、协议及预处理程序
  8. LINQ to Objects和多线程实现文件查找与分组
  9. Exchange2003不能自动删除日志
  10. 龙蜥操作系统(Anolis OS)正式登陆阿里云公共云
  11. 理解MMORPG、回合制、ARPG、SLG、Roguelike、卡牌、竞技类
  12. draw.io 绘图软件导出png 图片的几个技巧
  13. 【明解C语言】之指针初阶详解
  14. Webpack 的 Chunk,想怎么分就怎么分
  15. html5课件动画制作,从此再也不担心课件/动画的开发了!
  16. 单机版swarm安装
  17. WWW 2022 | 量化交易相关论文(附论文链接)
  18. android 16进制/10进制/2进制转换
  19. 基于51单片机的智能家居安防系统(程序+仿真+PCB)
  20. ASIC--模拟版图工程师

热门文章

  1. 【Swift】自定义控件无限轮播 + 无限图片轮播
  2. Liunx中进程和计划任务管理
  3. Nginx出现“413 Request Entity Too Large”错误解决方法
  4. smarty模板引擎原理解析
  5. 解决Redhat Linux AS使用yum时出现This system is not registered with RHN的问题(改用CentOS的yum)...
  6. 软件缺陷管理工具大全
  7. 简单阐述hdfs的体系结构_HDFS主要特性和体系结构
  8. aes算法的C语言实现代码,AES加密算法c语言实现代码
  9. linux守护进程中多线程实现,Linux下实现多线程客户/服务器
  10. bootstrap-fileinput 使用