如何使用机器学习进行异常检测和状态监测(附实例)

您所在的位置:网站首页 王者怎么检测网络异常 如何使用机器学习进行异常检测和状态监测(附实例)

如何使用机器学习进行异常检测和状态监测(附实例)

2023-03-10 19:05| 来源: 网络整理| 查看: 265

前言

机器的故障诊断,银行交易的欺诈监测都属于异常检测的典型应用。在行业应用里面,基于先验知识的模型还在应用,但是基于机器学习的模型也在崭露头角。今天我们分享一下行业大拿的经验之作,本文已获得原作者的授权翻译,未经许可,请勿转发。

在本文中,作者将介绍几种不同的技术,包含机器学习和统计分析的应用。​然后说明如何在特定的案例中应用这些方法来解决异常检测和状态监测。

数字化转型,数字化,工业4.0等

这些都是我们以前听说过或阅读过的术语。但是,在这些流行的术语背后,主要目标是利用技术和数据来提高生产率和效率。设备和传感器之间的信息和数据流互联,可以获得大量可用数据。关键技术在于如何能够使用这些海量可用数据并实际提取有用的信息,从而尽可能降低成本,优化库存并将停机时间降至最低。这是最近有关机器学习和数据分析崭露头角并方兴未艾的地方。

异常检测

异常检测(或离群值检测)是从事件或观察结果中识别出罕见现象,这些事件由于与大多数数据有着显著差异而被怀疑为异常。通常,异常数据会与某些问题或罕见事件关联,例如银行欺诈,医疗问题,结构缺陷,设备故障等。因为从业务角度来看,识别这些事件通常非常有趣,所以这种关联让人们有兴趣找出哪些数据点可以视为异常。

这就要提到关键目标之一:我们如何确定数据点是正常还是异常?在一些简单的情况下,数据可视化可以为我们提供重要的信息,如下图所示​。

图1:两个变量的异常检测

在二维数据(X和Y)的情况中,通过定位位于典型散点分布区之外的数据点使得视觉上识别异常非常容易。但是,从右侧图来看,无法同时通过只查看一个变量直接识别异常值:而X和Y变量的组合使我们能够轻松识别异常。当我们从两个变量扩展到10-100倍的变量时,这使问题变得非常复杂。而这在异常检测的实际应用中恰恰是常态。​

与状态监控的联系

任何机器,无论是旋转机器(泵,压缩机,燃气轮机或蒸汽轮机等)还是非旋转机器(热交换器,蒸馏塔,阀门等)都将最终变成欠健康状态。有可能不会真的发生故障或停机,但是设备无法处于最佳状态。这表明可能需要进行一些维护才能恢复最佳运行状态。简而言之,确定设备的“健康状态”是状态监测的领域。

实施状态监测最常见方法是监控机器上的每个传感器测量值,并对其施加最小和最大值限制。如果当前值在范围之内,则机器运行状况良好。如果当前值超出范围,则机器运行不正常,并发送警报。

我们已经发现,硬编码警报上下限会发送大量错误警报,也就是实际上是机器处于健康状态却发出警报。也会有未警报的情况,也就是明明有问题但未被警报。第一个问题不仅浪费时间和精力,而且浪费设备的可用性。第二个问题更为关键,因为它会导致实际损坏以及相关的维修成本和生产损失。

这两个问题都是由相同的原因造成的:复杂设备的健康状况(如上一节中的异常检测中的图1所示)无法根据单个测量的分析来可靠地判断。我们需要考虑各种测量方法的组合,以便真正了解情况。

技术部分:

在不涉及某些技术方面的情况下,我们很难讲解机器学习和统计分析在异常检测的应用。我们仍将避免过分深入理论背景(但会提供一些更详细说明的链接)。如果你对状态监控等机器学习和统计分析的实际应用更感兴趣,请随时跳到“状态监控案例”部分。

方法1:多元统计分析使用主成分分析进行降维:PCA

处理高维数据通常很有挑战性,因此我们需要一些技术来减少变量的数量(降维)。主要技术之一是主成分分析(PCA),该方法将数据线性映射到低维空间,以使低维表示中的数据差异最大化。实践中会构建数据的协方差矩阵以及计算该矩阵的特征向量。最大特征值(主成分)相对应的特征向量可以用于重构原始数据方差的主要部分。之后,原始特征空间已减少到由几个特征向量占据的空间(有一些数据丢失,但希望保留最重要的方差)。

多元异常检测

如上所述,在识别异常时,数据可视化在处理一个或两个变量时,通常是一个很好的起点。但是,如果扩展到高维数据时(在实际应用中多是如此),这种方法变得越来越困难。这里多元统计可以解决问题。

在处理数据点集合时,它们通常具有一定的分布(例如:高斯分布)。为了以更定量的方式检测异常,我们首先计算数据点的概率分布p(x)。当有新样本X 时 ,我们把 p(x)和阈值r进行比较。如果p(x)自动编码器网络结构

