APP下载

基于CapsNet 模型的过程故障识别研究

2020-09-21衷路生卢文涛

华东交通大学学报 2020年4期
关键词:胶囊重构准确率

衷路生,卢文涛

(华东交通大学电气与自动化工程学院,江西南昌330013)

近些年来,深度学习模型在复杂故障识别任务中表现优异,并且在许多传统的识别任务中的识别准确率也显著提高[1-2]。 文献[3]提出了深度学习模型架构ResNet,利用残差恒等映射层,减轻了网络的训练,显著提高了图像识别率。 文献[4]提出了一种基于电机状态监测的一维卷积神经网络模型故障检测系统,具有内在的自适应设计,把电机故障检测的特征提取和分类融合为一体,更加快速、高效地完成故障检测。 文献[5]提出了基于LeNet-5 的新型CNN 故障诊断模型,将信号转换为二维图像的处理,快速提取转换后的图像特征。文献[6]提出改进后的DBN 网络模型,用Laplace 函数中的位置参数控制稀疏度,使无标签的数据特征更加直观的表示出来,达到更好的准确度。 文献[7]提出了一种改进的偏最小二乘法(IPLS)用于多种状态过程监测。文献[8]提出基于过程监测和故障诊断(PM-FD)的基本数据驱动方法,在非高斯测量噪声下,其提出的多数测试方法在TE 过程具有良好的故障诊断性能。 文献[9]探索了无监督局部多层感知分类器在过程故障诊断的应用,其能区分不同类别的已知故障类型,提高了神经网络模型的分类性能。 文献[10]提出基于随机优化的变量方案的故障识别方法,优化测试数据的累积误差。 文献[11]提出一种基于可扩展DBN 的故障诊断模型,利用全双层反向传播网络训练故障特征,在TE 平台上的识别率显著提高。

上述方法在一定程度上改善了深度学习模型在图像识别和故障诊断上的性能,但仍然存在不足。 基于文献[12]的学术思想,本文提出了一种基于CapsNet 的过程故障识别模型。

1 TE 化工过程数据的处理及分类

本文以TE 化工过程的故障诊断为实验对象,TE 化工过程是模拟了Eastman 化学公司的实际化工的联合反映的一个过程,此平台已经广泛成为测试各种模型和算法的故障检测及诊断性能的依据[13]。 TE 过程主要包括20 类故障以及1 类正常工况。 采集样本运行时间为100 h,故障为第20 h 引入,获取10 000 个观测数据,其中前2 000 个数据为正常样本,其余8 000 个数据为故障样本。

从生成的8 000 个故障样本数据随机选取6 400 个样本作为训练集,剩余1 600 个样本作为测试集。20种故障对应共为128 000 个训练样本及32 000 个测试样本。每次随机选取10 种故障,则有64 000 个训练样本及其16 000 测试样本。 如图1 右侧所示,对样本数据训练集的选取。

图1 样本数据集的选取Fig.1 Selection of sample data set

如图1 右侧所示,每一种故障数据,从0 到8 000 个样本点里,随机选取6 400 个样本,再进行10 种故障随机排列,则有64 000 个样本点作为训练集。 最后进行零-均值规范化,对训练集标准化。 规范化公式为

式中:i 表示样本数据中的第i 类故障, j 表示第i 类故障数据中对应的53 个变量之一;μ,σ 表示原始故障数据的均值与标准差。

对新生成的故障数据集χji,进行重构,随机选取49 个变量转换为7×7 的方形图像,即χji∈7×7×64 000。基于7×7 的方形数据图像建立CapsNet 故障识别网络模型。

2 TE 过程故障模型的建立

从整体结构上,模型可分为故障分类模块、数据重构模块。 故障分类模块主要包括:输入层、卷积层、胶囊层, 数据重构模块主要利用胶囊网络模型来逆向估计作为训练集输入的TE 检测数据。 图2 为利用TE 数据构建的基于CapsNet 的过程故障识别模型, 其中图2 下方的图形是网络模型各层输出向量的特征可视化图。

从特征图中明显可以看出某类故障已经大致准确预测。 充分说明了CapsNet 对故障分类的有效性和优越性。

图2 基于CapsNet 的过程故障识别模型Fig.2 Process fault identification model based on CapsNet

