cnn 一维时序数据_基于CNN-LSTM深度学习方法及多属性时序数据的故障诊断方法与流程...

本发明涉及系统故障诊断技术领域,具体地说,涉及一种基于CNN-LSTM深度学习方法及多属性时序数据的故障诊断方法。

背景技术:

大型系统,特别是工业系统,其运行是十分复杂的,其运行涉及到对多个属性的控制。要准确把握其运行的状况,其中重要的一项技术就是故障诊断。大型系统一旦发生运行故障,那么必将导致不可估量的人身、财产损失,所以及时发现系统运行时的故障对系统运行的控制至关重要。故障诊断技术能够在容许的时间区间内探测系统运行的故障,从而指导技术人员排查和解决相关故障。

系统故障的发生和很多因素有关,首先是依赖于系统运行的多个属性。另外,系统故障的发生又是一个渐变的过程,当前系统故障的发生可能依赖于先前系统的某个状态,即系统故障的发生又具有时延性。

传统的系统故障诊断方法主要可以概括为以下几种:1、基于特征工程的故障诊断方法;2、基于特征学习的故障诊断方法。

基于特征工程的故障诊断方法,主要运用主成分分析(PCA)、小波包分解(WPD)、傅里叶变化(FTT)等方法提取影响系统故障发生的特征,然后将经过特征映射的数据输入到一个分类器当中,从而判断系统是否出现故障;这样的分类器有很多,包括支持向量机(SVM)、K近邻(KNN)、多层感知机(MLP)、人工神经网络(ANN)等。基于特征学习的故障诊断方法,首先是经过若干层的卷积或者池化操作,分层提取故障诊断的特征,然后在网络的最后添加一个分类器,分类器一般由若干层的全连接神经网络构成。

基于特征工程的故障诊断方法需要手动设计进行故障诊断的特征,然而对于不同的问题,特征的选择是不同的,这就使得方法的运用范围很小;同时,手动设计的特征高度依赖于领域知识,这使得提取到的特征很难准确地进行故障诊断。基于特征学习的故障诊断方法克服了基于特征工程的故障诊断方法需要进行手动设计特征的缺点,但没有考虑到故障发生的时延性。

时延性是导致系统故障发生的一个很重要的因素,如何准确的提取时延信息是提高故障诊断准确率的关键点。传统的故障诊断方法要么只考虑属性维度的影响,要么只考虑单属性时间序列的影响,没法将这两个因素综合考虑在一起。

技术实现要素:

本发明的内容是提供一种基于CNN-LSTM深度学习方法及多属性时序数据的故障诊断方法,其能够克服现有技术的某种或某些缺陷,能够较佳地整合系统运行时的属性信息和时延信息从而提高故障诊断的准确率和抗噪性。

根据本发明的基于CNN-LSTM深度学习方法及多属性时序数据的故障诊断方法,其包括以下步骤:

S1,采集系统的历史运行数据并进行数据预处理,之后基于CNN和LSTM建立故障诊断模型;

S2,采集系统的实时运行数据并进行数据预处理,之后送入S1中建立的故障诊断模型进行处理,并输出诊断结果。

本发明中,通过基于CNN和LSTM建立的故障诊断模型,能够很好地整合属性维度的特征信息和时间维度的时延信息,从而能够较佳地提高故障诊断的准确率和抗噪性。

作为优选,步骤S1和步骤S2中的数据预处理方法相同,且均包括如下步骤,

S31,对所采集的数据进行缺失值处理;

S32,对经S31处理的数据进行归一化处理;

S33,对经S32处理的数据进行滑窗处理。

本发明中,通过步骤S31能够较佳地对数据进行缺失值处理,从而能够较佳地保证原始数据的完整性;通过步骤S32能够较佳地提升对故障诊断模型训练时的收敛速度;通过步骤S33,能够将一维的样本数据转换为二维的样本数据,从而使得属性维度的信息和时间维度的信息能够较佳地整合在一起。

作为优选,步骤S31中,采用均值插补法进行缺失值处理。从而能够较佳地保证原始数据的时序属性不受破坏。

作为优选,步骤S32中,采用min-max标准化方法进行归一化处理。

作为优选,步骤S33中,滑窗处理定义为映射:且,f(t)=X[t:t+d],t=q*λ,q=0,1,2...l;其中,d为滑窗宽度,λ为滑窗步长,p为时间序列的长度。

