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

article/2025/9/24 2:08:52

Elman神经网络介绍

1.特点
Elman神经网络是一种典型的动态递归神经网络,它是在BP网络基本结构的基础上,在隐含层增加一个承接层,作为一步延时算子,达到记忆的目的,从而使系统具有适应时变特性的能力,增强了网络的全局稳定性,它比前馈型神经网络具有更强的计算能力,还可以用来解决快速寻优问题。
2.结构
Elman神经网络是应用较为广泛的一种典型的反馈型神经网络模型。一般分为四层:输入层、隐层、承接层和输出层。其输入层、隐层和输出层的连接类似于前馈网络。输入层的单元仅起到信号传输作用,输出层单元起到加权作用。隐层单元有线性和非线性两类激励函数,通常激励函数取Signmoid非线性函数。而承接层则用来记忆隐层单元前一时刻的输出值,可以认为是一个有一步迟延的延时算子。隐层的输出通过承接层的延迟与存储,自联到隐层的输入,这种自联方式使其对历史数据具有敏感性,内部反馈网络的加入增加了网络本身处理动态信息的能力,从而达到动态建模的目的。其结构图如下图1所示,
Elman神经网络结构图
其网络的数学表达式为:
这里写图片描述


其中,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%

转载请标明出处,谢谢!。

如果感觉本文对您有帮助,请留下您的赞,您的支持是我坚持写作最大的动力,谢谢!


http://chatgpt.dhexx.cn/article/iwE7BlBe.shtml

相关文章

数据库命名规范--通用

分段式的 1.1 基本命名原则 以下基本原则适用于所有数据库对象命名,如无特别说明则为强制规范。规范:遵循行业规范 当有相关国家/行业强制性数据结构标准规范存在时,用于存储某业务数据的业务表在表名命名上原则上应该遵从标准规定&#xf…

数据库命名规范

数据库命名规范 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 开发工具与关键技术:SQL Server 2014 Management Studio 作者:朱海恩 撰写时间:2019年7月12日 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~…

【数据库】命名规范

鸣谢: 命规范_码农书生的博客-CSDN博客_数据库字段名称命名规则一、数据库命名规范1.1 数据库命名规范采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线_组成,命名简洁明确,多个单词用下划线_分隔,一个项目一个数据库&…

ESP8266 WIFI 模块串口调试过程-实现通过互联网实现数据远程传输(结尾含驱动代码链接)

一、 ESP8266 WIFI模块调试(串口发送AT指令调试)。 ESP8266 WIFI模块的调试算是最复杂的了,虽然通信是简单的串口通信,但是要设置ESP8266连接服务器并稳定无误的将数据上传,还是非常不容易的。 在前期模块调试阶段我…

串口转无线WiFi模块——WizFi210-EVB操作手册

1. 产品介绍 特点 - 通过串行主机接口,进行WiFi连接 - 快速开机时间:少于20毫秒 - 超低功耗,通过动态电源管理(待机模式34μA) - 速度高达to11Mbps(802.11b)的标准的802.11b/g/n接入点 - 安全…

sever串口wifi拓展板_什么是串口WIFI模块

展开全部 串口WiFi模块多是以邮票孔的62616964757a686964616fe59b9ee7ad9431333365646263形式作为管脚引出控制引脚,主要采取焊接的方式来实现接入电路控制板。 串口WiFi模块是多种WiFi模块中的一类,功能是将串口或TTL电平转换为符合Wi-Fi无线网络通信标…

【沧海拾昧】WiFi串口通信ESP8266模块基本介绍(附野火WiFi透传实例)

#C0104 沧海茫茫千钟粟,且拾吾昧一微尘 ——《沧海拾昧集》CuPhoenix 【阅前敬告】 沧海拾昧集仅做个人学习笔记之用,所述内容不专业不严谨不成体系 【如有问题必是本集记录有谬,切勿深究】 目录 前言一、ESP8266模块基本连线二、ESP8266固件…

ESP8266串口WiFi模块

参考和学习《ESP8266串口WIFI模块的基本使用》点击打开链接 ESP8266是一款超低功耗的UART-WiFi 透传模块,可将用户的物理设备连接到Wi-Fi 无线网络上,进行互联网或局域网通信,实现联网功能。 把硬件联网之后,就再也不是“玩单机”了。配合服务器端的Socket网络编程,可以…