2.1 故障分类模块

1) 输入层为重构、 归一化所得的7×7 矩阵,矩阵所包含的TE 过程数据为20 类故障以及1类正常工况。

2) 第二层是卷积层。 该层使用256 个步幅为1 的2×2 卷积核,对输入为7×7 的检测数据进行卷积,选取sigmoid 作为神经元的非线性函数。 其中,sigmoid 函数、卷积的数学表达式如式(2)式(3)所示,该卷积层得到数据矩阵维数为6×6。 输出神经元数量为256×6×6=9 216,权值数量为128×10=1 280。

其中用卷积核m×m 对n×n 的复杂工况故障数据进行步幅S 的卷积运算。

3) 第三层为初始胶囊层(胶囊层1),该层包含卷积运算,并作为胶囊层的输入。该层有32 个通道,每个通道包含8 维的卷积胶囊。 根据式(2)式(3)定义,通道内每个卷积单元对第二层6×6 的数据矩阵进行卷积运算后得到的2×2 数据矩阵,因此,该层的输出神经元数量为32×8×2×2=1 024,胶囊数量为32×2×2=128,连接第二层和第三层之间的卷积运算的权值数量为256×3×3×32×8+32×8=590 080。 第二层与第三层之间卷积运算组成第三层胶囊的8 维向量。 胶囊层1 的输出是产生胶囊层2 的输入向量。

4) 第四层为故障分类胶囊层(胶囊层2),该层包含10 组16 维的故障分类胶囊。

2.2 动态路由更新模块

在网络训练过程中,选择了动态路由算法来预测TE 过程故障类别,防止了以往神经网络中池化层的故障信息丢失,根据图2 可知,胶囊层2 在胶囊层1 输出8 维向量的基础上进行传播和路由更新。 路由更新如图3 所示。

图3 路由更新Fig.3 Routing update

胶囊层1(即低层)的128 个胶囊的输出向量ui∈R8×1,i=1,2,…,128,通过动态路由机制发送到合适的高层胶囊, 使得该胶囊能以最大概率表征某类故障的存在性,ui∈R128×1被路由到该高层胶囊使得其输出向量的模长‖vj‖最大化,同时保持ui的方向不变,即ui所表征的参数信息被保留到高层胶囊。

胶囊层2(即高层)胶囊的输出向量vj∈R16×1,j=1,2,…,10,模长‖vj‖表示TE 过程中某类故障存在的概率,因此必须满足概率条件0≤‖vj‖≤1。 向量vj的方向可表示故障类型。

最终,耦合系数cij由bij的softmax 函数计算得到

耦合系数cij甲来量化低层胶囊与高层胶囊之间的连接, 从而计算胶囊的输出。 其动态路由更新过程为:①初始化bij为0;②根据公式(9)计算耦合系数cij;③运用式(4)式(5)计算预测向量及高层胶囊的输入向量;④由式(7)计算高层胶囊的输出向量;⑤式(8)更新相似性bij,然后返回②,迭代次数3 次;计算胶囊输出。

2.3 重构模块

数据重构模块利用胶囊网络模型故障分类模块的结果来编码训练样本的输入数据,即利用胶囊网络模型来逆向估计作为训练集输入的7×7 的TE 检测数据,构建三层全连接的网络架构,实现对过程控制系统检测数据的重构/估计。 数据重构模块如图4 所示。

首先,设置重构模块的输入向量。 网络训练过程的故障分类胶囊层采用掩蔽方法只保留正确胶囊的激活向量,即胶囊层L 中对应于训练标签的胶囊输出向量作为活跃向量,而胶囊层L 中的其他输出向量,则全部设置为零,由此得到160 维的重构模块输入向量(除16 维活跃向量非零外,其余144 维向量为零);

然后,将得到的重构模块输入向量传给由三个全连接层组成的解码器,经过三个全连接层的训练,最终输出7×7 的TE 数据矩阵,与最初的输入数据矩阵进行比对,从而快速进行反馈修正,使损失误差降为最小。

图4 重构模块Fig.4 Reconstitution module

3 实验验证

本文采用深度学习框架Tensorflow[14]进行实验验证。网络模型设置处理数据的batch_size 为100,共对实验数据训练30 个epoch。 训练集的批量个数为640(64 000/100=640),每epoch 迭代640 次,每次需要0.3 s。

