本文是对期刊《Advanced Engineering Informatics》中的论文:Highly imbalanced fault diagnosis of mechanical systems based on wavelet packet distortion and convolutional neural networks 的详细解读。


摘要

机械系统的健康运行对于确保人身安全和经济效益至关重要,因此对自动故障诊断技术有着很高的需求。然而,机械系统可用的故障样本数量往往远少于健康样本,导致传统的数据驱动方法经常出现高误诊率。文章提出了一种基于小波包畸变(Wavelet Packet Distortion)和卷积神经网络(ConvNets)的新型故障诊断方法。首先,小波包畸变意味着对小波包系数进行畸变处理以扩充故障样本,从而实现健康类与故障类之间的平衡。其次,利用平衡后的训练数据集训练基于卷积神经网络的分类模型。第三,将训练好的模型应用于测试样本的分类。最后,通过大量实验证明了该开发方法在机械系统不平衡故障诊断中的有效性。


1. 引言

工业中存在许多重要的机械系统。例如,航空液压泵在为控制民用飞机的起飞、巡航和着陆提供高压液压油方面具有重要意义。作为一种在恶劣环境下工作的既有旋转部件又有往复部件的机械设备,航空液压泵可能会遭受一些意外故障。因此,准确检测早期故障对于确保飞行安全具有重要意义。

现有的机械故障诊断技术可分为三类,包括基于物理建模的方法、基于信号分析的方法和基于数据驱动的方法。具体来说,基于物理建模的方法根据物理规则建立故障或退化模型,并基于模型预测行为。然而,现有的基于物理建模的方法大多只关注非常简单的部件(如轴承和齿轮)的仿真。大型机器的结构和动态行为比这些简单部件复杂得多。为大型机器建立准确的物理模型非常具有挑战性,尤其是在实际工作条件下。

基于信号分析的故障诊断方法试图从监测信号中捕捉故障特征。然而,监测数据通常包含大量噪声。噪声和故障特征都会随运行条件的变化而变化。因此,典型的信号分析方法往往无法检测到故障特征。

相比之下,数据驱动方法利用历史监测数据训练自动分类模型,并应用这些分类模型进行故障诊断。研究人员在使用数据驱动方法时,无需揭示故障或退化的物理原理。近年来,各种数据驱动的故障诊断方法已被开发出来。此外,值得一提的是,工业过程也可以使用数据驱动方法进行监控。
然而,传统数据驱动方法的一个潜在问题是,其性能高度依赖于人工设计特征的质量。一旦特征不能完全代表健康状态的特征,这些数据驱动方法将完全无法检测出故障。因此,构建一个信息丰富的特征集对于确保数据驱动故障诊断方法的性能至关重要。

作为特征提取的替代方案,特征学习为构建信息丰富的特征集带来了一种新途径。其基本思想是允许或强制算法直接从原始监测信号中自动学习有用特征,而不是由工程师配置特征。特征学习在提高诊断准确性方面的优越性已在一些文献中得到验证。一般来说,特征学习是通过深度学习方法实现的,即具有多层非线性变换的机器学习方法。

然而,传统深度学习方法要求不同类别的训练样本数量相同或相似。如果主导类别的样本数量远多于其他类别,深度学习方法往往会将大多数测试样本分类为主导类别,这通常被称为类别不平衡问题。针对这一问题,已进行了一些研究。然而,对于训练样本数量极其有限的少数类(例如只有4或5个训练样本),现有方法无法保证良好的性能。一方面,一些具有复杂训练过程的重平衡方法难以训练;另一方面,一些简单的随机采样方法无法向训练数据集中引入足够的多样性。

针对不平衡问题,文章开发了一种基于小波包畸变和ConvNets的新型故障诊断方法。作为关键步骤,开发了小波包畸变技术以扩充故障样本。首先,利用小波包变换将振动信号分解为若干小波系数。其次,对随机选择的小波包节点处的小波系数进行随机畸变。第三,将畸变后的小波系数与其他小波系数组合,用于重构样本。该过程可以重复进行,从而生成大量样本作为训练数据集。最后,可以使用平衡后的数据集训练ConvNet,从而在少数类上实现相对较高的诊断准确率。


2. 开发的不平衡故障诊断方法

文章在小波包变换的基础上开发了小波包畸变技术,以增加故障训练样本的数量。在这里,扩充后的样本与原始样本相似但数值不同。因此,可以实现类别间的平衡,并提高训练数据集中的样本多样性。

