针对航空发动机数据重构的生成对抗多头注意力神经网络自学习方法

文档序号:33096861发布日期:2023-02-01 00:05阅读:40来源:国知局
针对航空发动机数据重构的生成对抗多头注意力神经网络自学习方法

1.本发明属于航空发动机缺失数据的端到端自学习领域,涉及到一种针对航空发动机数据填补的基于卷积多头注意力机制的生成对抗网络建模方法。


背景技术:

2.航空发动机作为飞机的“心脏”,它的健康状况影响着飞机的安全飞行。航空发动机常年工作在高温、高压、高噪声的环境下,因此航空发动机相关参数的测量是一个难点与挑战。事实上,在测量的过程中,常见问题主要是由于振动异常、电磁干扰、传感器测量误差与故障等原因,会导致数据采集中断,造成部分传感器数据缺失等问题。在实际操作中,如果数据库收集到不完整数据,不仅会造成实际数据与事先估计的差异,还会降低计算的准确性,这就造成了数据处理误差,限制了后续的预测和维护。
3.目前,针对航空发动机缺失数据处理问题的方法有以下几种:
4.1)基于传统统计学的方法
5.数据填补问题最早可归类于统计学领域,其核心思想就是利用一些统计学的知识,实现对缺失数据的有效填补,包括均值填补法、众数填补法、极大似然估计法等。其中,均值填补和众数填补方法缺乏随机性,丢失了大量数据的有效信息,而极大似然估计方法计算较复杂。其它们的共同缺点是不能有效挖掘多元数据属性间的相关性。
6.2)基于机器学习的knn方法
7.针对数据填补问题上的机器学习方法,如常见的knn填补法。knn算法明显受数据量的大小影响,并且在寻找近邻时需要计算数据之间的距离,因此数据量越大需要的计算时间越多,但是数据量较小时,不能保证选择的k个近邻与待填补数据充分接近。
8.综合以上论述,本发明设计的基于卷积自注意力机制生成对抗网络自学习技术,是一种针对具有耦合多元时间序列特性的航空发动机缺失数据的建模方法。本专利由中国博士后科学基金(2022tq0179)和国家重点研发计划(2022yff0610900)资助。


技术实现要素:

9.本发明针对当前航空发动机缺失数据重构算法的局限性问题,提供了一种基于卷积多头注意力机制的生成对抗网络建模方法,并获得了更好的填补精确度。由于航空发动机是一种高度复杂的气动-热力-机械系统,它所生成的时间序列数据具有很强的相关性,因此,如何充分利用航空发动机数据中的属性相关性和时序关联性,来预测航空发动机的缺失数据一直是一个挑战性的难题。
10.为了达到上述目的,本发明采用的技术方案为:
11.一种针对航空发动机缺失数据的基于卷积多头注意力机制的生成对抗网络建模方法,包括以下几个步骤:
12.步骤s1:样本预处理
13.1)将带有缺失值的航空发动机数据集划分为训练样本集和测试样本集,训练样本集用于模型的训练,测试样本集用于训练后模型的检验,由于对训练样本集和测试样本集处理方法相同,故以下表述中不做区分,假设航空发动机数据具有n个属性,则统一用x={x1,x2,...xn}表示。
14.2)标记缺失值
15.由于x中含有缺失值,缺失项用nan表示,未缺失项为原始值,构造出与x大小相等的掩码矩阵m,对于x中缺失项,掩码矩阵对应位置标记为0,对于x中未缺失项,掩码矩阵对应位置标记为1,从而实现对缺失数据和未缺失数据的标记。
16.3)由于航空发动机一些传感器之间数值差异过大,如果直接采用原始数据,这些特征的量纲都是不一样的,这会对后续神经网络的训练产生影响。因此通过标准化处理,可以使得不同的特征具有相同的尺度。这样,在使用梯度下降法学习参数的时候,不同特征对参数的影响程度就是相同的。对于未缺失项,利用如下公式将所有传感器数据进行统一标准化,
[0017][0018]
其中x
′i表示特征i标准化后的数据,xi表示特征i原始数据,meani表示特征i的均值,σi表示特征i的方差,对于缺失项,将nan替换为0,最终得到标准化后的多元时序数据x

={x
′1,x
′2,...x
′n}。
[0019]
4)采用滑动窗口法构造时序样本
[0020]
对x

、m,采用滑动窗口法,在时间维度进行滑动,提取样本的时间信息,构造出一系列n
×
windowsize的时序样本,其中n为样本的特征维数,windowsize为窗口大小,即将x

