基于 LSTM 的设备健康评估与剩余寿面预测的研究

目录

第一部分 PHM 介绍

1.1 研究背景
1.2 PHM 概述
1.3 研究现状和发展趋势

第二部分 理论与技术

2.1 数据驱动 RUL 预测框架
2.2 自动变分编码器
2.3 长短时记忆网络

第三部分 健康状况评估建模

3.1 健康状况评估概述


第一部分 PHM 介绍

研究背景

PHM 核心在于基于状态监测数据,用智能算法来实时评估健康状况以及预测设备剩余使用寿命(Remaining Useful Life, RUL),并制定长期维护计划。长短期记忆网络(LSTM) 作为循环神经网络的延伸算法,在端对端学习上效果突出,并由于其对时期依赖的特征提取优势,可以在 PHM 的时序预测问题上有所贡献。

  1. LSTM + VAE(变分自编码器)的混合模型;

    LSTM 的引入可有效提取时序数据中的长短期时间依赖性特征,另外结合 VAE 的数据降维能力,可以对复杂的波动、图像数据等进行解码、再编码从而在保留数据大部分信息的情况下,大幅度减少其数据维度并对数据压缩,达到数据去噪、可视化降维的效果。

  2. 多层 LSTM 直接预测 RUL

  3. 搭建基于 Azure 云平台的健康管理系统 pipeline


PHM 概述

深度学习在 HPM 领域的研究和应用仍处于探索阶段,尤其在航空航天领域。

PHM 核心问题在于

  1. 对于海量数据的监测:数据量大,并且维数高,要求算法有强大的泛化能力和鲁棒性,并且能高效处理大规模数据。

  2. 特征工程:包含特征选择、特征转换、特征增强等等,这个占据整个项目的60%的功夫,因为航天数据包含波动、图像、时序、结构性数据等等类型,所以需要对数据进行降维和转换,转化成可用的有效输入。

  3. 预测 RUL:对于剩余有效寿命的预测例子已经不少,但是一般是在齿轮、轴承上的,对于航天的零件组成和系统的预测会十分复杂,难点在于异常数据的获取成本极高,训练集样本数较少,训练神经网络需要大量数据,否则效果较差。

数据分析、建模流程图:

PHM 基本组成结构流程图:

PHM 基本组成结构及流程如上图所示,具体而言:

  1. PHM 借助先进传感器技术采集表征系统属性的各类状态数据,利用各种信号处理等技术(傅里叶变换、小波变换等)对数据进行预处理或特征工程,获得反映系统性能退化的特征;

  2. 随后,融合提取的特征对设备进行健康状况评估,预测设备的失效时刻;

  3. 最终,基于 RUL 预测结果,将费用最小化作为目标进行维护规划,并结合已有的维修资源,合理安排维修活动,确定最佳健康管理措施。

HPM 重点或者说需要突破的点在于:

  1. 精准地评估系统的健康状况
  2. 实时追踪性能退化轨迹并可靠地预测 RUL

研究现状和发展趋势

健康状况评估研究现状

本质上,健康状况评估基于状态监测数据,对系统性能退化状态进行建模,从而构建一维健康值曲线(HI 曲线),来表征性能退化或偏离程度。有效的健康状况评估算法不仅能够从状态监测实时变化中评估当前系统状况、追踪性能退化轨迹,在故障早期进行预警,也可以为下一步 RUL 预测提供先验信息,提高预测准确性。

构造 HI 曲线有两种策略,可分为直接法和间接法。

直接法:

通过统计分析或者特征提取,直接构造出具有一定物理意义的健康值,比如直接提取机械设备的振动信号、从小波数据中提取 RMS 和峰值、从传感器信号的频域提取一些相关特征等等。

间接法:

利用机器学习对传感器时域特征或频域特征进行融合或降维得到的,不具备物理意义,也称为虚拟 HI。使用主成分分析、线性判别分析等等来对特征进行降维,并将位置状态与健康状态之间的偏差作为 HI 值。

剩余寿命预测研究现状与发展趋势

