Transformer在水电机组异常指标预测的应用
2023-02-10林烨敏邱荣杰汤宇超周冠群李泽洲王中亚
林烨敏,王 宁,邱荣杰,汤宇超,周冠群,李泽洲,王中亚
(1.国网浙江省电力有限公司紧水滩水力发电厂,浙江 丽水 323000;2.宁波工业互联网研究院,浙江 宁波 315016)
0 引言
在水电站日常运维管理中,对机组运行的实时数据进行异常监测有着至关重要的作用,可以避免水电运行安全事故进一步扩大,并且在指导机组进行状态检修等方面也有重要意义。
国网浙江紧水滩电厂是国家开发瓯江流域龙泉溪干流梯级发电的第一级水电站,总容量30 万kW,于二十世纪八十年代建成。结合企业发展及数字化改革要求,传统水电厂向更加智慧的现代化水电厂转型是必然趋势,这也符合水电厂向“无人值班、远程集控、智慧运行”目标推进的要求。水电机组的异常监测管理是水电智慧运行的核心环节。目前,紧水滩电厂已全面完成水轮机、发电机定子及自动化监控系统改造,实现生产数据自动采集,整体自动化水平较高,机组本身的传感数据丰富,可为机组整体运行状态进行异常分析建模提供数据基础。
水电机组的故障通常发生在轴系、叶轮、叶片、导轴承等部位,主要故障包括油箱油位升降、油温升高、轴瓦平均温度升高等[1]。本文采集的系统数据包含大部分待检测的故障部位。
时序异常检测是时序分析问题重要的分支领域,自十九世纪开始,统计学领域就开始对数据中的异常检测展开研究[2]。通过对时序序列进行模式识别,从中挖掘异常序列片段特征并输出异常片段或报警信息。异常特征通常包含异常点、离群点、错误值等类型,其中异常点和离群点是常见的时序异常检测目标。
近年来随着机器学习和深度学习的发展,时序异常检测的准确率获得不断提升,方法也获得极大程度的补充。Breunig 等人于2000 年提出的LOF(局部离群因子)是基于密度估计的方法[3],Scholkopf 等人于2001 年提出的单类SVM(支持向量机)是基于聚类的方法[4]。这些基于传统机器学习的方法在一定程度上解决了部分异常检测的问题,但很难泛化到大规模数据以及多样化的异常特征提取。
基于深度学习RNN(循环神经网络)的方法则进一步提升了长时间序列的记忆和建模能力以及在大规模数据上的泛化性能。Ya Su 等人于2019年提出以随机循环神经网络算法解决多维时序异常检测问题[5],Lifeng Shen 等人于2020 年提出THOC(时间分层一类)网络,融合多维时序特征,进一步提升异常检测精度和效率[6]。
近两年,基于自监督算法模块构建的Transformer 模型在自然语言处理任务中取得业界最好的效果。相比基于循环模块的RNN 系列算法,Transformer 模型完全采用注意力机制,能够避免计算隐含层特征信息时过度依赖前一时刻隐含状态和当前时刻输入的问题,更好地建模远距离上下文隐含关系[7],极大程度地提成了序列建模和预测的效果。同时,基于Transformer 的时序异常检测也获得了一定发展。Shaohan Huang 等人于2020 年提出的HitAnomaly 模型构建了层次分级Transformer[8],解决系统日志中的序列异常问题。Zekai Chen 等人于2021 年使用Transformer 模型学习多维时间序列中的图结构,解决了时序异常检测问题[9]。
以上方法在大规模时序数据中包含较少的异常点或离群点检测问题时通常表现不足,并且需要标注大量异常片段样本序列,增加了人力成本。而基于生成式GAN(生成对抗网络)[10]的方法则能够在无监督的场景下,通过对大规模数据集进行序列特征建模,从而很好地发现少量异常片段,在实现高精度异常报警的同时,降低人力标注成本[11]。
结合水电机组日常运维中分析运行数据存在的周期性和趋势性异常,为尽早发现和切断机组故障,结合Transformer 模型对大规模长序列特征提取和建模的能力,以及GAN在生成算法高效的训练方式以及无监督自训练的能力,提出Trans-GAN模型,用于在大规模水电运行数据上进行序列异常检测。本文将从机组运行数据分析、Trans-GAN 模型构建以及结果验证3 个方面进行具体论述和分析。
1 数据分析
水电机组系统采用InfluxDB 数据库记录不同传感器的时序监测序列数据,通过读取接口可以获取与需要的时间段对应的多维度监测数据。
本文所使用的水电站机组数据对应时间段为2021—2022 年,数据包含60个维度不同的监测数据。由于数据写入水电机组时序数据库系统时,每个时刻点的数据均会与前一时刻点数据进行比较,只有当数值发生变化、超过阈值时,才写入该时刻点数据,如此虽然可以大幅节省存储空间,但读取到的数据存在较多缺失值。
60 个维度的监测指标包括各组件的温度、电流、电压、水压、水流量、油压和振幅等。根据水电机组的工作原理,可以推断单一组件各项指标间以及各个组件不同指标间必然存在隐含的关联性。本文所采用的异常序列监控方法仅需要对关键监测指标进行异常分析即可,与关键指标存在隐含关联性的其他指标存在相似异常属性,重复监测会导致系统处理压力过大,负载增加,浪费计算资源、降低监测实时性。因此前期的数据分析需要观察指标互相关性,对数据做降维处理。
1.1 缺失值处理
如前文所述,水电机组后台系统实时录入所有监测指标,系统I/O 压力较大,一般存储的数据类型为浮点型数据,占用空间高。为了降低系统I/O 和存储压力,连续监测指标没有变化的数据通常不写入数据库,因此导致后期采集的数据存在大量缺失值。
实验过程中对采集到的60 个维度的监测指标数据缺失值比例进行统计,如图1 所示(监测指标名称通过序列ID 替代),可以观察到:由于缺失值占比超过50%的监测指标占比较高,缺失值对降维分析和模型训练均有很大影响;同时,由于待分析的监测数据均为数值型数据,不存在分类指标或文本类型指标数据。因此,本文实验中对缺失值的处理将按照上文提到的系统实际存储行为完成缺失值填充,填充方法为:根据实际水电系统数据写入规则以及避免在插值过程中引入额外的人为误差(波动幅值一般源于环境噪声或探测器电子学噪声),如果传入的监测指标值与上一时刻非空(若为空值,则迭代回溯)的指标值相同,则录入空值,否则录入当前值。因此填充时可以直接将前一时刻数据值直接替换当前时刻缺失值,无须通过传统的补充平均值、补零等方式填充。
图1 数据缺失值占比Fig.1 Percentage of missing data values
通过以上方法填充前一时刻存在的记录值,填充后数据头部依然存在无法被填充的缺失值,但相对一年时间数据长度占比极小,如图2 所示。从图2 可以看到,填充后头部缺失数据占比极小,平均约占总体数据量的0.02%,对后续序列特征变化特性建模的影响极小。因此实验中直接移除头部无法填充的数据段。
图2 填充后缺失值占比Fig.2 Percentage of missing values after refilling
1.2 降维分析
在时序序列数据分析中,获得数据并进一步进行数据分析之前,需要先进行特征降维,避免因特征维数过高导致的维数灾难,同时也可以使数据分析获得更好的性能。水电机组数据中,存在隐形高度相关的监测指标维度较高,例如对同一设备同时监测的电压和电流值等类似的监测对,在其中一个指标发生异常的同时,另一个指标必然发生异常,可能为正相关或负相关关系,在实际监测时只需要对其中一个指标进行监测即可[12]。
一般通过数据采集时以人工选择的方式提取互不相关的独立监测指标用于数据分析,但人工选择非常耗费时间,并且存在漏筛选或过度筛选的问题。因此,本文对采集到的全量特征维度利用机器学习方法提取主要特征,以降低人工成本和错误率,提高数据链路自动化处理能力。常见的数据降维方法包括PCA(主成分分析)、随机森林特征选择、低秩表示等。PCA 是一种常见的无监督学习方法,主要利用正交变换把由线性相关变量表示的少量观测数据转换为由线性无关变量表示的数据,最终获得的线性无关的变量即为主成分[13]。随机森林算法是一种基于决策树的集成学习算法。决策树的每个节点都是关于某种特征的条件,对于一棵决策树,可以计算每个特征平均减少的不纯净度,并将该值作为特征选择的判别依据[14]。
针对水电机组数据,由于同一部件存在多种相关监测指标,互相关程度极高;同时原始时序数据包含重要序列周期信息。如果对水电机组数据采用PCA 降维算法,会将原始数据序列特征映射到新的特征空间中,导致原始序列特有的周期等特征丢失,模型无法学习合理的序列特征,影响最终序列重建效果。因此本文实验采用随机森林算法,结合特征互相关性矩阵对原始60 个维度的特征进行筛选,最终保留10 个维度的特征信息作为建模数据输入。
2 时序异常预测
早期的时序数据预测模型包括线性回归、ARIMA 等,进入深度学习时代,基于RNN 结构的LSTM(长短期记忆神经网络)模型由于其遗忘门的设计可以很好地处理长短时序信息而被广泛应用[15]。然而对于较大规模,例如超过一年且以分钟记录的时序数据,LSTM 仍无法很好地提取远距离上下文序列关系。而Transformer 模型则去掉了短期前后文的序列关系方法,完全采用注意力机制,结合位置编码,能够有效建模长距离上下文关系。大规模数据存在的另一个问题是很难进行人工标注,尤其是对于低频出现的异常片段。因此,本文提出TransGAN,结合Transformer 和GAN网络的无监督模型,同时解决长距离上下文时序建模以及人工标注困难的问题。
2.1 Transformer模型
Transformer模型摒弃了RNN的结构设计,网络核心为堆叠式的自注意力结构,整体采用边界结构设计;Transformer 基于此设计相比LSTM能够更好地处理长文本上下文关联信息,主动挖掘关键点,并学习关联表征。Transformer 在机器翻译领域大放异彩,尤其是基于Transformer 结构构建的预训练模型,在自然语言处理领域被广泛使用,获得了很好的效果,甚至在计算机视觉、语音识别和其他领域也被采用。
Transformer 模型的核心是其自注意力机制,如式(1)所描述:
式中:Q∈RN×Dk,表示注意力机制中的自主性提示,即查询向量;K∈RM×Dk,V∈RM×Dv,键和值在注意力机制中一一对应。
基础Transformer 模型的结构如图3 所示,其输入同时包含序列的向量编码以及位置编码。图3中左侧结构为编码器,输入为编码的时序特征向量以及对应的位置编码向量,经过多头注意力机制和前向神经网络,多层次编码,输出低维度编码向量,该向量获得了时序特征序列的重要特征编码信息。图3右侧为解码网络,该网络包含3个维度的输入信息:编码的时序特征向量、位置编码向量以及编码网络获得的编码向量。
图3 Transformer网络结构Fig.3 Transformer network structure
由于Transformer 结构中的自注意力机制善于处理上下文关联性建模,因此在时序数据预测中,也可以很好地挖掘长时间上下文依赖关系。
在水电机组数据异常预测中,不同时间长度的数据之间的关联性同样需要建模,尤其针对机组装备在长时间运营过程中,由于硬件工作参数受环境温度、湿度、运行时间等影响时,可能发生累计形变、温度异常等现象。因此相较传统特征数据分析方法和基于循环神经网络的方法,Transformer的长序列建模能力更加重要。
2.2 生成对抗网络
GAN由双路架构构成,其中一个网络用于从任意输入(例如噪声)生成目标,并使该目标不断逼近真实目标;另一个网络输入生成目标和真实目标,并尽可能最大化两者之间的差异,分辨两者的不同。
判别器的损失函数如式(2)描述:
生成器的损失函数如式(3)描述:
同时训练联合损失函数如式(4)描述:
式中:G为生成模型;D为判别模型;x为真实数据;z为随机噪声;Ex~Pdata(x)[D(x)]表示在给定的真实数据分布中计算判别器分类的期望值;Ex~Pz(x)[D(G(z))]表示从纯噪音数据中生成的数据,经过判别器判别真假的期望值。整体通过联合交叉熵损失形式计算误差,将误差通过反向传播算法,用于更新网络参数。通过迭代训练,模型最终收敛于最优的生成模型和最优的判别器。
基于GAN网络架构的特殊性,其对抗性训练方式能够方便地应用于需要无监督学习的场景中。当大规模数据中存在大量正样本和极少量负样本时,生成器将从大部分正样本中学习到正常序列分布特征,同时判别器能够通过上述损失函数通过反向传播更新参数的方法不断提升生成器对正常样本的重建能力。水电机组数据在很大程度上具备上述属性,较大比例时间内机组均处于正常工作状态,而异常报警的发生频次较低,采用GAN网络架构处理水电机组异常数据能够降低负样本筛选和标注工作。
2.3 TransGAN模型
综上所述,结合Transformer 对时序序列强大的关联信息建模能力,本文采用简单的Transformer 模型作为主干网络,编码部分对水电机组时序数据提取隐藏层向量表示,再通过解码网络还原原始特征序列,实现时序特征数据自我重建能力。如图3所示,网络输入部分包含原始特征序列和时序片段中各个时间点位置信息的编码,编码网络由3 层堆叠的包含自注意力机制的模块组成,前馈神经网络包含一层独立隐藏层。输入经过编码后,获得对输入时序序列隐含的重要特征信息的编码向量。获得编码向量后,再将该向量结合特征序列以及位置编码信息同时输入解码网络,通过解码网络重建原始序列,编码网络也采用3层堆叠的包含自注意力机制的模块组成,编码向量为中间层输入信号。获得解码向量后,通过线性层输出,获得重建的时序序列。
网络训练的监督信息为原始时序数据,最终让Transformer 模型通过正确的时序数据学习正确的编码模式。
单独用Transformer 模型进行序列重建无法正确从正常时序序列中获得时序特征,降低异常序列的干扰。因此构建完成的Transformer 编解码网络需要结合GAN 训练架构使用。本文将Transformer 模型作为生成器网络,而对于判别器,仅需完成二分类任务,因此通过构建简单的多层感知机实现判别器网络,基于GAN 架构的Trans-GAN模型如图4所示。
图4 TransGAN网络结构Fig.4 TransGAN network structure
网络数据流过程如下:原始数据X通过基于Transformer模型的生成网络G获得重建的输出X^,结合原始数据,一并输入到基于多层感知机的判别网络D中,经过多层感知机前向运算获得真/假二分类概率值,结合式(4)计算联合损失,再通过反向传播算法更新模型参数梯度。
2.4 模型预测
执行预测任务时,只需要将时序序列片段数据x输入训练后得到的TransGAN模型,获得重建后的预测序列T(x),然后依据式(5)计算原始序列与重建后的序列之间的误差。
由于异常片段必定与正常序列存在不一致的趋势,导致误差增加。因此该误差值可以准确反映异常现象是否存在,其中差值存在的片段即为异常片段。
最终系统希望实现对异常值出现进行报警,因此只需要结合给定的阈值δ,如果Error大于δ,则判定当前序列存在异常。
3 时序序列异常检测实验
3.1 实验配置
实验中,堆叠3 层Transformer 结构分别作为编码器和解码器,隐状态维度设置为512维,注意力头数量为8个。使用Adam优化器,给定初始学习率10-4,训练轮次为20 轮,批大小设置为32,序列片段长度设置为100,特征维度10。在NVIDIA RTX 3090显卡环境下训练。
3.2 实验结果
在筛选的测试集中根据训练集相同的特征提取方法,提取执行预测的特征时序序列数据,通过模型输出重建结果,图5分别展示了两个维度异常检测的效果。根据实际水电机组在异常检测过程中希望报警的经验阈值,本实验针对定子铁芯、轴瓦等8个温度相关指标,采用阈值5度作为误差范围δ,验证模型预测准确率。其他指标则根据实际运行时经验报警阈值判断。
图5(a)为某机组定子铁芯温度值的异常检测结果,其中红色曲线为原始数据经过TransGAN重建后的序列。从图5(a)可知,某一时间点附近存在一个异常值,根据式(5)计算得知误差约为13,远超过设定阈值5,因此该处异常温度点发出报警信息。
图5(b)为某机组轴瓦温度值异常检测结果,可以明显看到TransGAN 模型对正常温度变化序列拟合效果很好,误差普遍低于0.5。而某一时间点附近存在的异常点误差为173,远超过误差阈值。
图5 基于TransGAN的序列异常检测结果Fig.5 Results of sequence anomaly detection based on TransGAN
通过TransGAN 对拆分的测试数据进行异常判断,设定误差阈值δ=5,人工统计系统异常报警数量与实际异常点数量,准确率为98.3%,远超过人工监控的准确率。
3.3 对比实验
本文算法采用Transformer 模型作为主要建模模块,从数据中建模正常序列模态。通过实验对比RNN 为基础的模型,证明Transformer 作为建模模块可以更好地拟合更长时间周期的数据,建立长距离上下文关系。
对比实验采用双向LSTM 模型。为控制单一变量,实验中仅将Transformer 建模模块替换为双向LSTM 模型,同时可以直接利用未标记负样本的全量数据训练模型。表1展示了替换后的模型进行异常检测的结果。从查全率和查准率可以看出,Transformer 的建模能力强于双向LSTM的建模能力,对学习水电机组运行数据正常特征模式有明显效果。
表1 对比实验查准/查全率Table 1 Accuracy rate and recall rate of comparison tests%
4 结语
本文研究中,结合实际水电机组历史数据,通过数据清洗、特征工程以及基于Transformer 和GAN的序列重建算法快速准确提取时序序列的异常片段,在测试集中获得良好表现。在水电机组系统中完成该模型部署,实际运行可以达到实时异常监测的效果,并且具有准确率高、误报率低的特点,为降低机组维护人员工作负担,提升监测准确率和准时性的智慧化水电系统奠定了基础。该方法可以在水电机组普遍使用,但对于不同的水电机组需要进行额外训练。