、m重构为m
×n×
windowsize形式,m为样本数量,取决于原始样本大小。
[0021]
步骤s2,预填补
[0022]
由于生成对抗网络生成的数据具有较大的随机性,为了使网络生成的数据较好拟合原始数据分布,因此采用机器学习算法先对x

进行预填补,将预填补后的信息作为部分训练信息x
pre
参与网络训练。
[0023]
步骤s3:构建生成对抗多头注意力网络模型
[0024]
1)针对航空发动机缺失数据的基于卷积多头注意力机制的生成对抗网络建模方法,主要由生成器g和判别器d构成;生成器g由并联卷积层、全连接层、位置编码层、n层transformerencoder模块、并联卷积层和全连接层组成,即如下公式表示:
[0025]
conv1d1×1&conv1d1×
3-linear-positionalencoding-n
×
transformerencoder-conv1d1×1&conv1d1×
3-linear
ꢀꢀ
(2)
[0026]
所述的并联卷积层和全连接层(conv1d1×1&conv1d1×
3-linear)是为了有效提取航空发动机多元数据的属性相关性,并联卷积层由conv1d1×1和conv1d1×3并联组成,再通过全连接层进行组合,作为后续位置编码层输入。
[0027]
所述的位置编码层(positionalencoding)是为了使模型能够利用序列的顺序,注入一些关于序列中标记的相对或绝对位置的信息。为此,本发明在输入中添加positionalencoding,采用公式(3)进行位置编码,其中n为窗口大小,pos是时序位置,d
model
为数据总维数,d为维度数,d∈(0,1...d
model-1),也就是说,位置编码的每个维度都
对应于一个不同的正余弦曲线,由此输入数据的位置可被单独唯一标记,最后作为后续n层transformerencoder层输入。
[0028][0029]
所述的n层transformerencoder层是由n个transformerencoder串联而成的一个模块,transformerencoder由多头注意力模块层,残差连接层,前馈网络层残差连接层组成,即如下公式表示:
[0030]
multihead attention-add&norm-feedforward-add&norm
ꢀꢀ
(4)
[0031]
其中multihead attention是由多个attention模块并行拼接而来,attention模块如公式(5),multihead attention模块如公式(6),
[0032][0033][0034]
其中h表示多头注意力的头数,其中h表示多头注意力的头数,分别表示对应的未知权重。attention可以描述为将查询(q)和键值对(k-v)映射到输出,其中q、k、v和输出都是向量,输出值为计算值的加权和。当q、k、v输入相同时,称为自注意力。
[0035]
2)构造出与x大小相等的随机矩阵z,对于缺失项数据,填入均值为0,方差为0.1的随机数,对于未缺失项数据,填入0。由此引入一定的随机值,使之后模型训练更有鲁棒性。
[0036]
根据掩码矩阵m,构造出与m完全相同的矩阵m

,再对于m

中所有为0的项,以90%的概率置为1,最终得到提示矩阵h。
[0037]
生成器g的输入数据为标准化后的多元时序数据x

、随机矩阵z,掩码矩阵m、预填补矩阵x
pre
,使用并联卷积层提取属性间关联信息,使用位置编码将输入数据的时序信息进行编码,使用n层transformerencoder模块有效提取时序信息,最后使用并联卷积层和全连接层,输出完备数据信息xg,利用xg对x

中的缺失项进行填补;判别器d和生成器g结构上几乎一致,仅在最后一层添加sigmoid激活函数,以计算交叉熵损失,判别器的输入为填补后的数据矩阵x
impute
,以及由掩码矩阵生成的提示矩阵h和预填补矩阵x
pre
,输出结果为预测矩阵xd,预测矩阵中的元素值表示x
impute
中对应元素为真实数据的概率。
[0038]
步骤s4,利用训练样本集训练生成对抗多头注意力网络模型
[0039][0040][0041]
1)网络的训练包括两部分:判别器d的训练,生成器g的训练,其中公式(7)为判别器d的交叉熵损失函数,公式(8)为生成器g的损失函数,其中,表示期望,m为掩码矩阵,x
pre
为预填补的数据,xg为生成器g生成的数据,xd为判别器d输出的概率矩阵,λ,β为超参数。如
下公式(9)为填补后的数据集;
[0042]
x
impute
=x