作为优选,步骤S1中的故障诊断模型包括输入层、CNN层、转换层、LSTM层、全连接层和输出层,CNN层和LSTM层均为双层结构;其中,

输入层用于输入经数据预处理后的数据;

CNN层用于对输入数据进行卷积运算,以实现特征的提取;

转换层用于实现CNN层与LSTM层的衔接以使得属性维度的信息和时间维度的信息不丢失;

LSTM层用于提取时间维度的时延信息;

全连接层用于执行运算y=relu(W·x+b),x为LSTM层的输出向量,y为全连接层的输出向量,W为神经元参数矩阵,b为偏置项,relu(x)=max(0,x)为激活函数;

输出层用于执行运算ypre=softmax(y),ypre表示对应样本的预测概率,y为全连接层的输出向量。

基于上述操作,能够较佳地对数据的属性维度的特征信息和时间维度的时延信息进行处理,并能够较佳地输出预测概率,进而较佳地实现了对系统的故障诊断。

作为优选,步骤S1中的故障诊断模型,采用Adam算法作为模型训练算法,优化的代价函数选取交叉熵函数。从而能够较佳地对故障诊断模型进行训练和优化。

作为优选,步骤S1中的故障诊断模型,采用优化的网格搜索确定其超参数。从而能够较佳地确定最优超参数值。

本发明通过采用CNN-LSTM的方法来进行故障诊断,CNN层能够隐式地进行特征提取,解决了基于特征工程方法需要手动提取特征带来的缺点。其次,LSTM层具备长短期记忆的能力,能够捕捉故障发生的时延信息,从而将故障发生的时延性融入到模型当中,使得模型预测的准确率和抗噪性得到显著提高。

本发明能够较佳地对多属性时序数据进行处理。其中:时序数据是同一属性按时间顺序记录的数据列,多属性时序数据是描述同一系统的多个属性的时序数据的集合;多属性时序数据有两个维度,一个是时间维度,另一个属性维度;时间维度刻画了描述系统的多个属性在不同时刻的状态,属性维度刻画了系统在同一时刻不同属性的状态。

附图说明

图1为实施例1中的故障诊断方法的流程示意图;

图2为实施例1中的滑窗处理的示意图;

图3为实施例1中的故障诊断模型的框架示意图。

具体实施方式

为进一步了解本发明的内容,结合附图和实施例对本发明作详细描述。应当理解的是,实施例仅仅是对本发明进行解释而并非限定。

实施例1

如图1所示,本实施例中提供了一种基于CNN-LSTM深度学习方法及多属性时序数据的故障诊断方法,其包括以下步骤:

S1,采集系统的历史运行数据并进行数据预处理,之后基于CNN和LSTM建立故障诊断模型;

S2,采集系统的实时运行数据并进行数据预处理,之后送入S1中建立的故障诊断模型进行处理,并输出诊断结果。

步骤S1中,所采集的历史运行数据需要完整地反映系统的各种状态,包括正常运行状态和各种故障发生的状态;为了让所采集的样本数据能够真实的反映总体的情况,所有数据的采集都应该是从总体中的随机抽样。

步骤S2中,为了对系统故障进行实时的诊断,系统运行时数据的收集必须满足实时性的要求,只有运行时的数据是实时的,对系统的故障诊断才能够达到实时性的要求。

CNN是一项很重要的深度学习技术,其最先在图像识别领域得到运用。CNN通过一系列卷积和池化操作,能够自动分层提取特征,从而解决了手动设计特征带来的一系列缺点。

LSTM作为一种特殊的递归神经网络(RNN),其包含LSTM区块,这种区块是一种智能单元。LSTM区块中有一个三个门(遗忘门、输入门和输出门),其能够决定输入信息是否重要到需要被记住以及能不能被输出,从而能够记忆不定时间长度的数值。LSTM的这种特性,能够很好的捕捉故障发生的时延信息。

本实施例中,通过基于CNN和LSTM建立的故障诊断模型,能够很好地整合属性维度的特征信息和时间维度的时延信息,从而能够较佳地提高故障诊断的准确率和抗噪性。

步骤S1和步骤S2中的数据预处理方法相同,且均包括如下步骤,

S31,对所采集的数据进行缺失值处理;

大型系统的数据采集通常是通过大量的传感器实现的,由于很多物理方面的原因如传感器的物理故障等将会导致数据缺失情况的出现。为了保证原始数据的完整性,需要对数据进行相应的缺失值处理。

