【LSTM数据预测】基于matlab LSTM神经网络空调能耗数据预测【含Matlab源码 051期】

举报
海神之光 发表于 2022/05/28 23:40:26 2022/05/28
【摘要】 一、LSTM简介 1997年,Hochreiter和Schmidhuber一起提出长短期记忆神经网络,即LSTM神经网络。LSTM神经网络很好地解决了RNN中存在的梯度消失和梯度爆炸问题。与RNN相比,...

一、LSTM简介

1997年,Hochreiter和Schmidhuber一起提出长短期记忆神经网络,即LSTM神经网络。LSTM神经网络很好地解决了RNN中存在的梯度消失和梯度爆炸问题。与RNN相比,它可以记忆更长时间步上的信息。2013年,Graves等对LSTM神经网络进行了改进,并将其应用到语音识别中。如今LSTM神经网络日益发展成熟,其基本结构如图1所示。
在这里插入图片描述
图1 LSTM神经网络基本结构
图1中,带箭头的线条表示向量的传输,箭头指引向量的传输方向。箭头交汇处的小圆圈表示向量按位进行相应运算,处于中央位置的大圆圈(ct)表示LSTM神经网络的细胞状态单元。合并的线条表示不同向量的连接,分开的线条则表示向量被复制后向不同方向传输。由图1可知,LSTM神经网络表现为三种门结构:输入门(it)、输出门(ot)和遗忘门(ft)。输入门主要作用是控制进入当前细胞状态单元的信息量,输出门则主要控制当前细胞状态单元输出的信息量,遗忘门主要作用是控制并丢弃当前细胞状态单元不需要的来自上一个细胞状态单元的信息。通过输入门、输出门和遗忘门,LSTM神经网络得以保持和更新细胞单元状态。

LSTM神经网络信息传递的基本流程如下(仅以一个神经网络节点为例进行阐述):(1)遗忘门通过sigmoid函数对输入信息进行控制,决定哪些信息可以进入到当前细胞状态单元中;(2)由tanh层生成一个可添加到当前细胞状态单元中的候选值,之后将该候选值、上一步的输入信息和上一时刻的细胞单元状态按位进行运算,获得新的细胞单元状态值;(3)通过sigmoid函数获得初始输出信息后,再利用tanh层把新的细胞单元状态值进行处理,使其在-1到1之间,最后把初始输出信息和处理后的细胞单元状态值按位进行运算并输出。

LSTM神经网络信息传递过程中涉及的公式如下:
it=σ(Wxixt+Whiht-1+bi) (1)
ft=σ(Wxfxt+Whfht-1+bf) (2)
ot=σ(Wxoxt+Whoht-1+bo) (3)
ct=ft×ct-1+it×tanh(Wxcxt+Whcht-1+bc) (4)
ht=ot×tanh(ct) (5)
式(1)中it表示输入门中,上一时刻隐含层的输出值和当前时刻的输入值经过sigmoid函数处理后的值;式(2)中ft表示遗忘门中,上一时刻隐含层的输出值和当前时刻的输入值经过sigmoid函数处理后的值;式(3)中ot表示输出门中,上一时刻隐含层的输出值和当前时刻的输入值经过sigmoid函数处理后的值;式(4)中ct表示当前时刻更新之后的细胞单元状态值;式(5)中ht表示当前时刻隐含层的输出值。在式(1)~式(5)中,σ和tanh为循环激活函数,ht-1表示上一时刻隐含层的输出值,xt表示当前时刻的输入值,W表示不同的权重矩阵,b表示不同的偏置参数。

LSTM神经网络的这种特殊结构使它不仅可以对时间序列数据进行长期预测,还可以进行短期预测并取得了不错的效果。

二、部分源代码


clear all;
clc;
%% 数据加载,并归一化处理
[train_data,test_data]=LSTM_data_process();
data_length=size(train_data,1);
data_num=size(train_data,2);
%% 网络参数初始化
% 结点数设置
input_num=12;
cell_num=18;
output_num=4;
% 网络中门的偏置
bias_input_gate=rand(1,cell_num);
bias_forget_gate=rand(1,cell_num);
bias_output_gate=rand(1,cell_num);
% ab=1.2;
% bias_input_gate=ones(1,cell_num)/ab;
% bias_forget_gate=ones(1,cell_num)/ab;
% bias_output_gate=ones(1,cell_num)/ab;

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

三、运行结果

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

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]周品.MATLAB 神经网络设计与应用[M].清华大学出版社,2013.
[4]陈明.MATLAB神经网络原理与实例精解[M].清华大学出版社,2013.
[5]潘少伟,李辉,王亚玲,蔡文斌.LSTM神经网络原油价格预测[J].计算机技术与发展. 2021,31(05)

文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。

原文链接:qq912100926.blog.csdn.net/article/details/124218930

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。