PHM 中的 prognostics 表示预测剩余使用寿命。剩余使用寿命是指在役设备系统以当前运行条件,能够继续实现其既定功能的剩余可操作时间。其预测目的,是估计一种或多种未来故障发生的时间或风险,为进一步制定维修维护计划提供关键决策信息。

RUL 的预测目标是根据历史检测传感器数据来确定设备系统的剩余可操作时间。

其预测算法模型主要可分三种:基于物理模型、基于数据驱动、基于混合模型

深度学习在 PHM 领域的研究现状

深度学习作为机器学习的重要分支,伴随着深度神经网络理论的发展和演进,深层次模型(上百层神经网络)也成为可能。通过多层隐藏层的特征提取能力和非线性能力,深度学习使得在诸多传统机器学习领域解决不好的问题,得到了极大的改善并取得了优异的成果。

面对航空航天方面的 RUL 预测问题,有以下几个不可忽略的问题:

  1. 面对复杂运行工况下的设备系统未给出合理的建模方案
  2. RUL 预测结果缺少不确定度表达
  3. 部分算法仍然依赖人工提取特征
  4. 预测模型未考虑到传感器监测数据存在的时间依赖性

相关理论和技术

数据驱动 RUL 预测框架

较为完整的复杂设备系统的数据驱动 RUL 预测框架往往会涵盖在线应用和离线建模两个阶段,两个部分相互补充,相互支持。

离线阶段,充分利用设备系统的测试数据、历史监测数据。系统部件的数学物理模型等等,建立面向线上实际应用的运行工况识别,数据预处理、特征工程、退化状态识别等;

在线阶段,对实时监测收集到的数据进行必要的数据预处理和特征工程等操作后,依据在役设备实际的运行环境,通过算法预测系统 RUL。

简单来说,我们通过离线阶段对模型进行建模、训练、学习,而通过在线阶段对模型来进行实时调整从而对模型进行动态优化。

一般来说有两种 RUL 预测策略:

  1. mm 维特征映射为单维 HI 值曲线,采用曲线拟合、外推等方式来预测(间接预测)
  2. 采用直接对原始多维数据进行特征提取,来预测剩余寿命(直接预测)

步骤 1 数据采集(Data Aquization)

随着传感器技术和数据库存储技术的发展,设备系统海量的状态检测数据的手机和存储成为可能。有效的数据采集是保证数据驱动方法成功的基础,只有提供充足且有价值的数据才能挖掘反映系统退化过程的特征,训练有效的模型和参数。

步骤 2 数据预处理(Data Pre-processing)

通过对采集的原始数据进行清洗,来降低异常数据的干扰(孤立森林,LOF(Local Outlier Factor)等),坚决避免 “垃圾进,垃圾出” 。针对不同工况下的数据来进行标准化处理,整合碎片化数据,并建立建模所用的数据集以及数据可视化、探索性分析等等,目的是通过预处理环节对数据进行净化和分析为接下来的步骤打好基础。

步骤 3 特征工程

特征工程占据了整个项目的 70% 的比重,我们大部分的时间和精力都花在了特征工程上面,其中包括特征提取、特征选择、降维、数据融合等等。通过数据分析、信号处理以及领域专业知识。

What Goes Into a Successful Model

特征工程其实也是一个增加有效特征的过程,可以理解为数据清洗是一个筛选(减少)数据的过程,而相反,特征工程是增加的过程。对于提升一个模型表现来说,有几个方法:

  1. 可以分离或者高亮更重要的关键信息
  2. 自己的相关的行业或者领域知识
  3. 别人的经验和相关知识

关于特征工程,我们可以:

步骤 4 健康状况评估

健康状况评估本质上是将原始多维数据或特征映射到能表征设备系统健康状况的一维向量上,或者从性能变量中直接选择表征系统健康状况的参量,一般才用数据融合方法对系统退化状态来建模,例如主成分分析(PCA) 、自组织映射神经网络(SOM)等,从而获取表征对象系统健康状况的健康值曲线。

RUL 预测

RUL 预测是 PHM 中核心功能模块,选择一个合适的算法是决定剩余寿命预测性能的关键之一,或使用间接法,构造出健康值曲线然后采用外推方式预测;另一种是建模多维特征与真实 RUL 的映射关系。

