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

⛄一、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;

⛄三、运行结果

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

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]潘少伟,李辉,王亚玲,蔡文斌.LSTM神经网络原油价格预测[J].计算机技术与发展. 2021,31(05)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海神之光

有机会获得赠送范围1份代码

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值