深度学习在预测和健康管理中的应用综述
原文链接:https://ieeexplore.ieee.org/document/8889720
摘要
深度学习对预测和健康管理(PHM)引起了浓厚的兴趣,因为它具有强大的表示能力,自动化的功能学习能力以及解决复杂问题的一流性能。本文调查了使用深度学习在PHM方法方面的最新进展,目的是发现研究差距并提出进一步的改进建议。在简要介绍了几种深度学习模型之后,我们回顾并分析了使用深度学习进行故障检测,诊断和预后的应用。该调查验证了深度学习对PHM中各种类型的输入(包括振动,图像,时间序列和结构化数据)的普遍适用性。它还揭示了深度学习为主要PHM子字段提供了万能的框架:故障检测使用重构错误或在网络顶部堆叠二进制分类器以检测异常;故障诊断通常会添加一个soft-max层来执行多类分类;预后增加了一个连续的回归层以预测剩余的使用寿命。通用框架建议跨PHM应用程序进行转移学习的可能性。该调查揭示了一些共同的特性,并确定了每个PHM子领域的研究差距。最后总结了该领域的一些主要挑战和潜在机会。
索引术语:状态维修、深度学习、故障检测、故障诊断、预测
一、 简介
预测与健康管理(PHM)因其可靠性、安全性和降低成本的潜力而成为许多行业实现竞争优势的关键方法。PHM使用测量、模型和软件执行初始故障检测、状态评估和故障进展预测[1],[2]。它为用户提供了感知部件、资产、子系统或系统的健康状态的能力[3]。如图1所示,整体PHM框架通常按顺序包括数据收集、数据操作、故障检测、故障诊断、预测和决策支持[2]、[4]、[5]。其中,故障检测、诊断和预后研究最多[6]、[7]。因此,本文仅对这三个主题进行回顾。
PHM方法大致可分为基于物理模型的方法和基于数据驱动的方法[2]、[8]、[9]。前者要求了解被调查项目的基本原理,如材料性质、结构特征和破坏机制[10],[11]。当应用到组件级别时,该方法虽然非常精确,但在现代复杂系统中可能无法很好地执行,因为系统内的交互通常以非常复杂的方式发生,并且无法通过物理模型轻易捕捉到[9]。数据驱动方法试图从经验数据中获取隐藏的知识,推断感兴趣项目的当前健康状态,并预测其剩余使用寿命(RUL)[7],[12]。根据原始数据是否被标记,数据驱动方法可以进一步分为有监督的和无监督的方法。随着工业数据的泛滥和计算能力的不断提高,数据驱动方法在PHM应用中发现了更多的机会[13],例如[14]和[15]。
传感器技术和信息和通信技术(ICT)的进步导致了“工业大数据”的产生。这些数据趋向于多模式、非结构化、分散、异构、快速流动和高度非线性[16],这对PHM应用中的传统数据驱动方法提出了重大挑战。例如,在两项研究中,使用无人机(UAV)对铁路轨道进行定期检查[17]、[18]。无人机拍摄的图像和视频可以用来检测潜在的轨道缺陷,例如蹲下、绝缘接头质量差、结构损坏等。然而,传统的分析方法依赖于领域专业知识来提取有用的特征,如边缘、线条和纹理,然后将这些特征输入到其他学习算法中[17],[18]。这些手工制作的功能可能是主观的,意味着低效率和高人工成本。传统的方法也需要大量的标记样本进行训练。在许多实际应用中,很难满足这一要求,因为实验成本很高,甚至不允许。在另一项研究中,研究人员展示了如何使用振动数据预测轴承RUL[19]。由于人工智能的进步,深度学习提供了一种应对大数据挑战的方法。

深度学习来自于对人工神经网络(ANNs)的研究,其中“Deep”在网络结构的深度方面与传统的浅层神经网络形成对比[20]。深层结构、可扩展的隐藏单元和非线性激活函数的使用使深层神经网络具有对复杂数据(如声学数据、自然语言和图像)建模的能力;参见通用近似定理[21]。一方面,深度学习最吸引人的方面之一,是它可以在不需要人工干预的情况下实现特征工程的自动化、内部表示的学习和原始数据特征向量的创建[20],从而缓解了对领域专长和核心特征提取的需求。学习到的特征通常是明智的分层,高级特征比低层次的特征更抽象;高级表示可以检测、分类和预测输入中的模式。此外,将特征学习融入深度神经网络,可以使特征工程模块和模式识别模块中的参数进行联合训练,从而获得更好的性能[22]。它还支持端到端学习,使深度学习模型在PHM中通用,即不限于特定设备或特定应用程序。换句话说,深度学习模式相对容易适应新问题。许多研究人员已经重用了预处理网络,通过对架构和微调过程的轻松修改来解决PHM中的问题;具体示例见第三节。这通常称为转移学习,即将从源问题中学到的知识转移到类似但不同的目标问题。迁移学习的使用可以大大减少目标问题中标记样本的需求。在许多复杂问题中,深度学习的上述属性使其在课堂上表现最好。
许多研究者已经将深度学习技术应用到PHM应用中。一些关注于PHM的一个子领域,例如故障诊断或预测[23]、[24];另一些关注特定项目的应用,例如轴承或电子系统[25]–[27],还有一些从各种深度学习架构的角度调查PHM应用[22]、[28]。然而,没有一个从应用程序的角度提供对PHM域的全面覆盖的全面调查。此外,该领域存在的主要问题是:各PHM子领域的研究相互独立,缺乏数据、模型和知识的共享;现有的研究有许多共同点,但学者们仍在重塑wheels;对于设计或选择适合不同应用的“好”深度学习模式没有指导方针;对不同方法的统一评估体系仍然缺失。虽然本文并不是要解决以上所有问题,但我们希望它能引导其他人提出有价值的贡献。
本文综述了基于深度学习的PHM方法的最新进展,重点介绍了它们在故障检测、诊断和预测中的应用。为了应对新出现的挑战和机遇,我们发现了一些研究空白,当这些空白被填补时,无论是在理论上还是在实践上,都可能导致PHM的改进。
本文的主要贡献如下:

1) 本文综述了深度学习在故障检测、诊断和预测中的应用。为了进行系统分析,应用程序根据其输入类型进行分类:振动(包括声学)、图像、结构化和时间序列数据。通过这种设计,本文可以作为研究者寻找与其工作相关的研究的参考。同时也验证了深度学习对PHM中各种类型数据的普遍适用性。
2) 通过回顾,我们得出结论:深度学习为故障检测、诊断和预后提供了一个一刀切的框架。这使得迁移学习成为可能,允许预先训练的网络在不同的PHM子领域中被重用。换句话说,给定相同类型的输入,我们可以用最小的努力从一个PHM应用程序调整到另一个PHM应用程序的深度学习模型。这可以显著减少所需的标记样本数量。值得注意的是,在不同的PHM分支领域中使用迁移学习的文献很少。
3) 对于每个PHM子领域,我们发现了一些共同的特性,如合适的网络结构设计、损耗函数的选择和评估指标。这些共同性质可以作为今后研究的指导。此外,我们还提到了一些基准数据集,并对参考这些数据集的现有研究进行了比较,以期找出最佳实践。我们还确定了每个PHM子领域的研究差距。
4) 在回顾的基础上,总结出五大挑战和三大机遇。这五个挑战是:深度学习技术的艺术性运用;对现实世界应用的概括能力差;“概念漂移”问题;对及时性的关注;可操作任务的创建。这三个机会是:转移学习、数据扩充和端到端学习。
本文的其余部分安排如下。第二节简要介绍了四种常用的深度学习体系结构及其变体。第三节回顾了在故障检测、故障诊断和预测方面采用深度学习的研究。第四节介绍了在PHM中使用深度学习的当前挑战和机遇。最后,第五节对全文进行总结。
二、深度学习模式
随着深度学习理论的发展,从语音识别到计算机视觉、自然语言处理、结构化数据学习等各个领域,人们提出了各种各样的网络结构[20]。在处理不同类型的数据时,每种方法都有自己的特点和弱点。在PHM中,可用于训练的数据是广泛变化的,例如,热红外图像、振动信号、定子电流和多传感器融合。在本节中,我们将简要介绍PHM领域中四种广泛使用的体系结构:自动编码器(AE)、受限玻尔兹曼机器(RBM)、卷积神经网络(CNN)、递归神经网络(RNN)及其变体。
A、 自动编码器及其变体
自动编码器有一个前馈网络结构,可以学习输入数据的特征表示而无需监督。它由两部分组成,即编码器和解码器,如图2所示。编码器将输入数据压缩到具有较少神经元的隐藏层,解码器试图从中重建输入[29]。训练一个自动编码器需要最小化平均重建损失,通常是平方误差函数在给定的训练集。
自动编码器背后的直觉是:如果解码器能很好地重建输入,隐藏层中的神经元必须保留原始数据的绝大部分信息。隐藏神经元规模的缩小迫使网络学习输入的代表性特征。非线性激活函数(如relu、tanh和sigmoid)的使用使网络能够学习复杂和有用的特征表示,而体系结构的深层次使网络有机会学习分层和更抽象的特征。值得注意的是,贪婪的分层预训练可以在自动编码器上执行,以学习输入的分层特征表示,如下一小节所述。