健康管理

根据得到的 RUL 预测结果,结合不同设备系统的需求及现有的维修资源,及时产生故障预警信号,或规划合理的维修维护活动。


变分自动编码器(VAE)

自动编码器 (AutoEncoder) 最开始作为一种数据的压缩方法,其特点有:

(1)跟数据相关程度很高,这意味着自动编码器只能压缩与训练数据相似的数据,这个其实比较显然,因为使用神经网络提取的特征一般是高度相关于原始的训练集,使用人脸训练出来的自动编码器在压缩自然界动物的图片是表现就会比较差,因为它只学习到了人脸的特征,而没有能够学习到自然界图片的特征;那么在航空航天方面,自然我们要处理一些高清的精密仪器或者系统的图像数据,我们不想直接用神经网络来提取特征,维度会很高,所以可以使用自动编码器先对图像做压缩降维处理。

(2)压缩后数据是有损的,这是因为在降维的过程中不可避免的要丢失掉信息;那么图像数据尽管有损,但也保存了绝大多数信息,从而大幅度提升模型训练效率。

所以现在自动编码器主要应用有两个方面,第一是数据去噪,第二是进行可视化降维。然而自动编码器还有着一个功能就是生成数据

自动编码器的结构

首先我们给出自动编码器的一般结构

从上面的图中,我们能够看到两个部分,第一个部分是编码器 (Encoder),第二个部分是解码器 (Decoder),编码器和解码器都可以是任意的模型,通常我们使用神经网络模型作为编码器和解码器。输入的数据经过神经网络降维到一个编码 (code),接着又通过另外一个神经网络去解码得到一个与输入原数据一模一样的生成数据,然后通过去比较这两个数据,最小化他们之间的差异来训练这个网络中编码器和解码器的参数。当这个过程训练完之后,我们可以拿出这个解码器,随机传入一个编码 (code),希望通过解码器能够生成一个和原数据差不多的数据,上面这种图这个例子就是希望能够生成一张差不多的图片。

接下来,我们系统地讲解一下自动编码器。它使一个无监督算法,用于降维或特征提取。左侧编码过程从原始输入数据 xx 中学习到其隐含特征向量 hh,因此编码器可由函数 h=f(x)h = f(x) 表示;相反,右侧解码器 r=g(h)r = g(h) 则根据隐空间的隐变量 hh 重构出原始输入向量,记为 rr。通常不会设计自动编码器的结构使输入向量完全与输出向量相等,而是引入一些约束条件让重构向量 rr 近似等同于输入向量 xx。一种常见的约束是,隐含层向量维度小于输入层向量维度,这样 AE 迫使编码器提取原始数据中更有用的特征,其学习过程可理解为代价函数最小化的优化过程,保证重购数据和原始输入误差最小

