Gointerface接口声明实现及作用详解
764
2022-09-05
【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 就是在这样的循环之下,学习哪些记忆需要储存,哪些记忆需要丢弃,以及从哪些记忆中去
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 仿真结果
4 参考文献
[1]郭洪鹏, 刘斌, 肖尧. 基于Bi-LSTM网络的铁路短期货运量预测研究[J]. 铁道货运, 2022, 40(2):7.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~