Elman神经网络原理

article/2025/9/24 2:03:21

Elman神经网络

近期开题,阅读到了一篇文章关于故障诊断的,其中用到了Elman神经网络,具体是结合EMD、PCA-SOM的Elman的性能评估/预测故障诊断,对Elman神经网络有点陌生,网上资源也讲的特别杂,来做个汇总Introduction吧!

介绍

Elman神经网络 是 J. L. Elman于1990年首先针对语音处理问题而提出来的,是一种典型的局部回归网络( global feed forward local recurrent)。Elman网络可以看作是一个具有局部记忆单元局部反馈连接递归神经网络

Elman网络具有与多层前向网络相似的多层结构。

它的主要结构是前馈连接, 包括输入层、 隐含层、 输出层, 其连接权可以进行学习修正;反馈连接由一组“结构 ” 单元构成,用来记忆前一时刻的输出值, 其连接权值是固定的。在这种网络中, 除了普通的隐含层外, 还有一个特别的隐含层,称为关联层 (或联系单元层 ) ;该层从隐含层接收反馈信号, 每一个隐含层节点都有一个与之对应的关联层节点连接。关联层的作用是通过联接记忆将上一个时刻的隐层状态连同当前时刻的网络输入一起作为隐层的输入, 相当于状态反馈。隐层的传递函数仍为某种非线性函数, 一般为 Sigmoid函数, 输出层为线性函数, 关联层也为线性函数。

----词条来自于百度百科

Elman组成

Elman神经网络是一种典型的动态神经网络,通常有四层:输入层、中间层(隐含层)、 承接层和输出层。

  • 输入层、隐含层和输出层的连接类似于前馈网络

  • 输入层的单元只传输信号,输出层的单元具有线性加权的功能。

  • 隐层细胞的传递函数可以是线性函数,也可以是非线性函数。

  • 承接层又称为上下文层或状态层,用于记忆隐层的前一个时间步长输出,因此可以看作是一步时间延迟算子。

  • Elman网络结构

在这里插入图片描述

带反馈的的BP网络
行程迟滞具有短期记忆功能

Figure来自于网络)

Elman神经网络的特点是通过受体层的延迟和存储,隐层的输出与隐层的输入本身相连。这种自连接对其历史状态的数据非常敏感,内部反馈网络也增加了动态信息处理的能力,从而达到动态建模的目的。

选择用历史训练的Elman神经网络同步预测,数据流程图如下图所示。

在这里插入图片描述

  • Elman网络学习算法

在这里插入图片描述

用BP算法进行权值修正,指标函数为误差平方和
在这里插入图片描述


Matlab实例代码

本实例是引用的《Matlab神经网络30个案例分析》中的一个,觉得很不错,就更新一下下!~

内容较为古老,直接附上了,请多担待。

电力负荷预测概述

在这里插入图片描述

模型建立

在这里插入图片描述
在这里插入图片描述

电力系统负荷数据

在这里插入图片描述
具体数据及其源代码在我的GitHub上可下载:
https://github.com/YurBro/Project-Code/tree/main/ElmanNN

Matlab Code:

