APP下载

少量标签机电设备大数据故障预测方法

2021-01-22江炳城

桂林电子科技大学学报 2020年4期
关键词:机电设备标签森林

何 倩, 黄 焕, 刘 阳, 江炳城, 申 普

(1.桂林电子科技大学 卫星导航定位与位置服务国家地方联合工程研究中心,广西 桂林 541004;2.广西交科集团有限公司, 南宁 530007)

随着移动互联网、物联网、智能制造、智能家居等技术的发展和普及,越来越多的智能设备应用在社会生产生活的各个领域。一方面,在工业制造、交通运输等传统的机电设备应用领域,设备智能化已经广泛普及[1];另一方面,在家居家电、健康监控等新领域,智能机电设备正在发挥越来越大的作用[2]。

智能机电设备在工业制造、交通运输、智能家居和健康监控等各个应用领域采集了海量的数据[2-4]。智能机电设备的广泛应用给大数据的采集接入提供服务的同时,自身也产生了对应的大量状态数据[5]。如何利用这些状态数据进行大数据分析,进而维护智能机电设备的正常运行又成了一个新的研究问题。故障预测是机电设备运行维护的核心技术。传统机器学习分类算法的故障预测方法需要充足的标签样本,已经不适用于智能机电设备的广泛快速部署需要。

智能机电设备运维的根本目的是保障服务质量的良好和稳定,保障服务质量的首要手段是及时准确地发现故障。近年来,国内外学者利用机电设备日常维护维修数据对机电设备故障与其影响因素之间的关系进行了大量的研究。Yu等[6]研究了高速公路机电设备故障与温度、湿度、风速和交通流量的关系;Li等[7]研究了煤矿机电设备与温度、湿度和扬尘的关系;Wang等[8]提出了基于溶解气体分析的电网变压器故障预测方法;Son等[9]提出了基于振动频率和电流的微机电设备故障预测方法。对机电设备进行故障分析有助于找出故障原因,进而及时修复,保障服务质量。

以上机电设备故障分析方法主要是针对样品设备进行小样本的、结合先验知识的方法研究。然而,智能机电设备故障分析相比之下具有2个主要特征:

1)大量部署的智能机电设备运营维护需求对海量实时数据进行准确和快速的处理,这要求高性能的并发计算方法和低延时的通信手段。

2)不断更新换代的智能机电设备产品难以生成足够的标签样本数据,这意味着依赖标签的监督学习方法无法直接使用。因此,有必要研究一种满足新需求的智能机电设备故障分析方法。

面向智能机电设备大数据故障预测问题,提出了一种基于改进梯度提升树算法的智能机电设备故障预测服务,主要贡献有:

1)将无监督学习方法独立森林算法引入智能机电设备故障预测,通过独立森林为无标签的智能机电设备状态数据补充标签;

2)使用监督学习方法梯度提升树算法通过补足标签的智能机电设备状态数据训练故障预测模型,用于实时故障预测;

3)基于Spark的弹性数据集机制并行化独立森林-梯度提升树算法,通过高性能的并发计算满足智能机电设备故障预测的准确和快速需求。

1 相关工作

机电设备的故障预测方法可以根据原理分成3类:基于先验模型的分析方法、基于无监督学习的分析方法和基于监督学习的分析方法。其中基于先验模型的分析方法假设数据的变化是可以直接根据数学物理知识直接描述的:拟合模型的数据表示正常,不拟合模型的数据则表示故障。在低维、可解释的数据中基于先验模型的分析方法很方便,然而日趋复杂的机电设备结构和故障影响因素使得数据模型很难直接用先验知识解释,所以基于知识模型的分析方法已经渐渐退出了历史的舞台。

基于无监督学习的分析方法基于故障数据相对于正常数据是异常和稀少的假设。使用模型对数据进行评估,结果超过阈值的判定为异常。常见的方法有基于统计模型、基于距离、基于密度等[10]。如文献[11]提出了一种基于K均值聚类的低压直流电负荷稳态检测方法,通过训练一个根据设备电流波形特征识别设备状态的模型,实现了有效的小型电网负荷稳态的检测识别。文献[12]提出了一种基于DBSCAN的冷水机组故障检测方法,通过结合主成分分析模型和DBSCAN聚类,自动将传感器收集的数据分类并识别出故障信息。文献[13]提出了一种基于层次聚类的CT指示剂剂量检测方法,通过结合层次聚类和K均值聚类,快速识别CT系统剂量指标异常。无监督学习方法基于数据本身进行聚类识别,不需要分类标签,但是为了达到较好的输出结果,往往需要大量的人工干预调节。