按照缺失机制,可把缺失值类型分为完全随机缺失(missing completely at random,MCAR)、随机缺失(missing at random,MAR)、不可忽略的缺失(non-ignorable missing,NIM)亦称为非随机缺失(not missing at random,NMAR)。在实际的工业场景当中,传感器数据的缺失大多数属于MCAR类型。对缺失值的处理主要有以下两种:1、删除含有缺失值的样本;2、可能值插补缺失值。对于传感器采集的时序数据来说,如果删除含有缺失值的样本,那么将破坏数据的时序属性。本实施例中,为保证原始数据的时序属性不受破坏,采用可能值插补缺失值的方法处理缺失值。在可能插补的方法当中,根据可能值的类型可以有以下几种具体的方法:均值插补、利用同类均值插补、极大似然估计以及多重插补。本实施例中具体采用的为均值插补法。

本实施例中,经步骤S31处理后的数据表示为:

X={Xi|i=0,1,2...n};

Xi={xt|t=1,2,3...p}。

其中,n是故障的总个数,m是属性(或称特征)的总个数。

其中,Xi∈Rp×m,Xi表示第i类故障的数据集,i表示该类型数据的标签;当i=0时,表示系统处于正常状态。

其中,对于第i类故障的数据集Xi,xt∈Rm为每一个采样样本的向量表示;p为第i类故障的采样时刻数即样本总数;可以理解的是,数据集Xi共有m列分别对应m个属性(或称特征),每一列数据表示同一属性(或称特征)在不同时刻时的状态。

S32,对经S31处理的数据进行归一化处理;

通过归一化处理,能够较佳地提升对故障诊断模型训练时的收敛速度。

本实施例中,采用min-max标准化方法对经步骤S31的数据进行处理,从而能够较佳地对数据(包括历史运行数据和实时运行数据)进行线性变化,使数据能够较佳地映射到区间[0,1]中。步骤S32的转换函数如下:

采用上述转换函数进行归一化处理时,对任一类故障的数据集Xi中的任一列数据均进行上述的转换;其中,minj是每一列数据的最小值,maxj是每一列的最大值,xj是转换之前的数值,是转换之后的数值。经过归一化处理之后的数据集X记作X*、数据集Xi记作

S33,对经S32处理的数据进行滑窗处理。

通过步骤S33,能够将一维的样本数据转换为二维的样本数据,从而使得属性维度的信息和时间维度的信息能够较佳地整合在一起。

如图2所示,本实施例中,对任一类故障的数据集均进行滑窗处理,滑窗处理定义为映射:其中:

f(t)=X[t:t+d],t=q*λ,q=0,1,2...l。

其中,d为滑窗宽度,λ为滑窗步长,X[t:t+d]为切片操作,为向上取整运算,p为时间序列的长度(即采样时刻数)。根据定义可知,

结合图2,图2中的网格代表数据集每一行表示一个观测样本(所有属性在同一时刻的状态),每一列表示同一属性在时间轴上的变化,最后一列是样本的标签值。

如图3所示,本实施例中的故障诊断模型包括输入层、CNN层、转换层、LSTM层、全连接层和输出层,CNN层和LSTM层均为双层。

其中,输入层用于数据输入,即用于输入经数据预处理后的数据。

其中,CNN层用于对输入数据进行卷积运算,以实现特征的提取。

对于卷积运算而言,卷积的输入是一个三维的数据卷X∈Rw×h×d,其中w表示数据卷中数据片的宽度,h表示数据片的高度,d称为数据卷的通道。定义以下几个超参数:卷积核的个数K,每一个卷积核的规格F,卷积的步长S,零值填充的数量P。

对于每一次卷积运算,首先对数据卷X∈Rw×h×d进行零值填充使数据卷转换成X*∈R(w+P)×(h+P)×d,增加元素的值都为0;然后对数据卷X*进行切片操作X*=X*[tw:tw+F,th:th+F,:](切取第tw到第tw+F行;第th到第th+F列;通道方向所有的数据子集)。

根据上述的定义,卷积核Kernel∈RF×F×d,T=Kernel×X*(两个同等规格张量的逐元素相乘,得到新的张量Y),张量Y逐元素相加得到y。

对数据卷X*按从左到右、从上到下的顺序,依步长S重复上述步骤,并将每一次得到的y值重新整合成矩阵(一个通道的数据)。不难看出,