图2、自动编码器的体系结构,包含两个组件:编码器和解码器。
自动编码器的变体包括:
1) 稀疏自动编码器(SAE):通过对隐藏的神经元施加稀疏约束,自动编码器可以学习输入的稀疏特征表示[30]。更具体地说,它在损失函数中增加了一个稀疏性代价项;稀疏性代价项度量目标激活水平与所有隐藏单元的平均激活值之间的kl差。这样,隐藏单元的激活被抑制,导致稀疏表示。
2) 去噪自动编码器(DAE):DAE接收随机损坏的数据,并尝试从损坏的数据中去除干净版本的噪声。它可以使重构更加健壮,并防止网络学习身份转换[31]。破坏数据最常见的方法是引入丢失噪声或二进制掩蔽噪声;这会将输入中的一部分元素随机设置为零。有时也会使用各向同性高斯噪声。
3) 压缩式自动编码器(CAE):CAE通过在损失函数中添加惩罚项来鼓励对输入的小变化保持不变性或鲁棒性;这个惩罚项,非线性映射雅可比的Frobenius范数[32],可以学习输入的更稳健表示。
B、 受限BOLTSMANN机及其变体
受限Boltzmann机器的结构是一个二部图,其中两组(或层)节点(可见单元和隐藏单元)完全互连,图中没有层内连接。可见单元接收输入数据,而隐藏单元是它们的特征表示,如图3所示。

图3、一个受限Boltzmann机器的结构,它本质上是一个无向概率图形模型。
RBMs是无向概率图形模型(PGMs)。所有可见/隐藏单元都有条件地独立于隐藏/可见单元[33]。通过使用一种称为对比散度的算法迭代地更新网络连接权值和偏差单位,可以使给定数据集相对于网络参数的对数似然最大化。这就产生了隐藏层中输入的有用特征表示;从隐藏层可以大致重构输入,其方式与自动编码器的方式大致相同。两种RBM变体如下:
1) 深度信任网络(DBN):可以通过将多个RBM叠加在一起来构建DBN。第i个隐藏层的输出作为第i+1个隐藏层的可见单元。除了离可见层最远的两层之间的无方向连接外,所有其他层之间的连接都是定向的[34]。DBN通常使用无监督、贪婪的分层预训练进行训练,然后进行反向传播微调[35]。分层预训练可以很好地初始化网络参数,而微调则可以更精确地调整参数以适应目标。
2) deepboltzmann机器(DBM):通过将简单RBM的单个隐藏层扩展到多个隐藏层,我们得到了一个深Boltzmann机器。与DBN不同,DBN是一种混合定向的PGM,DBM完全无定向,有跨层连接,但没有层内连接[36]。这就需要对网络进行联合训练,这就需要一种复杂且计算成本高昂的训练算法[37]。数据库管理系统可以学习复杂的结构和构造输入数据的层次特征表示。
C、 卷积神经网络
CNN最初是由莱肯在手写数字识别任务中提出的[38]。此后,研究人员多次证明了其在计算机视觉、自然语言处理和语音识别等领域的成功。CNN具有前馈结构,由两个基本操作符组成:卷积和次采样(也称为池),如图4所示。卷积算子使用不同的滤波器(也称为核)从输入中提取局部特征。CNN的一个独特特点是,过滤器可以自动学习,而不是手工制作。次采样算子从卷积层的输出中提取最重要的局部特征。它可以降低中间层的尺寸,从而避免过度拟合。池操作的另一个优点是网络可以实现的平移和旋转不变性属性[39]。
多个卷积层和池层的堆栈允许CNN学习输入的分层特征表示。层越深,可以学习的特征表示就越抽象。通常,CNN的最后一层由完全连接的层构成,然后是与目标预测相关联的输出层。CNN的训练可以使用著名的BP算法。CNNs在空间(或时间上)通过在相邻层的神经元之间实施局部连接模式(即稀疏连接)来利用局部相关性。稀疏连接模拟了人脑局部感受野的行为,这是神经科学的一个概念。稀疏连接,加上权重共享机制,也显著减少了网络参数的数量,使网络不太容易过度拟合。
图4所示的网络架构是2D CNN。它使用2D滤波器,并对输入的横向和纵向尺寸进行卷积运算。CNN的一个变体是1D CNN,它使用1D滤波器沿其输入的一维卷积。虽然适用于二维输入,但一维cnn主要是针对一维输入,如声学、心电信号等而定制的,与依赖大量矩阵运算的2D-cnn相比,1D-CNN采用了简单的阵列运算。这使得1dcnns的计算要求大大降低。

图4、二维卷积神经网络的结构,用一个完全连接的层堆叠
D、 递归神经网络及其变体
为了在时序数据中编码时间信息,递归神经网络定义了神经元之间唯一的拓扑连接。时间步骤t的隐藏状态可以从当前时刻t的输入接收信号,也可以从先前时刻t-1的隐藏状态的输出接收信号,从而允许在网络中保持先前输入的存储器,如图5所示。RNN接收顺序数据,逐步通过隐藏状态传播计算,然后生成输出[40]。RNN输出层的神经元可能有不同的大小,这取决于具体的应用。
与传统的神经网络在每一层使用不同的参数不同,RNN在所有步骤中共享相同的参数集。这大大减少了参数的总数,并迫使网络从序列中学习重要特征。与许多其他深层神经网络一样,RNN在隐藏层中保持输入序列的特征表示。一个堆叠的RNN是由多个隐藏层叠加在一起构成的。
为了维护长期内存(即序列数据中的长时间依赖性),vanillar RNN需要具有深层的递归体系结构。然而,vanillar RNN的训练可能会遇到梯度消失问题。为了解决这一问题,提出了RNN的两种变体:长短时记忆(LSTM)和门控递归单元(GRU)网络。LSTM和GRU的关键在于引入了一种选通机制,该机制允许输入流中的重要特征保持原样,而不是一成不变地被覆盖。GRU是LSTM的一个简化版本,但在泛化能力方面与LSTM相当。
另一种RNN变体,双向RNN(BRNN),试图利用序列数据中的时态信息。BRNNs不仅在正向上编码时间信息,而且在反向编码时间信息[43]。因此,BRNN中的隐藏态依赖于过去和将来的状态。通过用LSTM单元或GRU单元替换BRNN中的基本隐单元,可以得到双向LSTM或双向GRU网络。这些变体的复杂性增加使得它们比简单的RNN更加灵活和强大。

图5、一种双向递归神经网络的结构
三、 深度学习在PHM中的应用
深度学习由于其强大的表现能力和对各种类型数据的普遍适用性,在PHM应用中日益流行。然而,使用深度学习对PHM框架中的所有步骤进行穿针引线,并输出可操作和合理的建议的困难仍然是巨大的。在文献中,大多数相关的工作都是对PHM子领域进行单独的研究,主要是故障检测、故障诊断或预测,很少涉及到决策。因此,我们将评审分为以下三个部分,并根据数据输入的类型对现有工作进行分类。图6给出了该部分的概述。

图6、深度学习为PHM的所有主要子领域提供了一个一刀切的框架,包括故障检测、故障诊断和预测。它也普遍适用于PHM领域的各种输入,主要是振动、图像、时间序列和结构化数据。
A、 故障检测
人类能够感觉到自己的疾病,即使他们不知道疾病的确切性质。机器应该被赋予类似的自我意识智能。故障检测,也称为异常检测,旨在检测与其他实例的偏差如此之大,以至于怀疑它们是由不同机制生成的[44]。故障检测可以简化为二元分类任务,即对感兴趣的项目是否工作正常或是否出了问题进行分类[5]。根据正(错误)样本的可用性,使用深度学习的故障检测应用程序可以分为两类:有监督的和无监督的。
1) 监督学习
当有足够的故障数据时,可能不局限于某一故障类型,可以构造一个分类器来区分故障和正常状态。分类器尝试学习一个函数,从传感器测量值映射到它们的状态标签,目的是将这两个类分开。但在大多数真实场景中,可用于培训的数据具有倾斜的类分布,也称为不平衡类,其中大多数为负(正态样本),少数为正样本。在这种情况下,应将数据扩充、过采样或欠采样以及分层交叉验证等技术集成到学习过程中,以提高泛化能力[45]。一般来说,这些技术可以适用于任何面临类不平衡问题的机器学习任务;因此,我们不提供进一步的细节。相反,我们关注深度学习相关主题。
故障检测中特定深度学习模型的选择取决于可用数据的类型和应用领域。为了构建我们的分析结构,我们根据输入数据的类型将文献分为四类:振动(包括声学数据)、时间序列、图像(包括视频帧)和结构化数据。振动(包括声学数据)数据在检测和诊断旋转或往复式设备的故障方面起着重要作用。事实上,这是博士研究最多的课题。CNN的深度学习模型如图7所示。Janssens等人。建立了一个分类器来从振动信号中检测轴承故障[46]。在使用CNN时,振动信号的内部表示由两个垂直安装的加速度计捕捉。然后,他们使用随机森林对学习到的高级特征进行分类。重点是利用CNN的能力来利用数据的空间结构来捕获数据的频率分解的协方差。通过这样做,模型可以通过学习关节加速度计信号的变化模式来区分复杂的轴承状态。
Abdeljaber等人。使用1D CNN利用振动信号检测结构损伤[47]。他们将原始振动信号直接输入1dcnn模型,并输出二进制标签(损坏/未损坏),形成端到端学习。这种方法允许特征工程和分类联合训练,从而获得更好的精度。
在他们的研究中,巴赫·安德森等人。首次使用传统信号分析技术从风力涡轮机传动系的振动数据中提取频域特征[48]。然后他们将频谱降低到预定的维数,并将频谱数据输入CNN模型。尽管有报道称,这种手工制作的特性可能并不比从端到端架构中学习到的特性更好。类似的工作出现在[49]中。
其他深度学习模型的使用包括Luo等人的工作。[50]。这些研究人员建立了一个由堆叠的SAE和完全连接的层组成的体系结构,以区分机床振动数据中的脉冲响应和非脉冲响应。他们以无监督的方式用振动数据帧预先训练他们的SAE层,并在监督下使用反向传播对整个网络进行微调。他们比较了时域、频域、时频域和SAE特征。SAE特征比传统的基于信号的特征在分类这两类响应时更准确、更稳定。结果证明了特征学习与深度学习模型相结合的价值。
虽然振动数据是以时间序列的形式收集的,但它们的采样频率通常显著高于普通的时间序列数据。时间序列数据的来源不限于一种类型的传感器;多个传感器可以融合在一起。时间序列建模的关键是获取能够反映被监测资产健康状况的时间信息。不出所料,RNN是处理时间序列数据最有利的模型,如图7所示。Hu等人是最早使用RNN进行故障检测的论文之一。[51]。他们构建了一个非常简单的RNN体系结构,将软件故障检测和校正结合起来,对双进程进行建模;其预测精度优于前馈神经网络。Zhang等人。使用LSTM网络捕捉时间序列数据中的长期相关性,以检测电力系统中的线路跳闸故障[52]。他们将电流、电压和有功功率数据作为输入,构建了三个独立的LSTMs,其输出被串联并进一步输入到SVM分类器。Obst构建了一个RNN来学习分布式无线传感器网络中传感器之间的时空相关性[53]。利用实际传感器读数与RNN预测值之间的残差来检测传感器故障。值得注意的是,即使每个传感器信号都正常工作,在多个传感器之间的协变量中也可能存在异常模式。总的来说,以上研究显示了数据融合的价值。
CNN是另一种通常适用于timeseries数据的架构。郭等人构造了一个CNN来检测从配电系统获得的零序电流波形中的故障馈线[54]。有趣的是,他们将连续小波变换应用于原始电流信号,并将获得的时频灰阶图像输入CNN。他们报告说,用所提出的方法可以进行精确和稳健的预测。Ince等人也使用CNN处理电流信号[55]。他们将原始信号输入1dcnn,并用完全连接的层对其进行叠加,类似于[47]中提出的方法。由于CNN卷积运算中的滑动窗口机制,CNN可以捕获时间序列数据中的时间信息,而核的大小对可学习时间依赖的长度有很大影响。
图像数据在故障检测应用中越来越受到重视。正如在计算机视觉领域反复证明的那样,CNN可以在图像数据分类方面达到最先进的性能。Gibert等人建议使用CNN来检查铁路轨道,特别是检测断裂或缺失的紧固件[56]。他们培训网络的目的有两个:轨道检查和材料鉴定。多任务学习设置允许在一个任务中学习到的知识转移到另一个任务中(即转移学习),形成一个互利的机制。类似的工作将CNN用于铁路轨道检查[57]、道路路面裂缝检测[58]和混凝土裂缝检测[59]。
视频数据是图像沿时间方向的组合

