基于LSTM-GAN的无人机飞行数据异常检测算法

2022-07-06 08:23王凤芹徐廷学王丽娜
中国惯性技术学报 2022年2期
关键词:飞行数据损失样本

王凤芹,高 龙,徐廷学,王丽娜

(1. 海军航空大学 航空基础学院,烟台 264001;2. 海军航空大学 作战勤务学院,烟台 264001)

随着无人机技术、计算机技术和通信技术的飞速发展,无人机在民用和军用领域都得到了广泛应用,尤其在军事领域扮演着重要角色。然而,无人机在发挥重大作用的同时,其面临的安全问题也日渐突出。2020年6月24日,美国空军一架MQ-9“死神”无人机在非洲坠毁,此次事故造成了1129万美元的损失。如何提升无人机飞行安全成为无人机领域一大研究课题。

当前,为保证无人机飞行安全,一种常见的做法是对飞行数据进行监控,即监控飞行数据中的异常情况[1]。当出现异常飞行数据时,说明无人机组成部件或者操控人员的操作出现了问题,针对问题及时查找原因,避免飞行事故的发生,从而保证飞行安全。如何从大量的无人机历史飞行数据中挖掘出飞机异常状态的数据模式是亟待解决的问题。

针对无人机飞行数据缺少标签而且异常数据较少的情况,一种可行的方法是采用无监督机器学习算法。传统的用于异常检测的机器学习算法有基于距离的检测算法(如K-Means聚类算法)和基于映射的方法(如单类支持向量机,One Class Support Vector Machine,OC-SVM)。这两类方法通常基于样本内在的属性判断是否异常,难以综合考虑样本之间的关系,因此对数据的趋势变化不敏感,且难以处理时序数据。

由于异常数据通常会违反时序数据的依赖关系,因此,近几年比较流行的一种深度学习方法是利用长短时记忆网络(Long Short-Term Memory, LSTM)捕获正常时序数据之间的依赖关系,从而实现飞行数据的异常检测[2]。文献[3]利用深度学习网络LSTM来检测广播式自动相关监视(Automatic Dependent Surveillance Broadcast, ADS-B)时序数据中的异常。该方法的主要问题在于对数据样本敏感,容易对异常数据产生过拟合。

另一种比较流行的深度学习方法是基于重构的深度学习算法。文献[4]在采用自动编码器(Auto Encoder, AE)的基础上引入变分自动编码器(Variational Auto Encoder, VAE),将变分与深度学习结合起来进行异常检测。该方法应用在异常检测问题上的主要困难在于确定低维空间维度,存在偏差,有变分下界,不能很好地捕获样本的数据模式。

生成性对抗网络(Generative Adversarial Nets,GAN)是另一种深度学习生成模型[7],该模型由用于捕获正常样本数据分布的生成网络和用于估计样本异常概率的判别网络两部分组成。相比VAE方法,GAN是渐进一致的、没有变分下界。但是到目前,尚未发现使用GAN网络进行无人机飞行数据异常检测的文献。

为了提升现有无人机飞行数据异常检测能力,针对LSTM网络存在对数据样本敏感、易产生拟合异常数据的问题,本文提出了一种异常检测算法LSTM-GAN,通过训练LSTM网络和GAN网络组成的循环网络,构建无人机飞行数据的正常样本模式,以检测离线状态下无人机异常数据,从而及早发现飞行问题或故障部件,为无人机预防性维修提供数据支持,保证飞行安全。

1 无人机飞行数据异常检测问题

与有人机相比,无人机最大特点是无人驾驶,飞行数据在这一过程中发挥着重要作用。飞行数据是指与飞机性能和飞行状态相关的飞行参数一段时间内的取值,由无人机上设置的大量传感器进行采集,经由飞机数据总线传输至飞行数据存储器,或者经过数据链传输至地面控制站。采集得到的飞行数据按照数据的信号源不同,分为动力系统数据、导航飞控数据、电气系统数据、任务设备数据、测控系统数据和位置信息系统数据。各类数据如表1所示。飞行数据是每隔几十毫秒采集一次,所以数据具有时间相关性。为了验证算法的有效性,本文以最常用的高度信息为例,分析传感器采集到的高度数据中的异常。

表1 飞行数据分类表Tab.1 Flight data classification table

按照飞行数据异常发生时间的范围,飞行数据的异常分为瞬时异常和序列异常。飞行数据的瞬时异常是指在某个时间点出现的单个异常点或者某一短暂时间出现的异常点。最简单的瞬时异常检测方法是基于数据标准值范围的异常检测,通过比较各个参数值与相应的标准数值范围查找异常。这种方法简单,但不能发现飞行数据的序列异常。飞行数据的序列异常是指在某段飞行时间内,飞行数据存在异常模式的子序列。序列异常检测需要首先构建每一个飞行数据项的正常序列数据模式,然后利用正常数据模式去检测时间数据序列,对于不符合已构建的正常数据模式的子序列识别为异常序列。

