基于缎蓝园丁鸟算法优化卷积神经网络CNN的风电场发电功率预测
1.CNN原理
卷积神经网络(Convolutional Neural Network,CNN)是一种广泛应用于图像和视频处理任务的神经网络模型[13]。 CNN 模型通常由多个卷积层、激活函数、池化层和全连接层组成,通过反向传播算法进行训练。在训练过程中,CNN 通过调整权重参数来最小化损失函数,以使模型能够更好地预测目标。CNN 模型的网络结构如图 1 所示。
卷积计算方法:
Y
i
=
f
(
X
i
⊗
w
i
+
b
b
)
(1)
Y_i=f\left(\mathrm{X}_i \otimes w_i+b_b\right) \tag{1}
Yi=f(Xi⊗wi+bb)(1)
式中, ⊗ \otimes ⊗ 为卷积操作; X i \mathrm{X}_i Xi 为卷积计算的序列; w i w_i wi 为卷积核的权重; b b b_b bb 表示偏移量; f ( ⋅ ) f(\cdot) f(⋅) 为激活函数。
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-01 00:00:00 | 0.223 | 0 | 0 | 0.818 | 0.818 | 166.816 | 177.355 | 6.224 | 210.836 | 210.836 | -13.154 | 898.71 | 53.497 | 0.979591 |
数据特征除时间意外,一共包含14维特征
我们利用Windowsize = 5天的数据预测下一天的数据, 于是5天的数据一共包含14*5=70维度,预测输出1维数据,即实际发电功率(mw)。实际应用中,Windowsize的大小可根据实际情况进行修改。
3.基于缎蓝园丁鸟算法优化的CNN
缎蓝园丁鸟算法原理请参考:https://blog.csdn.net/u011835903/article/details/107857884
由前文可知,CNN的参数设置具有满目性。本文利用缎蓝园丁鸟算法对CNN的参数(学习率,CNN神经元个数,正则化参数)进行优化。适应度函数设计为训练集的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误差越小表明预测的数据与原始数据重合度越高。最终优化的输出为最佳学习率,CNN神经元个数,正则化参数。然后利用最佳学习率,CNN神经元个数,正则化参数训练后的网络对测试数据集进行测试。