*m+xg*(1-m)
ꢀꢀ
(9)
[0043]
2)生成器g和判别器d交替训练,生成器生成样本xg,尽量拟真实数据即未缺失项数据的分布,判别器d判别生成器g生成样本为真的概率,相互博弈,彼此促进。
[0044]
步骤s5:利用训练好的样本生成器g生成样本
[0045]
训练结束后,将带有测试样本集进行步骤1所示预处理,输入训练好的生成器g,得到生成样本xg。
[0046]
步骤s6:利用生成样本重构缺失值
[0047]
利用式(9),最终得到完备的填补后样本x
impute
,完成整个数据集的缺失数据重构工作。缺失数据重构完成之后,可作为后续故障诊断,健康维护工作的数据集,实现对含有缺失数据的航空发动机传感器数据的最大化利用。
[0048]
本发明的有益效果:
[0049]
本发明使用生成对抗网络可以更好的学习到数据的分布信息,使用并联卷积和多头注意力机制充分挖掘了航空发动机数据之间的空间信息和时序信息,与现有填补算法相比,该算法能有效提高缺失数据自学习精度,对航空发动机后续的预测和维护有着重大的意义。
附图说明
[0050]
图1是本发明技术流程图。
[0051]
图2是本发明提出的生成对抗网络填补自学习模型图,其中图a是本发明提出的改进生成对抗数据填补自学习架构,图b是本发明提出的生成器模型,图c是本发明提出的判别器模型。
[0052]
图3是图2模型的子模型,其中图a是点击缩放注意力模型,图b是多头注意力模型,图c是并联卷积及线性层模型。
[0053]
图4是在航空发动机健康管理常用的c-mapss数据集下,缺失率{0.1,0.3,0.5,0.7,0.9}下的均方根差(rmse)效果比较,其中this是本发明算法结果,knn是k-近邻填补算法结果,mean是均值填补算法结果。
具体实施方式
[0054]
本实施中针对航空发动机数据重构的生成对抗多头注意力神经网络自学习技术,使用c-mapss实验数据中fd001数据集进行验证,c-mapss实验数据是一个没有缺失值的数据集,并且数据集中给定的发动机都属于同一型号,每个发动机中共有21个传感器,数据集中将这若干个发动机的传感器数据共同构建为矩阵的形式,其中,每个发动机传感器数据的时间序列长度不相同,但都表示发动机完整的寿命周期。fd001数据集包含200台发动机退化数据,由于在本发明中是对航空发动机缺失数据进行重构,而不进行剩余寿命预测,因此将原数据集中划分的test_fd001和train_fd001合并,再按发动机号为最小单位进行随机打乱,选取80%的发动机号的数据作为训练集,20%的发动机号的数据作为测试集,对测试集按指定缺失率进行人工随机缺失。
[0055]
将训练集数据作为历史数据集,测试集数据作为缺失数据集,附图1表示该技术流
程,包括以下步骤。
[0056]
训练阶段,使用历史数据集数据进行训练。
[0057]
步骤1:按指定缺失率,这里取{0.1,0.3,0.5,0.7,0.9}五组缺失率,对数据集进行随机缺失,留存这些缺失项的真实值x
true
,作为后续评判信息。
[0058]
步骤2:进行数据预处理
[0059]
1)利用公式(1)将所有传感器数据进行统一标准化,得到标准化后的多元样本x


[0060]
2)采用滑动窗口法构造时序样本
[0061]
采用滑动窗口法,在时间维度进行滑动,提取样本的时间信息,其中特征维度为21,窗口大小为30,步长为5,构造出一系列特征维度
×
窗口大小(21
×
30)的时序样本,生成缺失数据矩阵。
[0062]
3)标记缺失值
[0063]
构造出与缺失数据矩阵大小相等的掩码矩阵(21
×
30),对于缺失数据矩阵中的未缺失项,将掩码矩阵中对应位置标记为1,对于缺失项,将掩码矩阵对应位置标记为0,实现对缺失数据和未缺失数据的标记。
[0064]
步骤3:预填补
[0065]
预填补过程,可以采用不同算法进行数据的预先填补,预填补的好坏对最终填补也有一定的影响,此处采用k-近邻算法对预处理后的数据进行预填补,其中k-近邻算法中采用sklearn库中的knnimputer函数,k取值为14,预填补后的结果为预填补矩阵,作为后续输入。
[0066]
步骤4:利用训练样本集x
train
训练模型
[0067]
网络的训练包括两部分,生成器g的训练,判别器d的训练两部分,如式(2)所示,生成器g由并联卷积层,全连接层,位置编码层,n层transformerencoder模块,并联卷积层,全连接层组成;判别器d在生成器的基础上,在最后一层增加一个sigmoid函数将值域转换为(0,1),用于交叉熵损失函数的计算。
[0068]
首先进行生成器的训练,将缺失数据矩阵x