2 基于LSTM-GAN异常检测算法设计

2.1 算法总体架构

基于LSTM-GAN进行飞行数据异常检测的算法架构如图1所示,由训练网络和异常检测两部分组成。GAN训练过程包括生成网络GN和判别网络DN的训练,生成网络GN以随机生成的噪声时序Z为输入,目标是尽可能伪装成真实的飞行数据时序以欺骗判别网络,判别网络以真实飞行数据训练样本为输入,尽可能辨别出真实飞行数据和随机噪声数据,GAN的训练过程即为生成网络GN和判别网络DN不断博弈过程,直至达到纳什均衡,最终得到的GAN网络中,生成网络GN将捕获训练序列的隐藏多元分布,判别网络DN也被训练成高灵敏度地检测异常数据。异常检测部分以真实飞行数据测试样本XTest为输入,利用训练好的生成网络GN计算测试样本的重构损失(Reconstruction Loss, RL),判别网络计算测试样本的判别损失(Discrimination Loss, DL),两部分相结合计算出异常分数,根据异常分数判定是否为异常数据序列。

图1 LSTM-GAN飞行数据异常检测算法架构Fig.1 Flight data anomaly detection model architecture of LSTM-GAN

2.2 训练网络架构

图1中的LSTM-GAN训练网络包括生成网络GN和判别网络DN两部分,该两个网络的具体组成如图2所示。

图2 LSTM-GAN训练网络架构Fig.2 Training model architecture of LSTM-GAN

生成网络GN建立两个映射函数G1:X→Z和G2:Z→X,函数G1是将真实飞行数据训练样本X进行编码降维到潜在空间Z,函数G2是将潜在空间Z生成随机时序数据X,其中,Z服从多元正态分布,即z~N(0,1),利用映射函数G1和G2实现时序数据X的重构,即:

判别网络DN建立两个判别函数Dx:X→P和Dz:Z→P,Dx判定给定的样本X是真实数据样本的概率为P,其目标是尽可能区分真实数据样本和G生成的随机数据样本;Dz判定给定的向量Z是由真实数据样本编码得到的概率为P,其目标是尽可能区分真实样本编码得到的潜在向量和随机数据样本。为了避免网络拟合异常数据风险,网络中引入掩蔽Mask层和Dropout层,随机对神经元进行遮蔽和丢弃,提高训练网络的稳定性。

2.3 网络目标函数

经典GAN网络的损失函数采用Wasserstein对抗损失,如式(2)所示:

利用Wasserstein损失函数WL作为训练网络的目标损失函数,存在梯度爆炸的风险,为避免该问题,在训练判别网络时,利用Wasserstein距离,针对两个生成函数和判别函数分别设计目标损失函数。

对于生成函数G1:X→Z和判别函数D z:Z→P,目标损失函数设定为:

其中,

Dz表示1-Lipschitz连续函数集,即:对∀x1,x2∊dom f

1-Lipschitz连续函数对函数值的上界进行了约束,同时函数具有平滑性,由此可以使网络权重的更新不会发生很大的变化,这就降低了梯度爆炸的风险,生成时序数据样本的分布与真实飞行数据的数据分布相匹配,使得网络训练更加稳定可靠。

对于生成函数G2:Z→X和判别函数D x:X→P,目标损失函数设定为:

其中,

训练GAN网络的目的是能较好地重构输入时序,采用以上两个目标损失函数,映射函数的搜索空间很大,为了缩小搜索空间,引入循环一致性损失函数,如式(8)所示:

其中,‖·‖2表示原始样本x与重构样本差的L2范数。

综合式(3)(6)(8),得到GAN网络的目标损失函数为:

2.4 基础网络LSTM

算法基础网络采用长短时记忆网络(LSTM)[9],是一种递归神经网络(Recurrent Neural Network,RNN),是将RNN隐藏层的每个节点神经元之间构建了3个门——遗忘门f、输入门i和输出门o,通过门结构控制信息在网络中的状态,三个门组成的记忆单元如图3所示。

在时间步t时,LSTM隐藏层的输入向量为xt,输出向量为ht,记忆单元为ct,其中,

遗忘门:

输入门:

输出门:

其中⊗表示向量元素对应乘;W表示权重;σ是sigmod函数,b是偏置项。tanh是双曲正切函数,通过记忆单元和门控单元实现历史信息和长期状态的保存,通过遗忘门使得LSTM能够学习连续任务,并对内部状态进行重置。

2.5 算法步骤

基于LSTM-GAN网络的异常检测算法描述如下:

输入:真实飞行数据样本X={X1,X2,…...,Xt}

步骤:

Step1:使用滑动窗口将训练样本XTrain划分为子序列,滑动窗口大小设为m,则训练样本序列分解为:X1~m,Xm+1~2m,…,X(n-1)m+1~nm,

其中,

