基于热交换算法优化门控循环单元网络GRU的风电场发电功率预测

基于热交换算法优化门控循环单元网络GRU的风电场发电功率预测

1.GRU原理

RNN适合分析处理时间序列数据,因为RNN在网络中引入了循环单元结构,并允许隐藏单元之间的内部连接,使探索非连续数据之间的时间关系成为可能。但RNN存在梯度消失的问题,导致随着时间间隔不断增大,RNN会丧失学习过去较久远信息的能力。

LSTM神经网络的提出解决了RNN梯度消失的问题,已被广泛应用于预测时间序列数据领域中,近年来根据不同的需求也演变出许多变体。GRU作为LSTM的一种变体,采用门控循环神经网络结构,相比LSTM训练参数较少,又同时保持了LSTM的预测效果。GRU内部单元与LSTM的内部单元很相似,不同之处为GRU将LSTM中的输入门和遗忘门合成一个单一的更新门。因此,GRU中只有两个门结构,分别为更新门和重置门。更新门用于控制前一时刻的状态信息保留到当前状态中的程度,更新门的值越大表示前一时刻的状态信息保留越多。重置门用于确定是否要结合当前状态与先前的信息,重置门的值越小说明忽略的信息越多。

在这里插入图片描述

如前所述,假设 x t \boldsymbol{x}_t xt为输入, h t \boldsymbol{h}_t ht为隐藏层的输出,GRU单元通过以下公式计算得到 h t \boldsymbol{h}_t ht

z t = σ ( W ( z ) x t + U ( z ) h t − 1 ) r t = σ ( W ( r ) x t + U ( r ) h t − 1 ) h ~ t = tanh ⁡ ( r t ∘ U h t − 1 + W x t ) h t = ( 1 − z t ) ∘ h ~ t + z t ∘ h t − 1 ) \begin{gathered} \boldsymbol{z}_t=\sigma\left(\boldsymbol{W}^{(z)}\boldsymbol{x}_t+\boldsymbol{U}^{(z)}\boldsymbol{h}_{t-1}\right)\\ \boldsymbol{r}_t=\sigma\left(\boldsymbol{W}^{(r)}\boldsymbol{x}_t+\boldsymbol{U}^{(r)}\boldsymbol{h}_{t-1}\right)\\ \tilde{\boldsymbol{h}}_t=\tanh\left(\boldsymbol{r}_t\circ\boldsymbol{U}\boldsymbol{h}_{t-1}+\boldsymbol{W}\boldsymbol{x}_t\right)\\ \left.\boldsymbol{h}_t=\left(\mathbf{1}-\boldsymbol{z}_t\right)\circ\tilde{\boldsymbol{h}}_t+\boldsymbol{z}_t\circ\boldsymbol{h}_{t-1}\right) \end{gathered} zt=σ(W(z)xt+U(z)ht1)rt=σ(W(r)xt+U(r)ht1)h~t=tanh(rtUht1+Wxt)ht=(1zt)h~t+ztht1)

式中: z t \boldsymbol{z}_t zt r t \boldsymbol{r}_t rt分别为更新门和重置门; h ~ t \tilde{\boldsymbol{h}}_t h~t为输入 x t \boldsymbol{x}_t xt和上一隐藏层输出结果 h t − 1 \boldsymbol{h}_{t-1} ht1的汇总; σ \sigma σ为Sigmoid函数; tanh ⁡ \tanh tanh为双曲正切函数; U ( z ) , W ( z ) , U ( r ) , W ( r ) , U \boldsymbol{U}^{(z)},\boldsymbol{W}^{(z)},\boldsymbol{U}^{(r)},\boldsymbol{W}^{(r)},\boldsymbol{U} U(z),W(z),U(r),W(r),U W \boldsymbol{W} W为训练参数矩阵; z t ⋅ h t − 1 \boldsymbol{z}_t\cdot\boldsymbol{h}_{t-1} ztht1表示 z t \boldsymbol{z}_t zt h t − 1 \boldsymbol{h}_{t-1} ht1的复合关系。

2.风电功率预测

2.1数据集

数据集为2019年风电功率数据,数据集如下:

时间测风塔10m风速(m/s)测风塔30m风速(m/s)测风塔50m风速(m/s)测风塔70m风速(m/s)轮毂高度风速(m/s)测风塔10m风向(°)测风塔30m风向(°)测风塔50m风向(°)测风塔70m风向(°)轮毂高度风向(°)温度(°)气压(hPa)湿度(%)实际发电功率(mw)
2019-01-0100:00:000.223000.8180.818166.816177.3556.224210.836210.836-13.154898.7153.4970.979591

数据特征除时间意外,一共包含14维特征

我们利用Windowsize=5天的数据预测下一天的数据,于是5天的数据一共包含14*5=70维度,预测输出1维数据,即实际发电功率(mw)。实际应用中,Windowsize的大小可根据实际情况进行修改。

3.基于热交换算法优化的GRU

热交换算法原理请参考:https://blog.csdn.net/u011835903/article/details/114221597
由前文可知,GRU的参数设置具有满目性。本文利用热交换算法对LSTM的参数(学习率,GRU神经元个数,正则化参数)进行优化。适应度函数设计为训练集的MAPE平均百分比误差:
f i t n e s s = a r g m i n ( M A P E p r i d e c t ) fitness=argmin(MAPE{pridect}) fitness=argmin(MAPEpridect)

适应度函数选取训练后的MAPE误差。MAPE误差越小表明预测的数据与原始数据重合度越高。最终优化的输出为最佳学习率,GRU神经元个数,正则化参数。然后利用最佳学习率,GRU神经元个数,正则化参数训练后的网络对测试数据集进行测试。

4.实验结果

请添加图片描述

5.Matlab代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值