基于KPCA和深度信念网络的发动机故障检测*

2019-10-29 01:53刘君强张振良
关键词:矩阵样本深度

黄 亮 刘君强 张振良 张 曦

(南京航空航天大学民航学院 南京 211106)

0 引 言

发动机故障诊断相关研究分为基于知识规则相关研究的诊断[1-3]、基于物理模型的诊断[4-5]和基于数据驱动的人工智能算法诊断[6-7]三类,在基于数据驱动的人工智能算法诊断研究中由于人工神经网络可以自适应逼近复杂函数的优点,成为故障诊断领域所广泛采用的算法.用人工神经网络进行故障检测的可靠性与网络的训练算法以及网络类型有着紧密的联系.现有故障检测相关研究中采用了如下的人工神经网络:学习向量化(learning vector quantization,LVQ)网络[8]、反向传播(back-propagation,BP)网络[9]、Elman神经网络[10]、概率神经网络[11]等.目前研究中所使用的这些神经网络大多都是结构较简单的浅层网络,训练过程中特别容易产生局部最优解.此外,这类网络由于结构简单,学习能力不强,泛化性差,容易导致故障检测不准确.

随着计算机性能与智能学习算法领域的不断发展与创新,科学家们提出了与传统“浅层”学习方法相对应的“深度学习”方法.深度学习方法主要指的就是具有多隐藏的神经网络,利用各种算法来训练拟合样本,充分挖掘样本特征,使分类的结果更可靠.深度学习以其强大的特征学习能力,在图片识别与分类、语音识别、自动驾驶等诸多领域快速发展[12-14].深度学习技术中主要使用的网络有:DBN网络、多层反馈循环网络、稀疏自动编码器等.而深度学习中的DBN网络,以其强大的基于概率生成的样本特征学习能力在故障诊断相关领域使用的越来越频繁.为了从受可变运行条件和背景噪声影响的振动信号中检测故障,Shao等[15]提出了一种新的优化DBN网络用于轴承故障诊断,该优化后的DBN网络具有更高的稳定性与分类精度.车畅畅等[16]用深度信念网络求出航空发动机故障分类置信度,然后对多次故障分类结果进行决策融合.

上述研究丰富了航空发动机故障诊断的研究,但却没有考虑到航空发动机监测数据存在的过拟合、维数灾难等问题.由于航空发动机监测参数多且长期运行在复杂多变的高温高压环境中,参数监测值之间会存在着相关性.针对数据的过拟合、维数灾难和浅层神经网络诊断精度不高等问题,文中提出了基于KPCA分析和深度信念网络的发动机故障检测方法,其中KPCA分析方法能有效减少样本数据维度,有效消除数据间的非线性关联.把经KPCA分析提取后的航空发动机监测数据以及对应的故障类型输入到DBN网络模型中,充分学习提取出样本特征.

1 数据预处理

1.1 统计平滑法

由于各种因素的影响,传感器监测数据会出现误差,并且存在误差的数据会使最终的模型训练和模型诊断的准确性降低.统计平滑法是建立在数理统计基础上的一种平滑方法,用该方法可以减少测量的误差.

统计平滑法的定义为

(1)

在一组原始数据集中,与其他点存在较大程度差异的点记作为离群点.由于离群点与其他点存在显著区别,其中可能会包含有重要的信息,所以我们不对离群点进行平滑处理.

将N个监测数据按照测量时间先后顺序进行排列,构成一个符合正态分布的随机数据集.

1.2 归一化处理

由于发动机传感器监测参数之间单位不同,为了消除各个参数不同量纲的影响,需要对经平滑法处理后的数据进行归一化处理,归一化公式为

(2)

1.3 核主成分分析法

1.3.1核主成分分析方法介绍

由于航空发动机监测参数多且长期运行在复杂多变的高温高压环境中,参数监测值之间会存在着非线性相关性.为消除数据之间的非线性关联性,降低数据维度,提出KPCA分析法.KPCA方法关键在于利用非线性映射函数把具有关联性的数据集映射到了高维特征空间中,然后再进行传统主成分分析,并用核矩阵替代高维特征空间中内积矩阵.

1.3.2核函数介绍