min{L(x,g(f(x))}\min \{ L(x,g(f(x)) \}

其中,xx 是输入向量,ff 表示编码过程,gg 是解码过程,LL 是代价函数,通常是均方误差函数。

上述编码器的功能与主成分分析方法类似。本质上,当编码器函数 ff 是线性函数且采用均方根误差函数时,自动编码器会学习到和主成分分析相同的生成子空间。但是在自动编码器实际使用中,无论是 ff 还是 gg 都会使用非线性激活函数。因此,相比较于 PCA,此时的自动编码器能够学习出更为强大的非线性流形。

变分自动编码器 (Variational Autoencoder)

变分编码器是自动编码器的升级版本,其结构跟自动编码器是类似的,也由编码器和解码器构成。

回忆一下我们在自动编码器中所做的事,我们需要输入一张图片,然后将一张图片编码之后得到一个隐含向量,这比我们随机取一个随机噪声更好,因为这包含着原图片的信息,然后我们隐含向量解码得到与原图片对应的照片。

但是这样我们其实并不能任意生成图片,因为我们没有办法自己去构造隐藏向量,我们需要通过一张图片输入编码我们才知道得到的隐含向量是什么,这时我们就可以通过变分自动编码器来解决这个问题。

其实原理特别简单,只需要在编码过程给它增加一些限制,迫使其生成的隐含向量能够粗略的遵循一个标准正态分布,这就是其与一般的自动编码器最大的不同。

这样我们生成一张新图片就很简单了,我们只需要给它一个标准正态分布的随机隐含向量,这样通过解码器就能够生成我们想要的图片,而不需要给它一张原始图片先编码。

VAE 的结果比普通的自动编码器要好很多,下面是结果

VAE的缺点也很明显,他是直接计算生成图片和原始图片的均方误差而不是像GAN那样去对抗来学习,这就使得生成的图片会有点模糊。现在已经有一些工作是将VAE和GAN结合起来,使用VAE的结构,但是使用对抗网络来进行训练,具体可以参考一下这篇论文

那么在自动编码器中,编码器将输入向量非线性映射到中间隐含层获得编码向量,解码器随后尽可能低误差地重购原始数据。其中最关键一点,自动编码器迫使编码器学习原始数据中最显著的特征(隐含层维数更小),因此,编码特征向量中每一个维度都代表着相应隐变量的具体取值。不同的是,变分自编码器(VAE)结合了概率统计学和深度学习理论,以概率分布来描述输入数据的隐空间,通过训练得到的编码向量描述的事隐变量概率分布,而不仅仅是具体数值。
区别如下:

结合上图中的隐变量形式,可以看出,VAE 是将原始输入数据对应的每个隐变量都编码表示为概率分布形式。当解码器模块从隐空间进行重构原始输入时,会在对应隐变量的概率分布上随机采样。因此,对于 VAE 来说,也将编码器称为识别模型或推断模型,而解码器称为生成模型,VAE 也被认为是生成式模型

隐变量模型

对于训练样本集,我们希望能够学习到其概率分布,如果可行的话,可以根据概率分布(威布尔分布)来生成新样本或者判断新样本是否偏离正常数据分布等。

Weibull分布(威布尔分布)

其中,xx 是随机变量,λ0λ>0 是比例参数(scale parameter),k0k>0 是形状参数(shape parameter)。显然,它的累积分布函数是扩展的指数分布函数,而且,Weibull distribution与很多分布都有关系。如,当 k=1k=1,它是指数分布;k=2时,是Rayleigh distribution (瑞利分布)。

但往往这种假设不一定在实际中成立,是一种理想情况,实际应用中很难获得样本集的真实分布。所以,VAE 假设样本集中任一样本 XX 是由隐变量 zz 来决定的(相对样本xx 来说,zz 通常不可观测),自然我们需要用期望极大算法(EM),先关于隐变量的概率期望进行求解,在求极大更新参数,然后再反复迭代,最终使得对数似然函数收敛。

Variational AutoEncoder 数学推导

先回顾一下变分推断,在概率图模型里面,我们经常假设观测变量为 XX,隐变量为 ZZ,图模型的结构是由 ZZ 生成 XX。那么建立联合分布为:

p(X,Z)=p(XZ)p(Z)p(X,Z) = p(X|Z)p(Z)

为了计算观测变量 XX 的对数似然 lnp(X)\ln p(X),一般来说要将隐变量积分掉,即:

lnp(X)=lnZp(X,Z)\ln p(X) = \ln \sum_{Z}p(X,Z)

当隐变量是离散变量时,上述公式需要对所有可能的 ZZ 进行求和,当隐变量维度比较小时,可以计算,但维度非常高时就很难计算;当隐变量为连续变量时,如果假定 ZZ 为简单的高斯分布,并且条件分布 p(XZ)p(X|Z) 也满足一定条件(比如共轭分布)时,可以计算,但是绝大多数情况下,上述的积分操作是不可计算的。

所以为了优化最大似然,引入下面的 ELBO:
lnp(X)=lnZp(X,Z)=ln(Zq(Z)p(X,Z)q(Z))Zq(Z)lnp(X,Z)q(Z)=Zq(Z)lnp(XZ)+Zq(Z)lnp(Z)q(Z) \begin{aligned} \ln p(X) &= \ln \sum_{Z}p(X,Z) \\ &= \ln \Bigg(\sum_{Z}q(Z) \frac{p(X,Z)}{q(Z)} \Bigg) \\ & \geq \sum_{Z} q(Z) \ln \frac{p(X,Z)}{q(Z)} \\ &= \sum_{Z}q(Z) \ln p(X|Z) + \sum_{Z}q(Z) \ln \frac{p(Z)}{q(Z)} \end{aligned}

上述公式的不等号支出根据 Jensen 不等式得到,最后得到 ELBO 下界:

lnp(X)Zq(Z)lnp(XZ)+Zq(Z)lnp(Z)q(Z)\ln p(X) \geq \sum_{Z}q(Z)\ln p(X|Z) +\sum_{Z}q(Z) \ln \frac{p(Z)}{q(Z)}

上式不等式右边就是 ELBO,最大化对数似然就变成了最大化 ELBO。ELBO 中的 q(Z)q(Z) 是对隐变量 ZZ 引入的变分分布,用来近似真实的隐变量分布 p(Z)p(Z)。所以 ELBO 由两项组成,第一项是给定隐变量时的条件分布的似然,第二项是变分分布和真实分布之间的 KL 距离。

在 Mean-Field 变分推断中假设 q(Z)=i=1nqi(Zi)q(Z) = \prod _{i=1}^{n}q_i(Z_i),即假设 ZZZ1,Z2,,ZnZ_1,Z_2,\cdots,Z_n 组成,并满足独立条件。由此可以简化计算,从而得到 qi(Zi)q_i(Z_i)。一般来说,Mean-Field 得到的结果类似于下面的形式


长短时记忆网络(LSTM)

0. 从RNN说起

循环神经网络(Recurrent Neural Network,RNN)是一种用于处理序列数据的神经网络。相比一般的神经网络来说,他能够处理序列变化的数据。比如某个单词的意思会因为上文提到的内容不同而有不同的含义,RNN就能够很好地解决这类问题。

1. 普通RNN

先简单介绍一下一般的RNN。

其主要形式如下图所示(图片均来自台大李宏毅教授的PPT):

这里:

[公式] 为当前状态下数据的输入, [公式] 表示接收到的上一个节点的输入。

[公式] 为当前节点状态下的输出,而 [公式] 为传递到下一个节点的输出。

通过上图的公式可以看到,输出 h’xh 的值都相关。

y 则常常使用 h’ 投入到一个线性层(主要是进行维度映射)然后使用softmax进行分类得到需要的数据。

对这里的 y 如何通过 h’ 计算得到往往看具体模型的使用方式。

通过序列形式的输入,我们能够得到如下形式的RNN。


2. LSTM

2.1 什么是LSTM

长短期记忆(Long short-term memory, LSTM)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,就是相比普通的 RNN,LSTM 能够在更长的序列中有更好的表现。

LSTM结构(图右)和普通RNN的主要输入输出区别如下所示。

相比RNN只有一个传递状态 [公式] ,LSTM有两个传输状态,一个 [公式] (cell state),和一个 [公式] (hidden state)。(Tips:RNN中的 [公式] 对于LSTM中的 [公式]

其中对于传递下去的 [公式] 改变得很慢,通常输出的 [公式] 是上一个状态传过来的 [公式] 加上一些数值。

[公式] 则在不同节点下往往会有很大的区别。


2.2 深入LSTM结构

下面具体对 LSTM 的内部结构来进行剖析。

首先使用 LSTM 的当前输入 [公式] 和上一个状态传递下来的 [公式] 拼接训练得到四个状态。

其中, [公式][公式][公式] 是由拼接向量乘以权重矩阵之后,再通过一个 [公式] 激活函数转换成0到1之间的数值,来作为一种门控状态。而 [公式] 则是将结果通过一个 [公式] 激活函数将转换成-1到1之间的值(这里使用 [公式] 是因为这里是将其做为输入数据,而不是门控信号)。

下面开始进一步介绍这四个状态在LSTM内部的使用。(敲黑板)

[公式] 是Hadamard Product,也就是操作矩阵中对应的元素相乘,因此要求两个相乘矩阵是同型的。 [公式] 则代表进行矩阵加法。

LSTM内部主要有三个阶段:

  1. 忘记阶段。这个阶段主要是对上一个节点传进来的输入进行选择性忘记。简单来说就是会 “忘记不重要的,记住重要的”。

具体来说是通过计算得到的 [公式]ff 表示forget)来作为忘记门控,来控制上一个状态的 [公式] 哪些需要留哪些需要忘。

  1. 选择记忆阶段。这个阶段将这个阶段的输入有选择性地进行“记忆”。主要是会对输入 [公式] 进行选择记忆。哪些重要则着重记录下来,哪些不重要,则少记一些。当前的输入内容由前面计算得到的 [公式] 表示。而选择的门控信号则是由 [公式] (i代表information)来进行控制。

将上面两步得到的结果相加,即可得到传输给下一个状态的 [公式] 。也就是上图中的第一个公式。

  1. 输出阶段。这个阶段将决定哪些将会被当成当前状态的输出。主要是通过 [公式] 来进行控制的。并且还对上一阶段得到的 [公式] 进行了放缩(通过一个tanh激活函数进行变化)。

与普通 RNN 类似,输出 [公式] 往往最终也是通过 [公式] 变化得到。

3. 总结

以上,就是LSTM的内部结构。通过门控状态来控制传输状态,记住需要长时间记忆的,忘记不重要的信息;而不像普通的 RNN 那样只能够“呆萌”地仅有一种记忆叠加方式。对很多需要“长期记忆”的任务来说,尤其好用。

但也因为引入了很多内容,导致参数变多,也使得训练难度加大了很多。因此很多时候我们往往会使用效果和LSTM相当但参数更少的GRU来构建大训练量的模型。


第三部分 健康状况评估建模

健康状况评估概述

收益与传感器技术和数据存储技术的发展,我们能够更为有效地收集和存储海量的状态监控数据。而这些原始数据中往往含有着有关设备系统性能退化的关键特征。因此,为了充分挖掘系统失效信息,追踪系统退化过程,实时评估当前健康状况,往往需要借助数据挖掘、模式识别和信号处理等技术来对健康状况来建模。

目标

我们目的是对设备系统的性能失效退化过程进行建模,简而言之,就是将多维传感器数据映射到一维的健康曲线上,从而实时、直观地反映系统性能退化程度和健康状况。事实上,大部分设备系统性能的退化状态都是无法直接监测的,有以下几个原因:

  1. 设备生产运行过程中不允许频繁停机检查设备退化状态
  2. 对于某些故障来说,早期的损伤在没有专业设备帮助之下很难检测
  3. 复杂设备各个子系统相互耦合,内部故障机理很复杂,难以发现

所以,针对以上问题,运用信号处理、数据融合或者及其学习等技术实现对性能退化郭晨估计按摩,构造能这是反映其健康状况的健康值曲线,才是可靠的有效措施。

评价指标

为了定量评价所提出的
健康状况评估建模方法的有效性,有专家引入了单调性、鲁棒性和趋势性三个常用性能评价指标。

  1. 单调性

    在实际工业场景中,往往设备退化的过程是不可逆的。所以为了更好地描述设备系统不可逆的性能退化失效过程,准确的健康值曲线应该是单调增加或单调减少。例如,某台设备健康值曲线 XX 的单调性计算公式如下:

    Mon(X)=1K1No.ofddx>0No.ofddx<0Mon(X) = \frac{1}{K-1} \Big| No.of \frac{d}{dx} > 0 - No.of \frac{d}{dx} < 0 \Big|

    其中,X={xk}k=1:KX = \{ x_k\}_{k=1:K} 是系统的健康值序列;xkx_k 表示设备在 tkt_k 时刻的健康值,KK 值表示设备系统的健康值曲线长度;ddx=xk+1xk\frac{d}{dx} = x_{k+1} - x_k 表示序列中相邻健康值的微分;No.ofddx>0No.of \frac{d}{dx} > 0No.ofddx<0No.of \frac{d}{dx} < 0 分别代表微分为正和微分为负的计算值。Mon(X)Mon(X) 的取值范围在 0 ~ 1 之间,通常值越大意味着单调性越好。

  2. 鲁棒性

    由于传感器测量噪声、退化过程的随机性和运行工况的