2.1. 小波包畸变

如图1所示,开发的小波包畸变方法主要由三个步骤组成:小波包变换、一组随机选择的小波系数的畸变、逆小波包变换。小波包变换是一种经典的时频分析方法,可以将信号分解为不同频带的一组小波系数,已广泛应用于基于振动的机械系统故障诊断中。相反,逆小波包变换可用于利用小波系数恢复信号;如果不对小波系数进行其他操作,重构的信号将与原始样本完全一致。本研究对一组随机选择的小波系数进行畸变处理,使得重构的信号与原始样本相似但略有不同。重构的信号可用作扩充样本,特别是针对少数类。

Tree shape 路径图

图1 小波包畸变过程图

\((h, g)\) 为一对长度为 \(L\) 的有限脉冲响应滤波器,设 \(w_{j,i}\) 表示第 \(j\) 层分解的第 \(i\) 组小波系数。具体而言,\(w_{0,0}\) 是原始信号。根据 Mallat 递归算法,小波包变换可以使用以下函数递归实现:

\[w_{j+1,2i}[k] = \sum_{l=0}^{L-1} w_{j,i}[2k-l]h[l] \quad (1) \]

\[w_{j+1,2i+1}[k] = \sum_{l=0}^{L-1} w_{j,i}[2k-l]g[l] \quad (2) \]

其中 \(i = 0, \cdots, (2^j - 1)\)\(k\)\(l\) 是元素的顺序索引。如图1所示,进行了两级小波包分解树,因此有4组小波系数。随后,随机选择一组小波系数,并使用以下函数进行非线性畸变:

\[\tilde{w} = \text{sign}(w) \cdot (\text{abs}(w))^d \quad (3) \]

其中 \(d\) 是畸变系数,从预设范围内随机选择。

畸变是使扩充样本与原始样本不同的关键步骤。如果 \(d\) 接近1,\(\tilde{w}\) 将接近 \(w\)。相反,如果 \(d\) 远离1,\(\tilde{w}\)\(w\) 之间将会有很大差异。因此,建议在预设范围中包含1。考虑到故障特征主要与频率分量相关,畸变操作的一个好处是,原始样本的频率可以大部分保留在扩充样本中,这使得样本的故障类型基本保持不变。畸变操作的效果如图2所示。\(d=0.8\)\(d=1.2\) 的畸变正弦信号的波形与原始正弦信号形状相似。

Tree shape 路径图

图2 一个正弦信号及其两个畸变版本

在对部分小波系数进行畸变后,进行逆小波包变换以获得输出信号 \(v\),其公式表示为:

\[v_{j,i}[k] = \sum_{l=0}^{L-1} \tilde{w}_{j+1,2i}[(k-l)/2]\tilde{h}[l] + \sum_{l=0}^{L-1} \tilde{w}_{j+1,2i+1}[(k-l)/2]\tilde{g}[l] \quad (4) \]

其中 \(\tilde{w}\)\(w\) 的二倍上采样版本,\(v\) 是重构的小波系数或信号。\((\tilde{h}, \tilde{g})\) 是用于重构的一对滤波器。此外,考虑到振动信号的标准差与故障密切相关,文章保持扩充样本的标准差与其对应的原始样本相同。

2.2. 基于ConvNet的故障特征学习

近年来,ConvNet已成为基于振动的故障诊断任务中最流行的深度学习方法。ConvNet的主要优势在于它能够直接从原始监测信号中自动学习信息丰富的特征,无需手动设计特征,因此不需要太多关于信号处理和故障物理机制的专业知识。

典型ConvNet的架构如图3所示,由若干卷积层(ConvLs)、批量归一化(BNs)、修正线性单元(ReLUs)、全局平均池化、全连接层、Softmax和交叉熵损失组成。这些组件描述如下。

Tree shape 路径图

图3 典型卷积神经网络的架构图

ConvL结合了局部感受野和参数共享的概念。首先,局部感受野意味着一个神经元只与前一层的一小部分神经元相连。其次,参数共享意味着同一层神经元的权重是共享的。通过使用这两个概念,可训练参数的数量可以大大减少,因此深度ConvNets比同等深度的多层感知器网络更容易训练。ConvL的公式可以表示为:

\[x_j^m = f(\sum_{i \in M_j} x_i^{m-1} * c_{ij}^m + b_j^m) \quad (5) \]