、随机矩阵z、掩码矩阵m和预填补矩阵x
pre
作为生成器g的输入,输出生成矩阵xg,将其用于填补缺失值,得到填补矩阵x
impute
,将填补矩阵x
impute
,由掩码矩阵生成的提示矩阵h,预填补矩阵x
pre
输入判别器d计算得到xd,利用式:计算得到loss
g1
,利用式:λ‖x

*m-xg*m‖2计算生成数据与未缺失数据的重构损失得到loss
g2
,利用式:β‖x
pre
*(1-m)-xg*(1-m)‖2计算生成数据与预填补数据的重构损失得到loss
g3
,合并loss
g1
、loss
g2
、loss
g3

[0069]gloss
=loss
g1
+loss
g2
+loss
g3
ꢀꢀ
(10)
[0070]
反馈给生成器g并通过adam函数进行梯度更新。
[0071]
接着进行判别器d的训练,将填补矩阵x
impute
,掩码矩阵生成的提示矩阵h以及预填补矩阵x
pre
输入判别器d计算得到xd,利用式(7)计算交叉熵损失函数,得到d
loss
,反馈给判别器d并通过adam函数进行梯度更新。
[0072]
接着进行第二次迭代训练,即重复生成器g和判别器d的训练过程,迭代训练生成器g,使填补样本[xg*(1-m)]通过判别器d鉴定为未缺失样本(x

*m)的概率不断提升,即得到填补样本的样本分布和真实样本即未缺失项样本的样本分布越来接近;更新判别器d的参数,使得判别器d能准确识别出填补样本和真实样本;以此类推,完成多次模型训练,最
终,当达到训练次数后,退出训练,得到训练好的生成器g和判别器d。
[0073]
在fd001数据集训练中,窗口大小为30,步长为5,批次大小为128,λ=10,β=1/(pmiss*10),pmiss为缺失率,dropout率为0.2,训练次数epoch为15,生成器学习率为lrg=1.2e-3,判别器学习率为lrd=1.2e-1,transformerencoder模块注意力头数为8,堆叠层数n为2。
[0074]
测试阶段,使用缺失数据集数据进行测试。
[0075]
步骤5:缺失数据集数据预处理及预填补
[0076]
对缺失数据集进行步骤2,步骤3所示的预处理与预填补。这里窗口大小=步长=30,生成缺失数据矩阵x

、随机矩阵z、掩码矩阵m和预填补矩阵x
pre

[0077]
步骤6:缺失数据集填补
[0078]
将步骤5生成的矩阵输入步骤4训练好的生成器g,得到生成器的输出xg,再利用式(9),得到最终填补的矩阵x
impute

[0079]
实施结果
[0080]
本文针对航空发动机健康管理常用的c-mapss数据集,c-mapss实验数据是一个没有缺失值的数据集,对于其中的fd001数据集,本文按{0.1,0.3,0.5,0.7,0.9}五组缺失率,通过人工随机缺失模拟发动机传感器数据缺失,构建包含缺失值的缺失数据集,再将缺失样本集将原数据集中划分的test_fd001和train_fd001合并,再按发动机号为最小单位进行随机打乱,选取80%的发动机号的数据作为训练集,20%的发动机号的数据作为测试集,进行算法的验证。
[0081]
通过计算重构值与真实值的差值来对模型的优劣进行度量,使用rmse来判断补全的精度,rmse的定义如下,其中yi为真实值,为重构值,rmse越小,说明重构值与真实值差距越小,补全性能越好:
[0082][0083]
此外,由于上述数据集划分具有随机性,即每个发动机号下的数据序列长度不同,发动机号也是随机打乱,因此每次训练及测试结果都会有随机性,因此对每个缺失率下每个算法进行训练与测试五次,并取平均值作为最终结果,表1是最终结果,图4是结果图。
[0084]
表1:fd001数据集在不同缺失率下填补精度rmse
[0085][0086]
从表1中可以看出,在航空发动机健康管理常用的c-mapss数据集下,与基准算法相比,本发明不仅在相同缺失率下有着更好的补全效果,随着缺失率增大,本发明也有着更好的稳定性。缺失数据重构完成之后,可作为后续故障诊断,健康维护工作的数据集,在实现对含有缺失数据的航空发动机传感器数据的最大化利用的同时,本发明也能提供更高的
准确度。
[0087]
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例仅用以说明本发明的技术方案,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明原理和宗旨情况下,在本发明的范围内可以对以上述实施例进行修改和替换。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1