尺寸。然而,如果不修改其结构,CNN就不擅长于对时间信息进行编码。大多数现有的研究已经使用CNN从视频帧(基本上是图像)中学习模式,然后对时间相关性进行建模,如图7所示。Chen等人。建立了一个CNN来检测核电站金属表面视频帧中的裂纹补丁[60]。他们的CNN模型本身不编码时间信息,但输出形成时空注册管,可以输入到天真的Bayes分类器中检测裂纹补丁。Jha等人。结合CNN和高斯过程从涡流稳定燃烧室的高速灰度视频中检测不稳定燃烧行为[61]。他们使用CNN从视频帧中提取特征,并采用高斯过程对序列图像中的动态进行建模。如文中所述,加入高斯过程后,该模型能更好地推广。
根据图像的复杂性,图像数据可能不容易被输入CNN,输出所需的状态标签。有时,在进行分类之前,需要在图像中定位感兴趣的对象。Chen等人。提出了一种三级结构来定位和检测悬链线支撑装置图像中有缺陷的紧固件[62]。第一阶段使用SSD(即单次多盒探测器)框架来定位悬臂接头;第二阶段使用YOLO(即,您只需查看一次)框架来定位六个不同的紧固件,第三阶段使用原始CNN来检测缺失或潜在缺失的紧固件。在类似的过程中,Lei等人。使用更快的R-CNN架构来定位和检测高压线路图像中的破损绝缘子和鸟巢[63]。值得注意的是,他们重新使用了经过预训练的ResNet-101网络,这是一个为ImageNet竞赛训练的非常深的网络,来初始化他们的检测网络。这种策略允许将在一个领域学到的知识转移到另一个领域(即转移学习)。它缩短了培训时间,减少了所需的标记样本数量。我们将在第四节对此进行讨论。
最后但并非最不重要的是,结构化数据是工业故障检测的主要来源。与上述三种类型的数据相比,结构化数据可能是多源、分布式和异构的,需要在数据融合和预处理方面付出相当大的努力。从算法的角度来看,结构化数据已经大量使用传统的机器学习技术,如支持向量机、随机森林和浅层结构的前向神经网络。关键是找到能够区分正负样本的良好特征表示。为此,陈等。提出了一种基于CNN的体系结构来学习SCADA(即监控和数据采集)数据的深度表示,以检测风力涡轮机中的积冰故障[64]。他们的输入数据包括22个与风、能量和温度有关的测量数据,输出的是一个高维的嵌入式特征空间,可以保存类内和类间的信息,同时具有很高的识别能力。Mandal等人。建造了一个DBN来检测快速增殖反应堆的故障[65]。他们将175个热电偶读数输入DBN并输出二进制标签,指示故障或正常。简言之,多个传感器之间复杂的互相关可以通过深结构和非线性变换来捕获。
***故障检测中的深度学习模型的选择取决于应用领域和可用数据的类型,但在模型之间存在一些常见的做法。***首先,在模型设计中,主干结构通常以逻辑层作为最后一层,这意味着可以使用交叉熵损失。第二,在学习过程中,为了防止过拟合,通常会采用正则化技术,如辍学和权重衰减,正则化量是一个需要调整的超参数。第三,精度、召回率、ROC(接收器工作特性)曲线、AUC(曲线下面积)和Fscore是评价模型准确性的常用指标。虽然文献中已经报道了许多应用,但监督方法的局限性在于难以获得错误数据。大多数研究使用实验室测试的数据,但这些数据在现实世界中通常是不够的[9]。此外,还未出现“未出现故障”的情况下(“故障”未发生)。
2) 无监督学习
当缺乏足够标记的数据时,通常在实际情况下,故障检测可能会求助于无监督的方法。在一个无监督的环境中,正常的操作条件被预先建模,并且在一个被称为一类分类问题的过程中,故障被检测为与正常行为的偏差。直观地说,这个问题试图从负样本中学习模式,特别是找到一个低维的嵌入,它可以封装信息量最大的特征,从中可以以最小的信息损失重构样本。如果一个测试样本不能很好地从其特征嵌入中重建出来,我们就很容易怀疑其生成机制的正常性。与使用硬规则(如分离超平面)生成二进制输出的监督学习不同,无监督方法通常会给出表示给定样本异常的连续分数;值越大,其异常性越大,反之亦然。在实践中,需要一个阈值来辅助判断故障的发生。然而,这一过程并不容易,而且非常依赖于应用程序,因为故障检测的目标是最小化犯下I型错误(误报或误报)和II型错误(误报或漏检)的机会,而且这两种错误的代价可能因不同的应用程序而有很大差异。在接下来的章节中,我们将对相关研究进行综述,并根据数据类型进行组织。
振动信号仍然是无监督故障检测应用的主要输入形式,尽管对深度学习体系结构的偏好已经明显地转向了基于AE的结构,如图7所示。Sun等人建立了一个从振动信号中检测缺陷电机的模型[66]。他们在正常情况下对振动片段的倒谱图进行贪婪的分层训练,学习几个rbm,然后将它们叠加形成一个类似DBN结构的编解码器。将测试样本输入到学习的DBN中,以输入输出重构误差作为判断其异常程度的标准。Oh等人利用声发射技术检测表面安装设备的故障[67]。他们用正常数据训练AE,以便在瓶颈层尽可能多地保留信息。以测试样本为输入,测试样本与声发射输出之间的残差为异常分数。为了缩短培训时间并将异常检测器投入生产,Park等人建议在与上述应用环境相同的应用环境中,用叠加的LSTM层替换AE中的基本完全连通层[68]。在牺牲可容忍的精度降低的前提下,网络中的参数个数和训练时间都显著减少。Principi等人使用类似的想法,但在不同的领域(即检测电机故障),比较了三种不同构建块的ae的性能:完全连接层(他们称之为MLP)、卷积层和LSTM层[69]。通过对超参数进行细致的调整,他们发现具有完全连接层或LSTM层的AEs在精度方面优于卷积层和传统的单类支持向量机算法。
与上述研究相比,Lu等人建立了一个明确地建模轴承振动数据时间相关性的体系结构[70]。他们利用声发射技术从振动频谱中提取特征,将学习到的特征按顺序组织起来,形成一个过渡特征池,再将其发送到一个LSTM网络中。他们将他们的方法与几种替代方法进行了比较,并指出其优越的效果。Li等人在相同的背景下采用了相同的管道[71]。
时间序列数据相对比其他数据类型复杂,因为它们包含需要隐式或显式建模的时间依赖关系。姜等。建议使用滑动窗口策略对SCADA数据中的时间信息进行建模,以检测风力涡轮机中的故障[72]。更具体地说,他们将多元时间序列数据沿时间轴分成固定长度的块,允许不同块之间的重叠。他们使用在正常操作条件下获得的块来训练DAE。在在线阶段,他们使用相同的滑动窗口策略来测试样本,然后将它们发送到经过训练的DAE;残余误差是异常的证据。Fan等人采用了一个几乎相同的想法。从建筑能源使用数据中检测故障[73]。Ellefsen等人的VAE模型不是沿着时间轴切片数据,而是一次只接受一个向量(多元测量),按时间顺序排列的残差形成了一个新的时间序列[74]。新时间序列的高增长率表明海上组件存在潜在故障。
Kim等人。采取了一种不同的方法,并提出了一种在体系结构中显式地建模时间信息的模型[75]。他们的模型名为DeepNAP,包括两个模块:预测和检测。前者本质上是一个以LSTM为构造块的AE,它试图用给定的序列输入来预测重构误差最小的输出序列。后者是一个完全连接的MLP,只接收前一步的输出序列的一部分,并将其投影到序列的其余部分。利用新提出的损失函数,即部分重建损失,这两个模块可以联合训练;当这样做时,观察到了更高的精度。郑等人的类似研究。与上述预测模块非常类似,采用与LSTM单元配合的声发射来检测异常电力需求[76]。为了提高准确性、鲁棒性和抗溢出效应,Baraldi等人。比较了RNN、自联想核回归和模糊相似性在时间序列温度测量中的故障检测能力。他们进一步提出了这些模型的集合,并报告了令人满意的结果[77]。
尽管图像数据在故障检测应用中得到了广泛的研究,如图7所示,但很少报告无监督应用。我们在康有为等人的文献中找到了一个例子。检测有缺陷的接触网绝缘子[78]。他们首先应用更快的RCNN算法来定位图像中的绝缘体,然后以无监督的方式构建去噪AE。不出所料,在测试阶段,重构误差被用作潜在故障的证据。为了提高去噪AE中嵌入特征的代表性,作者强制编码器网络共享一个不同但相似的任务,在监督下将图像分为绝缘体或其他。这样,在一个任务中学习到的知识可以转移到另一个任务中,即多任务学习,如[56]所述。
图像数据的复杂性可能是造成无监督故障检测不足的原因。尽管有时,复杂程度对人脑来说可能不会太吓人,但图像注释是非常劳动密集的,可能会阻碍模型从一个域复制到另一个域。我们期待更多的研究来填补这一研究空白。
结构化数据也在无监督故障检测的情况下进行了研究。例如,Zhao等人使用SCADA数据构建了一个AE来检测风力涡轮机中的故障[79]。他们只使用正常情况下的样本,进行分层预训练和微调来训练网络。他们用测试样本的重建误差作为潜在故障的指示器。为了适应非平稳的工作条件,他们根据极值理论设计了触发警报的自适应阈值。类似的工作用去噪声发射来监测核电站的传感器[80]。
**处理结构化数据时的另一种常见策略是从多元测量中选择一个目标变量,并建立一个预测模型,将所有其他测量值映射到该指定目标。**值得注意的是,目标不一定直接反映相关设备的健康状况,但它应取决于其他变量。同样,预测模型也应该用正常情况下的样本进行训练。在测试阶段,给定一组输入测量值,残差就是目标预测值与实际测量值的差值。这将一个无监督的问题转化为一个有监督的问题。利用这种策略,Wang等人利用SCADA数据建立了一个用于检测风机故障的DBN,其中主轴承温度被选为目标变量[81]。Wang等人的其他工作选择了润滑油压力作为目标变量;在这种情况下,研究人员构建了一个前馈神经网络来检测风力涡轮机变速箱中的故障[82]。
图7提供了上述故障检测应用的类似交叉表的摘要,重点是针对不同类型的数据输入选择深度学习模型。该图验证了深度学习对各种数据类型的普遍适用性。一般来说,所有的数据都需要提取其内在特征,以便更好地表示负样本中的模式,从而检测出不遵循模式的正样本。具体而言,振动数据包括时域特征、频域特征、时频域特征及其组合;图像数据包含空间结构特征;时间序列数据包含时间相关性;结构化数据包含交叉相关。如图7所示,在无监督状态下,绝大多数深度学习模型都是基于ae的,因为它们用于训练的目标函数与学习机制非常吻合,即重建误差的使用。虽然深度学习模型在有监督的应用程序中很流行,但有限数量的研究考虑了无监督环境。这可能归因于实验室测试数据的可获得性和许多易于使用的监督算法。由于在实际应用中获取标签的成本很高,我们期望更多的研究使用深度学习的无监督故障检测。