其中 \(x\) 是特征图,\(c\) 是卷积核,\(b\) 是偏置,\(*\) 表示卷积,\(M_j\) 是在ConvL中使用的特征通道集合,\(f\) 是激活函数。\(m, i, j\) 分别是卷积层、输入和输出特征通道的序号。

使用ReLU激活函数,它直接将负特征设为零。使用ReLU的主要好处是其导数值要么为1要么为0,有助于缓解梯度消失和爆炸的风险。ReLU激活函数表示为:

\[x \leftarrow \max(x, 0) \quad (6) \]

BN 是一种插入深度神经网络内部的特殊自适应归一化模块,旨在减少内部协变量偏移,从而加速训练过程。换句话说,使用BNs后,不同批次中特征的分布将变得更加稳定和可调整。BN模块的公式表示为:

\[\mu = \frac{1}{N_{batch}} \sum_{n=1}^{N_{batch}} x_n \quad (7) \]

\[\sigma^2 = \frac{1}{N_{batch}} \sum_{n=1}^{N_{batch}} (x_n - \mu)^2 \quad (8) \]

\[\hat{x}_n = \frac{x_n - \mu}{\sqrt{\epsilon + \sigma^2}} \quad (9) \]

\[y_n = \beta + \gamma \hat{x}_n \quad (10) \]

其中 \(N_{batch}\) 是一个批次中的样本数量,\(\epsilon\) 是一个接近零的正值,\(\beta\)\(\gamma\) 是两个可训练参数,用于平移和缩放特征分布。

全局平均池化从每个特征通道构建一个平均值。最终全连接层(FC)中的神经元和权重数量大大减少,进一步减少了过拟合的影响并降低了优化难度。

在ConvNet的末尾,采用Softmax交叉熵损失作为要最小化的目标函数。Softmax函数将特征转换为(0,1)范围,表示为:

\[p_i = \frac{e^{y_i}}{\sum_{j=1}^{N_{class}} e^{y_j}} \quad (11) \]

其中 \(y_i\) 是第 \(i\) 个输入特征,\(N_{class}\) 是已知类别的数量(即健康状态),\(p_i\) 是样本属于第 \(i\) 类的估计概率。然后,交叉熵损失 \(L\)(衡量真实概率 \(t_j\) 和估计概率 \(p_j\) 之间的距离)计算如下:

\[L = - \sum_{j=1}^{N_{class}} t_j \log(p_j) \quad (12) \]

最后,应用梯度反向传播算法,通过多个epoch优化ConvNet中随机初始化的权重和零初始化的偏置。优化后的ConvNet可适用于不平衡故障诊断任务。

2.3. 不平衡故障诊断流程

所开发的不平衡故障诊断方法的总体流程如图4所示。首先,准备一个训练数据集,该数据集由足够数量的健康样本和极少量的故障样本组成。其次,利用开发的小波包畸变技术扩大故障样本的数量,使每个故障类别的样本数量与健康类别相同,从而实现类别平衡。第三,使用平衡后的训练数据集训练ConvNet模型1个epoch。第四,如果训练准确率达到100%或已达到第200个epoch,则终止训练;否则,再次扩充故障样本,并再次训练ConvNet模型1个epoch;这种安排的目的是防止过拟合问题。最后,应用训练好的ConvNet模型进行机械系统的故障诊断。

Tree shape 路径图

图4 不平衡故障诊断方法的整体流程图

---

3. 实验验证

所开发的机械系统不平衡故障诊断方法是使用 TensorFlow 1.0 实现的,实验在一台配备 Intel i7-10700K CPU 和 NVIDIA RTX3060 GPU 的普通个人电脑上进行。实验数据、设置和结果介绍如下。

3.1. 实验数据

如表1所示,从民用航空液压泵的地面模拟试验台上收集了6种健康状态(包括1种健康状态和5种故障状态)下的振动信号。每个样本是一段特定长度的振动信号。为了模拟类别不平衡,健康类有400个训练样本,而每个故障类只有5个训练样本;不平衡比例为80:1。数据集中其余可用样本放入测试数据集。健康类有80个测试样本,但每个故障类包含475个测试样本。

表1:训练和测试数据描述