对于K个卷积核重复上述步骤,得到K个通道将这K个通道在深度方向重新排列将得到新的三维数据卷一般的,我们会取特定的F,P,S,使w*=w,K>d。

基于上述关于卷积运算的定义,可以定义一个卷积层的映射为:而多个卷积层就是上述映射的嵌套映射。

本实施例中,第一层CNN层的输入为l、p、m分别对应上述定义中的w、h、d。

本实施例中的CNN层为双层,即第二层CNN层的输入为第一层CNN层的输出。

其中,转换层做的是一个数据的重排列操作,从而实现CNN层与LSTM层的衔接以使得属性维度的信息和时间维度的信息不丢失。

由于CNN层的输出是一个三维数据卷转换层实质是将K个通道数据横向排列,从而使三维的数据卷转化为两维的数据片:转换层的操作定义为映射:

其中,LSTM层用于提取时间维度的依赖信息。

一层完整的LSTM层中,包括多个计算单元,每个计算单元的输入是某一时刻的序列xt∈RT、输出是对当前时刻之前的所有时序序列的长短期记忆信息编码ht∈RT。一个计算单元的计算流程依次如以下数学公式所示。

ft=σ(Wf·[ht-1,xt]+bf)

it=σ(Wi·[ht-1,xt]+bi)

ot=σ(Wo·[ht-1,xt]+bo)

ht=ot*tanh(Ct)

其中,运算“·”为矩阵的乘法运算,运算“*”为矩阵的逐元素相乘运算,Wf、Wi、Wc、Wo均为神经元的连接参数,bf、bi、bc、bo为偏置项。

本实施例中,LSTM层为双层,第一层LSTM层记录所有的ht,并将其作为第二层LSTM层的输入,第二层LSTM层只记录最后一个计算单元的输出ht。

其中,全连接层接收第二层LSTM层的输出ht并作为其输入。全连接层执行如下运算:y=relu(W·x+b)。其中,x为LSTM层的输出向量,y为全连接层的输出向量,W为神经元参数矩阵,b为偏置项,relu(x)=max(0,x)为激活函数。

其中,输出层用于输出每一个样本的预测概率,运算规则如下:ypre=spftmax(y)。其中:为对于一个向量z中一个元素的运算,softmax(z)则对向量z中的每一个元素都执行softmax运算。

通过全连接层和输出层能够较佳地实现最后的分类,从而能够较佳地输出预测概率,进而较佳地实现了对系统的故障诊断。

本实施例中,在完成故障诊断模型的建立后,通过优化算法确定故障诊断模型的内部参数,本实施例中,选取Adam算法作为模型训练算法,优化的代价函数选取交叉熵函数。

本实施例中,在完成故障诊断模型的建立后,通过优化的网格搜索确定故障诊断模型的外部参数即超参数。

本实施例中的故障诊断模型需要确定的超参数包括滑窗宽度d、滑窗步长λ、第一层CNN层的特征映射数、第二层CNN层的特征映射数、第一层LSTM层的神经元个数、第二层LSTM层的神经元个数以及全连接层的神经元个数。本实施例中超参数的取值范围以及初始值如表1所示。

表1超参数的取值范围及初始值

本实施例中,若最优超参数的值在该超参数的区间端点,那么应当延长超参数选择区间的范围继续搜索超参数的最优值。

结合图1所示,在对本实施例的故障诊断模型进行超参数选取时,通过不同的超参数取值,对模型进行评估,直至获取最优超参数。

由于计算资源的限制,本实施例中没有对所有超参数进行全局搜索。本实施例的超参数选择策略为:先进行一组预实验,选取每一个超参数搜索范围内的三分之一等分点以及三分之二等分点,分别训练和测试,得到两次的准确率,并比较两次准确率的差值。如果两次实验的准确率差值很大,说明该超参数对模型预测的准确率影响更大,我们将优先确定该超参数的值。预实验确定了超参数优化的顺序。在每一个超参数的优化过程当中,其余不参与优化的超参数要么是初始值要么为最优值,然后搜索该超参数的区间范围以确定该超参数的值。

本实施例中,通过准确率函数来评估模型的性能。设N为测试集的样本总数,I(x)为指示函数,当x为真时,其返回值为1;当x为假时,其返回值为0。则将故障诊断模型对测试集的准确率被定义为:

以上示意性的对本发明及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。所以,如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。

你可能感兴趣的:(cnn,一维时序数据)