图7、故障检测应用:根据不同类型的数据输入选择深度学习模型,a)监督案例,b)无监督。

B、 故障诊断
回到我们之前的类比,仅仅知道我们自己的疾病是不够的;我们需要咨询专业人士来确定类型、定位身体部位和确定严重程度。同样,一旦设备故障被检测出来,就需要采取故障识别、故障定位和严重程度识别的步骤,这个过程称为故障诊断。诊断程序应该能够识别“出了什么问题”(故障的种类、情况和程度),作为在上一步(即检测)中得出的“出了问题”的知识的延伸。故障诊断的预测精度和结果必须比故障检测严格得多,因为它可以直接提示后续的运行调整或维护任务。
从机器学习的角度来看,诊断是一个多类分类问题,将检测到的故障分类为故障类型、位置和严重程度的某种组合。最后一个典型的软学习层是max的最后一个学习层。相应地,通常选择交叉熵损失作为损失函数,以此为基础对网络进行训练。在训练一个深度学习模型后,可以采用非线性降维方法,如t-SNE方法,直观地检查学习到的高级特征是否具有区分性,示例见[83]。通常使用的评价指标包括准确度、精密度、召回率、ROC曲线、AUC和F分数。混淆矩阵经常被用来直观地研究分类结果,特别是用来定位错误的类。发现错误的分类可能会给我们一个提示,告诉我们如何提高准确度。
使用深度学习的故障诊断的另一个共同特性是使用监督学习。虽然特征表示可以在无监督的方式下进行预训练,但是它们的分类器大多是通过标签进行微调的。在这些情况下,我们也认为他们受到监督。虽然我们对文献的回顾可能并不详尽,但下一小节中提到的所有论文都在监督机制下,就像我们讨论的监督故障检测应用程序一样。为了区别于有监督的故障检测(即二进制分类),我们假设故障诊断至少有三种不同的故障类型,并且这些故障类型更加均衡。同样,我们根据输入数据的类型来构造我们的分析。
1) 振动数据
振动或声学数据是诊断旋转和往复式机器的重要来源,如果不是最重要的话,这些机器的健康状况对系统的安全性和可靠性至关重要。鉴于此,**故障诊断研究的很大一部分是从振动或声学信号中学习。**根据学习管道的集成程度,我们将相关工作分为两种模式:独立学习和端到端学习,如图8所示。

图8、两种学习范式:独立学习与端到端学习。
与许多传统的机器学习任务一样,分离学习包含几个独立的步骤,包括特征提取、特征选择和模式识别。端到端学习构建了一个完整的网络,接收原始信号,提取有区别的特征表示,并输出期望的目标。下一节将解释这些类别之间的区别。
数据和特征往往决定了学习性能的上限,而模型和算法只能近似于这个上限。在下面的讨论中,我们故意忽略了如何构造深层神经网络的细节,而将重点放在数据准备和特征学习上。
众所周知,机械设备故障在时域波形中可以很容易地隐藏起来,而在频域中表现得更好。许多研究采用了信号处理技术。最流行的方法是快速傅立叶变换(FFT),用于从原始时域信号中提取频谱,并将其转发到深度神经网络[84]–[91]。然而,对于频率成分随时间变化的瞬态或平稳信号,该过程可能无法很好地工作,通常在现实世界中就是这样。对于非平稳信号,通常使用短时傅里叶变换(STFT)[92]–[94]、小波变换(WT)[95]–[98]或经验模式分解(EMD)[99]、[100]将原始信号转换为时频域。STFT采用固定长度的窗函数,存在时频分辨率的折衷问题。为了改进STFT,WT对每个谱分量使用不同的窗口大小进行多分辨率分析,但是它非常依赖于所选的基函数,并且存在移位变量和方向性差的问题。EMD不依赖于任何基函数,但在间歇和噪声情况下,EMD可能会出现模式混合问题。Verstraete等人。比较了上述三种信号处理技术,观察到小波变换在他们的研究中获得了一致的高精度[101]。为了提高预测精度,一些研究人员试图融合所有统计特征,也称为三域特征,这些特征来自于上述信号处理技术[102]-[105]。请注意,时频域中的信号自然具有二维形式,因此适合于传统CNN的输入。经过适当的归一化处理后,这些时频域信号被视为图像,并由[92]、[94]–[98]、[101]、[106]、[107]构建了各种基于CNN的变体。
原始振动信号也被转换成图像形式,用于诊断目的,使用的技术包括连续交错采样(CIS)[108]–[112]、全向再生技术(ORT)[113]和对称点模式(SDP)[114],[115]。利用这些转换技术和转移学习策略,几个预先训练过的cnn(最初是在自然图像上训练的)被使用振动数据传输到故障诊断应用程序中;例如LeNet-5[107]、[109]、[110]、VGG-16[106]、AlexNet[95]和ResNet-50[108]。我们还发现一些研究使用自动编码器[105]、[116]、[117]和随机投影[118]作为深度神经网络之前的预设层,以达到去噪和压缩的目的。
振动数据本质上是时间序列,但周期性强,采样频率高。这种顺序输入可以输入到RNN或1D CNN的输入层,从而有机会进行端到端的学习。以原始振动信号为输入,研究人员建立了一个标准的RNN[119]、[120]和1D CNN[121]、[122],以自动学习具有代表性的特征并输出所需的目标。端到端学习范式的一些优点是:它让数据说话;特征工程是自动化的,不需要手工制作特征;整个网络的参数可以联合优化,从而获得更好的精度;该网络是通用的,可以很容易地传输或适应不同但类似的场景。
采用一维CNN直接处理振动数据时,核宽参数的设计应慎重。当核宽度较窄时,时间分辨率较好,而频率分辨率较差,反之亦然。这与STFT中使用的窗口函数的支持是一致的。彭等。[123]张等。[124]提出使用宽核函数增强低频故障相关特征的学习,抑制噪声干扰。在其他工作中,为了同样的目的,提出了多尺度一维CNN[83]、扩张卷积层[125]和LSTM层与1D CNN的组合[126]。步幅参数也应谨慎选择,因为过大的步幅参数将不可避免地产生不希望的移位变量特征。为了提高准确性,一些研究试图融合多个1D CNN[127]和GRU[128]产生的特征。在端到端学习模式中,虽然很少有报道,但已经对基于声发射的振动数据模型进行了研究;见[129]-[131]。
有趣的是,在审查过程中,我们发现大多数引用的论文都引用了凯斯西方储备大学(CWRU)数据集[132],这是滚动轴承故障诊断的事实基准数据集。在不同的故障条件下收集振动数据,每个故障条件都由特定类型的缺陷(内圈、滚子、外圈)和一个严重程度级别(0.007、0.014和0.021英寸)引起。使用CWRU数据集的典型问题公式是一个十级分类,考虑到各种故障类型和严重程度以及正常条件的组合。如表一所示,所有参考文献的测试准确率均在92%以上,有几篇论文的测试精度超过99%。诚然,考虑到要分类的大量错误条件,这是令人吃惊的。

