基于斑点鬣狗算法优化的Elman神经网络数据预测 - 附代码

基于斑点鬣狗算法优化的Elman神经网络数据预测 - 附代码

文章目录

  • 基于斑点鬣狗算法优化的Elman神经网络数据预测 - 附代码
    • 1.Elman 神经网络结构
    • 2.Elman 神经用络学习过程
    • 3.电力负荷预测概述
      • 3.1 模型建立
    • 4.基于斑点鬣狗优化的Elman网络
    • 5.测试结果
    • 6.参考文献
    • 7.Matlab代码

摘要:针对Elman神经网络,初始权值阈值盲目随机性的缺点。采用斑点鬣狗算法对ELman的阈值和权值进行优化。利用电力负荷预测模型进行测试,结果表明改进后的神经网络预测性能更佳。

1.Elman 神经网络结构

Elman 型神经网络一般分为四层:输入层、隐含层(中间层)、承接层和输出层 。 如图 1所示。输入层、隐含层、输出层的连接类似于前馈式网络 ,输入层的单元仅起信号传输作用,输出层单元起线性加权作用。隐含层单元的传递函数可采用线性或非线性函数,承接层又称上 下文层或状态层,它用来记忆隐含层单元前一时刻的输出值并返回给网络的输入 , 可以认为是 一个一步延时算子。

Elman 神经网络的特点是隐含层的输出通过承接层的延迟与存储,自联到隐含层的输入。 这种自联方式使其对历史状态的数据具有敏感性,内部反馈网络的加入增强了网络本身处理动态信息的能力 ,从而达到动态建模的目的。此外, Elman 神经网络能够以任意精度逼近任意非线性映射,可以不考虑外部噪声对系统影响的具体形式,如果给出系统的输入输出数据对 , 就可以对系统进行建模 。

在这里插入图片描述

图1.Elman网络结构

2.Elman 神经用络学习过程

以图1为例 , Elman 网络的非线性状态空间表达式为 :
y ( k ) = g ( w 3 x ( k ) ) (1) y(k) = g(w^3x(k)) \tag{1} y(k)=g(w3x(k))(1)

x ( k ) = f ( w 1 x c ( k ) + w 2 ( u ( k − 1 ) ) ) (2) x(k)=f(w^1x_c(k)+w^2(u(k-1)))\tag{2} x(k)=f(w1xc(k)+w2(u(k1)))(2)

x c ( k ) = x ( k − 1 ) (3) x_c(k)=x(k-1)\tag{3} xc(k)=x(k1)(3)

式中, y y y m m m 维输出结点向量 ; x x x n n n 维中间层结点单元向量; u u u r r r 维输入向量; x c x_c xc n n n 维反馈状态向量; w 3 w^3 w3 为中间层到输出层连接权值; w 2 w^2 w2为输入层到中间层连接权值; w 1 w^1 w1为承接层到中间层的连接权值; g ( ∗ ) g(*) g()为输出神经元的传递函数,是中间层输出的线性组合; f ( ∗ ) f(*) f()为中间层神经元的传递函数,常采用 S S S 函数 。