标签 描述 训练样本数量 测试样本数量
H 无可见故障 400 80
F1 配油盘磨损故障 5 475
F2 缸体磨损故障 5 475
F3 入口压力低0.3 MPa的侵蚀故障 5 475
F4 出口压力20 MPa的变形故障 5 475
F5 间隙0.8 mm的疲劳故障 5 475

3.2. 超参数配置

超参数可分为两类:与小波相关的超参数和与ConvNet相关的超参数。首先,对于与小波相关的超参数,分解层级为3,由于“DB4”小波函数在故障诊断任务中的广泛应用,故选用该函数。其次,对于与ConvNet相关的超参数,卷积层数量为2;两个卷积层中的卷积核数量分别为8和16;卷积核长度为3;学习率在第一个epoch设为0.1,并在随后的每个epoch乘以0.96;动量系数为0.9;L2正则化中的权重衰减为0.0001。最后,训练过程在第200个epoch或训练准确率达到100%时终止。

3.3. 与传统方法的实验比较

所开发的方法不仅与未对训练数据集进行任何操作的ConvNets进行了比较,还与下采样器(DS)+ ConvNet和过采样器(OS)+ ConvNet进行了比较。在这里,所开发方法中畸变系数的范围为[0.8, 1.2);DS意味着从健康类中随机选择5个样本,并用作训练数据集的一部分;OS意味着简单地复制所有故障样本多次以实现类别间的平衡。每次实验重复10次,使用不同的样本作为训练数据集,其余样本作为测试数据集。

实验结果的F1分数、精确率和召回率显示在图5至图7中。可以看出,所开发的方法在10次测试中有7次 yielded 最高性能。在第2、5和8次测试中,所开发的方法略逊于OS + ConvNet。主要原因是测试中存在较高的随机性;每个故障类只有5个样本。如果这5个样本不能完全代表整个类别,那么方法很难保证良好的性能。

图5至图7中评估指标的平均值总结在表2中。显然,所开发方法的平均性能在四种方法中是最好的。与OS + ConvNet相比,它在三个平均指标上分别取得了1.47%、1.12%和1.44%的提升,这验证了小波包畸变不仅可以提高训练数据集的多样性,还可以提高航空液压泵不平衡故障诊断的准确率。

Tree shape 路径图

图5 四种提到的方法在10次试验中的F1分数

Tree shape 路径图

图6 四种提到的方法在10次试验中的精确率

Tree shape 路径图

图7 四种提到的方法在10次试验中的召回率

使用图8中的箱线图进一步比较了这些方法的稳定性。可以看出,与其他方法相比,所开发方法的大多数结果分布在较小的范围内。这里,不稳定的性能主要有两个原因,即(1)过拟合和(2)训练故障样本的特征。一方面,开发的小波包畸变创建了各种训练样本并减少了过拟合,因此所开发的方法比其他方法更稳定。另一方面,有时随机选择的训练故障样本碰巧与测试故障样本差异很大,因此在这种情况下所有这些方法的性能都不稳定;这也是所开发方法出现异常值(在图8中)的主要原因。

Tree shape 路径图

图8 图5–7结果的箱线图

训练阶段训练损失和测试损失的变化趋势如图9所示。可以观察到,前两种方法(即ConvNet和DS + ConvNet)的训练在30多个epoch后终止,而另外两种方法(即OS + ConvNet和所开发的方法)的训练在第5个epoch终止。原因是ConvNet和DS + ConvNet分别只有400+5×5=425和5×6=30个训练样本,而OS + ConvNet和所开发的方法有400×6=2400个训练样本。此外,有趣的是,OS + ConvNet和所开发方法的训练损失在第一个epoch相对较低(约0.1)。原因是经过仅仅1个epoch后,损失就降到了0.1左右的水平。ConvNets很容易拟合训练数据集。最重要的是,我们开发的方法的测试损失约为0.05,明显低于其他三种方法,这验证了所开发的方法在测试数据集上具有相对较好的泛化能力。

此外,所开发的方法并不耗费太多时间。一方面,小波包分解和重构计算效率高。另一方面,文章使用了较小的训练数据集。具体来说,所开发方法每个epoch的训练时间约为8秒(包括小波包畸变和深度模型优化的时间),因此图9(d)中的总训练时间应约为8秒 × 5个epoch = 40秒。虽然有时所开发的方法需要更多的epoch,但不会花费更长的训练时间。

Tree shape 路径图

图9 训练阶段期间损失的变化趋势