注意,在表1中,这个数据集最常用的架构是CNN和AE。还请注意,表一中的所有数字都是未经核实从原始文件中摘录的。虽然一些研究人员采用了相同的模型,但他们报告了不同的测试精度。这可能与训练集和测试集的划分、超参数整定和随机变化等因素有关。
从数量上看,**采用端到端学习范式的论文数量仍然远远少于单独学习范式。**在显著性水平为5%的情况下,我们对两种学习范式的平均测试准确率差异进行了双侧韦尔奇t检验,p值为0.64。这意味着两种学习范式的测试准确性没有显著差异。虽然这证明了传统的信号处理技术可以从振动数据中提取有用的特征,但是端到端的学习模式在特征工程中不需要太多的人工干预。
2) 图像数据
随着深度学习理论的发展,特别是CNN的发展,图像分类研究取得了长足的进展。图像数据故障诊断应用的一个似乎令人畏惧的障碍是充分标记样本的可用性。然而,这通常不是先决条件。只有40个红外热视频,每个10分钟长,詹森等人。利用著名的预训练VGG-16模型成功地进行了滚动轴承故障诊断[137]。他们只是简单地用一个软最大层替换了架构的最后一层,将节点数量限制为所需的输出类,并用有限的样本数微调整个网络。虽然他们的应用环境与最初训练VGG-16的场景有很大的不同,但是所学到的知识是可转移的,因此准确率超过95%。这种类型的迁移学习可以显著减少所需的标记样本数。使用相同的策略,徐等。在滚子轴承表面缺陷诊断中采用并比较了四种预训练网络(挤压网v1.1、Inception v3、VGG-16和ResNet-18)[138]。他们用一个预训练的网络验证了收敛速度和精度的提高。
然而,迁移学习并不是所有领域的灵丹妙药,从头开始的培训也能产生相当好的效果。Tao等人。从零开始训练一个紧凑的CNN,只需50张原始图像来诊断金属表面缺陷[139]。在分类前,通过数据扩充(包括随机旋转、平移、缩放、剪切和弹性变换)和分割步骤,成功地增加了标记训练样本的数目。结果,他们的模型达到了86.82%的准确率,远远高于基于手工制作特征的经典模型。类似的工作使用数据扩充来诊断熔炉燃烧状态[140]、焊接缺陷类型[141]和平衡尾绳故障[142]。
根据具体问题的复杂性,可能不需要使用预先训练的网络或数据扩充技术。Jia等人训练了一个CNN,每个类只有450张图像来诊断滚动轴承的9个故障状态,获得了接近100%的准确率[143]。同样,Li等人训练了一个CNN,每个班只有1400个样本来诊断光伏发电场中的五个模块缺陷,同样得到了非常精确的结果[144]。如图9所示,以上研究均采用CNN,但在网络深度、正则化方法的选择或训练细节等方面存在一定差异。

图9、故障诊断应用:根据不同类型的数据输入选择深度学习模型。
3) 时间序列数据
时间序列数据封装了时间相关性,这些时间相关性对于故障诊断来说通常是至关重要的。在多变量情况下,它们也可能包含多个测量值之间的互相关,如在结构化数据中。天真地假设不同时间戳的样本是独立的,会丢弃有用的时间信息,从而不可避免地导致性能下降。研究人员试图在两个不同的层次上解决这个问题:数据层和算法层。
数据级方法使用相空间嵌入表示,其中通过固定长度的滑动窗口生成一系列数据实例;见[145]–[148]。通过数据级转换,时间相关性可以转化为互相关。然而,窗口大小和滑动步幅大小的确定成为一个问题,这可能需要事先的知识或额外的努力在超参数调整。注意,步幅大小参数可能会影响方法的移位不变性,这对于时间序列数据有时是必需的。
算法级方法在其体系结构设计中显式地建模时间依赖关系,主要是RNN。这种类型的例子可以在[8]、[149]–[152]中找到。虽然RNN中的数据输入长度需要事先确定,但它与数据级方法中的窗口大小有很大不同。RNN通过其记忆保持机制来学习时间依赖的长度,并且时间依赖的长度是可变的,为利用时间序列数据进行故障诊断提供了更大的灵活性。
4) 结构化数据
结构化数据一直是使用机器学习的传统故障诊断应用的重要组成部分。在文献中,结构化数据最常用的深度学习架构是基于RBM和AE的,如图9所示,这可能是因为这两种类型的模型不像CNN和RNN那样,在从输入中学习时没有施加拓扑或顺序关系。相反,它们的结构类似于前向神经网络,允许学习输入中的互相关。如第二节所述,基于RBM和基于ae的模型可以分为两个步骤进行训练:分层预训练和通过叠加先前学习的层对网络进行微调。利用这一策略,一些研究人员构建了常规DBN[153]–[159]和AEs[160]–[163]用于故障诊断;[153]–[155],[160]强调网络超参数调整。请注意,分层预训练步骤通常是无监督的,并且预训练网络充当整个模型的初始化。这可以大大减少所需标记数据的数量,提高收敛速度[162]。
其他研究者也努力通过将深度学习模型与其他模型相结合来提高分类精度,例如多粒度级联森林[164]、fisher判别字典学习[165]和深度量子神经网络[166]。一个共同点是它们都使用深度学习模型来学习特征表示,另一个模型用于提高识别能力。
现实世界中的结构化数据可能来自各种来源,包括电流、电压、速度、位移、压力、温度和许多其他来源,数据融合可能是必要的[167]。数据还可能存在不完全性、异构性、低信噪比、某些拓扑的显示等问题,陈等试图用转移学习来克服多速率采样带来的不完全数据问题[168]。他们提出了一个框架,使一部分结构和参数能够在结构完整数据模型和不完整数据模型之间传递。Wang等人的一项有趣的研究建议使用CNN来处理嵌入空间拓扑的结构化数据[169]。他们的数据包含电力系统中的潮流测量值,目的是诊断系统的故障。他们设计了将原始电力流转换成图像的规则,在图像中可以保留几何图形、数字和其他特征。实验证明了模型的有效性。
图9展示了上述诊断研究的交叉表式总结,重点是为不同类型的数据输入选择深度学习模型。该图再次证实了深度学习对各种数据类型的普遍适用性。该图也可以作为研究人员将未来研究与现有研究联系起来的词典。
尽管许多研究已经证实了在故障诊断中采用深度学习的优越性,但它们通常仅限于实验室数据,这主要是因为在实际应用中,由于标记数据的不足,而破坏性实验的成本很高或不允许。此外,学习的分类器可能只对训练集中包含的错误敏感。换言之,它对未发生故障的泛化能力可能很差,导致在现实世界中测试精度较低。例如,深度学习模型中的软最大层输出与最高激活神经元相关的故障类型,而不管故障模式是否被观察到[93]。严格地说,不包含在训练集中的复合故障(多个故障同时发生)也应被视为未发生。为此,几项研究精心收集了复合故障相关数据,并将其纳入训练集[104]、[129]、[143]、[162]。然而,这种类型的研究受到限制,因为许多故障类型的组合爆炸阻碍了我们收集足够的标记数据来训练一个综合诊断模型。一个潜在的解决方案是开发一个无监督的故障检测模型,并根据新观测到的数据样本定期更新诊断模型。
C、 预测
在诊断出一种疾病后,卫生专业人员根据经验数据和他们的经验推断病人的康复或存活率。在PHM中,这通常被称为预测。在预测中,我们估计感兴趣项目的剩余使用寿命(RUL)。此步骤使用预测模型和未来操作使用模型的组合,将监视项的状态预测到未来。换言之,考虑到其退化轨迹和未来的作战使用计划,它估计了该项目的RUL。从实际的角度来看,准确估计RUL是很重要的,因为早期预测可能导致过度维护,而延迟预测可能导致灾难性故障。根据适当的RUL估算,考虑到所需的维护人员、备件、工具和其他物流,可以充分安排维护工作。鉴于现实世界中的不确定性,需要评估的置信水平来量化RUL估计的波动。
从机器学习的角度看,预测是一个回归问题,因为目标值(RUL)在真实领域。预测旨在学习一个功能,将项目的状况映射到其RUL估计值。与许多回归任务一样,为训练提供标签是一个挑战。具体地说,在预测应用中,在任何给定时间准确地确定对象的RUL是困难的,有时是不可能的。大多数研究都使用从运行到失败测试的数据,从中可以导出RUL标签。定义故障发生的标准取决于应用程序;例如,当其磨损尺寸达到0.6mm[170]的阈值时,定义加工工具失败,当锂离子电池的30%容量从额定容量[171]衰减,且当其最大振动振幅超过20g[172]时,旋转轴承失效。
定义RUL的最简单方法是计算故障发生时间,即从每个时间步中减去故障发生的时间戳;示例见[173]、[174]。然而,这无意中暗示了一个物品的健康状态随着其使用而线性下降,并可能导致对RUL的高估。在某些情况下,一个合理的假设是,在其生命周期的早期阶段,被监视项的降级要小得多,并且只有在使用了一定量之后,它才会开始降级。这就产生了RUL的分段线性设置,即一个常数RUL后跟一个线性退化函数。分段函数的时间点可以根据先验知识进行设置,如[175]-[179]。也可以通过故障检测程序来确定,例如,使用统计过程控制[180]、支持向量机[181]、变分AE[182]或奇异值分解(SVD)归一化相关系数[183]。作为线性递减函数的替代方法,研究人员研究了幂函数[181]和低阶多项式[182],希望能更好地捕捉退化模式。他们的发现证实了在预测任务之前进行故障检测的必要性。一般来说,故障检测技术可以在预测任务中方便地标记RUL。
在预测任务中,深度学习架构的最后一层可以是具有线性激活函数的单个神经元[170]、[184]–[186]或一个将RUL预测压缩到标准化范围的sigmoid函数[187]、[188]。因此,可以选择许多损失函数进行训练;典型的是平均绝对百分比误差(MAPE)[174]、平均绝对误差(MAE)[180]和均方误差(MSE)[181]。这些损失函数也可用于评估测试集中的模型性能。
必须注意的是,预测任务的一个独特特征是对晚期RUL预测的惩罚(即估计的RUL大于实际RUL)。延迟预测可能导致意外故障,甚至灾难性损坏,而早期预测只会导致额外的维护成本。为了解决这一问题,[189]提出了以下用于评估模型性能的非对称评分函数,被[182]、[190]、[191]采用,并被[192]–[194]修改:

其中m是测试样本的数量,di等于规则估计的−RUL,表示第i个样本的估计RUL和实际RUL之间的差异,a1和a2的大小控制延迟预测的惩罚程度。尽管合理,评分函数的使用往往低估了RUL值,这可能与用户的意图一致,也可能不一致。评分函数的指数形式也使得它对异常值非常敏感。换言之,一个非常糟糕的预测可能会主导总分,掩盖其他预测的准确性。这使得评估指标的选择非常依赖于应用程序。
在介绍了预测任务的基本原理之后,我们现在对现有的工作进行了详细的分析。在文献中,我们发现相关文献的输入数据类型极不平衡。因此,下面的分析是根据它们的应用场景而不是数据类型来构造的。RUL预测研究最多的项目是加工工具、电池、涡扇发动机和旋转轴承,后两项主要是参考PHM 2008数据挑战[195]和IEEE PHM 2012数据挑战[196]的基准数据集。
虽然加工刀具的磨损可以离线测量,但需要使用在线测量(通常是力和振动信号)实时监测和预测刀具磨损。Aghazadeh等人。提出了一种谱相减法,用稳态部分减去信号的WPT谱来增强故障特征,得到的残差被输入标准CNN用于刀具磨损估计[186]。为了更好地模拟退化趋势,Zhao等人。提出用双向GRU来捕获原始信号三域特征之间的时间相关性[185],而赵等。使用CNN进行特征提取,双向LSTM用于序列建模[184]。刀具磨损预测中传统的机器学习和深度学习模型(包括CNN、LSTM、AE和DBN)的比较可以在[197]中找到。
由于便携式设备的普遍存在,电池RUL预测在现代生活中具有重要的现实意义,但是电池复杂的电化学性质使得很难用第一性原理来模拟其降解机理。数据驱动的方法试图通过将电池的多变量时间序列测量值(电流、电压、温度等)映射到其容量保持率(表示电池寿命的常用指示器)来学习函数。深度学习在电池预测中的应用仍处于早期阶段。文献中的工作是有限的,例如,前馈DNN[171]、[198]和正则LSTM[199]、[200]被用作函数逼近器。
PHM 2008数据挑战赛要求研究人员根据多变量时间序列测量(也称为C-MAPSS数据集[195])预测美国宇航局涡扇发动机的RUL。数据集由四个子数据集组成,这些子数据集适用于不同的操作和故障条件。一些常规的深度学习模型,如稀疏AE[201]、CNN[202]、LSTM[177]、[181]被用来解决这个问题。采用双向LSTM,Zhang等。研究了问题在不同操作条件下的可转移性[191]。一个有趣的观察结果是,当从多个操作条件的数据集转移到单个操作条件的数据集时,会发生负迁移。为了提高准确性,Long等人。利用残差CNN建立k折系综模型,该方法类似于机器学习中的bagging技术。在一种类似随机森林原理的方法中,Zhang等人。构造了一个多DBN集成来最大化两个相互冲突的目标:准确性和多样性。最近还研究了使用LSTM与RBM[190]和1D CNN[176]、[182]的复合模型,并报道了相当有竞争力的性能。
在最受研究的预测问题之一,IEEE PHM 2012数据挑战与从加速老化平台预测中获取的轴承振动数据一起工作。它期望参与者预测监测数据被截断的轴承的RUL[196]。虽然目标不同,但数据类型与使用CWRU数据集的上述故障诊断问题一致。因此,我们在表二中提供了一些相关研究的细节,目的是将它们与表一中的研究进行比较。虽然我们试图提供一个统一的度量标准来更好地进行比较,但是不同的人在评估模型性能时使用的指标不同。注意,表二的“Evaluation”列有三个不同的度量,即Score、RMSE和MAPE,它们的大小是无法比拟的。此外,该分数与式(1)中定义的分数不同。分数越高,准确性越好;定义见[196]。如表一所示,表二中的数字是直接来自原始文件或间接计算出来的,未经核实。
在仔细研究这些研究后,我们发现所提出的方法与表1中的方法有许多共同的性质。用回归层代替最终分类层的简单修改可以将诊断方法转变为预测方法。[183]和[185]也提出了这一观点。在这两个任务中进行学习给了两个密切相关的学习机会。另一个有趣的观察是,表二中提出的所有方法都属于单独学习的范畴,而不是端到端学习。鉴于端到端学习的所有优点,我们期望将来有更多的这种类型的研究能够用于预测问题。
本小节调查预测研究,旨在预测加工工具、电池、涡扇发动机和旋转轴承的RUL。在回顾了参考文献后,我们提出了一些有趣的看法:
1) 与故障检测和诊断相比,没有图像数据作为预测任务的输入。这可能意味着退化过程在某些领域的图像中并不明显。这也表明了开发图像数据驱动的预测应用的潜力。
2) 虽然与目标RUL预测相关的置信区间是一个理想的输出,但是很少有研究人员能够正确地处理需求或充分地报告他们的工作。这应该在今后的研究中加以解决。
3) 一些基准数据集,如C-MAPSS和预测,大量用于模型验证。然而,研究人员倾向于使用不同的指标来评估其模型的准确性,这使得综合比较变得困难。在未来的研究中,我们需要一个统一的评估指标来进行模型评估。
许多研究使用一维CNN、RNN及其变体显式地编码传感器测量的时间信息,而另一些研究则使用滑动窗口策略对其进行隐式编码。研究人员一致认为,在预测任务中捕捉数据的时间相关性非常重要。


1.采用RBM方法进行特征提取。在损失函数中加入一个斜率项,鼓励特征学习退化模式中体现的趋势性;
2.然后将学习到的特征输入到一个自组织图中进行RUL预测。

1利用小波变换将原始振动信号转换为时频图像特征;
2构造CNN(LeNet-5)从图像中提取空间特征,并映射到轴承健康指数。

1首先从原始振动信号中提取三域特征;
2采用基于相关性和单调性的特征选择方法进一步选择退化敏感特征;
3构造了一个LSTM,将所选特征映射到轴承的健康指数。

1利用傅里叶变换提取振动信号的频域特征;
2采用连续交织采样方法将特征转换为图像;
3构建了CNN(LeNet-5)来提取图像的空间特征,并映射到轴承的退化率。

1采用小波变换提取时频域频谱;
2采用双线性插值法进行降维;
3将得到的低维特征输入CNN,并在RUL预测前将不同层次的特征串联起来。

1利用傅立叶变换提取振动信号的频域特征,然后采用频谱分割求和的方法进行降维;
2结合时域特征,将上述特征输入DNN进行RUL预测。

1利用FFT对振动信号进行频谱提取,通过二次采样得到一维频谱主能量向量(SPEV);
2将连续时间步长的SPEV叠加形成一个矩阵,然后输入CNN进行RUL预测。

1首先提取三域特征,然后用RBM对其进行压缩;
2在不同的时间尺度下,将上述特征输入到不同的GRU中,并将其输出连接到密集连接层进行RUL预测。

