https://www.toutiao.com/a6653038876652732939/
2019-02-01 22:28:43
本文将介绍机器学习和统计分析的几种不同技术和应用,然后展示如何应用这些方法来对特定用例进行异常检测和状态监控。
数字化转型,数字化,工业4.0等......
这些都是你之前可能听过的术语。然而,这些流行语背后的主要目标是使用技术和数据来提高生产力和效率。设备和传感器之间的信息、数据的连接和流动使大量可用数据存在。之后,关键的推动因素是能够使用这些大量可用数据,并从中提取有用信息,从而降低成本、优化容量并将停机时间降至最低。这是最近围绕着机器学习和数据分析的传言怎么发挥作用的。
异常检测
异常检测Anomaly detection(或outlier detection)是通过与大多数数据不同而引起怀疑的罕见项目、事件或观察的识别。通常,异常数据可以与某种问题或罕见事件相关联,例如,银行欺诈、医疗问题、结构缺陷、故障设备等。这种联系使得能够挑选出哪些数据点可被视为异常变得有趣,因为从业务角度来看,识别这些事件通常非常有趣。
这带来了一个关键目标:我们如何识别数据点是正常的还是异常的?在一些简单的情况下,如下面的示例图所示,数据可视化可以为我们提供重要信息。
图1:两个变量的异常检测
在这种二维数据(X和Y)的情况下,通过位于典型分布之外的数据点,进行可视地识别异常变得非常容易。然而,看右边的数字,不可能直接从调查一个变量来识别异常值:它是X和Y变量的组合,使我们能够轻松识别异常。当我们从两个变量扩展到10-100个变量时,这个问题变得更加复杂,而在异常检测的实际应用中经常出现这种情况。
连接到状态监测
任何机器,无论是旋转机器(泵、压缩机、燃气或蒸汽轮机等)还是非旋转机器(热交换器、蒸馏塔、阀门等),最终都会出现运作状况不佳的时候。这种情况可能不是实际故障或关闭,而是设备不再处于最佳状态。这表明可能需要一些维护活动来恢复机器的全部运行潜力。简单来说,确定我们设备的“健康状态”是状态监控的领域。
执行状态监控的最常用方法是查看机器的每个传感器测量值,并对其施加最小值和最大值限制。如果当前值在边界内,那么机器是健康的。如果当前值超出范围,则机器运行不正常并发送警报。
已知这种施加硬编码警报限制的过程发送大量错误警报,这些警报是对于机器的实际健康状态的情况的警报。还有缺失的警报,即会有问题时但没有发送警报的情况。第一个问题不仅浪费时间和精力,而且还浪费设备的可用性。第二个问题更为重要,因为它会导致真正的损失,导致相关维修成本和生产损失。
这两个问题都是由同一个原因引起的:根据每个测量结果的分析,不能可靠地判断复杂设备的健康状况(如上面关于异常检测的部分中的图1所示)。我们必须考虑各种测量的组合,以获得真实的情况指示。
技术部分:
很难在不涉及深层次技术的情况下,涵盖机器学习和异常检测统计分析的主题。我仍然会避免深入理论背景(但会提供一些更详细的描述链接)。如果您对机器学习和统计分析的实际应用更感兴趣,例如状态监控,可以跳到“状态监测应用案例”部分。
方法1:多变量统计分析
使用主成分分析降低维数:PCA
处理高维数据通常具有挑战性,有几种技术可以减少变量的数量(减少维数)。主要技术之一是主成分分析(PCA),通过使低维表示中的数据的方差最大化来执行数据到较低维空间的线性映射。在实践中,构造数据的协方差矩阵并计算该矩阵的特征向量。对应于最大特征值(主成分)的特征向量现在可用于重建原始数据的大部分方差。现在,原始特征空间已经减少(有一些数据丢失,但有希望保留最重要的方差)到几个特征向量所跨越的空间。
多变量异常检测
如上所述,为了在处理一个或两个变量时识别异常,数据可视化通常是一个很好的起点。然而,当将其扩展到高维数据时(在实际应用中经常是这种情况),这种方法变得越来越困难。幸运的是,这种情况下多变量统计数据能够提供帮助。
当处理数据点集合时,它们通常具有特定分布(例如高斯分布)。为了以更加定量的方式检测异常,我们首先从数据点计算概率分布p(x)。然后当一个新的例子x进来时,我们将p(x)与阈值r进行比较。如果p(x)<r,则认为是异常。这是因为正常的例子倾向于具有大的p(x)而异常的例子倾向于具有小的p(x)。
在状态监控的背景下,这很有意思,因为异常可以告诉我们关于被监测设备的“健康状态”的信息:当设备接近故障或次优操作时产生的数据通常与来自“健康”的设备的数据分布不同。
马式距离
如上所述,想想估计数据点属于分布的概率的问题时,第一步是找到质心或样本点的质心。可以很直观地看到,所讨论的点越接近这个质心,就越有可能属于该集合。但是,我们还需要知道该组是在大范围还是小范围内展开,以便可以决定距离中心的给定距离是否值得注意。简化方法是估计样本点距质心的距离的标准差。通过将其插入正态分布,我们可以推导出属于同一分布的数据点的概率。
上述方法的缺点是我们假设样本点以球形方式围绕质心分布。如果分布明显是非球形的,例如椭球形,那么我们可以预期属于该组的测试点的概率不仅取决于距质心的距离,而且还取决于方向。在椭圆体具有短轴的那些方向上,测试点必须更近,而在轴长的那些方向上,测试点可以更远离中心。将其置于数学基础上,可以通过计算样本的协方差矩阵来估计最能代表集合概率分布的椭球。马式距离(MD)是测试点距质心的距离除以椭圆体在测试点方向上的宽度。
为了使用MD将测试点分类为属于N个类之一,首先通常基于已知属于每个类的样本来估计每个类的协方差矩阵。在案例中,由于我们只针对“正常”与“异常”的分类,我们使用仅包含正常操作条件的训练数据来计算协方差矩阵。然后,给定测试样本,我们将MD计算为“正常”类,并且如果距离高于某个阈值,则将测试点分类为“异常”。
注意事项:使用MD意味着可以通过均值和协方差矩阵进行推理—这只是正态分布的一个属性。在我们这个情况下,这个标准不一定满足,因为输入变量可能不是正态分布的。但是,无论如何我们都要试试看它的效果如何!
方法2:人工神经网络
自动编码器网络
第二种方法基于使用自动编码器神经网络。它基于与上述统计分析类似的原则,但略有不同。
自动编码器是一种人工神经网络,用于以无人监督的方式学习有效的数据编码。自动编码器的目的是学习一组数据的表示(编码),通常用于降低维数。与缩小侧一起,学习重建侧,其中自动编码器尝试从缩减编码生成尽可能接近其原始输入的表示。
在结构上,最简单的自动编码器形式是前馈非递归神经网络,非常类似于许多单层感知器,它们构成了多层感知器(MLP)—具有输入层、输出层和连接它们的一个或多个隐藏层—但是输出层具有与输入层相同数量的节点,并且具有重建输入的目的。
图2:自动编码器网络
在异常检测和状态监控的背景下,基本思想是使用自动编码器网络将传感器读数“压缩”为较低维度的表示,其捕获各种变量之间的相关性和相互作用。(基本上与PCA模型的原理相同,但在这里我们也允许变量之间的非线性相互作用)。
然后,对表示“正常”操作状态的数据训练自动编码器网络,目的是首先压缩然后重构输入变量。在维数降低期间,网络学习各种变量之间的相互作用,并且应该能够将它们重新构造回输出处的原始变量。主要思想是,当被监测设备降级时,应该会影响变量之间的相互作用(例如温度,压力,振动等的变化)。当这种情况发生时,人们将开始看到网络重构输入变量的错误增加。通过监视重建错误,可以获得被监视设备的“健康”的指示,因为该错误将随着设备降级而增加。与使用马式距离的第一种方法类似,我们在此使用重建误差的概率分布来识别数据点是正常的还是异常的。
状态监控应用案例:齿轮轴承故障
在这一部分中将使用上述两种不同的方法实际应用状态监测。由于我们与客户合作的大部分数据都是不公开的,因此我选择在NASA提供的数据上展示两种方法。
对于这个用例,目标是检测发动机上的齿轮轴承退化,并发出警告,允许采取预测措施以避免齿轮故障(例如可能是设备的计划维护/修理) 。
实验细节和数据准备:
在恒定负载和运行条件下,每组由四个轴承组成的三组数据运行失败。在轴承的使用寿命期间为数据集提供振动测量信号直到失效。在外圈出现裂缝的1亿次循环后发生故障(有关实验的更多信息,请参阅下载页面的自述文件)。当设备运行直至失败时,前两天的数据被用作训练数据以代表正常和“健康”得设备。然后将导致轴承失效的剩余部分数据集用作测试数据,以评估不同方法是否能够在失效之前检测到轴承退化。
方法1:PCA + 马氏距离
正如本文“技术部分”中详细解释的那样,第一种方法包括首先执行主成分分析,然后计算马式距离(MD)以将数据点识别为正常或异常(设备退化的迹象) 。表示“健康”设备的训练数据的MD分布如下图所示。
图3:“健康”设备的马式距离分布
使用MD为“健康”设备的分布,我们可以定义考虑异常的阈值。从上面的分布,可以(例如)定义MD> 3作为异常。现在,对这种检测设备退化的方法的评估包括计算测试集中所有数据点的MD,并将其与定义的阈值进行比较,以将其标记为异常。
测试数据的模型评估:
使用上述方法,我们计算了导致轴承失效的时间段内测试数据的MD,如下图所示。
图4:使用方法1预测轴承故障
在上图中,绿点对应于计算的MD,而红线表示用于标记异常的定义的阈值。轴承故障发生在数据集的末尾,由黑色虚线表示。这说明第一种建模方法能够在实际故障前3天(MD超过阈值)检测到即将发生的设备故障。
现在可以使用第二种建模方法进行类似的练习,以评估哪种方法表现更好。
方法2:人工神经网络
如本文“技术部分”中详细解释的,第二种方法包括使用自动编码器神经网络寻找异常(通过增加的网络重建损失来识别)。与第一种方法类似,我们在此也使用模型输出的分布来表示“健康”设备的训练数据以检测异常。训练数据的重建损失(平均绝对误差)分布如下图所示:
图5:“健康”设备的重建损失分布。
利用“健康”设备的重建损失分布,我们现在可以定义一个考虑异常的阈值。从上面的分布,我们可以(例如)定义损失> 0.25作为异常。现在,对检测设备退化的方法的评估包括计算测试集中所有数据点的重建损失,并将损失与定义的阈值进行比较,以将其标记为异常。
测试数据的模型评估:
使用上述方法,我们计算在导致轴承故障的时间段内测试数据的重建损耗,如下图所示。
图6:使用方法2预测轴承失效
在上图中,蓝点对应于重建损失,而红线表示用于标记异常的定义的阈值。轴承故障发生在数据集的末尾,由黑色虚线表示。这说明该建模方法也能够在实际故障之前大约3天检测到即将发生的设备故障(其中重建损失超过阈值)。
如上面关于异常检测的两种不同方法的部分所示,两种方法都能成功地在实际故障发生前几天检测到即将发生的设备故障。在现实生活中,这将允许在故障之前采取预测措施(维护/修理),意味着既节省成本又对设备故障的HSE方面具有潜在重要性。
随着通过传感器捕获数据的成本降低,以及设备之间增加的连接性,能够从数据中提取有价值的信息变得越来越重要。在大量数据中查找模式是机器学习和统计的领域,利用隐藏在这些数据中的信息来提高几个不同领域的性能有很大的可能性。如本文所述,异常检测和状态监控只是众多可能性中的一种。