F1分数的变化趋势如图10所示。可以观察到,所开发方法的最终测试F1值高于前三种方法,这与最高性能相对应。此外,所开发方法的训练和测试F1分数在第2个epoch相对较低,这可能是由于某些扩充的故障样本变得与真实故障样本差异过大,从而误导了相关参数的优化。

Tree shape 路径图

图10 训练阶段F1分数的变化趋势

学习到的高维特征使用t分布随机邻域嵌入(t-SNE)转换为二维空间。测试样本在学习到的特征空间中的分布如图11所示。可以观察到,在ConvNet中,F1和F2类高度重叠,表明这两类不易区分。然后,DS + ConvNet和OS + ConvNet中的误分类明显多于所开发的方法,这验证了所开发方法在学习判别性特征方面具有高能力。

Tree shape 路径图

图11 测试样本在二维特征空间中的分布

为了清晰地观察诊断性能,图12提供了四种方法的混淆矩阵。可以观察到,当使用这四种方法时,F1类的准确率分别为71%、86%、80%和94%。此外,所开发方法的各类别准确率大多高于其他三种方法。因此,在这些实验中,对于大多数健康状态,我们开发的方法性能更可靠。

Tree shape 路径图

图12 所考虑方法在测试数据集上的混淆矩阵

3.4. 使用不同畸变系数范围时的性能

畸变系数对扩充样本有直接影响。如果畸变系数远离1.0,扩充样本将与对应的原始样本更不相似。相反,如果畸变系数接近1.0,扩充样本将接近原始样本。那么,如果采用更大的畸变系数范围,扩充数据集中的多样性将更多,因此需要相对更大的ConvNet。

在本小节中,测试了5种不同的畸变系数范围,包括[0.5, 1.5), [0.6, 1.4), [0.7, 1.3), [0.8, 1.2), 和[0.9, 1.1)。相应结果总结在表3至表5中,其中“none”表示畸变系数始终等于1.0,即故障样本只是简单复制而没有进行任何畸变。

虽然[0.5, 1.5)和[0.7, 1.3)对应最高的平均性能,但它们分别只取得了3次和1次最高性能。其他3个范围(即[0.6, 1.4), [0.8, 1.2), 和[0.9, 1.1))分别有1次、4次和1次产生最佳性能。因此,确定一个范围为最优是不合适的。此外,范围的选择应与ConvNet的大小一起考虑。针对这个问题,在实际应用中可以准备一个验证数据集,用于为测试数据集选择合适的畸变范围。


4. 结论

文章为机械系统开发了一种新的不平衡故障诊断方法,该方法利用小波包畸变来扩充故障样本,以实现健康类和故障类之间的平衡,并应用一种典型的深度学习方法(即ConvNet)通过分类来诊断故障。

与ConvNet、DS + ConvNet、OS + ConvNet相比,所开发方法在平均F1分数上分别取得了8.10%、5.02%和1.47%的提升。这些提升主要归功于使用小波包畸变作为数据增强方法来实现类别间的平衡。有了扩充后的训练数据集,后续的ConvNet不会遇到类别不平衡和过拟合问题,并实现了更高的识别准确率。

此外,文章研究了随机选择畸变系数值范围的影响,实验结果表明,带有小波包畸变的ConvNets的性能大多高于没有小波包畸变的ConvNets,这验证了所开发方法具有相当稳定的性能。还建议在实际应用中准备一个验证数据集以确定值范围。

最后,小波包畸变的思想可适用于其他机械系统(如风力发电机、燃气轮子和民用航空发动机)的不平衡(或少样本)故障诊断。它也可用于与其他深度学习方法结合的其他类型时间序列信号的数据增强,并且在其他研究领域具有提高模式识别准确率的潜力。

此外,值得注意的是,文章直接使用了“DB4”小波函数,目前这一点尚无坚实的理论依据。也就是说,在此任务中,某些其他小波函数可能比“DB4”更合适。未来的研究将集中在如何具有坚实依据地选择或设计合适的小波函数上。


论文标题: Highly imbalanced fault diagnosis of mechanical systems based on wavelet packet distortion and convolutional neural networks
出版期刊: Advanced Engineering Informatics. 2022, 51: 101535.
DOI: 10.1016/j.aei.2022.101535
https://doi.org/10.1016/j.aei.2022.101535

posted on 2026-03-06 16:37  伊宸  阅读(14)  评论(0)    收藏  举报