【LSTM预测】基于双向长短时记忆(biLSTM)实现数据回归预测含Matlab源码

 1 简介

Bi-LSTM网络理论

LSTM 网络是循环神经网络 (Recurrent Neural Network,RNN) 的变体,改善了 RNN 存在的无法解决长期依赖的问题。LSTM 单元结构如图 1 所示。其中,ct,ht 分别表示模型的记忆状态和隐层状态,xt,yt 分别表示模型的输入与输出,σ 表示 sigmoid激活函数。LSTM 的单元内存在 4 个不同的全连接层,全连接层的每一个结点都与上一层的所有结点相连,其主要用途是把模型提取到的特征综合起来。主层是图中输出为 c~t 的层,其基本作用是分析当前输入xt 和前一个隐状态 ht -1。其他 3 个层是门限控制器,分别是:由 ft 控制的忘记门限,控制着哪些记忆状态应被丢弃;由 it 控制的输入门限,控制着 c~t 的哪些部分会被加入到记忆状态;由 ot 控制的输出门限,控制着哪些记忆状态应在这个时间迭代被读取和输出。随着记忆状态 ct -1 从左到右贯穿网络,它首先经过一个忘记门限丢弃一些记忆,然后通过输入门限选择添加一些新的记忆。因此,在每个时间迭代中,一些记忆被丢弃,同时一些记忆被增加。另外,经过额外操作,记忆状态被复制并传入 tanh 函数,然后其结果被输出门限过滤,从而产生新的隐状态ht。LSTM 就是在这样的循环之下,学习哪些记忆需要储存,哪些记忆需要丢弃,以及从哪些记忆中去

【LSTM预测】基于双向长短时记忆(biLSTM)实现数据回归预测含Matlab源码_第1张图片

【LSTM预测】基于双向长短时记忆(biLSTM)实现数据回归预测含Matlab源码_第2张图片

【LSTM预测】基于双向长短时记忆(biLSTM)实现数据回归预测含Matlab源码_第3张图片

【LSTM预测】基于双向长短时记忆(biLSTM)实现数据回归预测含Matlab源码_第4张图片

2 部分代码

clcclearclose all%%load final.matfor i=1:size(record,2)    record(:,i)=record(:,i)/max(record(:,i));enddemands=record(1:220,4);orgin=record(1:220,1:3);in=orgin;out=demands;i=1;while ~isempty(in)    pick=3;    if pick<=size(in,1)        X{i}=(in(1:pick,:))';        Y(i)=out(pick);        in(1,:)=[];        out(1,:)=[];        i=i+1;    else        X{i}=in';        Y(i)=out(end);        break;    endend

3 仿真结果

【LSTM预测】基于双向长短时记忆(biLSTM)实现数据回归预测含Matlab源码_第5张图片

【LSTM预测】基于双向长短时记忆(biLSTM)实现数据回归预测含Matlab源码_第6张图片

4 参考文献

[1]郭洪鹏, 刘斌, 肖尧. 基于Bi-LSTM网络的铁路短期货运量预测研究[J]. 铁道货运, 2022, 40(2):7.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

你可能感兴趣的:(神经网络预测,lstm,matlab,回归)