1采用基于峰度的统计过程控制进行早期故障检测;
2检测到故障后,利用短时傅立叶变换从振动信号中提取时频域频谱;
3然后将上述光谱输入CNN,将不同卷积层的所有学习特征串联起来进行RUL预测。

1首先从原始振动信号中提取三域特征;
2对声发射信号进行时域压缩,降低复杂度;
3所有的特征被连接并输入到一个前馈DNN用于RUL预测。

1采用Hilbert-Huang变换进行特征提取;
2CNN被用来将上述时频域特征映射到二进制健康状态:正常或故障。基于奇异值分解相关系数得到健康状态标签;
3CNN的高级特征表示被进一步发送到LSTM进行RUL预测。

四、 挑战与机遇
A、 挑战
在第四次工业革命(即工业4.0)中,一个关键目标是提升设备感知自身健康状态和预测未来行为的能力。PHM理论和实践的发展与这一目标相吻合。正如我们在前面的章节中所展示的,许多试点研究表明,深度学习是促进PHM应用的一个有希望的工具。但这项跨学科研究具有挑战性,未来的道路是漫长而艰巨的。在这一部分中,我们根据迄今为止所调查的工作,总结了一些迄今为止被忽视或没有得到充分处理的问题。我们也指出了未来深度学习在PHM中应用所面临的一些挑战。然而,值得注意的是,以下挑战可能并非PHM独有。一些挑战与其他领域的深度学习应用有共同之处。
首先,使用深度学习仍然是一门艺术。它要求有经验的实践者选择合适的深度学习模型,对过于复杂的模型进行正则化以防止过度拟合,选择适当的学习速率以加快收敛速度,调整超参数使模型具有更好的泛化能力,考虑大数据环境中的可扩展性,以及其他许多问题。所有这些要求都适用于PHM应用场景;例如,如表1所示,使用相同的模型来解决相同的问题会产生不同的测试精度。虽然深度学习以其自动化的特征学习能力而闻名,可以减轻特征工程中对特定领域知识的需求,但在采用深度学习技术时,上述要求又带来了另一个困难。解决问题有赖于深度学习理论的进一步发展。它还要求使用深度学习更好地记录PHM中的最佳实践。
第二,这里提到的大多数研究都是对从小规模实验中收集到的数据集进行模型验证,这导致了对实际应用的泛化能力较差。实验室实验试图模拟现实,但往往是用一些可能在现实中不成立的简单化或强有力的假设。现场项目健康状况的评估是复杂的,因为它可能会受到太多因素的影响,如操作条件、相互关联、多源和异构数据、噪声等。另一个问题是真实世界中标记样本的稀缺性。虽然在实验室测试中允许进行故障注入和运行到故障寿命测试,但出于安全和经济原因,破坏性实验在现实世界中通常受到限制,导致标签不足。尽管存在挑战,我们相信迁移学习是连接实验室测试和现实世界的桥梁,本节后面将详细介绍。一般来说,在实际PHM应用中应用深度学习要比在实验室中复杂得多,但我们预计未来会有更多的研究使用现场数据。
第三,非平稳数据流中的“概念漂移”问题,也称为协变量偏移,是一个重要但相对未被研究的方面。换句话说,在线数据可能具有时变特性,导致离线阶段训练的模型随着时间的推移变得过时。这通常适用于任何实际PHM应用,但在严格控制的实验室测试中,影响不太显著。概念漂移有时可以部分解释为上下文信息,如负载、转速、环境温度等。因此,有必要将上下文信息作为输入纳入深度学习模型。另一方面,概念漂移可能是由项目的内在机制和或有因素造成的,使其不可避免。为了防止由于概念漂移而导致预测精度下降,主动和被动解决方案都是合适的。前者依赖于显式的变化检测,并在检测到概念漂移后重新训练深度学习模型。后一种模型通过在新样本到达时调整网络参数来设计自适应模型。每种解决方案都有其优缺点,因此应针对特定的PHM场景分别对其进行研究。
第四,时效性是PHM应用中的首要问题。对故障发生的准确但较晚的预测可能没有足够的时间进行补救,从而造成损害或损失。这需要动态数据处理和低延迟响应。然而,目前的研究很少提及时间复杂性分析。深度学习算法通常需要计算,有些算法可能依赖于图形处理单元(gpu)的计算能力。传统的深度学习应用程序方案依赖于云计算,其中大量的数据被传输到云端进行计算,并将结果传输回最终用户。该方案可能存在带宽受限和响应延迟的问题。为此,人们提出了边缘计算,以使计算和存储更接近需要的位置。新方案充分利用了现场计算资源,提高了响应时间,节省了带宽。在PHM中部署边缘计算是另一个相关的挑战性任务。
最后但并非最不重要的是,如图1所示,一个理想的PHM解决方案应该在识别故障和估计被监控系统的RUL之后输出可操作的任务。可操作的任务可以是操作调整或规定性维护。决策理论在这里发挥作用,它考虑了诸如风险、任务关键性、生命周期成本、资源限制和成本效益平衡等因素。理论上,深度强化学习可以在由状态、行为和奖励组成的系统中发挥作用。最终目标是通过根据当前状态推荐可行的行动,最大限度地提高长期回报。然而,现实是复杂的,因为所有上述因素都可能沿时间轴变化。此外,要训练深度强化学习模式,很难获得足够的数据,一个三胞胎的集合,即“国家行动奖励”。信用分配问题是一个最终的挑战性任务,它为每个个体的行为分配长期的奖励或损失。据我们所知,在PHM领域尚未进行过此类研究。
B、 机会
幸运的是,机遇总是伴随着挑战。数据是可以反复利用以提取信息、知识和智慧的原材料。工业数字化正在加速数据采集的速度,增强数据的丰富性,提高计算能力。在需求方面,行业渴望高可靠性和高安全性,这正是PHM的初衷。由于深度学习具有强大的表示能力和对各种类型数据的普遍适用性,可以作为挖掘数据的工具,以实现PHM的目标。基于我们的回顾,在下面,我们指出了数据科学中的三个与技术相关的创新,为PHM的进一步改进提供了可能。
1) 迁移学习
迁移学习旨在利用在源问题中学习到的经验来改进目标问题的学习[206]。其主要优点有三:减少了对大量标记样本的需求;加快了模型训练的收敛速度;提高了预测精度。许多研究已经证明了迁移学习在PHM中的有效性,因此,我们相信它是一个非常有前途的研究工具。然而,正如我们前面在第III-C节中所讨论的那样,应注意防止负迁移,其中一个例子可以参考[191]。根据源和目标的域(特征空间及其边缘分布)和任务(标记空间和预测函数)的差异,转移学习可分为三种类型:归纳型、转化型和无监督型[206]。
无监督迁移学习的重点是解决无监督的目标问题,当源和目标中没有可用的标签时。虽然故障检测可以在无监督的情况下实现,但这方面的研究很少。
归纳迁移学习有不同的源任务和目标任务,需要目标问题中的一些标记数据来归纳预测函数。如第III-A节所述,Gibert等人。Kang等人。为了从图像数据中进行故障检测,两者都建立了一个深度多任务学习模型,即目标问题[56],[78]。在这两个研究中,源问题是物质分类,并且发现物质类的注释比断层类型的注释更容易。这是一种深思熟虑的做法,因为在某些情况下,很难按预期对数据进行注释,但很容易以不同的方式对其进行注释,从而为多任务学习提供了机会。PHM中被广泛研究的归纳迁移学习的另一个例子是预训练网络的重用,如LeNet、VGG、AlexNet和ResNet;更多示例见第三节。请注意,故障检测、诊断和预测可能具有相同类型的输入,但目标不同,如第三节所示。深度学习为这些PHM任务提供了一个通用框架。一个为一个任务设计的体系结构可以轻松地转换到另一个任务,这为迁移学习打开了窗口,尽管文献中很少有报道。例如,我们可以在新的情况下重用最初用于诊断的深层神经网络,只需将最终的软极大层替换为回归层,并对整个网络进行微调。
迁移学习具有相同的源任务和目标任务,但学习领域不同。此外,源问题中的标签是丰富的,而目标问题中的标签是稀疏的。源域和目标域之间的差异可能存在于特征空间或边缘分布上。前者描述了更大的差异,也称为域适应;因此,它可以更好地类似于从实验室测试转移到实际应用的情况。现有的这种类型的作品很少。我们相信在现实世界中大规模扩展PHM应用的挑战可以通过转移学习来解决。后者(边际分布的差异)代表了较小的差异,可以认为是样本选择偏差或协变量偏移。这种类型的例子出现在[134]、[191]中,其中一个源网络在一个操作条件下使用标签进行训练,然后在没有目标标签的情况下转移到另一个网络。操作条件的差异解释了投入边际分布的差异。
2) 数据扩充