基于监督学习的分析方法需要具有标签的数据样本。根据输入的数据训练模型,使用模型对数据进行预测分类和测试准确度。如果数据与标签的关系符合采用模型方法的适用领域,就可以轻松地得到较高精度的分类模型。常见的方法有朴素贝叶斯、K近邻、决策树系列等。如文献[14]针对复杂设备组的故障预测,研究了基于C4.5决策树算法的数据分类方法,提出了一种基于决策树的故障模式预测方法。文献[15]针对齿轮变速箱的齿轮故障原因研究,通过分析电机的电流和电压特征,使用2种机器学习算法——决策树算法和支持向量机算法,进行传统振动分析和电机电特征分析(MESA)之间的比较。文献[16]针对设想的5G基站的中断问题尝试使用隐马尔可夫模型来自动捕捉基站的当前状态并估计一个小区发生中断的概率。仿真结果表明,该策略能够以平均80%的准确率预测基站的状态,并能在95%的时间内正确检测小区中断。监督学习方法依靠标签信息拥有较高的分类精度,然而一旦标签不足,往往训练不出高识别能力的分类模型。

2 机电设备智能运维与故障预测

2.1 机电设备智能运维系统架构

机电设备运维系统从数据流的角度分析,可分为数据采集、数据传输、数据分析和结果反馈4个部分,其中从数据中挖掘出关键信息的数据分析部分是运维的核心。在运维的早期阶段,数据分析依赖人工操作,需要工程师的专家经验和手动处理,这样的运维方法又称人工运维。人工运维占用了宝贵的人力资源,无法满足快速扩展的设备规模对应的处理需求。于是运维工程师设计了自动化脚本来处理工作中大量的计算和判断,将人力从繁琐的重复工作中解放出来,这就是自动化运维。自动化运维面对不同场景需要对应的自动化脚本,脚本生成的逻辑和参数设置仍依赖运维工程师的专家经验,在应用场景日益复杂的当下也逐渐不敷使用。在硬件、软件和云服务提供商的探索中,智能运维(AIOps)[17]应运而生。智能运维是指基于分析理论和机器学习等方法分析和学习设备、服务和系统等产生的大量状态数据,从而自动地发现问题、分析原因、反应处理的运维方式。机电设备智能运维系统架构如图1所示。

图1 系统架构

数据采集:通过机电设备和其他智能设备的传感器、定位器等装置采集设备关键状态信息,如电压、电流、经度、纬度、温度、湿度等。采集到的数据打包后通过协议加密,使用通信协议传输。

数据传输:基于智能网关等网络设备接入有线和无线网络,远程传输到云中心后解密预处理并存入消息队列中等待数据分析。

数据分析:对设备状态数据进行分析和处理。机电设备运维的核心是数据分析,数据分析的首要任务是发现问题,即故障预测,利用已经训练好的故障诊断模型对大量机电设备状态数据进行高效准确的处理,输出故障预测结果。

结果输出:将数据分析的结果推送到后续应用服务,如监控界面/客户端报警提示、数据库持久化存储和自动恢复操作等。

2.2 智能故障预测流程

智能运维的故障预测通常使用监督学习算法,从标签样本数据学习故障表征知识建立模型用于故障预测。监督学习算法的准确需要合适的模型和充分的标签样本数据。早期样本数据的标签一般基于测试人员的专家经验生成。目前,智能机电设备的应用领域已经由工业生产扩张到通信设施、云服务甚至家用电器,大量种类机电设备的投入使用对应的先期测试成本不可忽视。为了满足智能机电设备故障预测高精度、快反应和少量标签的要求,基于无监督学习算法独立森林改进监督学习算法梯度提升树,提出了一种半监督学习方法IF-GBDT:利用独立森林算法,基于少量标签样本为无标签样本提供标签,为梯度提升树算法的模型训练提供充足标签样本,从而减少了梯度提升树算法的标签样本需求。IF-GBDT算法示意图如图2所示。

图2 IF-GBDT算法示意图

