Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

孙海燕(宝信),宋国琼(英特尔)作者

宝信利用Spark Analytics Zoo对基于LSTM的时间序列异常检测的探索

摘要:宝信和英特尔相关团队利用Analytics Zoo在无监督的基于时间序列异常检测用例上进行了有益的合作探索,本文分享了合作项目的结果和经验。

背景

在工业制造行业,有多种方法来避免由于设备失效导致的生产中断。常见的方法是定期检修维护,或者提前更换设备零部件,这些方法都可能会增加设备维护和更换的投入。然而,另一个可行的方法是收集不同设备的大量振动数据,并使用这些数据自动检测设备状态的异常。因此,有效地收集大量的时间序列数据并且大规模地进行异常和失效检测,对于降低工业制造行业中的的很多不必要的成本是非常关键的。

Recurrent neural networks (RNNs)循环神经网络,特别是Long short term memory models (LSTMs)长短期记忆模型现在被广泛应用于信号处理,时间序列分析等场景。作为connectionist模型,RNNs可以提取网络节点中的动态序列。在这个项目中,我们利用LSTM来模拟震动信号的统计学规律,并且使用了来自辛辛那提大学的IMS全生命周期数据 (http://ti.arc.nasa.gov/c/3/)来展示设备异常检测的分析流程。

Analytics Zoo解决方案

Analytics Zoo (https://github.com/intel-analytics/analytics-zoo)是一个基于Apache Spark和BigDL等构建的analytics(分析)+AI(人工智能)的平台,由英特尔开源,该平台能够方便地让用户将端到端的基于大数据深度学习应用直接部署在已有的Hadoop/Spark的大数据集群上,而无需安装专用的GPU设备。

我们已经在Apache Spark和Analytics Zoo上创建了端到端的基于LSTM异常检测流程,可以应用于大规模时间序列数据的无监督深度学习。作为LSTM模型的输入数据的是一系列设备震动信号,比如在当前时间点之前50秒的信号数据,通过这些信号数据,经过训练的模型可以预测下一个数据点。当下一个数据点和模型预测的数据点有较大偏差,我们认为该数据为异常数据。图1所示为一个端到端的数据处理流程。

图1:基于Analytics Zoo的振动时间序列异常检测处理流程.

1.处理流程从Spark集群读取原始数据并构造RDD(resilient distributed datasets)弹性分布式数据集,并抽取特征,最后把特征输出到Dataframe。在原始数据集中,每个数据描述了一个检测失效(test-to-failure)的实验,并包含了时长为1秒的20K赫兹采样的即时振动信号(如图2所示)。为了训练深度学习模型,每一秒的统计数据被提取作为特征数据,包括均方根(Root Mean Square),峰度(Kurtosis),峰值( Peak), 以及小波包分解得到的8个频段的能量值。

2.处理流程进一步在RDD中处理这些特征数据,包括数值的小波去噪处理、标准化处理(normalize)和滑动平均处理,以50秒为基准展开特征数据序列,以便于深度学习模型可以通过前50秒的模式来预测下一个数据点,并最终把数据转换为Sample RDD。(https://bigdl-project.github.io/master/#APIGuide/Data/#sample).

3.处理流程使用Analytics Zoo中提供的类KerasAPI来创建时间序列异常检测模型,包括如图所示的三个LSTM层和一个密集层,并通过数据训练这个模型(前50个点训练下一个点)。

val model = Sequential[Float]()
  model.add(LSTM[Float](8, returnSequences = true, inputShape = inputShape))
  model.add(Dropout[Float](0.2))
  model.add(LSTM[Float](32, returnSequences = true))
  model.add(Dropout[Float](0.2))
  model.add(LSTM[Float](15, returnSequences = false))
  model.add(Dropout[Float](0.2))
  model.add(Dense[Float](outputDim = 1))

4.接下来是模型评估:使用测试数据或者全部数据来检测异常。异常数据是指远离RNN模型预测的数据点。在这个项目中,我们指定异常数据为整体数据集的10%,也就是距离模型预测数值最远的那10%数据为异常数据。这个筛选比例设置为可调整参数,可以为每个单独案例进行调整。

图2:时间点2004.02.13.14.32.39上四通道的振动数据

测试结果

图3显示了原始振动数据和LSTM模型预测数据的对比。只有峰值和均方根这两个统计数值显示出来,其他统计数值具有相似的波动。图中所示红点为被识别的异常数据,橙色线条为LSTM模型的预测数值,蓝色线条为原始数值。经过训练的模型最终成功预测了设备的失效,以及在经过600个时间点之后的震动尖峰,在时间序列早期的一些波动可以作为设备失效的预警信息。

图3: RNN预测数值和原始震动数值的比较

结论

通过利用无监督深度学习,以及Analytics Zoo提供的端到端处理流程,我们可以有效地在大数据集和标准大数据集群(Hadoop, Spark等)上应用时间序列异常检测。通过收集、处理大量的时间序列数据(比如日志,传感器读数等),应用RNN来学习数据模式,最终预判数据和判定异常数据,Analytics Zoo提供的端到端处理流程能够为许多新兴的智能系统如智能制造、智能运维、物联网等提供解决方案。基于时间序列的异常检测在设备的智能监控和预测性维护上可以得到重要应用。

参考文献

1.https://github.com/intel-analytics/analytics-zoo

2. https://github.com/intel-analytics/BigDL

3. https://www.kaggle.com/victorambonati/unsupervised-anomaly-detection

4. https://iwringer.wordpress.com/2015/11/17/anomaly-detection-concepts-and-techniques/

Analytics Zoo
Analytics Zoo

Analytics Zoo是一个统一的大数据分析+AI平台,它无缝地将Spark、TensorFlow、Keras和BigDL程序集成到一个整合的流水线中,可以透明地扩展到大型Apache Hadoop/Spark集群,用于分布式训练或预测,方便用户构建深度学习端到端的应用。通过该专栏希望和大家一起探讨AI在实际生活中各个领域的创新。

工程LSTMAnalytics Zoo
5
相关数据
英特尔机构

英特尔(NASDAQ: INTC)是全球半导体行业的引领者,以计算和通信技术奠定全球创新基石,塑造以数据为中心的未来。我们通过精尖制造的专长,帮助保护、驱动和连接数十亿设备以及智能互联世界的基础设施 —— 从云、网络到边缘设备以及它们之间的一切,并帮助解决世界上最艰巨的问题和挑战。

http://www.intel.cn/
相关技术
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

Dropout技术

神经网络训练中防止过拟合的一种技术

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

异常检测技术

在数据挖掘中,异常检测(英语:anomaly detection)对不符合预期模式或数据集中其他项目的项目、事件或观测值的识别。 通常异常项目会转变成银行欺诈、结构缺陷、医疗问题、文本错误等类型的问题。 异常也被称为离群值、新奇、噪声、偏差和例外。

时间递归神经网络技术

时间递归神经网络 (aka.循环神经网络, RNN) 是一类擅长处理序列数据的神经网络,其单元连接形成一个有向环。一般人工神经网络(ANN)由多层神经元组成,典型的连接方式是在前馈神经网络中,仅存在层与层之间的互相连接,而同层神经元之间没有连接。RNN在此基础上结合了隐藏层的循环连接,从而能从序列或时序数据中学习特征和长期依赖关系。RNN隐藏层的每一单独计算单元对应了数据中某个时间节点的状态,它可以是简单神经元、神经元层或各式的门控系统。 每一单元通过参数共享的层间顺序连接,并随着数据序列传播。这一特性使得RNN中每一单元的状态都取决于它的过去状态,从而具有类似“记忆”的功能,可以储存并处理长时期的数据信号。 大多数RNN能处理可变长度的序列,理论上也可以建模任何动态系统。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

大数据技术技术

大数据,又称为巨量资料,指的是传统数据处理应用软件不足以处理它们的大或复杂的数据集的术语。

信号处理技术

信号处理涉及到信号的分析、合成和修改。信号被宽泛地定义为传递“关于某种现象的行为或属性的信息(如声音、图像和生物测量)”的函数。例如,信号处理技术用于提高信号传输的保真度、存储效率和主观质量,并在测量信号中强调或检测感兴趣的组件。我们熟悉的语音、图像都可以看做是一种信号形式。因此,对于语音、图像的增强、降噪、识别等等操作本质上都是信号处理。

长短期记忆网络技术

长短期记忆(Long Short-Term Memory) 是具有长期记忆能力的一种时间递归神经网络(Recurrent Neural Network)。 其网络结构含有一个或多个具有可遗忘和记忆功能的单元组成。它在1997年被提出用于解决传统RNN(Recurrent Neural Network) 的随时间反向传播中权重消失的问题(vanishing gradient problem over backpropagation-through-time),重要组成部分包括Forget Gate, Input Gate, 和 Output Gate, 分别负责决定当前输入是否被采纳,是否被长期记忆以及决定在记忆中的输入是否在当前被输出。Gated Recurrent Unit 是 LSTM 众多版本中典型的一个。因为它具有记忆性的功能,LSTM经常被用在具有时间序列特性的数据和场景中。

推荐文章
暂无评论
暂无评论~