设函数φ(·)是把存在关联性的低维监测数据映射到高维特征空间中的非线性函数,低维特征空间中的向量xi经过函数φ(·)映射后的向量为φ(xι).若在低维空间中存在函数k(·)符合如下要求k(xi,xj)=φ(xi)T·φ(xj),则称该函数k(·)为核函数.如果高维空间中的矩阵K=XTX满足式(3),即矩阵K中的元素φ(xi)T·φ(xj)均使用核函数表示,则称矩阵K为核矩阵.

(3)

式中:k(·)为核函数;Φ为映射到高维空间中的样本矩阵;n表示样本个数.

由于不知道函数φ(·)具体形式是什么,在对高维特征空间中的数据进行主成分提取时,通过核矩阵来替换高维特征空间中的内积矩阵,只需要对K进行分析.目前主要使用以下五种核函数:

1) 线性核函数

(4)

2) 高斯核函数

(5)

3) 多项式核函数

(6)

4) 拉普拉斯核函数

(7)

5) Sigmoid型核函数

(8)

式中:σ,β和θ为函数表达式中的参数;d为幂指数.

1.3.3核主元计算

根据文献[17],能够把核主成分的提取转变成计算核矩阵特征值及其特征向量相关的问题.核主成分分析计算流程如下

1) 对观测参数x=[x1,x2,…,xm]′进行n次的监测,监测得到的样本矩阵为X∈Rn×m.通过分析选择符合要求的核函数,并根据核函数和样本矩阵求得对应的核矩阵K

(9)

2) 将核主元分析是在假设向量φ(xi)为0均值的前提条件下进行的,由于函数φ(·)的具体表现形式没有给出,因此,不能对核矩阵直接进行中心化处理.通过以下公式中心化矩阵K.

(10)

4) 求Φ的核主元向量ti:

(11)

式中:Φ为映射到高维空间后的样本矩阵.

5) 计算方差贡献率和累计贡献率.

(12)

式中:λi为主元i的方差;ξi为主元i的方差贡献率;ηk为k个主元累计方差贡献率.

2 深度信念网络

深度信念网络(deep belief nets,DBN)一般是由多于一个的无监督的受限玻尔兹曼机(restricted boltzmann machines, RBM)和最后一层有监督的BP神经网络组成.

2.1 受限玻尔兹曼机

2.1.1能量函数和概率分布

RBM模型是基于能量的模型,一个RBM的能量可以定义如下.

(13)

式中:vi,hj为显层中输入值与隐层中输出值;wij为可见层与隐藏层的连接权值;ai为可见层的偏置,bj为隐藏层的偏置.

由能量函数得到v,h的联合概率分布为

(14)

由式(14)可知,v,h的边缘概率分布P(v|θ),P(h|θ)为

(15)

(16)

隐层和显层节点被激活(即状态为1)的概率为

由于RBM 具有层内神经元之间无连接的特点,因此当已知某层神经元的状态时,则另外一层中的神经元状态分布相互独立,即

(19)

(20)

2.1.2RBM的训练

RBM具体的训练步骤如下.

步骤1根据样本数据,设定RBM中显层和隐层有nv和nh个神经元.设定有关参数wij、ai与bj初始值,设定相应学习率、RBM循环重构误差err以及循环迭代的最大值.

步骤2将训练样本输入到可见层v,利用式(17)计算出隐层中所有节点被激活的概率P(hj=1|v),使用吉布斯采样法抽取一个随机数,假如该随机数小于该节点被激活的概率,则激活该节点,否则不激活.

步骤3利用式(18)求得所有显层中节点被激活的概率,用吉布斯采样法抽取一个随机数,假如该随机数小于该节点被激活的概率,则激活该节点,否则不激活.

步骤4将求得的vk与初始v进行比较,计算RBM的循环重构误差err=‖vk-v‖,当误差小于预先设定的误差值时,把hk作为下一层RBM的显层继续训练.如果重构误差大于设定的允许重构误差值时则重复步骤2,3,达到设置的最大迭代次数的时候停止当前RBM的训练,继续下一层训练.

循环迭代时,使用以下公式更新连接权值以及偏置

Wk=Wk-1+η(P(hk-1|vk-1)vk-1-P(hk|vk)vk)

(21)

bk←bk-1+η(vk-1-vk)

(22)

ck←ck-1+η(hk-1-hk)

(23)

式中:vk和hk为进行第k次迭代时显层及隐层偏置;Wk为进行第k次循环迭代时的权值.