少量标签样本:来自早期的设备试验运行结果,具有设备的关键状态信息和故障标签,标签包含测试人员的专家经验。

大量无标签样本:来自设备的试运行阶段和正式运行阶段的收集结果,具有设备的关键状态信息。因为没有标签,无法直接用于监督学习算法的模型训练。

待处理数据:设备正式运行阶段的实时采集结果,包含设备的关键状态信息,经由通信协议和组件传递,需要准确而快速的故障预测数据处理。

独立森林模型:由少量标签样本训练生成,根据测试结果计算数据的异常评估值,基于标签数据得到异常评估阈值。基于异常评估阈值,对大量无标签样本进行异常评估,将异常评估值高于或等于阈值的数据标记为故障,小于阈值的数据标记为无故障。

充足标签样本:由少量标签样本与通过独立森林模型补充标签的原大量无标签样本合并组成,用于后续梯度提升树模型的训练。

梯度提升树模型:由充足标签样本训练得到,用于处理实时机电设备状态数据,输出故障预测结果。

故障预测结果:输出到后续应用服务,如:存入分布式数据库以便后续的查询和数据研究;为运营维护人员提供可视化监控界面,并基于故障预测结果提供故障警报,提醒运行维护人员及时处理。

2.3 基于Spark的智能故障预测实现

为高效及时地处理海量智能机电设备数据,基于Spark的弹性数据集(resilient distributed datasets,简称RDD)机制实现了算法的并行化。Spark采用“Master-Worker”的组成方式。用户向Master节点提交计算项目,Master节点利用有向无环图规划项目的执行步骤,每步都可以分割出并行执行的分任务,将经过多次并行化处理的弹性数据集合并输出到指定目录、HDFS或者支持数据库。Spark并行化处理如图3所示。

图3 Spark并行化处理

Master:Spark集群的主节点,负责管理集群资源的分配和调度与执行项目的角色分配,并利用有向无环图(directed acyclic graph,简称DAG)将项目分解成可并行化执行的任务。

Worker:Spark集群的分节点,负责并行化执行已分解的任务并输出结果。

Driver:Worker节点角色分工的一种,负责分配已规划好的任务和汇总数据处理结果。

Executor:Worker节点角色分工的一种,根据分配到的任务处理任务对应的数据分片,输出处理结果。

独立森林模型建立过程中每棵独立树相互独立,互不影响,可以轻松实现并行化。首先,每颗独立树的训练作为单个任务分配到可用的Executor;然后,各Executor读取样本数据并训练随机的独立树;最后,将各个Executor训练的独立树汇总到Driver形成独立森林,输出建模结果。

独立森林打标签可以在数据的分割处理上实现并行化。首先,将处理不同分片的数据作为任务分配到可用的Executor;然后,各Executor读取对应的分片数据并基于已有模型输出故障标签;最后,将各个Executor处理得到故障标签汇总到Driver,输出处理结果。

梯度提升树的并行化实现基于Spark的机器学习算法库MLlib。

3 改进梯度提升树故障预测算法

3.1 独立森林算法

独立森林算法是一种无监督的异常检测方法[18]。独立森林算法通过构建独立树以评估数据的异常指数,最后通过复数独立树综合的异常指数判定数据是否异常。根据采样的数据训练独立树(一种随机二叉树),独立森林算法步骤为:

1)对于机电设备状态数据集D的随机属性A,随机选择该属性的一个值value;

2)根据A对采样数据集Dsample进行分类,把A小于value的数据放在左子树上,把A大于等于value的数据放在右子树上;

3)递归构造左子树和右子树,直到传入数据集只剩下一条或多条A同值的数据,或者树的高度到达设定阈值。

完成独立树的训练后,利用独立树对数据进行异常评分:将测试数据输入独立树从根节点开始搜索,直到测试数据被分到叶子节点上,根据该叶子节点与根节点的距离h(x)计算异常评分s(x,n):

H(k)=ln(k)+ξ。

(1)

其中:n为样本大小;ξ为欧拉常数;s(x,n)的取值范围为[0,1],s(x,n)值越大,异常的可能性越高。

一棵独立树只对单个属性进行评估,所以需要多棵树结合形成独立森林才能对每条数据进行全面的评估。独立森林的异常评分为

(2)

