一种应用于间歇过程的故障检测方法
技术领域
本发明涉故障检测领域,尤其涉及一种应用于间歇过程的故障检测方法。
背景技术
随着工业系统呈现向大型化、复杂化方向发展,使得传统数据驱动的故障诊断方法无法适应新时期这种工业大数据特性的故障诊断需求,具体表现在过程数据量大、种类多,且价值密度低,虽然数据维数多,但其中对于监测诊断任务来说不一定都是有用有价值的。其中,间歇生产过程具有非线性、多时段或多工况的间歇过程的特征。具体是指生产过程在同一位置而不同的时间分批进行,其操作状态不稳定,过程参数随时间而变,由于不同的操作阶段具有不同的过程特性,使得监测变量会受到时间维度上的影响。
传统的基于数据驱动的间歇过程故障诊断方法往往需要对过程数据的分布进行假设,而且特征提取难度较大,对于非高斯性等复杂数据的监控往往会出现误报和漏报。
深度学习的概念起源于神经网络的研究,有多个隐含层的多层感知器是深度学习模型的显著特征,由于普通人工神经网络方法收敛速度慢,尤其在大数据上需要更多的参数,在故障识别上易发生震荡,分类准确率不高。相对于普通人工神经网络而言,深度学习算法具有更好的逼近复杂非线性函数的能力,并有许多方法来解决普通多层神经网络梯度消失、过拟合等问题,比起浅层神经网络所需参数更少,且收敛速度和分类准确率都有所提升。
深度学习的基本模型是深度神经网络(Deep Neural Network,DNN),在此基础又改进出现了许多基本框架,包括深度置信网络(Deep Belief Network,DBN)、卷积神经网络(Convolutional Neural Network,CNN)、堆叠自动编码器(Stacked Autoencoders,SAE)、递归神经网络(Recurrent Neural Network,RNN)。其中,DBN是由多个限制玻尔兹曼机(Restricted Boltzmann Machine,RBM)组成的多隐含层网络,近年来基于DBN的故障诊断方法主要是先用无监督逐层训练方法,不断挖掘各类信号的故障特征,然后在相应的分类器中,通过反向的有监督微调来优化网络的故障识别能力。CNN是一种有监督的深度网络模型,可用于提取输入数据的局部特征,并逐层组合抽象为高层特征,多半用于视觉、图像特征提取等等,一般要求输入数据具有二维相关性,对于实现基于其它信号的特征提取与识别比较困难;RNN是一种带有记忆单元的神经网络,其特点是充分考虑了样本批次之间的关联关系,可用于处理时序数据或者前后关联数据,适用于复杂设备或系统的实时故障诊断,对于深层网络,RNN往往会出现一些问题,比如后面时间点往往会对较前时间点的感知力下降而造成梯度消失,或者前面时间点权重的微小改变都会对输出产生巨大影响而产生截断梯度问题。
LSTM(Long Short-Term Memory)是长短期记忆网络,是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。区别于RNN的地方,主要就在于它在算法中加入了一个判断信息有用与否的“处理器”,这个处理器作用的结构被称为cell。一个cell当中被放置了三扇门,分别叫做输入门、遗忘门和输出门。一个信息进入LSTM的网络当中,可以根据规则来判断是否有用。只有符合算法认证的信息才会留下,不符的信息则通过遗忘门被遗忘。但在LSTM算法运用中随着层次的增多,信号的正向传播和梯度的反向计算会越来越大或越来越小,造成梯度弥散或梯度爆炸问题。
发明内容
本发明为了解决现有技术问题是:针对间歇过程故障,现有技术在检测深度和检测准确率上无法兼顾,传统算法产生梯度弥散或是爆炸等问题,提出一种融合LSTM、BN批规范化方法、SoftMax分类器和RMSProp算法,用于间歇过程故障检测的方法。
本发明的技术方案是:一种应用于间歇过程的故障检测方法,包括以下步骤:
步骤1:针对一种属于间歇过程的故障检测对象,选取包含已知故障的测试数据集,并对网络设置超参数,包括LSTM中三个门控输入门,遗忘门,输出门的门控函数和每个LSTM的输入输出激活函数、LSTM的网络深度、网络学习率,并根据输入序列的长短设计每层的LSTM单元数;
步骤2:利用BN批规范化方法将每层LSTM的输出值进行零均值和方差归一化处理,根据测试数据的准确率调节步骤1中的超参数,从而根据调节的最终结果进行训练得到输入向量的特征;
步骤3:使用基于多项式分布的SoftMax分类器,将步骤2得到的特征输入到SoftMax函数中转换为概率分布,再通过与真实标签比较建立交叉熵损失得到损失函数,根据损失函数的梯度反向传播,采用RMSProp算法进行学习训练,逐渐接近损失函数的局部最小值;
步骤4:每一次对网络学习训练后都进行测试数据的准确率检测,当测试数据的预测与真实值之间的交叉熵损失不在明显的降低时停止训练;
步骤5:将步骤4训练后的网络用于对步骤1中的故障检测对象做当前故障检测。
作为一种优选:网络输入一批包含已知故障的测试数据集,只取最后一层中最后一个LSTM单元的输出值。
作为一种优选:每个LSTM单元的三个门控输入门均由上一个单元的记忆c,输出y和这一时刻的输入x组合成输入向量a,则有:
at=[ct-1,yt-1,xt] (1)
其中at表示t时刻的输入向量,W和b是对应门控的权重和偏置,门控函数g为tanh激活函数,LSTM的输入输出激活函数f为sigmoid激活函数;
所述的输出门的输出y为:yt=h(ct)·f(Woat+bo) (4)
作为一种优选:步骤2中所述的BN批规范化方法中的归一化方法是对每一个LSTM网络层的输出进行白化预处理:
其中E[x(k)]指其中一批LSTM的输出x(k)的平均值,Var[x(k)]为该批次数据的标准差,∈是极小的正数,以保证分母不为零。
作为一种优选:归一化方法中增加有比例及平移操作,
其中
是白化预处理后的数据,参数γ,β,同权重和偏置一样,是随着网络中的迭代训练而得到学习。
作为一种优选:采用滑动平均的方式记录并更新均值和方差,并在步骤5的检测中使用最后一次修改的均值方差。
本发明的有益效果是:
1、LSTM、BN批规范化方法、SoftMax分类器和融合整体上在提高识别准确率的同时,逐渐提高网络的深度,从而实现故障检测的准确率提高。
2、由公式(2)、(3)、(4)可知,每一层LSTM均由四个权重矩阵和四个偏置构成,而且由于公式(1)和记忆单元的存在,网络可以很好地学习整个时间序列的信息。
3、在传统的BN批规范化方法中加入比例及平移操作,使网络模型能有可能还原最初的输入,使模型的容纳能力提升。使BN层智能地学习,在改变信号的同时也可以保持原输入,不仅使模型的容纳能力提升,而且使信号在深层网络里更好地传递,加速网络收敛。
4、利用SoftMax分类器的损失函数进行学习,目的是使损失函数尽可能降低,学习完成后即可进行故障检测分类。
附图说明
图1:本发明方法的网络结构图。
图2:DNN网络训练过程损失曲线。
图3:本发明方法的网络训练过程损失曲线。
图4:DNN网络训练过程的准确率变化。
图5:本发明方法的网络训练过程的准确率变化。
图2-5中黑色实线train是训练情况曲线,黑色虚线test是测试情况曲线
具体实施方式
一种应用于间歇过程的故障检测方法,包括以下步骤:
步骤1:针对一种属于间歇过程的故障检测对象,选取包含已知故障的测试数据集,并对网络设置超参数,包括LSTM中三个门控输入门,遗忘门,输出门的门控函数和每个LSTM的输入输出激活函数、LSTM的网络深度、网络学习率,并根据输入序列的长短设计每层的LSTM单元数;
步骤2:利用BN批规范化方法将每层LSTM的输出值进行零均值和方差归一化处理,根据测试数据的准确率调节步骤1中的超参数,从而根据调节的最终结果进行训练得到输入向量的特征;
步骤3:使用基于多项式分布的SoftMax分类器,将步骤2得到的特征输入到SoftMax函数中转换为概率分布,再通过与真实标签比较建立交叉熵损失得到损失函数,根据损失函数的梯度反向传播,采用RMSProp算法进行学习训练,逐渐接近损失函数的局部最小值;
步骤4:每一次对网络学习训练后都进行测试数据的准确率检测,当测试数据的预测与真实值之间的交叉熵损失不在明显的降低时停止训练;
步骤5:将步骤4训练后的网络用于对步骤1中的故障检测对象做当前故障检测。
其中LSTM是一种时间递归的神经网络,由多个记忆单元构成。与普通的循环网络类似,每个单元有相同的参数,根据输入序列的长度,每层LSTM都有对应个数的单元,最终得到同样长度的输出序列。其中在一个单元中最重要的组成部分的超参数是三个门控输入门、遗忘门、输出门,三个门控的激活函数一般为sigmoid函数。
输入门用来控制输入,为了使网络加深对过去记忆单元和输出单元的记忆,这里对LSTM的输入结构进行改造设计,即每个LSTM单元的输入均由上一个单元的记忆c,输出y和这一时刻的输入x组合而成,设三个向量组合为向量a,输入门的输出为
则有:
at=[ct-1,yt-1,xt] (1)
at表示t时刻的输入,W和b是对应门控的权重和偏置,函数g可以自己设计,一般为tanh激活函数。
输出门用来控制输出,最终的输出y为:
yt=h(ct)·f(Woat+bo) (4)
由式(2)、(3)、(4)可知,每一层LSTM均由四个权重矩阵和四个偏置构成,而且由于式(1)和记忆单元的存在,网络可以很好地学习整个时间序列的信息。
LSTM层的输出可以是与输入同样长度的序列,也可以是输出序列中的最后一个值,对于间歇过程中的故障检测来说,可以采用多对一的方法,即输入一批样本,网络只输出最后一个LSTM单元的值,即根据这一批数据样本推断出故障与否。
步骤2中的批规范化(Batch Normalization,BN)本质上解决了深层网络难以训练的弊端。随着层次的增多,信号的正向传播和梯度的反向计算会越来越大或越来越小,造成梯度弥散或梯度爆炸问题,而BN可以把将每层LSTM的输出值中过大或过小的信号进行零均值和方差归一化处理来解决上述问题。即首先对各隐含层的输出进行白化预处理:
式(5)中E[x(k)]指其中一批隐含层输出x(k)的平均值,Var[x(k)]为该批次数据的标准差,∈是极小的正数,以保证分母不为零。对于深层网络,在每个隐藏层后都可加上一层BN,使得隐藏层输出信号的每一维特征均值为0,标准差为1+∈,但这样做会降低每个隐藏层的表达能力。
为了让BN能够有可能还原最初的输入,使模型的容纳能力提升,为此又加入“比例及平移(scale and shift)”操作,即
其中
是白化预处理后的数据,参数γ,β,同权重和偏置一样,是随着网络中的迭代训练而得到学习。当
β=μ
j时,BN也就能够还原最初的输入,如此可使BN层智能地学习,在改变信号的同时也可以保持原输入,不仅使模型的容纳能力提升,而且使信号在深层网络里更好地传递,加速网络收敛。
在训练阶段,由于每个批次数据的均值和方差都不同,本发明方法采用滑动平均的方式记录并更新均值和方差,实现在故障检测阶段,就可以直接调用最后一次修改的均值方差进行故障检测。
SoftMax分类器是将步骤2得到的特征转换为概率分布,它由SoftMax函数和相应的损失函数组成。损失函数可以使用负的对数似然函数,它与训练集和网络模型输出分布之间的交叉熵等价。具体表现为:
其中pmodel(y|x)为模型的输出概率分布。使用最大似然的一个优势是减轻了为每个模型设计损失函数的负担,明确一个模型的pmodel(y|x)则自动地确定了一个损失函数J(θ)。对比均方误差作为损失函数来说,能够避免学习率降低的问题,因为一些饱和的输出单元在结合均方误差时只会产生非常小的梯度。
与真实标签比较建立交叉熵损失得到损失函数的选择也与输出单元紧密相关,在简单地使用数据分布和模型分布之间的交叉熵时,要对输出单元做一定的处理,使其满足成为概率分布的条件,因此本发明方法在步骤3中选择基于多项式分布的SoftMax单元,即:
z
i表示输出向量z中第i位元素。式(8)使得输出向量所有元素均大于零且加起来为一,当其中一个输入
远大于其他的输入时,其它的单元值必定减小,输出值softmax(z)
i也会饱和为一。
对于分类问题,可以将n种类别映射为一个长度为n的向量,其中实际标签属于第r类,则第r位就为1,即:
则损失函数有:
对z的第r位求导得:
对z的第i位(i≠j)求导得:
可见,对于真实分布为1的位来说,对应预测位的概率越大,
越接近0,采用梯度下降算法进行学习时,相应的权重或偏差受影响就越小;而对于真实分布为0的位,对应预测位的概率越大,
越大,学习时相应的权重或偏差受影响就越大。
对损失函数进行学习,目的是使损失函数尽可能降低,学习完成后即可进行故障检测分类。假设测试数据最终从SoftMax层输出的向量中数值最大的为第r位,则该测试数据属于第r类故障。
求出损失函数的梯度后,一般会乘上学习率来控制学习速度。在进行学习时,前期往往需要大的学习率来接近局部最小值,后期则需要较小的学习率来进行微调,而传统的随机梯度下降算法选择合适的学习率比较困难,对所有的参数更新使用同样的学习率会造成前期学习过慢或者后期到不了局部最小点。
传统的Adagrad算法提供了一种自适应学习率方法,具体如下:
η为初始学习率,gt表示当前的梯度,小常数ε用来保证分母不为0。可见随着累计平方梯度次数的增多学习率慢慢下降,但仍需人工设置一个初始学习率,而且中后期时,在分母上梯度平方的累加将会越来越大,使得学习率逐渐变为0,使得训练提前结束。
本发明设计使用的RMSProp算法是在Adagrad算法的基础上改进而成,使其在非凸设定下效果更好。根据损失函数的梯度反向传播,通过改变梯度积累为指数加权的移动平均,并使用指数衰减平均以丢弃遥远过去的历史,使其能够在找到凸结构后快速收敛,具体如下:
相对于Adagrad算法,引入了一个新的超参数ρ,解决了学习中过早结束的问题,用来控制移动平均的长度范围,可以随着网络训练而更新。
本发明的融合LSTM-BN-SoftMax的网络结构如图1所示:首先设置参数,包括激活函数的选择,根据输入序列的长短设计每层的LSTM单元数,然后利用BN规范化方法,根据测试数据的准确率调节网络层数、学习率。最后yz是经过发明的步骤2输入向量在LSTM和BN下输入到SoftMax分类器的特征,训练时采用RMSProp算法进行学习,目的是使SoftMax层的输出与真实数据标签的交叉熵损失逐渐降低,每一次网络训练后都进行测试数据的准确率检测,当测试数据的预测与真实值之间的交叉熵损失不在明显的降低时停止训练。
训练完成后进行步骤5的故障检测,将一个批次测试数据通过深层LSTM计算得到特征值γ∈R
1×2,再通过SoftMax层输出向量
代表正常的概率,
代表故障的概率,若
即为正常,反之判定为故障。
工业实例实验结果与分析
采用一类半导体蚀刻工艺进行仿真实验以验证基于LSTM-BN-SoftMax的故障检测方法,具体的实验数据介绍见文献:WISE B M,GALLAGHER N B,BUTLER S W,et al.Acomparison of principal component analysis,multiway principal componentanalysis,trilinear decomposition and parallel factor analysis for faultdetection in a semiconductor etch process[J].1999,13(3‐4):379-396.。
该实验是在Lam9600等离子体蚀刻工具上进行堆叠蚀刻,目的是用一种电感耦合的Bl3/Cl2等离子体蚀刻TiN/A1–0×5%Cu/TiN/oxide堆叠。该实验所用的金属蚀刻机配备有三种传感器系统:设备状态(machine state)、射频监视器(radiofrequency monitors)和光发射光谱仪(optical emission spectroscopy)。设备状态传感器在晶片处理期间收集设备数据,包括40个过程设定点,在蚀刻过程中以1秒为间隔进行采样,如气体流量、腔室压力、射频功率等。在这过程中,使用了具有正常变化的19种非设定点过程变量进行监测,如表1所示,并且实验表明这些变量将会影响到晶片最终的状态。
本发明采用表1所示的19种变量数据进行仿真实验,实验数据集采集于129个晶片,其中包括108个在正常硅片和21个故障硅片,故障硅片是分别通过改变实验过程中的TCP功率、RF功率、室压、Cl2、Bl3流量或者He夹盘压力,使得21个硅片出现故障。
表1设备状态的过程监测变量
设备状态传感器一共收集了108个正常晶片和21个故障晶片的批次数据,每批次约100个采样点,每个采样点包含如表1所示的19个监测变量,其中正常晶片批次里第56号和故障晶片批次里第12号有数据缺失,所以舍去。实验将建立两种模型进行比较,即建立传统的DNN网络和如图1所示的深层LSTM网络(LSTM-BN-SoftMax的网络结构)。
DNN网络的数据集是每个时间点的数据为一个样本,即将所有过程数据按批次展开为二维的矩阵(IJ×K),I代表批次,J代表采样时间,K代表监测变量的个数,每一行代表一个输入样本。同时建立深层LSTM网络的数据集,即除了将所有数据按批次展开为二维的矩阵(IJ×K),还要对矩阵在时间维度方向上进行连续采样,每5个时间点为1个样本,每隔一个时间点取一次样,最终得到样本张量X(L×5×19),L为取样后的样本总数,每个样本的维度为(5×19)。
两个实验均在正常数据和各个故障数据集里分别抽取90%的样本作为训练集(正常数据和故障数据混合在一起),剩下的作为测试集(正常数据和故障数据分开,总共21个测试集,包含1个正常数据集和20个故障的数据集)。训练集里再抽取10%作为验证集,验证集不用作训练,只用于每批次数据训练完后进行验证,控制学习迭代的次数,处理后的数据集维度如表2所示。
表2实验数据集的维度
使用现有DNN网络训练过程,DNN模型包含三个激活函数为ReLU(RectifiedLinear Units)的隐含层,以及两层BN层。经过DNN得到的特征输入到SoftMax分类器,再通过与实际标签对比进行学习,RMSprop的初始学习率为0.001,图2显示了训练过程中训练集和验证集的交叉熵损失变化曲线,每次训练时间约为2秒。训练在迭代20次时验证集上的损失不再降低,开始出现过拟合现象,所以在20次时停止训练。
该网络训练过程的准确率变化如图4所示,可见此网络经过10次训练后准确率基本不再上升,且在验证集上的准确率为92%左右。
本发明:LSTM-BN-SoftMax网络训练过程,实验设计LSTM层数为三层,即有三层LSTM层和两层BN层,每个LSTM层输出的维度为50,当层数再高时故障识别效果的提升已经不明显,门控函数采取sigmoid函数,每个LSTM的输入输出激活函数采取tanh函数。
首先由上一时刻的记忆ct-1、输出yt-1和这一时刻的输入xt组合成的向量at输入到多对一的深层LSTM-BN网络中进行特征表示,然后将得到的特征输入到SoftMax分类器中进行有监督学习,RMSProp的学习率设置为0.001。
图3、图5分别显示了网络训练集和验证集的损失和准确率变化,每次训练时间约为7秒,网络经过30次训练后验证集上的交叉熵损失变化逐渐稳定,且准确率基本不再上升,最终在验证集上的准确率为99%左右。
通过实验验证发现,LSTM-BN-SoftMax网络对故障检测的准确率比DNN网络要高许多,因为LSTM网络考虑了整个过程数据的信息,而DNN网络仅考虑单一时刻的信息。同时间接说明了该半导体蚀刻的设备状态过程数据确实有时间维度的影响。
故障检测
实验将21个数据测试集分别输入到DNN网络和LSTM-BN-SoftMax网络中,此时两种模型对所有故障的识别情况如表3所示。
比较发现,DNN网络可以较好地识别正常集和2、5、8、13、14、17、19、20号故障集,由于正常集数据量远远大于故障数据集,所以DNN网络仅仅是对正常集过多学习,将许多故障检测为正常,其在验证集上92%的正确率多半归功于正常数据集,无法满足工业过程的故障检测需求。
而LSTM-BN-SoftMax网络对大部分故障均能较好地识别,显示了该网络的优越性。
表3两种模型对各类故障的识别率