2.2 深度信念网络的训练

DBN是由多个无监督的RBM和一层有监督的BP神经网络组成.训练完全部RBM后,最后还需根据BP算法,结合最后的样本标签微调整体DBN的相关参数.

DBN的具体训练过程如下

步骤1把数据依次输入第一个RBM的显层中,利用2.1.2步骤训练RBM,通过贪婪逐层学习,逐步地完成所有RBM的学习训练.

步骤2在DBN 的顶层设置一个神经网络来完成分类,使用反向传播算法,结合有标签的样本对整体DBN网络进行参数的微调.

基于KPCA分析的深度信念网络模型见图1.

图1 基于KPCA和DBN的网络模型

3 实例验证

3.1 监测参数和样本数据

根据航空公司的发动机故障诊断的经验,文中选取七个主要的发动机监测参数分别为作为表征发动机健康状况的关键参数,选取的参数及其描述见表1.

选取了实际运行过程中2中典型的发动机故障,表2为选取的各运行状态下的数据.

首先,使用1.1的统计平滑法和1.2的数据归一化方法来预处理样本数据.然后,使用KPCA方法来减少预处理后数据的维度.分析结果见表3.

表1 关键参数

表2 样本数

表3 核主成分分析结果

由表3可知,可以保留主元1和主元2,因为它们的累计贡献率达到了99.523 4%,已经具备了极大部分的样本信息,并根据式(11)计算主元1和2的主元向量.

3.2 深度信念网络的训练

3.2.1深度信念网络参数的设置

在DBN输入节点与输出节点数已知的前提下,经过多次改变隐藏层层数和隐层节点数,进行训练和调试,最终确定网络结构为[2 4 4 3].选取的2个主元向量作为网络的输入,隐藏层设置为2层,每层包含4个神经元,输出层有3个神经元,对应于发动机的运行状态种类数,各运行状态编码见表4.

表4 运行状态的编码

3.2.2训练结果及训练过程

对DBN的训练主要是为了使最后网络的输出结果与训练样本的标签尽可能一致,让训练后的网络能具备对数据的分类能力,根据3.2.1的DBN网络相关参数的设置,将学习误差置为0.01,循环迭代的阈值置为1 200.图2为DBN网络循环迭代中的误差.

图2 迭代误差

由图2中的误差曲线可知,起始误差在0.12左右,随着迭代的不断进行,训练误差快速下降,且下降速度由快到慢,最后误差拟合值趋于0.062.

3.3 测试结果

使用独立于训练样本的320个测试样本来测试最终DBN网络的预测分类性能,并且得到的性能测试结果见表5.

表5 测试结果

由表5可知,最终的DBN网络对正常状态下的发动机识别正确率最高,为96%,对风扇故障的识别率最低,为85%.

为了测试文中提出的KPCA+DBN故障检测方法与其它方法的优劣性,在相同环境下将文中方法与BP算法、DBN算法以及KPCA+BP算法作对比.比对四种方法故障检测的准确率和训练运行时间,比对结果见表6.

表6 四种算法的性能对比

由表6可知,文中所采用的基于KPCA+DBN组合方法的正确率为 92.6%,比其它三种算法略高.主要原因是通过KPCA算法降低了输入数据的维度,降低了数据间的过耦合性,同时深层神经网络比浅层神经网络具有更好的逼近复杂函数的能力,能够使故障检测的准确性更高.

从花费时间来看,基于核主成分分析的深度信念网络会比基于核主成分分析的BP网络多花费了约12 s的时间,但是比单纯的深度信念网络少花费了约11 s时间.主要是因为DBN网络的结构复杂,相应的训练时间则更长.经KPCA降维后的数据,由于输入节点更少,则比单纯的深度信念网络的学习时间更少.

4 结 束 语

KPCA分析法能有效减少样本数据的维数,消除数据之间的非线性关联,而DBN网络是基于概率充分学习样本的特征,KPCA+DBN组合方法用于故障检测的有效性高于传统浅层BP 网络方法,但学习所花时间比较长.

猜你喜欢
矩阵样本深度
四增四减 深度推进
深度思考之不等式
用样本估计总体复习点拨
简约教学 深度学习
规划·样本
多项式理论在矩阵求逆中的应用
随机微分方程的样本Lyapunov二次型估计
矩阵
矩阵
矩阵