其中E(h(x))为数据x在每棵树的高度均值。根据异常评分S(x,n)判定数据x是否异常。

3.2 改进梯度提升树故障预测

梯度提升树算法是决策树算法的一种改进方法,可以用于监督学习的分类和回归[19]。梯度提升树算法通过串联多棵决策树以减少拟合误差,最后根据属性数值分叉得到分类或回归输出。作为典型的监督学习算法,梯度提升树算法的准确度依赖于学习样本的信息含量,在标签样本数量少时性能下降,引入独立森林算法为无标签样本补充标签。改进梯度提升树故障预测算法流程如图4所示。

图4 改进梯度提升树故障预测算法流程

改进梯度提升树算法原理如下:

1)引入独立森林算法学习少量标签样本,得到异常阈值后为大量无标签样本合并补充标签,以便训练更准确的故障分类模型;

2)训练多棵决策树,每棵决策树学习之前所有树的预测值和误差值;

3)利用梯度下降法近似计算误差值,快速拟合出决策树;

4)多棵决策树的预测结果叠加,输出最终的故障预测结果。

3.3 并行独立森林模型训练

并行独立森林模型训练基于少量标签样本数据生成独立森林模型,用于后续的大量无标签样本数据补充标签。与基础的独立森林算法不同的是,异常评估阈值基于带故障标签的样本而非异常比例学习得到。并行独立森林模型训练算法如算法1所示。

算法1并行独立森林模型训练。输入:少量标签样本D1,树深度deep,树数量n;输出:独立森林iForest,异常阈值min。

1: 初始化独立森林,初始化min=1;

2: for i=1 to n do

3: iTreei←buildITree(D1,deep);

4: iForest←iForest∪{iTreei};

5: endfor

6: 返回iForest

7: for each instance x ∈ D1do

8: for each instance iTree ∈ iTrees do

9: high←calHigh(x, iTree);

10: endfor

11: avghigh← calAvgHigh (x, iForest);

12: AnomalyScore← calAnomalyScore(avghigh);

13: if label=1 then

14: if AnomalyScore

15: min=AnomalyScore;

16: endif

17: endif

18: endfor

19: 返回min

在算法1中,iTree表示独立树; x表示数据的特征向量;label表示故障标签,1代表有故障;AnomalyScore表示异常评分,越接近1表示异常可能性越高; min表示异常评分阈值,超过阈值即为异常。首先,随机生成n棵独立树,这些独立树组成独立森林模型(第1行至第6行)。然后,对D1中的每条数据的x求其平均高度,计算其异常评分,并对故障标签label为1的数据更新异常阈值min,取最低值(第7行至第19行)。

3.4 并行样本数据标签补充

并行样本数据标签补充通过训练的独立森林模型为无标签样本数据提供标签。基于训练好的独立森林模型评估无标签样本数据的异常值,并利用异常阈值判定其是否故障。并行样本数据标签补充算法如算法2所示。

算法2并行样本数据标签补充。输入:大量无标签样本D2,独立森林iForest,异常阈值min, 少量标签样本D1;输出:有标签的大量样本数据集D3。

1: 初始化D3,初始化D2的故障标签label=0;

2: for each instance x ∈ D2do

3: for each instance iTree ∈ iTrees do

4: high←calHigh(x, iTree);

5: endfor

6: avghigh← calAvgHigh(x, iForest);

7: AnomalyScore← calAnomalyScore(avghigh);

8: if AnomalyScore >min then

9: label=1;

10: endif

11: endfor

12: D3=D2∪D1

13: 返回D3

首先,对于D2中的每条数据的x求其平均高度,计算其异常评分(第1行至第7行)。然后,将异常评分与异常阈值min作比较,高于min的数据判定为异常,更新故障标签(第8行至第11行)。最后将标签过的D2与D1合并为D3输出(第12行至第13行)。

4 实验分析

4.1 实验环境

本实验在一台联想服务器SR550上安装5台虚机,基于Scala语言实现了少量标签机电设备大数据故障预测算法的测试。设备参数如表1所示。

表1 实验设备

本次实验数据集为真实的智能机电设备数据集(以下简称JDSB)和公开的航天飞机运行数据集Shuttle[20]。表2列出了数据集的基本情况。

表2 数据集基本情况