一般来说,训练样本的数目直接影响到深层神经网络的精度上限。然而,数据标记通常是乏味的、费力的和昂贵的。我们可以使用数据扩充技术来获得更多的训练样本,以改善PHM应用程式的效能。例如,当在自然图像上采用随机裁剪、旋转、平移、缩放、剪切和弹性变换等方法来生成更多用于故障诊断的训练样本时,报告的精确度提高了[62]、[124]、[138]–[140]、[142]。这种对自然图像的数据增强的成功是由人类的视觉感知机制来解释的;例如,旋转的猫仍然可以被人脑识别为猫。自然图像的拍摄受环境光照、焦距、倾斜角度等因素的影响,说明了增强数据的有效性。其他需要了解系统基本原理的数据扩充方法,如高保真仿真,不在本文的讨论范围之内。
至于其他类型的数据,没有这样的直觉来指导我们生成更真实的数据。幸运的是,生成性对抗网络(Generative attersarial Network,GAN)的兴起和最近的发展提供了一个局部的解决方案。GAN是一种新型的深度学习框架,由生成器和鉴别器两种模型组成[207]。生成器的目的是生成合成样本,以便欺骗鉴别器,而鉴别器则试图将生成的伪数据与真实数据区分开来。这两种型号相互竞争,直到真品和假样品无法区分为止。利用这个框架,Shao等人。建立了一个辅助分类器GAN,命名为ACGAN,生成用于故障诊断的人工振动数据[208]。在类不平衡的情况下,使用基于GAN的数据扩充来补充小类并提高精度。更多的例子见[209]-[212]。
上述自然图像的数据增强方法依赖于领域知识,而基于GAN的数据增强是自动化的,无需人工干预。这类似于使用传统信号处理技术手工制作的特征,而不是使用深度学习的自动特征学习。更重要的是,通过适当的模型设计,基于GAN的数据扩充可以综合任何类型的数据,证明了它的普遍适用性。总的来说,虽然基于GAN的数据增强在PHM应用中的研究还处于初级阶段,但我们相信在未来的研究中有很大的应用机会。
3)端到端学习
如图8所示,端到端学习是指构建一个整体的网络,接收原始信号,直接输出想要的目标。这与分离学习不同,在分离学习中,特征学习和模式识别是独立的。端到端学习的主要优势是四倍。首先,它让数据说话;它可以捕捉数据中的任何统计数据,而不是被迫反映人类的先入之见。其次,特性工程是自动化的,不需要手工制作的特性。这极大地降低了对领域知识的依赖程度,并降低了PHM应用程序的障碍。第三,可以联合优化整个网络的参数,通常可以提高精度。这可以与单独学习相比较,在单独学习中,通过优化每个个体的学习阶段,可能无法实现全局最优。第四,网络是通用的,从架构的角度来看,它可以很容易地转移或适应不同但相似的场景。这与我们上面所说的是一致的:深度学习提供了一个通用框架,它增加了PHM应用中深度学习模型的可移植性。
尽管许多研究已经证明了端到端学习的有效性,但模型复杂性的增加将产生对更多标记训练样本的需求。将学习管道划分为几个步骤可能会有所帮助,特别是当标记数据在每个单独的步骤中已经足够,但从端到端角度来看还不够时。例如,使用图像数据的故障检测是通过单独学习-目标定位,然后进行目标分类来完成的[62],[63]。在训练样本有限的情况下,单独学习可以是一个很好的选择,因为人类的先验概念为特征学习提供了一种辅助方法。但是由于特征学习的自动化,当有足够的标签数据可用时,端到端学习应该受到青睐。我们还认为,结合手工制作的特性和自动学习的特性的混合模型可以进一步提高PHM应用程序的性能。
深度学习以其自动特征学习的能力而闻名。然而,一个重要但被忽视的事实是,学习到的特性是更大的“黑盒子”的一部分。我们认为PHM应用程序的这些特性中嵌入了大量的物理意义。这是研究揭开潜在机制神秘面纱的基本机会。如[137]所示,CNN可以被解释,并且可以获得对底层物理的新见解。更多的例子出现在[121],[124]。在这些研究中,自动学习的1D滤波器(卷积核)被可视化并发现与信号处理中使用的基函数相似;每一种方法都侧重于提取振动信号中的一个或多个特定频率分量。
五、结论
许多领域已经或正在被深度学习技术所改变,包括金融欺诈检测、医学图像诊断、机器翻译等等。由于PHM是一个数据密集型领域,因此它的研究也从深度学习理论的进步中获益。传统PHM应用程序有相当高的技术障碍,因为它们需要人类在统计、信号处理、领域知识和许多其他技能方面的专业知识。深度学习最吸引人的特点是不需要监督的特征学习的自动化。这大大降低了PHM应用程序的技术壁垒。
深度学习为PHM应用提供了一应俱全的框架:故障检测使用重构误差或在已学习的网络上堆叠一个二进制分类器来检测异常;故障诊断通常增加软最大层来进行多类分类;预后增加了一个连续回归层来预测剩余的使用寿命。具体的深度学习架构的选择取决于应用;这主要取决于可用数据的类型。本文中的分析可以建议如何为特定的应用场景选择合适的深度学习架构。
PHM中的问题解决和深度学习的理论发展可以看作是寄生虫和宿主,形成了一种互惠互利的机制。在文献中,越来越多的研究集中在使用深度学习进行故障检测、诊断和预后。本文综述了这些工作,揭示了一些共同的性质,指出了一些重要但被忽视的问题,并指出了未来研究的挑战和潜在的机会。在不久的将来,我们可以预见在PHM领域会有更多使用深度学习的研究和工业应用。

A Review on Deep Learning Applications in Prognostics and Health Management (翻译)相关推荐

  1. 综述论文翻译:A Review on Deep Learning Techniques Applied to Semantic Segmentation

    综述论文翻译:A Review on Deep Learning Techniques Applied to Semantic Segmentation 近期主要在学习语义分割相关方法,计划将arXi ...

  2. 【论文学习笔记】《A Review of Deep Learning Based Speech Synthesis》

    基于深度学习的语音合成综述论文学习 文章目录 基于深度学习的语音合成综述论文学习 1 简介 2 语音合成概述 2.1 语音合成概念 2.2 语音合成发展历史 2.3 传统语音合成技术 2.3.1 拼接 ...

  3. Hierarchical Roofline Performance Analysis for Deep Learning Applications

    Roofline 模型是劳伦斯伯克利国家实验室在2008年提出的一个性能模型,后续很多工作亦出自该实验室.考虑到分层 Roofline 这一概念已在先前的 Hierarchical Roofline ...

  4. A Review on Deep Learning Techniques Applied to Semantic Segmentation

    1. 研究问题 本文对基于深度学习的语义分割算法进行综述,主要贡献如下: 提供了对现有数据集的广泛调查. 对基于深度学习的语义分割算法进行了深入的回顾. 全面的性能评估,收集准确度.执行时间和内存占用 ...

  5. 5.论文学习A review of deep learning in medical imaging: Imaging traits, technology trends, case studies

    目录 一.综述 1.医学成像的特点 2.临床需要和应用 3.关键技术和深度学习 4.历史回顾 5.新型的深度学习方法 1.网络架构 加深网络架构 对抗机制和注意力机制 神经结构搜索NAS与轻量化设计 ...

  6. Deep learning for prognostics and health management:State of the art,challenges,and opportunities 翻译

    预测和健康管理的深度学习:现状.挑战和机遇 摘要 提高工程系统的可靠性是航空航天.核能和水偏流等工程领域中许多应用的关键问题.这就需要高效有效的系统健康监测方法,包括处理和分析大量的机械数据以检测异常 ...

  7. [转]综述论文翻译:A Review on Deep Learning Techniques Applied to Semantic Segmentation

    近期主要在学习语义分割相关方法,计划将arXiv上的这篇综述好好翻译下,目前已完成了一部分,但仅仅是尊重原文的直译,后续将继续完成剩余的部分,并对文中提及的多个方法给出自己的理解. _论文地址:htt ...

  8. 深度学习在slam的应用Deep Learning Applications in SLAM

    2022 摘要 同时定位与映射(SLAM)是近年来智能机器人领域的研究热点.其处理对象是视觉图像.深度学习在计算机视觉领域取得了巨大成功,这使得深度学习与slam技术的结合成为一个可行的方案.本文总结 ...

  9. 论文解析(1)——语义分割(求索ljj解读:A Review on Deep learning Techniques Applied to Semantic Segmentation)(更新中))

    论文地址:https://arxiv.org/abs/1704.06857 摘要: 社会需求:精确且高效的分割技术. 现需领域:自动驾驶,室内导航,虚拟现实,增强现实等. 技术发展:语义分割,场景理解 ...

最新文章

  1. PHP 获取当前类名、方法名、URL地址
  2. 深度学习编译:MLIR初步
  3. 搭建SSM框架的配置文件
  4. 如何隐藏Windows7 系统保留分区
  5. 多线程编程中锁的种类与应用举例
  6. Linux之进程处理方式
  7. PostgreSQL内核扩展之 - ElasticSearch同步插件
  8. 关闭445端口bat脚本
  9. MATLAB音频数字水印算法实现
  10. 论文笔记SKEP: Sentiment Knowledge Enhanced Pre-training for Sentiment Analysis
  11. AI插画设计,用AI制作一个只可爱的短腿柯基插画
  12. ubuntu14.04安装krita
  13. 微信小程序社区疫情防控+后台管理系统|前后分离VUE
  14. SW3518快充方案
  15. multiple definition of `_start'
  16. 邀请码 java_邀请码生成器Java代码详解
  17. 组策略(GPO)利用与横向移动
  18. ZJOI2008 泡泡堂
  19. js 模拟短信发送 JavaScript
  20. pinia 的使用(一)—— 基本介绍

热门文章

  1. ARP家族--ARP,代理ARP,Gratuitous ARP
  2. 【线性代数】矩阵的初等变换
  3. Android异常解决--A WebView method was called on thread 'JavaBridge'. All WebView methods must be called
  4. Java统计中的计数方法
  5. 阿里云安骑士和态势感知SAS有区别吗?
  6. flutter加载网络图片与本地图片
  7. 快速克隆 vue-element-admin
  8. 微积分——Rolle定理的理解(罗尔定理)
  9. js室内地图开发_室内地图 JavaScript API
  10. 怎样用C语言编写病毒