留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

高效长序列水位预测模型的研究与实现

黄颖 许剑 周子祺 陈树沛 周帆 曹晟

黄颖, 许剑, 周子祺, 陈树沛, 周帆, 曹晟. 高效长序列水位预测模型的研究与实现[J]. 电子科技大学学报, 2023, 52(4): 595-601. doi: 10.12178/1001-0548.2022133
引用本文: 黄颖, 许剑, 周子祺, 陈树沛, 周帆, 曹晟. 高效长序列水位预测模型的研究与实现[J]. 电子科技大学学报, 2023, 52(4): 595-601. doi: 10.12178/1001-0548.2022133
HUANG Ying, XU Jian, ZHOU Ziqi, CHEN Shupei, ZHOU Fan, CAO Sheng. Research and Implementation of Efficient Long Sequence Model for Water Level Forecasting[J]. Journal of University of Electronic Science and Technology of China, 2023, 52(4): 595-601. doi: 10.12178/1001-0548.2022133
Citation: HUANG Ying, XU Jian, ZHOU Ziqi, CHEN Shupei, ZHOU Fan, CAO Sheng. Research and Implementation of Efficient Long Sequence Model for Water Level Forecasting[J]. Journal of University of Electronic Science and Technology of China, 2023, 52(4): 595-601. doi: 10.12178/1001-0548.2022133

高效长序列水位预测模型的研究与实现

doi: 10.12178/1001-0548.2022133
基金项目: 国家自然科学基金(62072077, 62176043);国家重点研发计划(2019YFB1406202);四川省科技计划(2020GFW068, 2020ZHCG0058, 2021YFQ0007)
详细信息
    作者简介:

    黄颖(1992 − ),男,主要从事时空数据挖掘和大数据分析方面的研究

    通讯作者: 周帆,E-mail:fan.zhou@uestc.edu.cn
  • 中图分类号: TP391.4

Research and Implementation of Efficient Long Sequence Model for Water Level Forecasting

图(3) / 表(2)
计量
  • 文章访问数:  3370
  • HTML全文浏览量:  1077
  • PDF下载量:  47
  • 被引次数: 0
出版历程
  • 收稿日期:  2022-05-09
  • 修回日期:  2022-10-16
  • 网络出版日期:  2023-09-06
  • 刊出日期:  2023-07-07

高效长序列水位预测模型的研究与实现

doi: 10.12178/1001-0548.2022133
    基金项目:  国家自然科学基金(62072077, 62176043);国家重点研发计划(2019YFB1406202);四川省科技计划(2020GFW068, 2020ZHCG0058, 2021YFQ0007)
    作者简介:

    黄颖(1992 − ),男,主要从事时空数据挖掘和大数据分析方面的研究

    通讯作者: 周帆,E-mail:fan.zhou@uestc.edu.cn
  • 中图分类号: TP391.4

摘要: 序列预测旨在利用历史序列模式信息预测未来长时间跨度的趋势,在工业领域具有众多的实际应用需求。针对工业数据序列预测问题中时序长度较长的特点,提出了一种高效的自注意力机制以适用于长序列数据建模与预测。该模型构建了新的嵌入表示,增加了池化操作,并且使用了生成式推断,实现长距离依赖建模和时序信号预测。相比之前的自注意力模型,该模型有效解决了现有方法在面对长序列预测时存在的预测精度不足、训练耗时过长等问题。在大规模水电站水轮机顶盖水位预测这一实际工业应用场景中,相比其他基准模型,该模型显著提高了长序列水位预测的精度和效率。

English Abstract