Elman 神经网络也采用 BP 算法进行权值修正,学习指标函数采用误差平方和函数。
E ( w ) = ∑ k = 1 n ( y k ( w ) − y k ′ ( w ) ) 2 (4) E(w)=\sum_{k=1}^n(y_k(w)-y'_k(w))^2\tag{4} E(w)=k=1n(yk(w)yk(w))2(4)

3.电力负荷预测概述

电力系统由电力网、电力用户共同组成,其任务是给广大用户不间断地提供经济、可靠、符 质量标准的电能,满足各类负荷的需求,为社会发展提供动力。由于电力的生产与使用具有特殊性,即电能难以大量储存,而且各类用户对电力的需求是时刻变化的,这就要求系统发电出力应随时与系统负荷的变化动态平衡,即系统要最大限度地发挥出设备能力,使整个系统保 持稳定且高效地运行,以满足用户的需求 。 否则,就会影响供用电的质量,甚至危及系统的安全 与稳定 。 因此,电力系统负荷预测技术发展了起来,并且是这一切得以顺利进行的前提和基础。负荷预测的核心问题是预测的技术问题,或者说是预测的数学模型。传统的数学模型是用现成的数学表达式加以描述,具有计算量小、速度快的优点,但同时也存在很多的缺陷和局限性,比如不具备自学习、自适应能力、预测系统的鲁棒性没有保障等。特别是随着我国经济 的发展,电力系统的结胸日趋复杂,电力负荷变化的非线性、时变性和不确定性的特点更加明 显,很难建立一个合适的数学模型来清晰地表达负荷 和影响负荷的变量之间的 关系。而基于神经网络的非数学模型预测法,为解决数学模型法的不足提供了新的思路 。

3.1 模型建立

利用人工神经网络对电力系统负荷进行预测,实际上是利用人工神经网络可以以任意精度逼近任一非线性函数的特性及通过学习历史数据建模的优点。而在各种人工神经网络中, 反馈式神经网络又因为其具有输入延迟,进而适合应用于电力系统负荷预测。根据负荷的历史数据,选定反馈神经网络的输入、输出节点,来反映电力系统负荷运行的内在规律,从而达到预测未来时段负荷的目的。因此,用人工神经网络对电力系统负荷进行预测 ,首要的问题是确定神经网络的输入、输出节点,使其能反映电力负荷的运行规律。

一般来说,电力系统的负荷高峰通常出现在每天的 9~ 19 时之间 ,本案对每天上午的逐时负荷进行预测 ,即预测每天 9 ~ 11 时共 3 小时的负荷数据。电力系统负荷数据如下表所列,表中数据为真实数据,已经经过归 一化 。

时间负荷数据负荷数据负荷数据
2008.10.100.12910.48420.7976
2008.10.110.10840.45790.8187
2008.10.120.18280.79770.743
2008.10.130.1220.54680.8048
2008.10.140.1130.36360.814
2008.10.150.17190.60110.754
2008.10.160.12370.44250.8031
2008.10.170.17210.61520.7626
2008.10.180.14320.58450.7942

利用前 8 天的数据作为网络的训练样本,每 3 天的负荷作为输入向量,第 4 天的负荷作为目标向量。这样可以得到 5 组训练样本。第 9 天的数据作为网络的测试样本,验证网络能否合理地预测出当天的负荷数据 。

4.基于斑点鬣狗优化的Elman网络

斑点鬣狗算法原理请参考:https://blog.csdn.net/u011835903/article/details/107542352

利用斑点鬣狗算法对Elman网络的初始权值和阈值进行优化。适应度函数设计为测试集的绝对误差和:
f i t n e s s = ∑ i = 1 n ∣ p r e d i c t n − T r u e V a l u e n ∣ (5) fitness = \sum_{i=1}^n|predict_n - TrueValue_n| \tag{5} fitness=i=1npredictnTrueValuen(5)

5.测试结果

斑点鬣狗参数设置如下:

%% 网络相关参数设定
hiddNum = 18;%隐含层个数
R = size(p_train,1);%输入数据每组的维度
Q = size(t_train,1);%输出数据的维度
threshold = [0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1];%每组数据对应维度的最小(0)和最大值(1);%% 斑点鬣狗相关参数设定
%% 定义斑点鬣狗优化参数
pop=20; %种群数量
Max_iteration=20; %  设定最大迭代次数
dim = hiddNum*R + hiddNum + Q + hiddNum*hiddNum + Q*hiddNum;%维度,即权值与阈值的个数,承接层个数
lb = -5.*ones(1,dim);%下边界
ub = 5.*ones(1,dim);%上边界
fobj = @(x) fun(x,hiddNum,R,Q,threshold,p_train,t_train,p_test,t_test);

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

从结果来看,3个时刻点,斑点鬣狗-Elman均比原始结果Elman好,误差更小。

由于上述数据有限,大家可以用自己的数据进行测试。

6.参考文献

书籍《MATLAB神经网络43个案例分析》

7.Matlab代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/589420.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络教案——计算机网络设备章节

第五章 计算机网络设备 一、教学目标: 1. 了解计算机网络的主要设备 2. 了解计算机网络设备的主要原理 3. 掌握计算机网络设备的基本用途 4. 掌握计算机网络设备的使用常识 二、教学重点、难点 计算机网络设备的主要原理 三、技能培训重点、难点 计算机网络设备的使用…

创建型--单例模式

1. basic 1.1 什么是单例模式 保证⼀个类仅有⼀个实例,并提供⼀个访问它的全局访问点。 1.2 分类 两种: 饿汉模式:饿了就饥不择⻝了,所以在单例类定义的时候就进⾏实例化。懒汉模式:顾名思义,不到万不…

接收Kafka数据并消费至Hive表

1 Hive客户端方案 将Kafka中的数据消费到Hive可以通过以下简单而稳定的步骤来实现。这里假设的数据是以字符串格式存储在Kafka中的。 步骤: 创建Hive表: 使用Hive的DDL语句创建一个表,该表的结构应该与Kafka中的数据格式相匹配。例如&#…

(六)Java 运算符

目录 一. 前言 二. 算术运算符 三. 关系运算符 四. 位运算符 五. 逻辑运算符 六. 赋值运算符 七. 其他运算符 7.1. 条件运算符(三元运算符) 7.2. instanceof 运算符 八. Java 运算符优先级 九. 课后习题 一. 前言 计算机的最基本用途之一就是…

Pix2Pix如何工作?

一、说明 在本指南中,我们将重点介绍 Pix2Pix [1],它是用于配对图像翻译的著名且成功的深度学习模型之一。在地理空间科学中,这种方法可以帮助传统上不可能的广泛应用,在这些应用中,我们可能希望从一个图像域转到另一个…

vue3基础知识一,安装及使用

一、安装vue3 需要安装node,然后在项目所在目录命令行执行以下代码。 npm create vuelatest 回车后需要配置以下内容。 二、安装所需的依赖包并运行 cd到项目目录,执行以下代码安装依赖包 npm i 运行项目 npm run dev 打开浏览器查看结果 ok&#…

重温MySQL之索引那些事

文章目录 前言一、概念1.1 索引作用1.2 索引类型1.3 B树索引结构1.4 B树索引源码分析 二、查询计划2.1 explain2.2 id2.3 select_type2.4 table2.5 partitions2.6 type2.7 possible_keys2.8 key2.9 key_len2.10 ref2.11 rows2.12 filtered2.13 Extra 三、索引优化3.1 索引失效3…

【sql】MyBatis Plus中,sql报错LIKE “%?%“:

文章目录 一、报错详情:二、解决:三、扩展: 一、报错详情: 二、解决: 将LIKE “%”#{xxx}"%"改为LIKE CONCAT(‘%’, #{xxx}, ‘%’) 三、扩展: MyBatis Plus之like模糊查询中包含有特殊字符…

爬虫详细教程第1天

爬虫详细教程第一天 1.爬虫概述1.1什么是爬虫?1.2爬虫工具——Python1.3爬虫合法吗?1.4爬虫的矛与盾1.4.1反爬机制1.4.2反爬策略1.4.3robots.txt协议 2.爬虫使用的软件2.1使用的开发工具: 3.第一个爬虫4.web请求4.1讲解一下web请求的全部过程4.2页面渲染…

如何协调建筑技术集成、互操作性和安全性

尽管进行了大量时间和精力的准备和执行,但建筑集成通常无法按预期或根据需要进行工作,无法满足日益常见的能源报告要求或组织可持续发展目标。 当谈到运营技术 (OT) 部署的最终状态时,“这不是我所要求的”这句话太常见了。在许多情况下&…

每个AI/ML工程师必须了解的人工智能框架和工具

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

1分钟带你了解golang(go语言)

Golang:也被称为Go语言,是一种开源的编程语言,由Google的Robert Griesemer、Rob Pike和Ken Thompson于2007年发明。 被誉为21世纪的C语言。 像python一样的优雅,有c一样的性能天生协程天生并发编译快… 编辑器:golan…

固定本机在局域网中的 IP 地址

说明:以将 IP 地址固定为 192.168.1.107 为例 Step1、打开终端,输入以下命令查看网络信息: ipconfig -all 记住子网掩码、默认网关、DNS 服务器(首选和备用)信息,后面要用: Step2、进入 “控制…

mac上使用Navicat Premium 在本地和生产环境中保持数据库同步

Navicat Premium 是一款功能强大的数据库管理和开发工具,支持多种数据库系统,如 MySQL、Oracle、SQL Server 等。作为程序员,我深知在开发过程中需要一款方便、高效的数据库管理工具来提升工作效率。而 Navicat Premium 正是这样一款不可多得…

windows go环境安装 swag

windows 下载依赖包 go get github.com/swaggo/swag/cmd/swag编译swag cd $GOPATH\pkg\mod\github.com\swaggo\swagv1.16.2\cmd\swagps: go env 获取 GOPATH位置 go installps: 此时 $GOPATH\bin下出现了 swag.exe 项目根目录下执行swag 初始化 swag init生成结果

swing快速入门(三十四)输入对话框

🌼注释很详细,直接上代码 🌷新增内容 🥀字符串输入型 输入对话框用法 🥀下拉选项输入型输入对话框用法 🪴完整代码: package swing31_40;import javax.swing.*; import java.awt.*; import ja…

【已解决】若依系统前端打包后,部署在nginx上,点击菜单错误:@/views/system/role/index

​ 上面错误,是因为/views/system/role/index动态路由按需加载时候,错误导致。 解决办法: 如果您的前端项目访问时候,需要带有项目名称的话,参考凯哥上一篇文章:【已解决】若依前后端分离版本&#xff0…

【Linux】Linux 下基本指令 -- 详解

无论是什么命令,用于什么用途,在 Linux 中,命令有其通用的格式: command [-options] [parameter] command:命令本身。-options:[可选,非必填]命令的一些选项,可以通过选项控制命令的…

YOLOv8主干改进 更换柱状神经网络RevCol

一、Reversible Column Networks论文 论文地址:2212.11696.pdf (arxiv.org) 二、Reversible Column Networks结构 Reversible Column Networks 是一种用于量子计算的新型结构。它由一系列可逆操作组成,可以在量子计算中进行高效的信息传递和处理,具有可扩展性、灵活性、…

2.2数据通信的基础知识

目录 2.2数据通信的基础知识2.2.1数据通信系统的模型数据通信常用术语 2.2.2 有关信道的几个基本概念(1)常用编码方式(2)基本的带通调制方法 2.2.3 信道的极限容量(1)信道能够通过的频率范围(2)信噪比练习 2.2数据通信…