麻雀算法优化长短期记忆网络进行水位水库预测
水库的水位变化受到众多复杂因素的影响,水位数据不仅呈现非线性特点还具有时序性和复杂性等特点。水位预测的精度提高对水库管理等方面具有重大意义。属于多变量预测
1.RNN与LSTM
RNN是一种本身包含循环的特殊网络,可以通过其特定的结构,将过去时刻的影响反映到当前的预测之中;同时由于共享不同时刻的权值矩阵,减少了参数数目,大大提高训练效率,且可以处理任意长度的时间序列数据,因此在时间序列预测方面具有独特优势
然而,普通的RNN在实际应用过程中存在长期依赖问题,即信息经长时间或多阶段传递后,会出现梯度消失和梯度爆炸的现象,网络无法保留所有历史时刻的信息,从而使模型丧失了学习到更早信息的能力。RNN结构示意图见图1,为网络输入数据,
为网络输出数据,A为循环神经网络。
LSTM算法是一种目前使用最多的时间序列算法,是一种特殊的循环神经网络(Recurrent Neural Network,RNN)结构[3],能够学习长期的依赖关系,解决长序列训练过程中梯度消失与梯度爆炸的问题。
LSTM与RNN一样都具有神经网络的重复模块链的形式,不同的是,LSTM在RNN的基础上每个模块增加了遗忘门、输入门、输出门和内部记忆单元。
遗忘门通过判断当前输入信息的重要程度决定对过去信息的保留度:
(1)
输入门通过判断当前输入信息的重要程度决定对输入信息的保留度:
(2)
内部记忆单元:
(4)
(5)
输出门决定从本LSTM单元输出到下一个单元的数据:
(6)
(7)
式中:,
为三个门的输入权重、输入偏置,
为当前时刻t的输入,
为t-1时刻LSTM单元输出,
为遗忘门输出,
、
为细胞状态和候选值。
为
激励函数,输出值的范围为0-1,当输出接近0或1时,符合物理意义上的关和开,主要起门控作用,tanh
函数输出值的范围为-1至1,符合大多数场景下0中心的特征分布,且梯度在接近0处,收敛速度比
快。LSTM通过门控状态来控制传输状态,记住需要长时间记忆的,忘记不重要的信息,适合长期记忆任务。
针对本文中的任务,遗忘门决定在t时刻要丢弃
和
的哪些水位影响信息;输入门
用来确定在t时刻需要将多少
和
的水位影响信息传递到
,以便来更新
存储的信息。LSTM用输出门来控制单元状态
,在当前t时刻,有多少
和
中的水位影响信息要进行输出。LSTM能够分析和处理影响水库水位的时间序列数据,分析这些数据的时间依赖性和关联关系,预测水库水位数据。
2.麻雀算法
麻雀搜索算法(Sparrow Search Algorithm,SSA)是一种新型的群智能优化方法,受麻雀的觅食行为和反捕食行为的启发而得,具有寻优能力强、收敛速度快和稳定性好[4]等特点。在觅食过程中,麻雀种群分为发现者和追随者,发现者负责探索觅食区域和方向,跟随者追随它们来获得食物。当麻雀种群察觉到周围存在捕食者时,会发出危险信号,并作出反捕食行为。麻雀不断寻找最好事物的过程就是寻找最优解的过程。
3.算法流程
为了提高预测精度和稳定性,本文采用SSA-LSTM模型,利用SSA优化LSTM的两个隐含层节点、训练次数和学习率。算法流程如下:
(1)将原始数据分成70%训练集和30%测试集,进行归一化处理。
(2)将LSTM模型中的超参数(两个隐含层节点数、训练次数、学习率)作为优化对象。
(3)SSA相关参数初始化并设定需优化的超参数范围,确定最大迭代次数。
(4)计算初始种群的适应度值并进行排序,找出最优和最差的适应度值。
(5)更新发现者的位置、跟随者的位置以及察觉到危险的麻雀的位置。
(6)获取当前最优值,如果优于上一次迭代的最优值,则进行更新操作,否则不进行更新;继续进行迭代直至满足条件位置,最终得到全局最佳的适应度值和全局最优解值。
(7)将SSA得到的最优超参数构建LSTM模型,对训练集进行训练并对测试集进行预测。
将测试集的真实值和预测值进行反归一化处理,使用不同评价指标对模型的预测性能进行评估。
4.结果
水位水库预测中数据集我采用的是千里眼水雨情信息查询系统的数据,其中数据集中包括每小时的水位、水势、蓄水量和出库流量信息,对LSTM的第一层神经元、第二层神经元、迭代次数以及学习率进行优化,并使用MSE、RMSE、MAE进行评价,下面是预测值与真实值的结果
麻雀算法优化长短期记忆网络进行水位水库预测相关推荐
- VMD-SSA-LSTM基于变分模态分解和麻雀算法优化长短期记忆网络的时间序列预测MATLAB代码(含LSTM、VMD-LSTM、VMD-SSA-LSTM等模型的对比)。
clc; clear all close all %% VMD-SSA-LSTM预测 tic load vmd_data.mat load lstm.mat disp('--------------- ...
- 回归预测 | MATLAB实现GWO-LSTM灰狼算法优化长短期记忆神经网络多输入单输出回归预测
回归预测 | MATLAB实现GWO-LSTM灰狼算法优化长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现GWO-LSTM灰狼算法优化长短期记忆神经网络多输入单输出回归预测 ...
- 回归预测 | MATLAB实现WOA-LSTM鲸鱼算法优化长短期记忆神经网络多输入单输出回归预测
回归预测 | MATLAB实现WOA-LSTM鲸鱼算法优化长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现WOA-LSTM鲸鱼算法优化长短期记忆神经网络多输入单输出回归预测 ...
- 时序预测 | MATLAB实现GWO-LSTM灰狼算法优化长短期记忆神经网络时间序列预测
时序预测 | MATLAB实现GWO-LSTM灰狼算法优化长短期记忆神经网络时间序列预测 目录 时序预测 | MATLAB实现GWO-LSTM灰狼算法优化长短期记忆神经网络时间序列预测 预测效果 基本 ...
- RNN循环神经网络 、LSTM长短期记忆网络实现时间序列长期利率预测
全文链接:http://tecdat.cn/?p=25133 2017 年年中,R 推出了 Keras 包 _,_这是一个在 Tensorflow 之上运行的综合库,具有 CPU 和 GPU 功能(点 ...
- 双向长短期记忆网络模型_基于深度双向长短期记忆网络的空气质量预测方法与流程...
[技术领域] 本发明涉及一种基于深度双向长短期记忆网络的空气质量预测方法,属于空气污染预测领域. 背景技术: 空气污染物浓度的预测拥有很强的学科交叉性,一直是环境.气象.数学.地理及计算机科学领域研究 ...
- 【DBN分类】基于matlab麻雀算法优化深度置信网络SSA-DBN数据分类【含Matlab源码 2318期】
⛄一.DBN DBN由数个RBM堆叠构成,通常会在顶层加入一个BPNN来实现有监督的分类,DBN中下一层的隐藏层就是上一层的可见层.图1所示的DBN即由两个RBM和顶层一个BPNN构成. 图1 深度置 ...
- 【DBN分类】基于麻雀算法优化深度置信网络SSA-DBN实现数据分类附matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.
- 基于分位数回归的长短期记忆网络QRLSTM时间序列区间预测。(主要应用于风速,负荷,功率)包含评价指标R2,MAE,MBE,区间覆盖率,区间平均宽度。
%% 清空环境变量 warning off % 关闭报警信息 close all % 关闭开启的图窗 clear ...
最新文章
- 刀片服务器提升三要点
- vue 之 sass
- java ocr识别pdf_如何知道PDF是否仅包含图像还是已经过OCR扫描以进行搜索?
- COJ 1170 A Simple Problem
- Java中加减乘除怎样写代码,【求助】怎样实现加减乘除 代码如下
- Git 常用命令(二)
- matlab读取suffer,MATLAB调用surfer时出错
- 关于AOP /IOC / DI
- Linux内核学习之路_1_编译Linux内核
- 云计算vs雾计算:物联网的发展能否「云开雾散」?
- BilSTM 实体识别_“万创杯”中医药天池大数据竞赛——中药说明书实体识别挑战的一点感受...
- 区块链在图书馆中应用
- 优秀信息系统项目经理应该具备的技能和素质
- SpMV矩阵格式自动调优
- 在 Docker 上搭建 PostGIS 数据库实现空间数据存储及可视化
- 拼多多卖家打单发货技巧,这里告诉你~
- 可变参数和Steam流的基本使用
- 微博设置 和 逻辑
- 机械手臂类机器人应用存在的问题
- HIVE获取当天时间和计算时差
热门文章
- Quartz.NET-课程10:配置,资源使用和SchedulerFactory
- springboot集成Quartz(简单版)job不存储数据库
- 【转】关于Java生成背景透明的png图片
- #Codeforces Round #733_B. Putting Plates
- MyRPCDemo netty+jdk动态代理+反射+序列化,反序列化手写rpc框架
- 离散数学(图论) 学习笔记
- 信息安全管理——消息摘要与数字签名
- 高中物理的题库里提取所有物理关键词
- iOS设置圆角的4种方法
- java网络编程读书笔记-Ch03