黄颖, 许剑, 周子祺, 陈树沛, 周帆, 曹晟. 高效长序列水位预测模型的研究与实现[J]. 电子科技大学学报, 2023, 52(4): 595-601. doi: 10.12178/1001-0548.2022133
引用本文: 黄颖, 许剑, 周子祺, 陈树沛, 周帆, 曹晟. 高效长序列水位预测模型的研究与实现[J]. 电子科技大学学报, 2023, 52(4): 595-601. doi: 10.12178/1001-0548.2022133
HUANG Ying, XU Jian, ZHOU Ziqi, CHEN Shupei, ZHOU Fan, CAO Sheng. Research and Implementation of Efficient Long Sequence Model for Water Level Forecasting[J]. Journal of University of Electronic Science and Technology of China, 2023, 52(4): 595-601. doi: 10.12178/1001-0548.2022133
Citation: HUANG Ying, XU Jian, ZHOU Ziqi, CHEN Shupei, ZHOU Fan, CAO Sheng. Research and Implementation of Efficient Long Sequence Model for Water Level Forecasting[J]. Journal of University of Electronic Science and Technology of China, 2023, 52(4): 595-601. doi: 10.12178/1001-0548.2022133
  • 随着数据采集技术和大数据科学的发展,水电工业相关领域汇聚了海量数据,其中,时间序列数据占据了较大比重。利用丰富的历史时序数据来预测未来一段时间的发展变化在电力特别是水电工业中具有重大的应用前景,如智能电网调度[1]、水电负荷平衡[2]、水库水位预测[3]等。

    现有的时间序列预测方法主要针对短期的时序预测问题,而水电领域日益增长的长序列数据和对长期趋势预测的需求,更要求模型具有对长序列的建模与预测能力,该问题被称为LSTF (long sequence time-series forecasting)。输入序列和预测序列的长度是影响时序模型预测性能的两大重要因素,在LSTF任务中,输入序列和预测序列的长度都大大增加,这对模型实现准确快速地时序预测提出了巨大挑战。由于LSTF任务难度巨大,现有的时间序列预测模型如循环神经网络模型和注意力模型,在处理LSTF任务时都存在着许多不足,需要进行更多的针对性改进。

    水电站水轮机顶盖水位变化是一个典型的长序列预测问题。由于水轮机主轴密封装置漏水和水泵排水等因素,水轮机顶盖水位随时间不断变化。水轮机顶盖水位是影响水轮机运行安全的重要因素,顶盖水位过高会淹没水导轴承和漏油箱,引起机组用油变质,严重威胁设备的运行安全[4]。水轮机顶盖积水主要有以下几个来源:主轴密封装置漏水、导叶套筒漏水、真空破坏阀无法复归、顶盖排水空心固定导叶阻塞或者空心固定导叶破坏、顶盖与止漏环冲蚀漏水等[5]。对顶盖水位及时的监测和预警,可以监测顶盖水泵的运行效率,保证顶盖水位保持在安全可控的范围内,提升水电站运行的安全性。

    本文根据LSTF问题的特点,对带自注意力机制的时间序列预测模型进行改进,设计了新的时间序列嵌入表示方法,增加池化操作,并结合生成式推断构建了一种高效的长序列预测模型。在大规模数据集上的实验表明,本文模型在水电站水轮机顶盖水位预测这一重要工业应用中,可以对长期水位的时间序列进行高效准确地预测。

    • 时间序列预测的现有方法大致可以分为两类:经典统计学习模型和深度学习方法。经典的时间序列预测模型基于统计学习方法,具有可解释性强和有完备理论支撑等优点[6],后续改进包括对丢失数据的容错[7]和多种数据类型的支持等[8]。在面对海量时序数据时,经典统计学习模型存在着性能上的瓶颈。深度学习方法主要利用循环神经网络(recurrent neural networks, RNN)及其各种变体如GRU (gate recurrent unit)[9]和长短期记忆网络(long short-term memory, LSTM)[10]等,实现了时间序列预测性能上的突破。

      基于RNN的深度学习方法在实现长序列预测时,仍然存在性能问题,尤其是深度学习方法的顺序预测范式,主要存在以下不足。1)模型的性能不够稳定。尽管短距离预测结果准确,但它们在长序列预测中会因动态解码而累积误差,模型的精度会随着预测长度的增加而快速衰减,导致最终的预测结果出现较大误差[11]。2)由于梯度消失和内存约束问题,大多数现有方法无法从过去长时间的历史序列中学习有效的知识和模式。

      为了捕获序列中的长期依赖关系,文献[12]提出了注意力机制,以改进自然语言翻译任务中编码器−解码器结构的词对齐。随后,文献[13]提出了使用位置注意和点积注意机制等多种变体,它们被广泛应用在各种序列分析预测问题中。采用注意力机制考虑到RNN (包括LSTM、GRU等变体)的计算机制是顺序的,即RNN相关算法只能从左向右或从右向左依次计算,这种机制带来了两个主要问题:1) 时间t时刻的计算依赖于t−1时刻的计算结果,这种规则限制了模型的并行能力;2) 顺序计算的过程中会出现信息丢失现象,尽管LSTM等具有门控机制的模型一定程度上缓解了长期依赖的问题,但对于特别长期的依赖关系,RNN模型的性能依然不佳。

      基于自注意力机制的Transformer模型[14]有效解决了前面两个问题。首先,它使用了自注意力机制,将序列中的任意两个位置之间的距离缩小为一个常量。其次,它避免了类似RNN中的顺序结构,具有更好的并行性,能够很好地适用于现有的GPU计算框架。但在使用原始的Transformer解决LSTF问题时,依然存在两个明显的缺陷:1) 模型计算量较大,时间复杂度和空间复杂度都达到了$O({L^2})$;2) 在预测长距离输出时,推理速度大幅下降,因为Transformer的动态解码使得其预测时间和基于RNN的模型在推理时计算量是一致的。本文利用Transformer在解决时间序列预测问题上的优势,对模型进行针对性改进。

    • 水轮机状态数据包括当前顶盖水位、机组流量、电压、电流、水轮机机组有功功率、主轴密封磨损量、密封水压力等多种不同类型的数据。由于传感器故障、水轮机工作异常等原因,原始的水轮机状态数据存在很多异常值和缺失值。异常值主要指由于传感器异常或设备运行异常等引发的严重偏离期望值的数据。异常值分为两种类型:设备运行本身的故障和状态异常;传感器示数错误引起的异常值。异常数据会降低模型拟合的精度,而且会导致后续状态评估出现偏差,引发误判,异常数据应该通过数据清洗去除。水轮机状态数据中的缺失值主要是由传感器的短暂失效、通信端口异常、设备检修维护、记录失误等因素造成[15]。通过剔除所有应被数据清洗的异常值和补全缺失值,可以实现水轮机状态数据的数据预处理。

    • 数据中由于传感器示数异常导致的异常值,本文使用孤立森林算法[16]进行检测并剔除。孤立森林是一种集成学习算法,由多棵孤立树(isolation tree, itree)组成,每棵孤立树都具有二叉树结构,其核心思想是快速被划分到叶子节点的数据大概率是异常数据。构建一棵孤立树的具体步骤如下:1) 从训练数据中采样n个数据作为孤立树的训练样本;2) 在训练样本中随机选择一个特征,并在该特征的最小值和最大值范围内随机选择一个值P作为当前孤立树的根节点;3) 对样本进行划分,将小于P的样本点划分到根节点的左边,大于P值的样本点划分到根节点的右边;4) 对划分产生的左右两部分重复步骤2)和步骤3)操作,直到节点只包含一个样本或者达到树高度的最大限度。

      重复上述操作构建N棵孤立树,利用构建好的孤立森林模型检测出异常数据,使每一个时刻数据遍历所有孤立树,直到达到终止条件,计算数据经过的路径长度。在这种随机分割策略下,异常数据相较于正常数据经过的路径通常都较短,会最先被分割出来,进而在数据中被剔除。

    • 对于数据中的缺失值,本文使用随机森林回归算法[17]进行缺失值的插补。随机森林回归算法采用集成学习的思想,在多个二叉决策树的构建上使用不同的参数选择,通过组合多棵决策树进行最终预测。在训练阶段,随机森林使用bootstrap采样方法从训练数据中采集多个不同的子训练数据集来依次训练多个不同的二叉决策树。在预测阶段,随机森林将所有二叉决策树的预测结果取平均得到最终结果。二叉决策树的预测过程分为以下步骤。1) 输入某一样本,从二叉决策树的根节点起,判断当前节点是否为叶子节点:如果是,则返回叶子节点的预测值(即当前叶子中样本目标变量的平均值),否则进入下一步。2) 根据当前节点的切分变量和切分值,将样本中对应变量的值与节点的切分值作对比。如果样本变量值大于当前节点切分值,则访问当前节点的右子节点;如果样本变量值小于等于当前节点切分值,则访问当前节点的左子节点。3) 循环步骤2),直到访问到叶子节点,并返回叶子节点的预测值。

    • 利用孤立森林算法和随机森林回归算法实现了对数据的异常值处理和缺失值插补后,由于原始数据中不同特征数据的量级及变化范围不同,本文对清洗后的不同特征数据分别进行MIN-MAX归一化处理。归一化后的特征值$ {x'} $的具体计算方式为:${x'} = \dfrac{{x - \min ({\boldsymbol{X}})}}{{\max ({\boldsymbol{X}}) - \min ({\boldsymbol{X}})}}$,其中$ x $表示原始值,$ \min ({\boldsymbol{X}}) $$ \max ({\boldsymbol{X}}) $分别表示该特征的最小值与最大值。

    • 本文模型摒弃了传统的卷积神经网络和循环神经网络,基于自注意力机制构建整个网络结构。模型的主要框架由嵌入输入部分、基于自注意力机制的编码器、基于自注意力机制的解码器和预测输出模块这4部分组成。编码器主要由多头注意力模块和池化操作模块堆叠而成,而解码器主要由掩盖多头注意力模块、多头注意力模块和前馈神经网络模块组成。模型的整体框架如图1所示。

      图  1  模型的整体框架示意图

    • 本文将预处理过的水轮机顶盖水位相关数据拼接起来,并加入位置编码和全局编码,作为自注意力模块的输入。t时刻的输入表示为$x_t^{} = \{ x_1^{},x_2,\cdots, x_{{L_x}}^{}|x_i^{} \in {R^{{d_x}}}\}$,其中,Lx指输入序列的长度,dx代表相关特征值的个数。由于自注意力机制将序列中任意两个位置之间的距离缩小为一个常量,需要在嵌入表示中显式地增加位置编码,使模型能够区分不同时刻的输入。位置编码可以分成相对位置编码和绝对位置编码两种类型,本文使用绝对位置编码。具体地,模型使用了正、余弦函数位置编码。对于在输入序列中位置为pos的输入向量,其位置编码PE的数值为:

      $$ {{\rm{P}}}{{{\rm{E}}}_t}\left( {{{\rm{pos}}}} \right) = \left\{ {\begin{array}{*{20}{l}} {\sin \left( {\dfrac{{{{\rm{pos}}}}}{{{{\left( {2{L_x}} \right)}^{2i/{d_x}}}}}} \right)\quad{{\rm{pos}}} = 2i} \\ {\cos \left( {\dfrac{{{{\rm{pos}}}}}{{{{\left( {2{L_x}} \right)}^{2i/{d_x}}}}}} \right)\quad{{\rm{pos}}} = 2i + 1} \end{array}} \right. $$ (1)

      式中,pos表示当前输入在输入序列中的位置;i表示该输入在对应的位置编码向量中的位置,范围是$i \in \{ 1,2,\cdots,\left\lfloor {{L_x}/2} \right\rfloor \}$Lx表示输入序列的长度。位置编码${\rm{P}}{{\rm{E}}_t}$即是用正弦余弦对表示原有序列中的位置。最终的嵌入编码${\boldsymbol{X}}_t^{{\rm{en}}}$定义为:

      $$ {{X}}_t^{{\rm{en}}}(j) = x_t^{}(j) + {{\rm{P}}}{{{\rm{E}}}_t}(j)\quad{\text{ }}j \in \{ 1,2,\cdots,{L_x}\} $$ (2)

      整体数据嵌入${\boldsymbol{X}}_t^{{\rm{en}}}$是原始序列$ {\boldsymbol{x}}_t^{} $与其位置编码信息$ {\rm{P}}{{\rm{E}}_t} $按序列中的位置级联到一起构成的,结合原始信息和全局位置上下文,将作为自注意力模块的输入。

    • 多头注意力模块是多个不同自注意力模块的集成,是编码器和解码器的关键组成部分。自注意力模块的计算主要由(query, key, value)三元组构成:

      $$ {\boldsymbol{Z}} = {{\rm{Attention}}}({\boldsymbol{Q,K,V}}) = {{\rm{softmax}}}(\frac{{{\boldsymbol{Q}}{{\boldsymbol{K}}^{\rm T}}}}{{\sqrt d }}){\boldsymbol{V}} $$ (3)

      式中,Q表示查询(query),${\boldsymbol{Q}} \in {R^{{L_Q} \times d}}$K表示键(key),${\boldsymbol{K}} \in {R^{{L_K} \times d}}$V表示值(value),${\boldsymbol{V}} \in {R^{{L_V} \times d}}$。通过式(3)得到注意力特征向量ZZ反应了不同位置输入之间的相互关系。QKV通过3个不同的权值矩阵与嵌入矩阵X相乘得到:${\boldsymbol{Q}} = {{\boldsymbol{W}}^{\boldsymbol{Q}}}{\boldsymbol{X}}$${\boldsymbol{K}} = {{\boldsymbol{W}}^{\boldsymbol{K}}}{\boldsymbol{X}}$${\boldsymbol{V}} = {{\boldsymbol{W}}^{\boldsymbol{V}}}{\boldsymbol{X}}$,其中,W为注意力头部的权值矩阵。利用多组不同的W将嵌入向量进行多次不同的映射,以捕捉映射到多个线性空间更加丰富的特征,实现多头注意力计算。实际实验中,一般取${L_{\boldsymbol{Q}}} = {L_{\boldsymbol{K}}} = {L_{\boldsymbol{V}}}$,使得${\boldsymbol{Q}},{\boldsymbol{K}},{\boldsymbol{V}}$这3个矩阵的维度相同。将多个注意力头部的计算结果拼接并进行线性转换就得到了最后的特征矩阵Z。在本文实验中,模型使用了6个注意力头,即6组不同的W矩阵。另外,在自注意力计算的过程中,使用了残差网络中的short-cut结构,以缓解深度学习中的梯度消失和梯度爆炸问题。

    • 得到特征矩阵Z后,原始的Transformer会使用一个双层前向反馈网络计算得到隐藏向量。为了减少模型的时间复杂度和空间复杂度,且自注意力计算中存在特征映射的冗余,本文模型在编码器的计算中加入池化操作替换了原有的前向反馈网络。池化操作对具有主导特征的优势特征赋予更高的权重,在下一层生成具有主导性的特征映射,可以大幅削减输入的时间维度,具体计算如下:

      $$ {{\boldsymbol{Z}}_{s + 1}} = {{\rm{MaxPool}}}({{\rm{SELU}}}({{\rm{Conv1d}}}({[{{\boldsymbol{Z}}_s}]_{{\rm{AB}}}}))) $$ (4)

      式中,[.]AB表示自注意力模块;$s$表示池化操作的层数。通过卷积核为3的卷积、SELU非线性变换和步长为2的MaxPool,经历两次下采样,降低了计算量和内存消耗,编码器的空间复杂度从$O({L^2})$下降为$O(L\log L)$。本文模型将多头注意力模块和池化模块堆叠使用(如图1所示)得到编码器最终的隐藏表示。

    • 模型解码器使用标准Transformer解码器结构,由两个多头注意力计算模块和一个前馈连接模块堆叠而成。首先,解码器的输入是将预处理过的水轮机顶盖水位相关的起始数据和一段填充数据拼接在一起,并添加位置编码和全局编码作为数据嵌入表示,即解码器的输入。解码器的输入${{\boldsymbol{X}}_{{\rm{de}}}}$计算如下:

      $$ {\boldsymbol{X}}_{{\rm{de}}}^{} = {{\rm{Concat}}}({\boldsymbol{X}}_{{{\rm{token}}}}^{},{\boldsymbol{X}}_0^{}) \in {R^{({L_{{{\rm{token}}}}} + {L_y}) \times {d_{{{\rm{model}}}}}}} $$ (5)

      式中,${\boldsymbol{X}}_{{{\rm{token}}}}^{} \in {R^{{L_{{{\rm{token}}}}} \times {d_{{{\rm{model}}}}}}}$是起始序列;${\boldsymbol{X}}_0^{} \in {R^{{L_y} \times {d_{{\rm{model}}}}}}$是目标序列的占位符,设置为0。

      不同于编码器,解码器会将数据嵌入表示输入到掩盖多头注意力计算模块,从而学习解码器输入数据之间的相互作用关系。掩盖多头注意力计算模块需要遮盖输入序列的信息,并在进行注意力计算时将输入序列中每个位置后面部分点积计算结果设置为负无穷。这样操作可防止每个位置关注未来的位置信息,从而实现自回归学习和解码。接下来将数据传入另外一个多头注意力计算模块中,该模块旨在学习编码器输入表示和解码器输入表示之间的关系,使得解码器在预测时不但关注解码器的输入,还能关注编码器的长序列输入,使得模型能够高效地对长距离依赖进行建模。最后将多头注意力计算模块的输出输入到前馈连接模块中,以丰富数据的表示信息,增强模型的表达能力。

      经过解码器的转换和学习之后,模型获得输入数据的良好表示。在预测时,使用一段目标序列之前的已知序列作为起始序列,将${{\boldsymbol{X}}_{{\rm{de}}}} = \{ {{\boldsymbol{X}}_{{\rm{token}}}},{{\boldsymbol{X}}_0}\} $ 输入到生成式的解码器中。然后,解码器通过一个全连接网络,将数据转换成和待预测的信息相同的维度,预测输出全部预测序列。这种方式能准确地预测出未来一段时间水轮机顶盖水位相关的数据信息,取代了传统的编解码器体系结构中耗时的“动态解码”,极大地提高了解码速度。

      在模型的训练过程中,使用均方误差(mean square errors, MSE)作为最终的损失函数,计算模型输出和真实序列值之间的误差,进行梯度的反向传播,实现模型参数的优化。由于注意力机制的存在,模型可以并行运算,即每个时刻都会去预测下一个时刻的结果而不依赖于其他数据,不像循环神经网络一样每一步都需要依赖前一步的计算结果,这种方式极大地提高了模型的训练速度。

    • 本文从国家能源集团大渡河公司大岗山水电站获取了2018—2020年的水电站运行数据,选取了与水轮机顶盖水位相关的多个测点作为模型的输入特征。相关数据包括了:水轮机机组流量、机组有功、主轴密封磨损量、密封水压力、密封水流量、顶盖压力脉动、顶盖xyz向振动、顶盖水位以及4台排水泵的启停信号。所有数据采样共262万余条,其中包括模拟量(传感器数值)数据共157万余条,其他开关量及统计量(如机组启停记录和运行时长)共105万余条。使用上述数据对本文模型进行实验验证。

    • 选取以下4种经典的时间序列预测模型和本文模型进行对比,以更好地验证模型的性能。

      ARIMA:差分整合移动平均自回归模型,一种最常见的基于历史数据进行时间序列预测的统计模型。

      LSTM[10]:一种RNN的变种,在RNN的基础上引入门控机制,由输入门、遗忘门和输出门组成,广泛应用于时间序列信息的提取和挖掘。

      GRU[9]:在LSTM上加以改进,将LSTM的遗忘门和输入门合并为一个更新门,该模型只包含更新门和重置门,减小了计算量和内存使用。

      Transformer[14]:利用自注意力机制替换RNN网络结构,实现时序信息的对齐和捕获,利用层层叠加的自注意力机制更好地捕获多个输入序列中最重要的部分。

    • 本文实验模型使用PyTorch框架实现,实验环境基于Ubuntu 20.04操作系统,使用了Inter i7-6700 CPU和GTX3090 GPU。在模型训练方面,运用Adam优化器,学习率设置为0.0001;编码器多头注意力模块的头数为6;多头注意力模块和池化模块的组合块数为2;解码器多头注意力模块的头数为6;训练最大迭代次数为100;批次样本数为64。关于对比基线,本文在预定义的参数中空间搜索,选取最优配置的实验结果。具体地,ARIMA中,将pdq的值分别设为64、1和32;设定LSTM与GRU隐状态的维度为256;Transformer编码器的层数设为3;解码器层数设为1;多头注意力模块的头数设定为8。数据集划分上,将数据预处理后的初始数据集按年划分,前80%作为训练集和验证集,共计42万条数据;将后20%作为测试集,共计10万条数据。

    • 对于时间序列预测任务,本文使用通用的评价指标来评估本文模型和其他基准模型的性能。采用均方误差(MSE)和平均绝对误差(MAE)作为最终的预测效果评价指标。MSE和MAE计算如下:

      $$ \mathrm{MSE}=\frac{1}{n} \sum_{i=1}^{n}\left(y_{i}-\hat{y}_{i}\right)^{2} $$ (6)
      $$ \mathrm{MAE}=\frac{1}{n} \sum_{i=1}^{n}\left|y_{i}-\hat{y}_{i}\right| $$ (7)
    • 本文模型和基准模型的性能比较结果如表1所示,考虑到编码器输入长度和解码器预测长度是影响本文模型性能的关键参数,因此分别尝试了不同的输入长度和预测长度的组合来更加全面地对模型展开分析。

      表1表2可知,当预测长度固定时,随着输入长度的增加,所有模型的表现都在逐步提升,这表明模型在更大的观察视野下通常可以捕获更多的周期等特征信息,以实现更好地预测。与此同时,本文发现在不同的输入长度和预测长度的组合情形下,传统的基于统计学习的模型ARIMA表现最差,采用了门控机制的LSTM和GRU表现次之,这表明简单的基于统计学习的模型在短序列预测时表现较好,但无法应对长序列水位的场景。标准Transformer模型性能较好,仅次于本文所提出的模型,这是由于本文模型在Transformer的基础上引入了池化操作,使模型可以实现序列对齐,寻找出更为关键的特征,更好地应对长序列预测问题。

      表 1  不同模型的预测结果比较

      预测长度编码器输入长度ARIMALSTMGRUTransformer本文模型
      MSEMAEMSEMAEMSEMAEMSEMAEMSEMAE
      60 60 0.517 0.769 0.416 0.634 0.398 0.612 0.301 0.468 0.304 0.452
      60 120 0.436 0.691 0.364 0.584 0.351 0.559 0.241 0.423 0.232 0.398
      60 180 0.367 0.524 0.286 0.438 0.273 0.419 0.184 0.284 0.176 0.267
      120 120 0.547 0.905 0.477 0.765 0.462 0.726 0.361 0.548 0.354 0.532
      120 180 0.494 0.814 0.389 0.617 0.376 0.669 0.261 0.441 0.272 0.438
      120 240 0.387 0.618 0.324 0.502 0.311 0.489 0.224 0.314 0.226 0.327

      表 2  在长跨度设置下(预测长度=720)的结果比较

      编码器输入长度ARIMALSTMGRUTransformer本文模型
      MSEMAEMSEMAEMSEMAEMSEMAEMSEMAE
      1200.8650.8120.6500.7550.6540.7540.4250.6330.4120.624
      1800.8130.7900.5730.5780.5640.6540.3750.5680.3580.556
      2400.7780.7670.5470.6410.5450.6470.3450.5240.3220.503

      为了更好地呈现本文模型的实际预测性能,选取多组不同时间的顶盖水位变化数据和水轮机相关状态数据,使用历史2 h的数据预测后2 h的顶盖水位,即120步长的水位变化,实验结果如图2所示,实线表示真实值,虚线表示预测值。

      从图中得到以下结论。1)顶盖水位变化具有一定的周期性,这是由水轮机和水泵的工作特点和工作方式决定的。顶盖水泵的启停受到顶盖水位的控制,当水位上升到一定阈值,水泵开启,水位快速下降,下降到一定阈值,水泵关闭。本文模型能够捕获这种周期性,并在预测结果上体现了与真实数据相同的上升与下降的态势。2)当顶盖水位在周期规律中出现波动时,本文模型所包含的多头注意力机制能够分析并捕捉历史观测中对未来水位变化的重要时刻,并据此实现良好的预测效果。多组案例可视化分析说明了,本文模型可以很好地预测顶盖水位的变化,预测的水位趋势及数值能够很好地拟合真实的水位变化情况。这一现象说明了本文模型可以有效地处理极长的输入序列,提取长序列信息并进行长距离的时序预测。

      在本文模型的设计和实现中,针对长序列预测问题中预测长度长的特点,进行针对性设计以提高预测速度。图3中展示了不同模型预测时间的对比情况。

      图3可知,本文模型的预测效率高于其他基准模型,并随着预测长度的增加,速度优势越来越大。说明本文模型使用池化操作替换前馈神经网络能有效减少了计算量。

      图  2  水轮机顶盖水位变化预测

      图  3  不同模型的预测时间对比

    • 本文针对长序列预测问题进行研究,提出了新模型来实现长序列预测。本文模型通过设计新的嵌入表示方法,保存长时间序列中的完整信息,增加了池化操作以解决原始Transformer内存空间占用较大的问题,有效降低了计算量和内存占用。同时,生成式解码器有效处理了传统编码器−解码器模型在预测速度上的局限性。针对水轮机顶盖水位预测这一典型的长序列预测问题,设计了较完善的数据预处理方案和模型实施方法。实验证明本文模型在预测精度和预测速率上取得了明显提升。在未来工作中,拟将本文模型应用在其他水电工业长序列预测问题中,以更好地拓展模型适应性和验证其可靠性。

参考文献 (17)

目录

    /

    返回文章
    返回