基于时序模式注意力机制(TPA)的长短时记忆(LSTM)网络TPA-LSTM的多变量输入风电功率预测

1、TPA理论

        注意力机制(Attention mechanism)通常结合神经网络模型用于序列预测,使得模型更加关注历史信息与当前输入信息的相关部分。时序模式注意力机制(Temporal Pattern Attention mechanism, TPA)由 Shun-Yao Shih 等提出(Shih, Shun-Yao, Sun, Fan-Keng, Lee, Hung-yi. Temporal Pattern Attention for Multivariate Time Series Forecasting[J]. 2019.arXiv:1809.04206),其通过使用 CNN 滤波器提取输入信息中的定长时序模式,使用评分函数确定各时序模式的权值,根据权值的大小得到最后的输出信息。TPA机制的框图如图 1所示

图1 TPA机制

         TPA 机制的实现包含以下三个过程,具体参考文献《Shih, Shun-Yao, Sun, Fan-Keng, Lee, Hung-yi. Temporal Pattern Attention for Multivariate Time Series Forecasting》

(1)时序模式的获取

(2)权值计算

(3)TPA输出

2、 LSTM理论

        LSTM(Long Short Term Memory)神经网络是具有长短时信息记忆功能的神经网络,由Hochreiter & Schmidhuber [67] 于 1997 年提出,经过若干代改进,已形成了完整的体系结构。LSTM的提出是为了解决长期依赖问题,即在对时间序列进行建模时,经过若干次的迭代计算后,较早的时间序列的特征会被新的特征所覆盖,导致新的特征包含的信息减少,从而使模型丧失了对长期信息的学习能力。为了解决长期依赖问题,LSTM 神经网络引入了门控(Gate)的概念,通过多个门控制特征的流通与遗失。LSTM 神经网络由一系列的 LSTM 单元组成,其单元结构如图2:

 图2  LSTM结构单元

其中:蓝色框中 d 、 i 、 o 表示 LSTM 单元的遗忘门、输入门和输出门。

(1)遗忘门:遗忘门决定上一时刻状态信息保留度

(2)更新门:输入门决定该单元的状态是否更新

(3)输出门:输出门决定单元的最终输出值

3、TPA-LSTM 模型

        TPA-LSTM 模型是利用 TPA 机制对 LSTM 模型隐含层输出值进行运算,相比于 LSTM 模型,关注以往不同时刻的隐含层输出值与当前时刻隐含层输出值之间的关联,即通过计算两者相关性确定以往隐含层输出值的权值,获得最终隐含层输出值。本文所使用的 TPA-LSTM 模型结构如图3所示。图中网络的输入为前 w-1 个时刻(t-w+1~t-1)的时间序序列,网络输出为当前 t 时刻预测值。

 图3 TPA-LSTM模型结构

        通过前向-后向传播的方式训练 TPA-LSTM 模型,模型优化算法为 Adam(Adaptive momentestimate)算法。 Adam 优化算法通过不同参数前一时刻的梯度的一阶和二阶矩估计,计算当前时刻的数值,此算法结合了 AdaGrad(适用于稀疏梯度)和 RMSProp(适用于在线以及非稳态情况)的优势。在神经网络的训练中,目标函数通常为网络的输出,即 f(\theta ),其中 θ 为多参数集合,参数寻优的目的是找到合适的参数 θ 使得函数 E(f(\theta ))取得最优(最大或最小)值。在神经网络训练中,通常以损失函数(loss 函数)代指 E(f(\theta )),故定义真实与预测值的绝对误差为损失函数:

loss=\left | f(\theta )-\bar{f(\theta ))}\right |

 4、仿真结果

图1:LSTM训练曲线

 

图2:LSTM预测结果

 

 图3:TPA-LSTM训练曲线

图4:TPA-LSTM预测结果

 图5:方法对比

 

  • 35
    点赞
  • 110
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
要在MATLAB中实现TPA-LSTM(时间注意力机制短期记忆神经网络)多输入单输出,可以按照以下步骤进行操作: 1. 导入所需的MATLAB工具箱。首先,确保安装了Deep Learning Toolbox和Signal Processing Toolbox,这两个工具箱提供了实现神经网络和信号处理的功能。 2. 数据准备。准备输入数据和目标输出数据。例如,如果要对时间序列数据进行预测,则可以将多个时间步的输入数据作为网络输入,并将预测的下一个时间步数据作为网络的输出。 3. 构建TPA-LSTM网络模型。使用MATLAB的深度学习工具箱,可以使用预定义的Layer函数和Network函数来构建神经网络模型。根据TPA-LSTM的结构,可以使用time-attention layer和LSTM layer构建网络。 4. 网络训练。使用准备的数据集对网络进行训练。可以使用MATLAB的trainNetwork函数来训练网络。在训练过程中,可以设置训练选项,例如训练周期数、批处理大小和学习速率等。 5. 网络预测。训练完成后,可以使用训练好的网络模型对新的输入数据进行预测。可以使用MATLAB的predict函数对输入数据进行预测。 6. 评估性能。使用评价指标(例如均方根误差RMSE或平均绝对误差MAE)来评估网络的预测性能。可以使用MATLAB的评价函数来计算这些指标。 7. 调整网络结构和参数。根据实际需求,可以尝试调整TPA-LSTM网络的结构和训练参数,以提高网络性能和预测精度。 最后,要提醒的是,实现TPA-LSTM网络可能更复杂,需要对时间注意力机制LSTM层进行深入了解。为了更好地理解和实现该网络,建议参考相关的论文和文献资料,以便能够正确地实现和应用TPA-LSTM网络

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值