%%  基于Elman神经网络的电力负荷预测模型研究
% 
% 
% <html>
% <table border="0" width="600px" id="table1">	<tr>		<td><b><font size="2">该案例作者申明:</font></b></td>	</tr>	<tr>		<td><span class="comment"><font size="2">1:本人长期驻扎在此<a target="_blank" href="http://www.ilovematlab.cn/forum-158-1.html"><font color="#0000FF">板块</font></a>里,对<a target="_blank" href="http://www.ilovematlab.cn/thread-48362-1-1.html"><font color="#0000FF">该案例</font></a>提问,做到有问必答。</font></span></td></tr><tr>	<td><span class="comment"><font size="2">2:此案例有配套的教学视频,配套的完整可运行Matlab程序。</font></span></td>	</tr>	<tr>		<td><span class="comment"><font size="2">		3:以下内容为该案例的部分内容(约占该案例完整内容的1/10)。</font></span></td>	</tr>		<tr>		<td><span class="comment"><font size="2">		4:此案例为原创案例,转载请注明出处(<a target="_blank" href="http://www.ilovematlab.cn/">Matlab中文论坛</a><a target="_blank" href="http://www.ilovematlab.cn/forum-158-1.html">《Matlab神经网络30个案例分析》</a>)。</font></span></td>	</tr>		<tr>		<td><span class="comment"><font size="2">		5:若此案例碰巧与您的研究有关联,我们欢迎您提意见,要求等,我们考虑后可以加在案例里。</font></span></td>	</tr>		<tr>		<td><span class="comment"><font size="2">		6:您看到的以下内容为初稿,书籍的实际内容可能有少许出入,以书籍实际发行内容为准。</font></span></td>	</tr><tr>		<td><span class="comment"><font size="2">		7:此书其他常见问题、预定方式等,<a target="_blank" href="http://www.ilovematlab.cn/thread-47939-1-1.html">请点击这里</a></font></span></td>	</tr></table>
% </html>
% %% 清空环境变量clc;
clear all
close all
nntwarn off;%% 数据载入load data;
a=data;%% 选取训练数据和测试数据for i=1:6p(i,:)=[a(i,:),a(i+1,:),a(i+2,:)];
end
% 训练数据输入
p_train=p(1:5,:);
% 训练数据输出
t_train=a(4:8,:);
% 测试数据输入
p_test=p(6,:);
% 测试数据输出
t_test=a(9,:);% 为适应网络结构 做转置p_train=p_train';
t_train=t_train';
p_test=p_test';%% 网络的建立和训练
% 利用循环,设置不同的隐藏层神经元个数
nn=[7 11 14 18];
for i=1:4threshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1];% 建立Elman神经网络 隐藏层为nn(i)个神经元net=newelm(threshold,[nn(i),3],{'tansig','purelin'});% 设置网络训练参数net.trainparam.epochs=1000;net.trainparam.show=20;% 初始化网络net=init(net);% Elman网络训练net=train(net,p_train,t_train);% 预测数据y=sim(net,p_test);% 计算误差error(i,:)=y'-t_test;
end%% 通过作图 观察不同隐藏层神经元个数时,网络的预测效果plot(1:1:3,error(1,:),'-ro','linewidth',2);
hold on;
plot(1:1:3,error(2,:),'b:x','linewidth',2);
hold on;
plot(1:1:3,error(3,:),'k-.s','linewidth',2);
hold on;
plot(1:1:3,error(4,:),'c--d','linewidth',2);
title('Elman预测误差图')
set(gca,'Xtick',[1:3])
legend('7','11','14','18','location','best')
xlabel('时间点')
ylabel('误差')
hold off;web browser http://www.ilovematlab.cn/viewthread.php?tid=63640
%%
%
% <html>
% <table align="center" >	<tr>		<td align="center"><font size="2">版权所有:</font><a
% href="http://www.ilovematlab.cn/">Matlab中文论坛</a>&nbsp;&nbsp; <script
% src="http://s3.cnzz.com/stat.php?id=971931&web_id=971931&show=pic" language="JavaScript" ></script>&nbsp;</td>	</tr></table>
% </html>
%

目前知道的关于Elman神经网络的内容就这么多,还需要再多读读Paper。
~
有新的相关内容知识,⚡必更新⚡!
~
待研究透彻之后,定给出⚡Python代码⚡!


-更新日志-
(2021.8.19只更新了个MATLAB的程序,着实丢人!!!)
~
❤坚持读Paper,坚持做笔记写Blog!❤

ღ( ´・ᴗ・` )


我相信所有被我遗忘的美好,一定还在这世上的某个角落,也相信总有一天,走过很长的生命,遇见美好,春暖花开


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

相关文章

【神经网络第一期】Elman神经网络基本原理

1. Elman神经网络概述 根据神经网络运行过程中的信息流向&#xff0c;可将神经网络可分为前馈式和反馈式两种基本类型。前馈式网络通过引人隐藏层以及非线性转移函数可以实现复杂的非线性映射功能。但前馈式网络的输出仅由当前输入和权矩阵决定&#xff0c;而与网络先前的输出…

回归预测 基于ELMAN递归神经网络预测及其matlab代码实现

文章目录 1. ELMAN神经网络的简介和算法描述1.1 Elman网络介绍1.2 Elman结构组成 1.3 ELMAN训练界面的参数解读2. 建立ELMAN神经网络的步骤3. 编写MATLAB代码4. ELMAN程序运行结果4.1 各层的神经元个数的确定过程4.2 预测值和真实值的误差计算&#xff08;SSE、MAE、MSE、RMSE、…

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

Elman神经网络介绍 1.特点 Elman神经网络是一种典型的动态递归神经网络&#xff0c;它是在BP网络基本结构的基础上&#xff0c;在隐含层增加一个承接层&#xff0c;作为一步延时算子&#xff0c;达到记忆的目的&#xff0c;从而使系统具有适应时变特性的能力&#xff0c;增强了…

数据库命名规范--通用

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

数据库命名规范

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

【数据库】命名规范

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

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

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

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

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

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

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

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

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

ESP8266串口WiFi模块

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

wifi转串口

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

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

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