1. 深度学习场景生成方法概述
随着全球能源需求的不断增长,传统能源的大量开发导致资源紧张、环境污染、气候变化等问题日益突出,建立在化石能源基础上的传统能源发展方式已难以为继。可再生能源不仅具有无污染、环境友好的特点,而且资源总量丰富,其开发潜力巨大。2022年,我国可再生能源新增装机1.52亿千瓦,占全国新增发电装机的76.2%,已成为我国电力新增装机的主体,其中光伏发电新增8741万千瓦[1],可再生能源的发展步入快车道。可再生能源发电由于其具有的间歇性和不确定性,给电力系统的短期运行带来了高度的不确定性。因此,要在可再生能源高渗透率背景下合理整合可再生能源发电,进一步提高电网运行可靠性,对可再生能源不确定性进行准确建模具有重要意义。
场景生成法[2]是当前描述新能源出力不确定性的主要手段,其可以依据新能源出力的不确定性相关变量,进而生成若干符合真实出力情形的确定性场景集合,并结合这些确定性场景,以刻画新能源出力的不确定性,为电网的优化调度提供依据。由于物理建模[3] [4]过程容易受实际环境影响,因此现有研究学者多倾向于数据驱动建模,基于数据驱动建模的新能源出力场景生成方法主要分为两大类别,即统计学习方法[5]-[7]与人工智能方法[8]-[17]。基于统计学习的新能源出力场景生成方法包括概率密度法、马尔科夫链法、场景树法以及时间序列法等。统计学习方法大多依据历史数据和实践经验进行人为的概率分布建模,但新能源出力包含复杂的时空信息,使得传统的统计学习方法难以对新能源出力的概率进行准确解析,进而导致其无法全面刻画新能源出力的不确定性。
近年来,随着人工智能技术快速发展,深度学习被广泛地应用于电气领域。其中,深度学习中的生成模型因为其无监督学习的特性,而被应用在场景生成的研究中。与统计学习方法相比,深度生成模型具有更强的数据分析能力和非线性拟合力,不需要进行复杂的概率建模,而是通过直接学习数据样本的概率分布,从包含若干复杂特性的原始数据样本中提炼出关键信息。比较常用的深度生成模型包括生成对抗网络(generative adversarial networks, GAN) [18]、变分自编码器(variational auto-encoder, VAE) [19]等。由此又演变出包括条件Wasserstein GAN (C-WGAN)、SolarGAN、可控GAN (Ctrl-GAN)、StyleGAN2等模型。
尽管上述相关深度生成模型在新能源出力场景生成方面取得了一定的研究成果,但目前已有方法大多需要海量的可再生能源出力数据,在训练样本数据不足的情况下生成的场景质量不高不足。因此,如何根据已有学习模型进行改进,添加相关的数据增强策略,进而在只有小数据样本的情况下准确描述新能源出力的不确定性,提高新能源出力场景生成的质量,是本文的主要研究内容。
为此,本文提出一个基于WCGAN与自注意力机制[20]数据增强技术的模型来生成光伏出力场景。本文将光伏电站的历史出力数据按平均出力功率划分的标签信息以及随机噪声结合输入生成模型与判别模型,学习光伏电站条件值和目标值之间的关联关系;在构建生成模型时,由于数据之间存在较强的时序关联性,因此采用卷积神经网络作为模型的内部网络结构学习临近时间点数据之间的关系,提高场景生成的准确性;为了提高网络的泛化性能和增强网络对数据量不足情况下进行场景生成的效果,在神经网络中引入了自注意力机制数据增强策略。仿真结果表明,该模型能够实现覆盖明确统计特征的场景的可控生成,并在数据量不足的情况下相比与传统GAN模型拥有更高的场景生成质量。
2. WCGAN模型
传统的生成对抗网络存在网络难以收敛、生成器退化以及模式坍塌等问题,这些问题对生成对抗网络获得最优结果存在巨大的干扰,因此研究者提出了许多GAN的变体来解决这些问题。CGAN [16]提出在传统的GAN的生成器和判别器中加入约束条件信息y对模型进行约束,这样可以对生成器的生成数据过程进行指导,条件生成对抗网络的价值函数如下:
(1)
其中,
为数学期望,
为判别器的输出。
为生成器的输出,
和
分别为历史分布和生成分布。
本文使用Wasserstein距离[17]作为损失函数,改善了使用KL散度或JS散度容易出现梯度消失的现象。该函数能够在生成的数据分布与历史数据分布差异很大时,反映两者之间的误差距离。Wasserstein距离的计算公式如下:
(2)
是历史分布
和生成分布
组合起来的所有可能的联合分布的集合。对于每一个可能的联合分布γ,可以从采样
中得到一对样本x和y,并计算出这对样本的距离
,该联合分布γ下样本对距离的期望值
能够取到的下界就是Wasserstein距离。WCGAN的目标函数中不再使用对数函数作为生成器和判别器的损失,而是利用Wasserstein距离作为损失计算的函数,此时目标函数被修改为:
(3)
如图1为WCGAN模型架构。
3. 自注意力机制(Self-Attention Mechanism, SA)数据增强
“注意力(attention)”来自于人类视觉。人在关注图像时通常会特别关注某一区域,即人的视觉注意力会被不均匀地分散到图像的各个部分。注意力机制(attention mechanism)的概念据此产生,并在图像
Figure 1. Circuit structure diagram
图1. WCGAN模型
处理、翻译和时间序列预测等领域得到应用[21]。其核心思想是根据序列中不同位置数据的关联性,动态地计算每个位置的权重,然后根据这些权重对不同位置的信息进行加权汇聚,以捕捉序列中不同位置之间的依赖关系。传统的 GAN 模型在处理可再生能源出力数据时,生成出力场景细节和局部结构往往会出现困难。将自注意力机制融入GAN模型生成任务中,帮助GAN的生成器更好地学习图像中的时间相关性。自注意力模块使生成器可以学习到更有代表性的特征,提高数据的泛化能力,这意味着GAN模型在小规模的数据集上也能学到更具有表现力的特征。
自注意力机制专注于数据的内在联系,将对外部信息的依赖最小化。它将单个序列的不同位置联系起来完成序列权重值的计算,通过计算向量之间的相似度以表征相关性,并将高权重值赋予关键信息,以增强其对结果的影响[22] [23]。自注意力的计算过程如下:
1) 假设样本序列为
,其中t为序列长度,T为转置。根据第i个子序列输入特征的重要性对
打分,公式如下:
(4)
式中W,b分别为权重矩阵和偏置向量。
为得分函数,可设计为sigmoid函数或线性函数。
2) 在获得所有序列特征的得分后
,采用softmax函数完成归一化处理,表达式如下:
(5)
式中
是
在自注意力机制运算后得到的对应注意力权重。
3) 经过注意力机制处理,得到输出O的数学表达式如下:
(6)
式中
;
表示向量对应位置相乘的运算。
本文提出的SA-WCGAN网络结构由融入残差结构的生成器和鉴别器组成,生成器与鉴别器均引入自注意力机制来提高生成场景的质量。
4. 场景生成模型搭建
本文提出的网络结构由融入残差结构的生成器和深层卷积鉴别器组成,生成器和鉴别器均引入自注意力机制来提高生成图像的质量,本文提出网络结构的主要参数如表1所示。
Table 1. Model architecture proposed in this article
表1. 本文提出模型架构
层次结构 |
判别器 |
生成器 |
Input layer |
24 × 24 |
32 × 100 |
Layer 1 |
卷积层,128 |
MLP,2048 |
Layer 2 |
卷积层,64 |
MLP,1024 |
Layer 3 |
卷积层,32 |
残差块 |
Layer 4 |
注意力机制模块 |
注意力机制模块 |
Layer 5 |
MLP,1024 |
MLP,128 |
Layer 6 |
MLP,128 |
反卷积层,128 |
Layer 6 |
/ |
反卷积层,64 |
本文提出的模型架构中生成模型由全连接层、残差模块(residual block) [24]、注意力模块以及2个反卷积(deconv)构建而成。输入噪声首先经过全连接层将其映射到2048维度的高维特征空间,再衔接一个残差结构。在残差块中,通过传递先前层获取到的数据,帮助生成器增强重要输入特征,降低信息丢失的风险,有效缓解模式崩塌。残差结构由卷积层、批标准化(batch normalization, BN)和ReLU激活函数组成。
Figure 2. The workflow of the attention module for photovoltaic power plant output characteristics
图2. 光伏电站出力特征注意力模块工作流程
本文残差结构通过“上采样 + 卷积”组合操作将卷积层提取的高级特征与上采样操作恢复的低级特征融合,提高场景重建效果,并且可以降低
训练的参数量以及对大规模数据的依赖。此残差结构的设计提高了生成器对光伏出力不确定性特征的学习能力,修复上一阶段丢失的细节信息。为缓解GAN生成场景出现突变或不连贯细节,在残差块后引入注意力机制以提高图像结构特征相关性。自注意力机制可以利用光伏出力各关键时间的特征信息来生成指导生成器工作过程,其优势在于模型可以根据输入光伏出力的具体标签信息自适应地调整关注程度。
借鉴自注意力机制的思想,在最后一层前融合注意力机制,将经过注意力机制后的输出结果作为上采样的输入,这样可以先通过捕捉生成器输入噪声不同位置之间的长距离依赖关系,然后再通过反卷积层来强调光伏电站出力峰值时间点、峰值出力持续时间等局部结构,以兼顾全局和局部信息。光伏电站出力特征注意力模块工作流程示意图如图2所示。
在该注意力机制中,注意力权重的分配是通过查询(Q)、键(K)、值(V)的机制来现的,利用1 × 1卷积对输入光伏出力原始数据进行线性映射之后原始光伏场景的任意位置均得到3个表示向量:查询向量Q,键向量K以及值向量V。为提高生成模型在生成场景时对光伏出力峰值等特定区域的关注度,本文通过创建一个与注意力映射相同形状的二进制注意力掩码M12 × 12 (Attention mask,尺寸为12 × 12)来手动增加光伏电站出力峰值点的注意力权重。
光伏电站出力峰值点往往分布于出力曲线的中间部分(一般中午时刻太强照射强度最大),为此,本文预设注意力掩码M外周元素值为0。将M与Q和KT的内积进行加权,计算每个位置与其他位置的关联程度,再通过softmax函数调整得到光伏出力特征注意力权重Attention Weights为:
(7)
式中,Q表示查询向量,KT表示键向量的转置,M表示注意力掩码。
5. 算例分析
5.1. 实验准备
实验环境:实验使用的计算机的CPU为Intel(R)i7-7700H,RAM为16 GB。Pycharm作为编程软件,主要使用python的TensorFlow、keras和numpy等package对本文提出的模型进行编程建模。
实验数据:实验使用的光伏电站出力数据来自 NREL官网,并使用MATLAB对其进行预处理。
训练参数:本文提出的WCGAN模型的主要训练参数如表2。
Table 2. Main training parameters of WCGAN proposed in this article
表2. 本文提出WCGAN主要训练参数
训练参数 |
值 |
一代训练数(Epoch) |
60~120 |
学习率(learning rate) |
0.0001~0.0002 |
激活函数(activation) |
Relu,LeakyRelu |
生成器/判别器训练比(n) |
1:3~1:4 |
随机噪声(z) |
(32, 100) |
生成场景(x’) |
(24, 24, 1) |
损失函数 |
Wasserstein |
批大小(batch size) |
32 |
5.2. 实验设计及分析
为验证模型训练情况,我们选取20个光伏电站6年的出力数据作为模型输入,将数据以两天划分为一个样本,并按照平均发电功率将光伏出力数据分为0~4类给出力数据打上标签,完成预处理后的数据共计21,960个样本。再将前80%的17568个样本作为训练集,后20%的4392个样本作为验证集,训练SA-WCGAN。学习率选取为0.00015,生成器/判别器训练比为3,batch size为32,如图3为损失函数变化曲线。由图可知,模型在迭代到30次左右时达到稳定,表明本文搭建的SA-WCGAN模型在经过训练后能稳定提取出光伏电站的出力特征,可以生成符合原始出力规律相似的新场景。
Figure 3. The variation curve of the loss function
图3. 损失函数变化曲线
为进一步评估生成场景质量,本文又分别以20个光伏电站2年、4年、6年的数据作为SA-WCGAN以及传统WCGAN的输入对模型进行训练。对于模型训练完毕生成的光伏出力新场景,本文利用均方根误差(root mean squared error, RMSE)和平均绝对误差(mean absolute error, MAE)这两个指标,与传统WCGAN生成的场景进行对比,评估场景的平均生成效果。RMSE和MAE的表达式如下:
(8)
(9)
RMSE和MAE分别用于衡量生成场景和真实场景数据之间的误差大小,RMSE和MAE的数值越小,说明生成的场景数据准确度越高;N为生成的场景数据总数量;
、
分别为生成场景的某个数据点和对应的真实数据点。
Table 3. Evaluation indicators of different models
表3. 不同模型的评价指标
样本大小 |
模型 |
评价指标 |
MAE |
RMSE |
20个光伏6年 |
SA-WCGAN |
274.11 |
299.12 |
传统WCGAN |
421.36 |
447.64 |
20个光伏4年 |
SA-WCGAN |
296.36 |
330.70 |
传统WCGAN |
431.69 |
472.05 |
20个光伏2年 |
SA-WCGAN |
336.98 |
379.22 |
传统WCGAN |
451.56 |
503.18 |
如表3所示:随着训练天数的增加,传统方法WGAN模型所生成出力数据的MAE、RMSE指标较大,且呈现了波动的情况,说明传统方法数据生成精度不高且生成效果不稳定;而本文的基于Wasserstein距离的CGAN模型,所生成数据的MAE、RMSE指标较小,说明本文方法生成的数据更接近于真实数据,场景生成的准确性更高。
然后我们继续验证该模型在样本数据不足情况下的训练优势。我们选取1个光伏电站2年的出力数据共366个样本作为原始数据输入。前80%的293个样本作为训练集,后20%的73个样本作为验证集。在这一步中,本文提出的SA-WCGAN模型学习率选取为0.0001,生成器/判别器训练比为3,batch size为32。按照以上参数对本文提出的模型进行训练。
将选取好的数据同时输入到本文提出的SA-WCGAN模型以及常规的WCGAN模型进行训练。学习率选取为0.0001,生成器/判别器训练比为3,batch size为32。按照以上参数对本文提出的模型进行训练。
训练损失函数变化曲线如图4。我们可以发现,在极端情况数据量不足的情况下,传统WCGAN的训练集、测试集损失无法拟合;在添加了SA后,通过SA机制,生成模型提升了对光伏出力特征的挖掘与捕捉,使模型依然能够训练拟合,达到数据增强效果。
Figure 4. The variation curve of the loss function
图4. 损失函数变化曲线
6. 结论
本文提出一种基于自注意力机制的WCGAN光伏场景生成方法。本文通过在传统WCGAN模型中引入自注意力机制,即依照光伏出力峰值点位置创建注意力掩码与自注意力映射加权,提高了WCGAN模型对原始光伏出力数据关键特征信息的提取,在一定程度上减少了对大规模训练数据的依赖,达到了数据增强的效果。
经实验结果表明,文本提出的SA-WCGAN模型有效提高了生成对抗网络在小样本数据集上训练的效果,在将小样本光伏数据量作为输入来进行场景生成时,具有更好的生成质量。显著提高了WCGAN的训练效果,对生成高质量的光伏出力场景起到了积极作用。
基金项目
贵州大学勘察设计研究院有限公司创新基金项目(贵大勘察[2022] 02号)。