JDSB是一组高速公路机电设备采集的真实数据集,表3列出了JDSB的数据结构。本次实验采用“u”, “i”, “t”, “h”, “b”和 “c”作为特征进行学习。

本次实验使用AUC(area under curve)指标衡量算法的准确度。AUC是衡量二分类模型优劣的一种评估指标,表示预测的正例排在负例前面的概率。

表3 JDSB数据结构

AUC计算公式为

(3)

4.2 分类性能

为了模拟智能机电设备数据缺少有效标签样本的场景,本次实验从JDSB和Shuttle中随机抽取300个样本作为训练数据。使用传统的梯度提升树基于300样本进行监督学习(以下简称GBDT),和使用独立森林基于300样本进行无监督学习后根据样本标签给其余样本重打标签,并分别使用随机森林和梯度提升树对新样本进行监督学习后得到的模型预测故障(以下分别简称IF-RF和IF-GBDT),对比3类算法的AUC,结果如图5所示。

图5 不同算法AUC对比

从图5可看出,在AUC的量纲下IF-GBDT算法优于IF-RF算法,GBDT算法性能最差。这说明在少量标签场景下的IF-GBDT算法在分类性能和稳定性方面优于传统的梯度提升树算法。另外,IF-GBDT算法和IF-RF算法的对比说明在JDSB上使用基于独立森林提供标签的半监督学习方法时分类器中梯度提升树的表现比随机森林更好。

4.3 少量标签适应性

为了确认标签样本数量对3种算法的影响,进一步测试了在不同数量的标签样本的情况下这3种算法在JDSB上的AUC,结果如图6所示。

图6 不同标签样本大小AUC对比

图6表明:1)标签样本越少时,半监督学习算法相对传统监督学习算法的分类精度差距越大;2)在标签样本足够多时,半监督学习算法与它基于的监督学习算法分类性能接近。

实验的结果显示:相对于传统的监督学习算法,基于独立森林算法增加标签的半监督学习算法在标签样本数量稀少时仍保持较高的分类精度。主要原因是半监督学习算法基于已知标签样本利用未知标签样本扩充了可学习样本,从而在后续的监督学习中相对传统监督学习算法占据优势。因此,IF-GBDT算法相对GBDT算法在JDSB上分类性能和稳定性都更好,且少量标签的情况下优势更明显。

4.4 并行化性能

为了验证算法在Spark平台上的并行化效果,将JDSB扩充到10万条和20万条,测试在分配不同个数节点的情况下模型训练耗时(这里的模型训练指独立森林模型训练、独立森林标记标签、梯度提升树模型训练的总和)和模型预测耗时,结果对比如图7、8所示。

图7 模型训练时间对比

图8 模型预测时间对比

从实验结果可看出,当节点数从1增加到5时,IF-GBDT算法的模型训练时间和模型预测时间都明显缩短。因此,在Spark平台上并行运行IF-GBDT算法的效率要比单机运行高。此外,还可以观察到随着节点数的增加,计算时间并非严格等比例下降,这是因为节点间的通信开销包括一部分固定时间,当节点处理的数据较少时通信开销不可忽略。因此,一味增加节点并不一定能缩短总体计算时间。

5 结束语

针对智能机电设备大数据故障预测依赖足量标签样本的问题,提出并实现了一种基于独立森林改进梯度提升树的半监督学习算法。基于独立森林算法利用少量标签样本标记大量无标签样本,使用扩充的标签样本训练梯度提升树模型,用于智能机电设备故障预测。基于Spark平台实现了算法的并行化,从而支持对海量实时数据的高效处理。在真实智能机电设备数据集和公开航天飞机运行数据集上进行测试,结果表明,IF-GBDT算法在分类精度和少量标签适应性上都要优于传统的梯度提升树算法和IF-RF算法,利用Spark实现的并行化IF-GBDT算法处理具有较好的加速比,可广泛用于少量标签前提下海量机电设备的故障预测。

猜你喜欢

机电设备标签森林
智能建筑机电设备自动化技术
论机电设备安装工程接地的重要性
土木建筑和机电设备安装工程施工技术探讨
无惧标签 Alfa Romeo Giulia 200HP
不害怕撕掉标签的人,都活出了真正的漂亮
哈Q森林
哈Q森林
哈Q森林
哈Q森林
让衣柜摆脱“杂乱无章”的标签