教你E103-W10串口转WiFi模块的无线透传应用教程

以下为E103-W10作为 softAP实现 UDP串口服务器无线数据透传的举例,E103-W10作为 station 可同理实现透传。 1.透传 默认仅在TCP client单连接或UDP传输模式时,支持透传。 1.1.TCP Client 单连接透传 1.配置WiFi模式 使用指令ATCWMODE3//SoftAPStati…

ESP32小网关应用,嵌入式串口转以太网,支持蓝牙+wifi

提示:今天分享的ESP32小网关,是深圳市启明云端有限公司推出的基于ESP32系列的嵌入式串口转以太网模块,模块内部集成了优化过的TCP/IP协议栈的WT32-ETH01模块 WT32-ETH01-基于ESP32的小网关 提示:ESP32系列IC是集成了2.4GHz Wi-Fi…

如何测试WizFi210的”串口转无线”功能?

该文章给大家介绍串口模块WizFi210的快速启动指导,如何测试WizFi210的”串口转无线”功能。 首先要给大家说明的是,本文描述的是在下列环境中配置串口模块WizFi210时所需要的步骤: 1. AP:使用WPA Personal或临时密钥完整性协议(T…

rs232/485转WiFi串口转换服务器 Modbus RTU转tcp协议

大家好,我们知道传统工业上常用的是RS232和RS485信号来控制设备,而现在,我们已经进入了互联网时代,物联网时代,所有的设备都可以上网,而传统的232设备如何上网呢? 在这里,我推荐大家…

ESP8266-12F WIFI转串口模块底板设计

一、ESP8266-12F模块简介 ESP8266-12F 是ESP8266-12的增强版,完善外围电路,四层板板工艺,增强阻抗匹配,信号输出更佳,无论是稳定性还是抗干扰能力,PCB天线经过专业实验室测试,完美匹配&#xff…

串口转WiFi透传模块UART转WiFi模块嵌入式WiFi参数一键配置原理

SimpleWiFi串口WiFi模块一键配置功能 概述 目前,在嵌入式领域,智能家居、智能工业、智能公交等等控制中,WiFi已经成为了一种普遍被采用的技术。 在智能工业控制,或者智能家居的主控系统中。单片机,成为了中控系统的控…

调试wifi转串口的板子成功了

今天下班回到家就开始调我在淘宝上买的wifi转串口的板子,到目前为止算是调通了。回头就是编写arduino的串口通信程序了。这样的话,我的手机智能家局系统很快就可以完成了。下边是调试wifi转串口板子的情况,拿来和大家分享。 大体上的调试思路…

wifi转串口

wifi转串口 ZLAN7146是一款wifi转串口的wifi串口服务器。该串口服务器可以方便地使得串口设备连接到WIFI无线网络,实现串口设备的无线化网络升级。RS232接口支持全双工、不间断通信;RS485内嵌485防雷保护。wifi支持STA模式连接到无线路由器,或…

物联网工业串口转WiFi模块 无线路由WiFi模块的选型

伴随着物联网的发展,最初的两个机器之间通过硬件直接通信的物理层到通过硬件地址再局域网中进行通信的数据链路层已经远远不能满足于现代人们生活以及各行给业生产的需求。逐渐结合高性能,高质量的网络层和应用层。实现智能终端数据采集,数据…

串口转无线网模块:WizFi630 快速入门指导

WIZnet研发的WizFi630,能有效实现串口转无线功能,它兼容 IEEE 802.11 b/g/n,支持3个以太网端口(10/100 高速以太网) 和2个UART口 ,内嵌全套网络协议栈和相关安全网络协议,并且配置简单,具有极好的易用性。以下为对其的…

【常用模块】ESP8266 WIFI串口通信模块使用详解(实例:附STM32详细代码)

物联网,万物互联。这里涉及到的最基本的东西就是如何将所有的物联网设备连接在一起。最简单、最广泛使用的就是互联网。 ESP8266 WIFI串口通信模块应该是使用最广泛的一种WIFI模块之一了。为什么呢? 因为ESP8266模块是一款高性能的WIFI串口模块&#x…

串口与wifi模块

经过以下学习,我们掌握: AT指令与wifi模块的测试方法:通过CH340直接测试,研究各种AT指令下wifi模块的响应信息形式。编程,使用串口中断接收wifi模块对AT指令的响应信息以及透传数据,通过判断提高指令执行的…