Step2:随机生成服从正态分布的噪声序列Z,每组序列长度也为m,即为:

其中,

Step3:训练GAN网络

置迭代次数初始值为1;

当迭代次数小于最大迭代次数,重复做以下操作:

真实训练样本X生成潜在空间:

重构真实训练样本X:G2(X TrainL);

随机噪声Z生成伪时序数据:

ZS=G2(Z1~m,Zm+1~2m,…,Z(n-1)m+1~nm)

判别DZ(X TrainL);

判别D X(ZS);

针对目标损失函数:

调整网络;

记录生成网络和判别网络的权重和偏置;

迭代次数增1。

Step4:异常检测

使用滑动窗口将测试样本XTest划分为子序列,滑动窗口大小为m,则测试样本序列分解为:X1~m,Xm+1~2m,…,X(k-1)m+1~km;

计算判别损失DLTest=DZ(X TestL);

计算异常分数ADScore=αRLTest+(1-α)DLTest;

依据异常分数输出异常飞行数据序列:

3 实验与结果分析

3.1 实验设计

(1)实验内容

为了评估LSTM-GAN异常检测算法的性能,在选定实验数据集上,与飞行数据异常检测算法:K-Means、OC-SVM、LSTM、Auto-Encoder的异常检测性能进行对比分析。其次,通过网络损失值的变化验证目标损失函数设定的合理性。

(2)评估指标

实验采用准确率(Accuracy,Acc)、精确率(Precision,Pre)、召回率(Recall,Rec)和F1分数来评估LSTM-GAN的异常检测性能。四个评估指标的计算公式分别如式(16)-(19)所示。

其中,TP表示真正例数,即实际情况和检测结果都是正常样本;FP表示假正例数,即实际情况为异常样本而检测结果为正常样本;TN表示真反例数,表示实际情况和检测结果都为异常样本;FN表示假反例数,表示实际情况为正常样本而检测结果为异常样本。对应混淆矩阵如表2所示。

表2 混淆矩阵Tab.2 Confusion matrix

准确率越高则算法检测效果相对较好,但对于正常样本多异常样本少的数据分布不平衡情况,正常样本类别会主导准确率的计算,所以还需其他指标综合评判;精确率是衡量算法正确检测正样本精度的能力指标;召回率是衡量算法检测正样本全度的能力指标;理想状况下,精确率和召回率两者越高越好,但实际情况是两者相互制约,精确率高则召回率就低,为了平衡精确率和召回率的相互影响,引入F1分数,是衡量算法精确率和召回率平衡后的能力指标,值越大越好。对于飞行数据异常检测,则要保证精确率的条件下,提升召回率和F1分数。

(3)实验数据

3.2 结果分析

从图中可以看出,从第2次迭代网络损失值迅速下降到0.15以下,后续迭代中,目标损失函数值的下降都相对稳定,这说明在三个损失函数的共同作用下,循环异常检测网络更加稳定,有效避免了网络的梯度爆炸情况,使得LSTM-GAN网络的异常检测性能更加稳定。

4 结 论

为了提升现有无人机飞行数据异常检测能力,针对LSTM异常检测算法对数据样本敏感、容易产生拟合异常数据的问题,提出了一种基于LSTM-GAN的无监督异常检测算法。该算法以GAN网络为算法框架,设计了生成网络、判别网络和重构网络三组网络来循环构建正常样本的数据模式,通过生成网络分别与判别网络、重构网络之间的博弈,有效避免了网络对数据敏感和拟合异常数据的风险。算法针对无人机缺乏带标签的飞行数据样本且数据样本分布不平衡的特点,以LSTM作为基础网络,能有效捕获到飞行数据之间潜在交互作用和时间相关性。实验结果表明,本文提出的LSTM-GAN异常检测算法,比目前流行的基于距离的异常检测K-means算法、基于SVM的OC-SVM算法、基于深度学习的LSTM和Auto-Encoder异常检测的准确率、精确率、召回率和F1分数均高,说明基于LSTM-GAN算法的异常检测性能好,同时算法设计的两个判别损失函数和一个重构损失函数组合构成的网络训练目标损失函数,有效避免了网络出现梯度爆炸的问题。本文较好解决了飞行数据无监督异常检测问题,可以对无人机飞后的状态监控、安全评估和事故分析提供数据支持,由于深度学习的网络复杂性带来检测时间相对长,未来需要研究如何降低检测时间,实现无人机的在线异常状态检测,同时探索深度学习网络模型的可视化技术,提高异常检测算法的理解和解释能力。

猜你喜欢
飞行数据损失样本
胖胖损失了多少元
用样本估计总体复习点拨
两败俱伤
规划·样本
GARMIN1000系统维修平台搭建预研究
浅谈飞行数据集中处理流程管理
随机微分方程的样本Lyapunov二次型估计
民航空管自动化系统中飞行电报自动化处理
菜烧好了应该尽量马上吃
损失