3.1 特征可视化

针对传统网络训练过程无法熟知每层网络的具体操作的问题, 本文对CapsNet 的每层网络的输出向量进行特征可视化分析,如图5 所示。

图5 特征可视化Fig.5 Feature visualization

首先,将输入从一维故障数据重构为二维7×7 的图像数据。卷积操作后,可以看出故障数据的某类特征被提取出来,得到新的二维6×6 的图像。 然后,使用步幅为1 的3×3 卷积核操作得到2×2 的图像矩阵,故障特征再次被提取、被细分化。最后,经过动态路由算法更新预测。从得到的10×16 的输出图像清楚看到,一类故障类型可以被网络快速识别,且识别准确率也极高。

从图5 所示的故障分类胶囊层可以看出,随机选取的10 类故障向量是一个160 维(10×16)的输出矩阵,每行表示一类故障输出,16 维的输出活跃向量与其他输出向量存在明显差异,表明模型能准确识别每一类输入故障。

3.2 实验仿真结果

针对本文所提的20 种故障数据以及一种正常工况数据,随机进行4 次实验验证。 每次随机选取10 类不同故障进行训练。 这样既可以保证训练集和测试集不重复,又能同时对20 种故障数据进行识别。

表1 20 种故障的训练准确率与测试准确率Tab.1 Training accuracy and test accuracy of 20 kinds of faults

从表1 可以得出:20 种故障的整体训练准确率都达到96%以上, 整体测试准确率均达到92%以上,说明了模型具有良好的诊断能力。

其次,再对每一类故障样本的数据集进行3 次测试,每类故障的测试准确率如表2 所示。

表2 每类故障的测试准确率表Tab.2 Test accuracy of each type of fault

如表2 中所示,除第三类故障外,其余19 类故障的测试准确率都为90%以上,达到预期的实验效果,由于故障3 和故障5 较难识别,在文献[8,10] 中, 故障3 的识别率仅达到2.37%和10.25%,在文献[8]中,故障5 的识别率仅达到34.75%。 在本文的20 类故障识别里,故障3 的测试准确率达到86.96%, 故障5 的测试准确率为90.81%,实验表明本文提出的故障诊断模型的性能有了明显提高。

随机选取10 种故障识别的数据测试仿真图如图6 所示。

图6 所示,图中实线表示随机选取10 种故障识别的训练准确率,图中虚线表示随机选取10 种故障识别的测试准确率。当step 为0 到4 000 时,训练准确率和测试准确率同时迅速增加为96%和94%左右。 4 000 步之后,增长速度逐渐缓慢,最终均趋于稳定。在此过程中,训练及测试准确率的增长趋势保持同步,有一定的稳定性和一致性。

图6 随机选取10 种故障识别的数据测试仿真图Fig.6 Test simulation diagram of randomly selected 10 kinds of fault identification data

表3 测试结果对比Tab.3 Comparison of test results

总的误差损失为边缘损失误差与重构模块损失误差之和。 当迭代次数达到4 000 次的时候, 准确率接近95%, 总的误差损失已经低至0.1。 随着迭代次数的增加,损失值收敛于0.09。

3.3 实验结果对比

表3 中,将本文所提过程故障诊断模型的数值仿真结果与同在TE 过程数据库上进行故障诊断其他故障诊断方法的仿真结果进行对比,本文模型的平均故障分类准确率可达到95.593 8%,高于现有模型对TE 过程故障的识别准确率。 说明了本模型的故障识别性能较之前模型有显著提高。

4 结论

本文提出基于CapsNet 模型的过程故障诊断方法,首先,对输入数据进行预处理,再进入网络模型训练,主要通过在动态一致路由更新上进行故障分类,还增加重构模块来对输入数据矩阵及时反馈修正,降低损失误差。 实验结果表明CapsNet 模型比之前模型更适合过程故障识别。 同时因为网络结构简单以及网络的空间特性,训练速度及识别准确率都大大提高。

猜你喜欢

胶囊重构准确率
视频压缩感知采样率自适应的帧间片匹配重构
长城叙事的重构
时光胶囊
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
高盐肥胖心肌重构防治有新策略
时光胶囊
北京的重构与再造