杨 青华春丽朱美臣吴东升王笑臣
(1.沈阳理工大学自动化与电气工程学院,沈阳 110159;2.浙江联宜电机有限公司,浙江 东阳 322118)
化工行业由于生产设施的复杂性和反应物质的相互作用而具有较高风险,化工过程故障检测与诊断对于系统安全可靠运行至关重要[1-2]。 TE过程广泛用于过程控制研究,该过程模拟器具有故障模拟能力和对整个生产过程的描述能力。 在实际化工生产中,原料组成和生产环境复杂多变,生产过程存在多模态特性,传统的单模态监测方法很难准确检测出过程异常。 因此,多模态TE 化工过程故障诊断具有重要意义。
现有多模态化工过程故障诊断方法可以分为基于统计学习、基于机器学习和基于深度学习的方法[3-4]。 基于统计学习的方法通常假设数据在平稳状态下获取,不宜用于实际化工生产;基于机器学习的方法在处理庞大复杂的数据时,难以实现快速诊断。
近年来,基于深度学习的故障诊断方法被开发并用于TE 过程的故障诊断。 Agarwal 等[5]提出了一种基于深度神经网络的算法,用于TE 化工过程的故障检测和分类。 该算法基于监督式深度循环自动编码器神经网络(DRAENN),根据故障的相似性进行检测和诊断,显著提高了初期和非初期故障检测的分类精度。 He 等[6]提出了一种新的时间相关特征学习方法,即多块时间卷积网络(MBTCN),用于多变量过程的监督性故障诊断。 该方法基于局部提取、整体集成的思想,考虑了多变量过程数据的互相关和时间相关性,有效提高了TE 过程故障诊断精度。 Liu 等[7]提出了一个通用的迁移框架,其中的迁移学习策略保证了扩展样本的数量和多样性,并实现了准确建模。王琪善等[8]受到计算机智能视觉处理技术的启发,提出了数据驱动的基于平铺卷积神经网络(TCNN)的故障检测方法,取得了较好的检测效果,有效降低了误报率和漏报率。 于桂仙等[9]将深度可分离卷积(DSC) 和长短期记忆网络(LSTM)相结合,提出基于DSC-LSTM 的集合型故障诊断方法,采用时空结合的方式从两个角度提取特征进行故障诊断,有效提高了TE 过程故障诊断的准确率。
以上基于深度学习的故障诊断方法均依赖于大量的数据,而在实际情况下故障数据较难获取,数据量极其有限。 为解决小样本条件导致的基于深度学习故障诊断方法诊断精度不高的问题,人们提出了元学习方法,并取得了较好的学习效果[10]。 元学习利用小样本快速适应新任务,在小样本和跨域故障诊断中具有巨大的应用潜力[11],其中基于度量的方法是常用的元学习方法,在故障诊断领域得到了深入研究。 Wang 等[12]提出了基于特征空间度量的元学习模型(FSM3),解决了多个有限数据条件下进行少样本故障诊断的问题。 Sun 等[13]提出了一种在有限样本的情况下基于注意力残差原型网络(ARPN)的自适应故障诊断方法,有效捕获了样本的全局依赖特征,故障诊断效果良好。 上述方法虽然取得了一定的诊断效果,但忽略了对局部特征的信息提取。 Li 等[14]提出了深度最近邻神经网络(DN4),学习图像到类度量的深度局部描述符,利用该度量在小样本情况下获得了更高的诊断效率,但该方法对时序特征提取能力不足,导致模型识别精度难以保证。
为解决上述问题,本文提出一种基于元学习的小样本多模态 TE 过程故障诊断方法(SEDN4)。 首先,在网络特征提取阶段加入压缩和激励(squeeze-and-excitation,SE)模块,建立通道间的特征依赖,通过赋予不同的通道权重,获得通道特征;其次,在DN4 的度量空间中,对卷积特征图的深度局部描述符进行k最近邻搜索,找到k个最相近的特征进行加权求和,得到预测结果。通过小样本条件下多模态TE 过程故障诊断任务,对比不同方法的诊断效果,验证本文方法的可行性和有效性。
为在训练样本数量少的情况下精确识别新的数据,元学习[15]的概念被提出并受到关注。 根据典型的分类方法,元学习主要分为三类:基于度量、基于模型和基于优化的元学习方法。 基于度量的方法将特征嵌入到空间中以提高分类精度,如原型网络[16];基于模型的方法通过设计模型结构或利用另一个模型的参数,实现快速学习,如记忆增强神经网络[17];基于优化的元学习方法通过优化模型参数,使模型在样本有限的情况下快速收敛,获得良好的预测结果,如模型不可知元学习方法[18]。 本文采用基于度量的元学习方法。
掌握学习技巧是元学习方法的目标,该方法一般利用N-wayK-shot 模式将数据集划分为几个任务,每个任务包含N类样本,其中K个样本被标记为支持集,另一个未被标记的样本称为查询集。 通过学习元知识,模型可在少量样本的帮助下对新任务进行分类。
基于度量的元学习方法通过查询集和支持集之间的相似性比较来对故障进行识别,取相似度最高的类别作为分类结果。 DN4 是一种具有代表性的网络,其结构如图1 所示。 该网络主要由两部分组成:深度嵌入模块ψθ(•)(θ为模型参数)和图像到类度量模块ϕω(•)(ω为算法参数)。 前者用于所有图像学习深度局部描述符,后者利用学习到的描述符计算图像到类的度量。
图1 DN4 网络结构Fig.1 DN4 network structure
DN4 关注于局部特征,采用基于局部描述符的图像到类别的度量进行分类。 来自同一类的所有训练样本的局部不变特征被收集到一个池中,把图像的每一个局部特征看成一个类别。 该度量通过k近邻搜索[19]将查询图像的局部特征提取到每个类别的池中加以分类。 深度嵌入模块用来学习查询图像和支持图像的特征表示,可使用任意合适的卷积网络,且该模块只包含卷积层,没有全连接层,仅需要深度局部描述符来计算图像到类的度量。
给定输入图像X,以ψθ(X) 表示该图像m(m=H×W,H为高度,W为宽度)个d维局部描述符的集合,表达式为
式中xi(i=1,2,…,m)为输入图像的第i个局部描述符。
查询图像q通过嵌入模块表示为嵌入查询图像ψθ(q) =[x1,…,xm],ψθ(q)∈Rd×m,对于每个局部描述符xi,先找到其在支持类中的k个最近邻特征局部描述符,然后计算xi和每个之间的相似度,并将m×k个相似度相加作为查询图像q和支持类S之间的图像到类的相似度。 查询图像到支持类的相似性度量ϕω(ψθ(q),S)表达式为
多模态过程状态信息数据具有非高斯、非线性、强耦合、动态等特点,对其进行时序分析并提取特征,有助于确定故障类型并提升故障诊断准确率。 为更好地对数据进行特征提取,加入SE 模块,通过给各通道赋予权重获取关键特征,提升故障诊断精度。
根据压缩和激励网络(SENet)[20]设计SE 模块,将其加入特征提取网络中,从通道层面对其所提取的特征进行处理。 SE 模块结构如图2 所示。图中:Ftr表示标准卷积运算;输入图像X的长度为H′、宽度为W′、通道数为C′,X∈RH′×W′×C′;输出图像U的长度为H、宽度为W、通道数为C,U∈RH×W×C;Fsq(•)表示全局平均池化;Fex(•,w)表示激励操作;Fscale(•,•)表示通道权重相乘。
图2 SE 模块结构Fig.2 Squeeze and excitation module structure
首先通过全局平均池化对特征图进行压缩操作,将每个通道的二维特征压缩为一个全局特征,即将特征图大小从H×W×C压缩为1 ×1 ×C。U=[u1,u2,…,uC],对U进行全局平均池化得到特征向量z(z∈RC),其第c个(c=1,2,…,C)元素计算式为
然后将输出的1 ×1 ×C图片的全局特征经过两个全连接层(FC):第一个连接层用于降维(降维因子为r),然后由ReLU 函数激活;第二个全连接层用于升维,以适应通道之间复杂的相关性。
最后使用Sigmoid 函数获得归一化权重,得到输入特征层中每个通道的权值(0 ~1),通过全连接层的权重w对向量z进行处理,得到通道权重向量s。 该过程表示为
式中:f为特征提取函数;σ为Sigmoid 函数;δ为ReLU 函数;w1和w2分别为第一个和第二个全连接层的权重,
将SE 模块计算得到的各通道权重分别和原特征图uc(uc∈RH×W)相乘,生成加权后的特征图,表达式为
式中sc表示第c个通道的权重。
DN4 方法与其他方法的主要区别是,DN4 将最后一层基于图像级特征的度量替换为基于局部描述符的图像到类的度量。 DN4 利用卷积网络获得故障特征,这些特征在不同通道上表征了故障在不同时刻的特征信息,通道之间相互独立,该方法无法根据不同信息的重要程度自动提取关键信息,网络无法获得更具判别性的故障特征,从而导致故障诊断的精度不高。 本文加入SE 模块,增强对图片局部描述重要信息的关注度,以更好地对故障进行分类。
SEDN4 模型结构如图3 所示。 SEDN4 模型将SE 模块嵌入ResNet[21]网络的残差单元中,在归一化层和平均池化层之间加入SE 模块。 首先,通过卷积层作为深度嵌入模块ψθ(•)学习样本的故障特征;其次,通过式(4)和式(5)获得更具判别性的各图像的局部特征描述符,进一步由式(1)获得各样本的局部特征集合;最后,通过式(2)和式(3)在度量空间内利用每类样本的局部特征描述符计算支持类与查询样本间的距离,得到故障预测结果。
图3 SEDN4 模型结构Fig.3 SEDN4 model structure
查询图像和每个支持类均采用一组局部特征描述符表示,无需任何池化。 通过损失函数对各模块参数进行更新,损失函数L表示为
式中LCE为交叉熵损失函数。
采用梯度下降算法优化深度嵌入模块ψθ(•)以及图像到类度量模块ϕω(•),表达式为
式中α为学习率。
本文提出的基于SEDN4 的小样本多模态TE过程故障诊断方法流程如图4 所示。 整个故障诊断过程可分为三部分:数据预处理、离线建模、在线诊断。 具体诊断步骤如下。
图4 SEDN4 多模态故障诊断流程图Fig.4 SEDN4 multimodal fault diagnosis flow chart
步骤1通过测量装置采集TE 过程数据,利用小波包进行预处理,将一维数据转化为二维灰度图像,再将其进行伪彩色处理,同时划分支持集S和查询集Q。
步骤2将支持集S和查询集Q中的样本经特征提取映射到统一的度量空间,通过SE 模块分配权重,由嵌入模块得到各样本的局部特征描述符,经过k近邻算法的加权求和,得到预测值。
步骤3利用已有的模型设计经验,采用已经训练好的特征提取网络对实时数据进行快速在线诊断,得到实时诊断结果。
实验所用数据集为TE 化工过程数据集[22],对数据进行预处理,为分类网络的数据训练做准备[23]。 数据集选取4 个模态,每个模态有4 种故障,共16 类。 将数据集划分为元训练集和元测试集,并形成4-way 4-shot 和4-way 1-shot 任务。 在训练阶段轮次为30,在测试阶段轮次为10,分别进行10 次实验,取平均测试准确率为实验结果。实验采用Adam 算法,初始学习率为0.01,批次大小为128。 本文实验所用的环境配置为:CPU,Intel Core i7-8700;GPU,INVIDIA GTX 1080 Ti;深度学习框架为Pytorch。
实验所用的TE 过程故障类型和数据集模态分别如表1 和表2 所示。
表1 实验所用TE 过程故障类型Table 1 Types of TE process faults used for the experiments
表2 实验所用TE 过程数据集的4 种模态Table 2 Four modalities of the TE process data set used for the experiments
为验证本文SEDN4 方法的优越性,与其他小样本方法进行对比,包括元迁移(MTL)[24]、原型网络(ProtoNet)、DN4。 在数据集上进行4-way 4-shot 和4-way 1-shot 分类任务。 测试结果如表3和表4 所示。
表3 多模态TE 过程故障诊断结果(4-way 4-shot)Table 3 Multimodal TE process fault diagnosis results(4-way 4-shot)
表4 多模态TE 过程故障诊断结果(4-way 1-shot)Table 4 Multimodal TE process fault diagnosis results(4-way 1-shot)
由表3 和表4 可见,与其他小样本方法相比,本文SEDN4 方法在进行多模态故障诊断时平均准确率均有明显提升。 对于4-way 4-shot 任务,本文方法与DN4 相比,平均准确率提高了3.48%,与ProtoNet 相比,平均准确率提升了7.98%。 对于4-way 1-shot 任务,本文方法与DN4 相比,平均准确率提高了5.93%,与ProtoNet 相比,平均准确率提升了7.98%。 4-way 4-shot 任务设置下的准确率均高于4-way 1-shot 任务,这是由于随着样本数量的增加,模型能够提取更多更好的特征,更利于其后的诊断任务。 本文提出的SEDN4 方法通过SE 模块关注数据的局部特征,在故障诊断中具有明显的性能提升,诊断效果均超过对比方法。
在图像到类的度量中,需要选择合适的超参数。 为此,改变k(取为1,3,5,7) 的值,采用SEDN4 方法在TE 数据集上进行4-way 4-shot 任务,结果如表5 所示。 由表5 可以看出,k值对模型性能的影响较温和,可根据具体任务选择合适的k值。 本文选取k值为3。
表5 不同k 值下SEDN4 的平均准确率(4-way 4-shot)Table 5 Average accuracy of SEDN4 at different k values(4-way 4-shot)
本文提出了一种基于元学习的集合型故障诊断方法SEDN4,用于小样本条件下的多模态TE过程故障诊断。 在特征提取阶段,通过加入SE 模块获得更具有判别性的局部特征,获得局部描述符;在故障分类阶段,通过特征提取获得局部描述符,利用k近邻搜索进行图像到类的度量,得到预测值。 当新数据产生时,利用学习到的已有模态的相关知识或经验,快速实现新模态故障诊断。实验结果表明,本文方法故障诊断准确率较高,能够更好地实现故障分类,提高小样本条件下多模态TE 过程故障诊断的性能。