Research on Motor Fault Diagnosis Method Based on GAN and Few-Shot Learning
With the advancement of industrial automation, motor fault diagnosis has become a key technology to ensure the normal operation of industrial equipment. Traditional fault diagnosis methods often rely on large amounts of labeled data for training. However, in practical applications, motor faults are varied, and fault data is relatively scarce, making data insufficiency a major bottleneck for fault diagnosis. To address this challenge, this paper proposes a fault diagnosis method based on Generative Adversarial Networks (GANs) to solve the data issue and improve model performance. In this study, we introduce GANs to enhance data and alleviate the problem of data insufficiency. Specifically, we first convert vibration data into spectrograms, which are then used as input to the GAN. The generator generates additional data to expand the dataset. The generated data not only possesses good time-frequency features but also retains the diversity of faults, thereby improving the generalization ability of the few-shot learning model. The enhanced data is then processed through the LKA (Large Kernel Attention) module for feature extraction. Finally, after processing by a global branch and a local branch, the data is classified. Furthermore, to further improve diagnostic accuracy and training efficiency, we combine KL divergence and Wasserstein distance, and propose dynamic weight adjustment and learning rate adjustment strategies. These strategies make the training process more stable and accelerate optimization. Extensive experiments on the public CWRU dataset demonstrate the effectiveness of the proposed model.
Motor Fault
工业生产中设备或系统的监测与维护是一个重要课题。有统计数据显示,在尚未计算故障本身带来的生产损失下,各类企业的维护成本通常就达到了总支出的15%~60%,冶金、采矿企业更是高达50%~60%
在众多电机故障中,其中轴承故障通常占机械故障的40%~50%
传统的信号特征处理与机器学习技术在处理非线性复杂信号方面有瓶颈,而深度学习以其强大的特征处理能力和建模能力,在预测、图像处理、故障识别等诸多领域都表现出巨大的潜力。本文将采用生成对抗网络(Generative adversarial networks, GAN)
受上述工作启发,本文提出了一种基于GAN和少样本学习的网络模型,并首次将该模型引入故障识别领域,不同于传统的生成器判别器结构,本文引入Kullback-Leibler (KL)散度来更新生成器,引入Wasserstein GAN (WGAN)来更新判别器,与此同时通过设置dropout层来缓解过拟合问题。此外,我们提出了一种动态权重调整策略。同时,我们引入了学习率调整机制,专为生成对抗网络(GAN)在电机故障诊断中的应用而设计。本文的主要贡献如下:
1) 在该领域引入了一种新的复合函数:结合Wasserstein距离和KL散度,利用Wasserstein 距离捕捉生成数据与真实数据分布的全局差异,同时通过KL散度优化局部细节,使生成对抗网络(GAN)在电机故障诊断中的数据建模更加全面和精确。
2) 引入了动态权重调整策略:在训练过程中,根据生成样本与真实样本的差异,自适应地调整KL散度和Wasserstein距离的权重,实现了生成器和判别器的动态平衡,提升了模型的收敛速度。
3) 引入动态学习率调整机制:在训练过程中,根据KL散度和Wasserstein距离的权重动态变化来动态调整学习率,使模型训练更稳定,精度更高。
4) 在公开数据集CWRU上进行了大量消融实验,证明我们所提方法的优越性。
近些年来深度学习的发展,逐渐应用到了故障诊断领域。深度学习方法相比于传统的方法,解决了一些时间和成本上的问题,但故障数据不足仍然是一大挑战,对抗生成网络旨在通过两个神经网络生成接近真实分布的数据分布,与真实分布一起作为整体模型的输入,从而弥补数据不足的缺点。同时少样本学习是一种元学习方法,也可用于上述诊断问题。
在故障识别等领域,生成对抗网络(Generative adversarial networks, GAN)的引入为数据稀缺问题提供了新的解决方案。例如,Mirza等人
在数据特征学习方面,Zhang等人
由于在故障诊断中,不同故障模式的频率特征相较于时序特征会更明显,而噪声影响会减弱,同时可初步平滑掉一些不重要的特征,所以本文先利用短时傅里叶变换(Short-Time Fourier Transform, STFT)将时序数据转为时频图,作为所提GAN模块的输入,这样有利于生成器学习到除数据分布外的时频相关性,并保留原始数据的周期性、频率成分和时频特性。为了弥补数据较少的缺陷,本文提出了结合动态权重调整策略和学习率调整机制的KL_WGAN模型,数据经过GAN加强之后,采用少样本学习方法进行分类,得到支持集和查询集,为从支持集合查询集中提取特征,采用了基于LKA (Large Kernel Attention)的多重特征提取模块。由于我们需要测量支持集和查询集之间的相关性,本文采取了Transformer框架来处理全局信息以及相关性,采用Vu等人
在本文中,我们采用少样本学习与对抗生成训练结合的方法来尽可能弥补无法收集大量故障数据集的缺陷。由于轴承故障数据集难以大量收集,我们采用Meta Learning中的Few-shot方法,并根据一些文献研究,最终采用了已在少样本学习中成功应用的“episode训练机制”。Few-shot训练集中包含了很多类别,在训练阶段,该种机制将在训练集中随机选取C个类别,每个类别包含K个样本(共CK个数据),
来构成一个meta-task,用作支持集(support set) (其中, )的输入,同时在每类
中随机选取q个样本用于构建查询集(Query set)。
(1)
其中, 。每次episode都会采样得到不同的meta-task,这种机制使得模型可以学习到不同meta-task中的共性,也能对不在支持集中的元任务进行较好地分类。少样本学习的基本思想就是学习一个相似性函数,通过比较查询集和支持集之间的相似度来判断查询集中某一样本属于支持集的哪一类别。
本文先对原始的频谱图像进行多层卷积处理(包括Conv2d、Maxpooling、LayerNorm和GELU激活函数),其中早期层捕获高频成分,更深层次层捕获全局信息。为找到某一时间或频率上的特征,采用了不同卷积核大小的卷积操作。
对于特征提取模块,我们以大核注意(Large Kernel Attention, LKA)模块为基础,这个模块将大核卷积分解为深度卷积、扩张深度卷积以及逐点卷积,然后再将他们进行组合,用于捕获长距离关系。由于LKA属于固定配置类型的方法,而故障数据是复杂的、非线性的,需要同时处理其局部和全局信息,所以在本文中设置了不同配置的LKA,分别用于提取局部特征和全局特征,其中不同的模块卷积核和扩张率基于小卷积核、小扩张率以及大卷积核、大扩张率进行选择,最后通过残差连接来保留原数据的细节信息,获取短距离关系。为避免特征融合之后部分特征过强或者过弱,通过逐点卷积和深度卷积来进行特征融合和输出。
生成对抗网络(GAN, Generative Adversarial Network)的核心思想由Goodfellow等人
A. GAN
(2)
其中, 是真实数据分布, 是生成数据分布, 表示判别器输出真实样本的概率, 是生成器生成的样本。
B. KL散度
本文引入KL散度作为辅助损失,与判别器损失一起优化生成器参数,KL散度是一个非对称的度量,用于衡量两个概率分布 和 之间的差异,即真实分布 相较于近似分布 的额外的信息代价,其连续形式的数学定义如下:
(3)
其中,
为真实数据分布,
为生成数据分布,KL散度用于指导生成器的优化,从而使
更加接近于
。受f-GAN
(4)
其中, 是固定常数,所以该部分的目标是最小化 部分,即可最大化生成样本的概率密度。
C. Wasserstein距离
为优化GAN的目标函数,解决梯度消失等问题,采用了Wasserstein距离,它表示将一个分布中的质量“搬运”到另一个分布所需的最小代价:
(5)
其中, 是所有可能的联合分布的集合, 分别为两个边缘概率, 表示将质量从x移动到y所需的代价。Wasserstein距离是连续的,即使真实分布和生成分布没有重叠(即分布之间的差距较大),也可以提供有意义的梯度,从而保证生成器的有效更新。WGAN的目标函数基于Kantorovich-Rubinstein对偶性,可以通过以下形式表达:
(6)
其中,f是一个1-Lipschitz函数。在训练过程中,判别器会被设计为一个接近1-Lipschitz的网络。由于1-Lipschitz可能引入优化问题,且权重裁剪的方法会导致梯度更新不稳定,当裁剪范围较小时,判别器可能难以充分学习到数据分布,所以本文采用梯度惩罚(Gradient Penalty, GP)来实现Lipschitz条件。判别器目标函数更新为:
(7)
其中, 是梯度惩罚项,用于强制判别器的梯度范数归为1, 是真实数据和生成数据之间的随机插值分布, 如下所示:
(8)
D. Dynamic-KLWGAN
KL-WGAN是一种结合KL散度和Wasserstein距离的生成对抗网络。传统的WGAN主要优化Wasserstein距离,这里我们为了更好的捕捉到数据分布之间的差异,更好的衡量真实分布与生成分布的差异,引用了f-GAN框架
对于权重更新规则,本文根据KL散度和Wasserstein距离的变化对权重比例进行处理,KL散度权重更新公式如下所示:
(9)
其中, 为KL权重的步长,控制更新速度, 和 为KL散度的最大最小权重, 为KL散度的阈值。
Wasserstein距离权重的更新公式如下所示:
(10)
其中, 为Wasserstein距离权重的步长,控制更新速度, 和 为Wasserstein距离的最大最小权重, 为Wasserstein距离的阈值。本文根据KL散度和Wasserstein距离的变化去更新权重,更新规则是当KL散度较大时,增加其权重,强化生成器对KL散度的优化能力,当KL散度较大时,减小其权重,降低对KL的约束,平衡Wasserstein距离的优化。当Wasserstein距离较大时说明生成器与判别器之间的分布差异较大,需要加强Wasserstein权重,距离较小时,降低其权重以免过拟合。
为进一步提升模型的训练效率和稳定性,我们结合动态调整策略引入了学习率(Learning Rate, LR)调整机制,将学习率的上下限设置为 ,并采用Pytorch中的LambdaLR,它的核心思想是通过自定义的 函数,即根据动态权重的变化比例来动态更新学习率,当权重增大时,学习率略微减少,从而减少振动,当权重减小时,学习率略微增加,从而加速收敛,提升训练速率。本研究先结合动态权重调整策略设计 函数如下所示:
(11)
简化为:
(12)
(13)
其中, 表示权重变化比例, 表示调整因子。从而判别器损失函数可以由上述公式更新为:
(14)
其中, 是Wasserstein距离的动态权重, 是梯度惩罚项的权重, 为梯度惩罚项。生成器损失包括KL散度损失,可以由以下表示出来:
(15)
其中, 为动态KL权重, 为生成分布于真实分布的KL散度。所以我们的总损失函数定义为:
(16)
这里我们首次将KL_WGAN框架用于电机故障识别领域,在这个模块训练中,我们首先初始化生成器和判别器的权重、学习率优化器和优化器。再在每个训练步计算Wasserstein距离和KL散度,接着使用上述提到的动态权重调整策略和学习率调整机制来更新权重和学习率,并计算KL散度的损失函数和Wasserstein损失函数,用于更新和优化生成器和判别器,循环训练5次,最后生成近似真实分布的生成数据,与真实数据一起作为Fewshot模型的输入,从而有效缓解故障诊断中的小样本问题,提高模型对复杂故障模式的识别能力,进而为一些工业场景提供更为准确、鲁棒的诊断解决方案。同时,动态权重策略和学习率机制增强了原始模型模型的适应性,使其更适合实际应用场景中的多样化需求。
为验证本文所提方法的有效性,采用著名的CWRU公开数据集对模型进行训练和评估:
CWRU数据集是关于轴承故障的数据集,轴承主要由内圈(Inner Race)、外圈(Outer Race)和滚动体(Rolling Elementsz)组成,这三个部分是导致故障的主要原因,本文将其按照故障类型、转速、具体故障类型进行分类,具体见
故障类型 |
故障直径 |
故障标签 |
Ball |
0.007 |
1 |
0.014 |
2 |
|
0.021 |
3 |
|
InnerRace |
0.007 |
4 |
0.014 |
5 |
|
0.021 |
6 |
|
OuterRace |
0.007 |
7 |
0.014 |
8 |
|
0.021 |
9 |
|
Health |
0 |
模型设置:在所提的特征提取模块,我们设置了3个LKA模块,卷积维度为64,每个模块卷积核大小和扩张率分别为(3, 3)、(5, 3)、(7, 3),特征图通道数设置为4096。全局变换器(Global Transformer)中的编码器–解码器数量选择为N = 10。超参数alpha1和alpha2分别是局部分支和全局分支在最终输出中的比例,根据消融实验最终选择alpha1 = 0.7,alpha2 = 0.3。根据消融实验和以往经验,GAN网络采用Adam优化器,其dropout层参数设置为0.5,初始学习率为0.0002,动态学习率范围为(0.0001, 0.001),KL散度权重 动态范围为(0.1, 0.5),Wasserstein距离权重 动态范围为(0.5, 2.0),梯度惩罚权重 设置为10。
本研究中,为更好地评价模型性能并与其他方法公平比较,我们采用了准确率、召回率(Recall)作为评价指标。召回率用于消融研究,它是正确预测为正样本的数量(TP)与实际正样本数量(TP + FN)的比值,在本研究中,首先通过模型的输出分数来预测查询样本的类别,再与实际标签进行比较,分别对每个类别计算召回率,最后计算得到召回率的平均值,定义如下:
(17)
其中,C是类别总数,TP (True Positive,真正类)表示被正确预测为正类的样本数量。FN (False Negative,假负类)表示为实际为正类但被错误预测为负类的样本数量。
在Few-shot任务中,本文会计算每次模型测试中每个查询集样本的预测结果,对于每个批次的准确率的计算,我们根据模型输出的分数,采用最大值索引来选择预测的类别,并与实际标签进行对比,从而计算得到模型的准确率,计算公式如下:
(18)
其中,N为查询样本总数, 为指示函数,当预测的类别与真实标签一致时返回1,否则返回0。
为了训练本文提出的模型,我们的模型采用Adam优化器来优化训练,学习率按照经验设置为0.001,每十次训练减半,降至0.000001之后学习率稳定不变。本实验中模型训练epoch设置为100,GPU使用RTX 2080 Ti x2 (22GB),CPU使用9 vCPU Intel(R) Xeon(R) Platinum 8255C CPU @ 2.50GHz。
本节展示所提模型与其他不含对抗生成网络的少样本模型的对比结果。其中度量列Eucline为欧氏距离,cov为协方差度量(cov, covariance metric),CA为交叉注意力度量(cross-attention metric),EMD为地球移动距离度量(Earth’mover distance metric, EMD)。(1) Shen等人
方法 |
度量方式 |
训练样本数 |
|||
度量 |
数据增强模型 |
30 |
600 |
19800 |
|
ProtoNet
|
Eucline |
unenhance |
61.13 |
96.61 |
97.62 |
CrossAttentionNetwork
|
CA |
unenhance |
72.17 |
96.83 |
99.29 |
CovaMNet
|
cov |
unenhance |
79.73 |
98.91 |
99.62 |
MF-Net
|
cov |
unenhance |
83.21 |
99.58 |
99.63 |
QS-Former
|
CA + EMD |
unenhance |
79.88 |
99.06 |
99.63 |
Fewshot-cross-Mah
|
Cross + Mah |
unenhance |
84.87 |
99.78 |
99.89 |
本文所提模型 |
Cross + Mah |
KL-WGAN* |
99.47 |
99.87 |
99.93 |
模型 |
训练样本 |
||
30 |
600 |
19800 |
|
Fewshot-cross-Mah
|
203.45 |
190.63 |
220.71 |
本文所提模型 |
182.85 |
191.57 |
207.92 |
为了清晰展示所提模型各个模块的改进有效性,我们进行了消融实验。本节评估KL-WGAN变种模型的性能包括运行效率,以评估相关组件的作用。基准模型最初基于GAN构造,该网络由生成器和判别器组成,并引入Wasserstein距离作为他们之间的度量。我们将改进后的WGAN结合
Baseline |
KL-WGAN |
Adaptive |
Dynamic |
样本数(准确率) |
||
30 |
600 |
|||||
Δ1 |
√ |
84.87 |
99.78 |
|||
Δ2 |
√ |
√ |
99.06 |
99.73 |
||
Δ3 |
√ |
√ |
√ |
98.93 |
99.86 |
|
Δ4 |
√ |
√ |
√ |
99.46 |
99.86 |
方法 |
训练样本数 |
|
30 |
600 |
|
Fewshot-cross-Mah
|
203.45 |
190.63 |
KL-WGAN |
197.91 |
197.40 |
Adaptive-klwgan |
179.23 |
188.12 |
Dynamic-KLWGAN |
182.85 |
191.57 |
方法 |
样本数(召回率) |
|
30 |
600 |
|
KL-WGAN |
99.20 |
99.87 |
Adaptive-KLWGAN |
98.93 |
99.67 |
Dynamic-KLWGAN |
99.13 |
99.93 |
在本研究中,我们引入了一种新的网络模型Dynamic-KLWGAN,旨在解决电机故障诊断中面临少样本学习和数据不平衡问题。这个方法主要用于数据增强部分。原始振动数据经过频谱化之后,作为对抗生成网络的真实数据,有效扩充了训练集,帮助模型更好地学习到故障特征。首先,Dynamic-KLWGAN模型通过引入动态权重调整策略,根据KL散度和Wasserstein距离的变化动态调整它们的权重,从而使得生成器和判别器的优化更加平衡和高效。为了进一步提升模型的训练效率和稳定性,模型采用了学习率更新机制,在训练过程中根据权重动态的变化调整学习率,这两种方法的结合更好地平衡K散度和Wasserstein距离的贡献,避免传统模型中梯度不稳定的问题,从而有效提高故障诊断模型的训练稳定性、少样本时的分类精度以及模型收敛速度。增强后的数据进一步由多个LKA模块进行特征提取,再经过Transformer模块捕捉到故障数据之间潜在的长距离依赖关系,马氏距离则捕捉局部特征之间的相似性进行故障分类。我们在公共数据集CWRU上进行了大量实验,结果表明,我们所提模块在数据不平衡的故障领域上性能更好,优于其他一些方法。
在未来的工作中,本文所提模型有几个可改进之处,首先是频谱化方面,可以选择一些其他类型的时频分析方法,从而提高模型对故障特征的表征能力。此外,马氏距离受特征分布的影响较大,可以适当加入自适应机制。同时,还可将此模型进一步扩展到其他故障领域。