基于局部密度的加权一类支持向量机算法及其在涡轴发动机故障检测中的应用
2020-06-06赵永平谢云龙
黄 功,赵永平,谢云龙
(南京航空航天大学能源与动力学院,南京210016)
(*通信作者电子邮箱y.p.zhao@163.com)
0 引言
涡轴发动机是一种将燃料的化学能转化为输出轴功率的机械装置,主要为直升飞机提供动力。由于其压气机、涡轮等部件长时间工作在高温、高压和高转速的恶劣环境里,发生故障在所难免。据统计,在航空发动机发生的各类故障中,气路故障占比约90%以上,因此对气路故障进行有效的检测和研究就显得尤为重要[1]。
为了能及时有效地对故障进行检测和隔离来保护人民生命财产安全和降低损失,各国学者和技术人员提出了很多有用的方法。目前,针对气路故障检测的方法主要有基于模型、基于数据和基于知识规则等三种方法[2]。其中,基于模型和基于数据的两种检测方法应用最为广泛。在基于模型的检测方法中,比较常用的有基于卡尔曼滤波器[3-4]和基于观测器的方法[5]。基于模型的检测方法在机载实时应用方面为我们带来了很多好处,但同时也存在着很多不足。该方法要求对发动机知识和建模过程有较全面的掌握,而且随着发动机设计水平和制造工艺的日趋复杂,建模不确定性和建模难度也越来越大,使建立精确的数学模型充满了挑战。与此同时,随着支持向量机(Support Vector Machine,SVM)、人工神经网络(Artificial Neural Network,ANN)等人工智能算法的快速发展,基于数据的故障检测方法在检测效率和检测精度等方面有了长足的进步。其中,反向传播(Back Propagation,BP)算法是一种最基础的ANN算法。理论上,BP算法具有任意逼近能力,但同时也存在譬如收敛速度慢,易陷入局部最小等缺点。殷锴等[6]利用BP 算法来对航空发动机进行故障检测,实验表明,BP 算法可作为故障检测的一种备选方案。为了进一步提高BP算法的检测精度,Qu等[7]提出了一种利用遗传算法(Genetic Algorithm,GA)来优化BP 神经网络的初始权重和阈值的新算法,并将其用于航空发动机气路故障诊断中,实验证明,该算法相较于BP算法具有更快的收敛速度和更高的故障诊断精度。极限学习机(Extreme Learning Machine,ELM)是一种扩展的单隐含层前馈神经网络(Single-hidden Layer Feedforward Neural Network,SLFNN)。相较于BP 神经网络,ELM 不需要更新隐含层,因而大大缩短了训练时间。王小雷等[8]利用ELM 对发动机进行故障检测,取得了较好的效果。为了消除无效的隐含层节点,廖洪一[9]提出一种利用GA 来优化ELM 的输入权值矩阵和隐含层偏置值的新算法,相较于标准的ELM,这一新算法有效地精简了隐含层节点数,提高了模型的泛化能力。当ELM 用于解决故障检测等分类问题时,存在一种硬间隔缺陷,Zhao 等[10]提出了一种软极限学习机(Soft ELM,SELM)算法来解决这一问题。SELM 算法通过灵活地为每个样本设定一个目标间隔,再求解一系列正则化的ELM,有效地提高了算法的分类精度、增强了模型的泛化能力。SVM 是Cortes 等[11]于1995 年提出的一种二分类算法,该算法通过最小化结构风险来寻找最优分类面,被广泛应用于图像分割[12-14]、人脸识别[15-17]和文本识别[18-19]等领域。在2012 年,Heng等[20]使用SVM 对航空发动机数据进行故障检测分析,取得了比较好的效果。最小二乘支持向量机(Least Squares Support Vector Machine,LSSVM)是基于SVM 改进而来的,它通过求解线性方程组而不是求解二次规划问题在很大程度上降低了算法的训练时间。在2013 年,庄夏等[21]提出一种利用改进的粒子群优化算法来优化LSSVM 的惩罚参数和核函数参数的新算法,将该算法用于故障检测中得到了比较好的结果。
随着发动机设计水平的提高以及制造工艺的日趋完善,发动机故障数据获取的难度越来越大,代价也越来越大,因此,类别不平衡学习(Class Imbalance Learning,CIL)问题在基于数据的故障检测方法中的重要性日益凸显。在2018 年,Xi等[22]提出了一种能解决CIL 问题的改进LSSVM 算法,在涡扇发动机数据集中取得了比较好的效果。一类支持向量机(One Class Support Vector Machine,OCSVM)是一种只需要正常数据就可建立故障检测分类器的单分类算法,常用于故障检测[23-24]、入侵检测[25-26]等。加权一类支持向量机(Weighted OCSVM,WOCSVM)是通过对正常样本分配较大的权值,对可能的故障样本分配较小的权值,来最大限度地降低故障样本对分类器的影响,从而达到增强算法鲁棒性的目的,因此,对权重计算规则的制定就显得尤为重要。文献[27]提出了一种自适应加权一类支持向量机(Adaptive WOCSVM,AWOCSVM)算法,该算法能有效地对样本中的离域点进行检测,但也存在着不能很好地描述样本边界的问题。为此,本文提出一种基于局部密度的加权一类支持向量机(Local Density WOCSVM,LD-WOCSVM)算法。在该算法中,笔者首先考虑到马氏距离能排除特征之间相关性的干扰这一特性,在求解样本k近邻的过程中,使用马氏距离而不是欧氏距离来度量,并且选用当前样本k近邻的中心而不是整个数据集的中心来计算样本权重。此外,笔者通过改进一种快速聚类算法来识别可能的故障样本,并对故障样本分配较小的权重而提出了一种新算法,为方便叙述,将这一新算法命名为FCLD-WOCSVM。在4 个基准数据集上的仿真结果表明,与A-WOCSVM 算法相比,LD-WOCSVM 算法和FCLD-WOCSVM算法在故障检测中能取得更好的结果,证明了本文提出算法的有效性。
1 基于局部密度的加权一类支持向量机
1.1 加权一类支持向量机
OCSVM 是Schölkopf 等[28]于1999 年提出的一种单分类算法,只需要正常数据即可建立分类器,能很好地解决CIL 问题。为了能进一步提高OCSVM 算法的鲁棒性,学者们提出了各种改进措施,WOCSVM 算法即是其中的一种。本文是在文献[27]所提算法的基础上做出改进的。
给定训练样本集D=,xi∈Rn,x是一个测试样本,且x∈Rn。存在从Rn到希尔伯特空间χ的非线性映射φ使得φ(xi)∈χ,在希尔伯特空间存在超平面w·φ(xi)-ρ= 0 将原点和映射样本完全分开。其中,w为超平面法向量,ρ为偏移量[29],映射样本代表着正常样本,原点代表着故障样本。引入松弛因子ξi≥0 可使算法具有某种程度的鲁棒性。用ωi表示样本xi对应的权重,且ωi∈[0,1],则WOCSVM 的优化目标可写为
其中w∈χ,ρ∈R。ν∈(0,1]为预先定义的正则化参数,是被允许的最大误警率。引入拉格朗日乘子αi≥0,βi≥0,则有:
由Karush-Kuch-Tucker条件可得:
将式(3)代入式(2),可得原优化目标的对偶形式为:
其中SVs表示支持向量的索引。对于测试样本x,如果f(x)的值为1,则说明x为正常样本;如果f(x)的值为-1,则说明x为故障样本。由式(4)可知,权重ωi越小,则对应的拉格朗日乘子αi越趋近于零,说明样本xi与分类边界的距离越远,对分类边界的影响越小。因此,只要对潜在的故障样本分配较小的权重,即可起到增强算法鲁棒性的作用。
1.2 基于局部密度的加权方式
现将文献[27]的权重求取方式简述如下。
设C为数据集的几何中心,则样本xi与C之间的欧氏距离为:
则样本xi对应的权重ωi可由式(8)求得:
由上述表述可知,文献[27]所提算法的权重求取方式存在一定缺陷。当训练集的样本构成比较复杂,比如存在多个小范围聚集的情况,则样本与训练集中心的距离并不能衡量该样本与数据集边界的位置关系,也就是采用式(8)来求取权重并不科学。为此,本文提出一种基于局部密度的加权方式。其基本原理可简述如下。
令表示样本xi与其近邻中心之间的正则化距离,则:
由于故障样本与正常样本的形成机制不同,一般情况下故障样本均远离正常样本。当越大,说明样本xi与其他样本的距离越大,则xi为故障样本的可能性越大,此时需要对它分配较小的权值。则令
式(11)即为基于局部密度的WOCSVM 算法的权重求取方式。
1.3 基于马氏距离的k近邻样本的求取
在1.2 节中,求取离样本xi最近的k个训练样本{xi,1,xi,2,…,xi,k}时,考虑到训练数据集中可能掺杂有无法确定特征之间是否有联系的故障样本这一情况,如果采用传统的欧氏距离来度量,则无法保证计算的科学性。为此,本文提出用马氏距离(Mahalanobis Distance,MD)来度量两样本之间距离的远近。
马氏距离是统计学家马哈拉诺比斯定义的一种距离,它与欧氏距离相比,能有效地消除各变量之间的关联性并且和数据的量纲没有关系。给定训练样本集D,对于第i个样本xi和第j个样本xj之间的马氏距离可由下式计算得出:
其中Σ表示总体协方差矩阵。由于样本协方差是总体协方差的无偏估计,为便于计算,常用样本协方差矩阵代替总体协方差矩阵。当Σ为单位矩阵时,马氏距离变为欧氏距离。
为方便叙述,将此算法简称为LD-WOCSVM。基于以上分析,可将算法流程简述如下。
步骤2 由式(12)计算样本的k个邻近样本。
步骤3 由式(11)求得权重,代入式(4),由序列最小最优(Sequential Minimal Optimization,SMO)算法求解式(4),继而由式(5)求得决策函数。
步骤4 由式(5)预测新样本是正常还是故障。
2 基于快速聚类的LD-WOCSVM
为了能进一步增强算法的鲁棒性,先采用一种快速聚类分析算法来获取样本分布特点,再通过对可能的故障样本分配较小的权重来实现自适应加权。基于快速聚类算法的权重求取如下。
Rodriguez 等[30]在2014 年提出了一种很简洁的快速聚类算法,该算法的参数很容易确定,通过分析,该算法的复杂度为O(N2)。本文通过对该算法进行进一步改进,可以快速准确地识别出一部分故障样本,从而使更大限度地提高算法鲁棒性成为可能。该算法通过定义ρi和δi两个参数来衡量对应的样本xi是否为故障样本。其中,ρi表示数据点xi的局部密度,δi表示数据点xi到高局部密度的距离。ρi定义为:
其中:当x<0 时,χ(x)= 1;当x≥0 时,χ(x)= 0。dc为截断距离(超参数),di j为样本xj到样本xi的距离。则ρi表示到样本xi的距离小于dc的样本的个数。对于dc值的选取,一种常用的方法是选择的dc应能使平均每个样本点的附近样本个数为数据集总样本个数的1%~2%。在本文中,使用k近邻算法获取dc的值,具体步骤如下。
N为数据集总样本个数,s=N×1%取整数获取s值。用xi,s(i= 1,2,…,N)表示xi的第s个近邻样本,d(xi,xi,s)表示样本xi和样本xi,s之间的欧氏距离。使用Q(x)来表示数据集中每个样本与该样本第s个近邻样本之间距离的集合,即Q(x)={d(xi,xi,s)}。则dc的计算公式如下:
对于参数δi,其计算公式为:
可知,δi表示数据点xi到高局部密度的最小距离。对于局部密度最大的点,设置δi=(dij)。通过上述分析计算,可以得到数据集中所有样本对应的ρi和δi。从对参数定义的规则可以得到,拥有较大ρi值和较大δi的样本,可以认为是训练集中某个类簇的中心;而对拥有较小ρi值和较大δi的样本,认为是训练集中存在的故障样本(噪声);对拥有较大ρi值和较小δi的样本,认为是分布在距离最近的类簇中心的周围;对拥有较小ρi值和较小δi的样本,认为分布在距离该样本最近的类簇的边缘。为了使故障样本分配到更小的权重,令
其中:Δ是一个很小的正数,目的是为了避免出现分母为零的情况,一般取Δ= 10-6。为了便于叙述,将此算法简称为FCLD-WOCSVM。基于以上分析,可将算法FCLD-WOCSVM的流程简述如下。
步骤2 由式(13)和(15)计算ρi和δi,再由式(16)求得权重。
步骤3 将权重代入式(4),由SMO 算法求解式(4),继而由式(5)求得决策函数。
步骤4 由式(5)预测新样本是正常还是故障。
3 实验分析
为了验证本文所提的LD-WOCSVM 和FCLD-WOCSVM 两种算法的有效性,本文将从以下两个方面加以论述。首先选用4 个常用的基准数据集,用来测试本文所提算法的分类性能,同时参与比较的还有文献[27]中的A-WOCSVM 算法、文献[31]中的WOCSVM 算法、文献[32]中的加权支持向量数据描述(Weighted Support Vector Data Description,WSVDD)算法、标准OCSVM 算法、文献[33]中的局部异常因子(Local Outlier Factor,LOF)算法和文献[34]中的孤立森林(Isolation FOREST,IFOREST)算法。仿真结果表明,本文所提算法相较于另6 种算法在分类性能上均有所增强。其次,将LDWOCSVM 和FCLD-WOCSVM 两种算法用于某型涡轴发动机故障检测,实验结果表明,本文所提算法能够构建性能较好的分类器,可作为故障检测的候选算法。本文采用G-mean(Geometric mean)值和AUC(Area Under the Curve)值作为最终的评价指标,两种指标的值越大,则说明故障检测性能越好。为了减少样本随机选取对分类结果的影响,对每种算法均独立运行50 次并取其平均值和方差作为最终结果。如前所述,本文采用高斯核函数作为非线性映射函数。核函数参数σ和正则化参数ν通过5 折交叉验证进行优化,参数σ和ν的搜索区间分别为{2-10,2-9,…,2-4}和{10-4,10-3,…,103}。本文仿真实验是在Intel Core i5-7400 CPU @ 3.00 GHz 的Windows 10上进行的,采用Matlab R2017a编程。
3.1 基准数据集测试
3.1.1 仿真设置
本文选取UCI(University of California Irvine)数据集中的4个常用数据集的基本信息在表1中列出。
表1 实验中使用的4个UCI数据集的基本信息Tab. 1 Fundamental information of 4 UCI datasets used in the experiment
在本次实验中,对于每个数据集,将样本最多的那一类作为正常类,将剩余所有类作为故障类,并且将标签分别改为+1和-1。在正常类中随机抽取70%的样本作为训练集的一部分,在故障类中分别随机抽取占整个训练集5%和10%的样本作为训练集另一部分,并且将其标签人为改为+1。测试集的样本构成则为剩余的正常样本和故障样本。
故障样本占整个训练集5%和10%时所得实验结果列于表2。其中,每组实验的最优结果用黑体标出。
3.1.2 结果分析
由表2 可以看出,在Set 1 和Set 3 两个数据集上,故障样本占比10%且使用AUC 指标衡量时,LD-WOCSVM 算法的性能最优,其余情况下,均是FCLD-WOCSVM 算法具有最优的性能。以在Set 4 数据集上,故障样本占比10%时为例,与AWOCSVM算法相比,FCLD-WOCSVM算法的G-mean值提高了12.1%。在Set 3 数据集上,故障样本占比5% 时,与AWOCSVM 算法相比,LD-WOCSVM 算法的AUC 值降低了0.01%,但在使用G-mean 值衡量时,与A-WOCSVM 算法相比,LD-WOCSVM 算法的值增加了0.26%。在Set 1 数据集上,故障样本占比10%时,与A-WOCSVM 算法相比,LDWOCSVM 算法的G-mean 值降低了0.7%,但在使用AUC 值衡量时,与A-WOCSVM 算法相比,LD-WOCSVM 算法的值提高了0.5%。且在其余情况下,LD-WOCSVM 算法的性能均优于A-WOCSVM算法的性能。
表2 故障样本数占整个训练集5%或10%时,在4个UCI数据集上的实验结果Tab. 2 Experimental results on 4 UCI datasets when fault samples account for 5%or 10%of the total training set
总而言之,在本文选取的4 个数据集上,与A-WOCSVM、WOCSVM、WSVDD、标准OCSVM、LOF、IFOREST 等算法相比,算法FCLD-WOCSVM 和算法LD-WOCSVM 的性能更优。这说明了本文提出的FCLD-WOCSVM 算法和LD-WOCSVM 算法在解决故障检测问题上的科学性和有效性。
3.2 涡轴发动机故障检测
3.2.1 背景知识
涡轴发动机故障主要发生在压气机、燃气涡轮和动力涡轮三个气路部件处,因此对这三个部件进行故障检测尤为重要。本文以T700发动机为研究对象,在部件级数学模型的基础上以性能参数蜕化一定的量来模拟相应的故障。T700 发动机模型简图如图1 所示,分别用代号3、42、5 和9 来表示压气机出口截面、燃气涡轮出口截面、功率涡轮出口截面以及尾喷管出口截面。在图1中,GT(Gas Turbine)表示燃气涡轮,PT(Power Turbine)表示动力涡轮。
图1 带状态数的T700涡轴发动机原理Fig. 1 Principle of T700 turboshaft engine with state number
在参照文献[35]的基础上,本文选择5 个性能参数:压气机流量WC、燃气涡轮流量WTG、压气机效率ηC、燃气涡轮效率ηTG、动力涡轮效率ηTP。经过综合比较各参数的测量难易程度,本文选择11个传感器测量参数:压气机出口总温T3、压气机出口总压P3、飞行高度H、前飞速度vx、燃油流量Wf、燃气涡轮输出转速PNC、燃气涡轮出口总温T42、燃气涡轮出口总压P42、动力涡轮输出转速PNP、动力涡轮出口总温T5、动力涡轮出口总压P5。本文在全飞行包线范围内,稳定工况下采集数据。限于篇幅,只设置单一故障模式。各个性能参数蜕化量及对应样本数列于表3。
表3 性能参数的主要信息Tab.3 Main information about performance parameters
使用LD-WOCSVM/ FCLD-WOCSVM 算法进行涡轴发动机故障检测时,其流程可简述为:
1)获取涡轴发动机工作状态的数据集,划分数据集为训练集和测试集。
2)在训练集中,利用5 折交叉验证法求得核函数参数σ和正则化参数ν。
3)从训练集中随机抽取部分数据用于训练模型。利用式(11)/(16)求得权重,将权重代入式(4)并利用SMO 算法求解,再利用式(5)求得决策函数。
4)将测试集中样本代入决策函数,即可得测试结果。
3.2.2 参数设置
在本次实验中,根据采集得到的5 种故障样本,分别设计5 组实验。由表4 中性能参数所列顺序,将对应的5 组实验依次命名为Case 1、Case 2、Case 3、Case 4和Case 5。将正常样本作为正常类,并将其标签改为+1;将5 种故障样本作为故障类,并将其标签改为-1。对每组仿真实验,从正常类中随机抽取40%的样本作为训练集的一部分,从对应的故障类中随机抽取占比整个训练集1%的样本作为训练集另一部分,并将该故障样本的标签人为改成+1,即:训练集中正常样本数为1 320,故障样本数为13。测试集的样本构成则为剩余的正常样本和故障样本。为了检验算法在故障样本占比较高时的分类性能,本文还设计一组故障样本占比5%时的仿真实验,此时训练集中正常样本数为1 320,故障样本数为69。
故障样本占整个训练集1%和5%时的实验结果列于表4,其中,每组实验的最优结果用黑体标出。在这一部分,选取了4 个对比算法:文献[27]中的A-WOCSVM 算法、文献[31]中的WOCSVM 算法、文献[32]中的WSVDD 算法以及标准OCSVM算法。
表4 故障样本数占整个训练集1%或5%时,在涡轴发动机数据集上的实验结果Tab. 4 Experimental results on turbo shaft engine datasets when fault samples account for 1%or 5%of the total training set
3.2.3 结果分析
由表4可以看出,对比算法WSVDD 的性能最差。无论是用AUC 还是G-mean 来度量,所得结果均小于0.5,说明该算法不适合用来解决涡轴发动机故障检测问题。
由表4还可以看出,在Case 1数据集中:使用AUC 值作指标时FCLD-WOCSVM 算法的性能最优,使用G-mean值作指标时LD-WOCSVM 算法性能最优,且本文所提出的两种算法的性能均优于对比算法A-WOCSVM。在Case 2 数据集中:故障样本占比1% 时FCLD-WOCSVM 算法的性能最优,AWOCSVM 算法性能次优;故障样本占比5%时LD-WOCSVM算法的性能最优,FCLD-WOCSVM 算法的性能次优。在Case 3 数据集上:故障样本占比1%且使用AUC 指标衡量时,LDWOCSVM 算法性能最优,其余情况下均是FCLD-WOCSVM 算法的性能最优。在Case 4 数据集中:故障样本占比5%时FCLD-WOCSVM 算法性能最优;占比1%时FCLD-WOCSVM算法的性能次优。在Case 5 数据集中:故障样本占比5%时WOCSVM 算法性能最优;其余情况下,算法LD-WOCSVM 性能最优。从统计角度看,5个数据集,2种指标和2种故障样本比例一共20 种情况,其中:算法FCLD-WOCSVM 性能最优的次数为9,次优的次数为10;算法LD-WOCSVM 性能最优的次数为9,次优的次数为2;算法A-WOCSVM 性能最优的次数为0,次优的次数为2;算法WOCSVM 性能最优的次数为1,次优的次数为3;算法OCSVM 性能最优的次数为1,次优的次数为3。
从以上分析可以看出,在发动机故障检测方面,算法FCLD-WOCSVM 性能最优,算法LD-WOCSVM 性能次优,而对比算法A-WOCSVM 和WSVDD的性能最差。这进一步说明了本文所提算法FCLD-WOCSVM 和算法LD-WOCSVM 可以作为涡轴发动机故障检测的两种候选算法。
4 结语
本文通过在算法A-WOCSVM 的基础上提出两种改进算法:FCLD-WOCSVM 和LD-WOCSVM,并将其运用在涡轴发动机故障检测方面,可得以下结论:
1)使用马氏距离来选取每个样本对应的k近邻样本,再通过计算样本与局部密度中心而不是全局密度中心的距离提出的LD-WOCSVM 算法,能够使训练的分类器更精确地描述数据样本边界,分类效果更好。
2)通过对一种快速聚类分析算法进行改进,使该算法能更准确地识别故障数据,进而计算出更合适的权重而提出的FCLD-WOCSVM 算法,能够最大限度地降低故障数据对分类边界的影响,使得分类精度得到进一步的提高。
3)将算法FCLD-WOCSVM 和LD-WOCSVM 运用于涡轴发动机故障检测中,仿真实验表明,两种算法能够构建精度较高的分类器,可以作为故障检测的候选算法。