对于异常检测和状态监测来说,基本思想是使用自动编码器将传感器读数“压缩”为较低维的表示形式,该表示形式可捕获各种变量之间的相关性和相互作用。(基本上与PCA模型相同,但在这里我们还允许变量之间进行非线性交互)。

然后以代表“正常”运行状态的数据对自动编码器网络进行训练,目标是“压缩”之后能重构输入变量。在降维过程中,神经网络将学习各种变量之间的相互作用,并能够将它们重新构造回原始输入变量。主要思想是随着受监控设备的性能退化,这将影响变量之间的相互作用(例如,温度,压力,振动等变化)。当状况发生时,我们将开始看到在神经网络重构输入变量时误差显著增加。通过监测重构误差,可以获得被监测设备的“健康状况”指示,因为随着设备退化,该误差将增加。类似于马氏距离,这里使用重构误差的概率分布来确定数据点是正常还是异常。

状态监控案例:齿轮轴承故障

在本节中,我将介绍使用上述两种不同方法进行状态监测的案例。由于我们与客户合作的数据都不公开,因此我选择了NASA提供的数据来进行演示,可以在此处下载。

此案例的目标是检测发动机上的齿轮轴承退化,并发出警告促使采取预防措施以避免齿轮故障(例如设备的计划维护/维修) 。

实验细节和数据准备

在恒定负载和运行条件下,三组失效数据(每个数据由四个轴承组成)。数据集中包含振动测量信号,涵盖轴承的整个使用寿命范围,直到出现故障为止。轴承1亿次循环后发生故障,外圈破裂(有关实验的更多信息,请参见下载页面的自述文件)。因为设备最终运行直至出现故障,所以我们认为运行前两天的数据代表正常和“健康”设备,用作训练数据。然后将其余部分直到轴承失效的数据集用作测试数据,这样来评估不同的方法是否可以在失效之前检测轴承退化。

方法1:PCA +马氏距离

如本文“技术部分”中更详细说明所述,第一种方法先进行主成分分析,然后计算马氏距离(MD),来识别数据为正常或异常(设备退化的迹象) 。下图说明了代表“健康”设备的训练数据的MD分布。

健康设备的马氏距离分布

根据“健康”设备的MD分布,我们可以设定异常的阈值。根据上面的分布,我们将MD> 3定义为异常。现在,对这种设备性能下降检测方法的评估包括:计算测试集中所有数据点的MD,并将其与定义的阈值进行比较,判断将其标记为异常与否。

对测试数据进行模型评估

使用上述方法,我们计算了直到轴承出现故障的时间段内测试数据的MD,如下图所示。

采用方法1预测轴承失效

在上图中,绿点表示计算出的MD,而红线代表用于标记异常的阈值。轴承失效发生在数据集的末尾,由黑色虚线表示。这说明第一种建模方法能够在实际故障(MD超过阈值)的三天之前检测到即将发生的设备故障。

现在,我们可以使用第二种建模方法进行类似的练习,以评估哪种方法的效果更好。

方法2:人工神经网络

如本文“技术部分”中所述,第二种方法包括使用自动编码器神经网络来发现异常(通过神经网络的重构误差增加来识别)。与第一种方法类似,我们在这里也使用表示“健康”设备的训练数据作为输入训练网络,用模型的输出分布来检测异常。下图显示了训练数据的重构误差(平均绝对误差)的分布:

健康设备的重构误差分布

根据“健康”设备重构误差的分布,我们可以定义异常的阈值。根据上面的分布,我们可以将误差> 0.25定义为异常。现在,对检测设备退化的方法评估包括:计算测试集中所有数据点的重构误差,并将误差与定义的阈值进行比较以将其标记为异常

对测试数据进行模型评估:

使用以上方法,我们计算直到轴承出现故障的时间段内测试数据的重构误差,如下图所示。

采用方法2预测轴承失效

上图中蓝点表示重构误差,而红线表示用于标记异常的定义阈值。轴承失效发生在数据集的末尾,由黑色虚线表示。这说明该建模方法也能够在实际故障(重构误差超过阈值)的三天之前检测到即将发生的设备故障。

总结

从以上两种异常检测的方法看出,它们都能够在实际故障发生前几天成功检测到即将发生的设备故障。在现实生活中,这将允许在故障发生之前采取预测措施(维护/维修),这既节省了成本,又对设备故障的HSE方面具有潜在的重要性。

编者按

本文作者Vegard Flovik是同行翘楚,目前是Axbit公司首席数据科学家,具有博士学位,在莫尔德大学担任助教。作者具能源行业的扎实实战背景,具有强大的分析能力,可以通过数学模型和计算算法来解决复杂的问题。在AI /机器学习和使用Python和Matlab进行数据分析方面的丰富经验,精通Scikit-learn,TensorFlow,Keras,PyTorch,Pandas等机器学习工具。

原文链接: https://towardsdatascience.com/how-to-use-machine-learning-for-anomaly-detection-and-condition-monitoring-6742f82900d7

本文代码将在后续文章详解。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3