【先验知识+协同学习】基于故障特征掩码引导和潜在特征拆分的自编码器机械故障诊断(PyTorch)

作品简介

获取完整数据和代码,请直接加

kang20224

提出一种先验知识引导的自编码器用于小样本轴承故障诊断。

核心思想是将轴承内圈、外圈及滚动体的故障特征频率先验知识深度融合,构建故障特征掩码以标识目标故障子空间;基于Huber函数设计先验知识引导损失函数,量化网络提取特征与先验掩码的差异,从而降低小样本学习的盲目性;进一步将编码器输出的潜在特征拆分为自主学习特征与先验引导学习特征进行协同联合学习,并通过解码器重构信号反向优化特征提取能力。提出方法有效融合了物理先验与数据驱动特征,在小样本条件下显著提升了故障诊断的准确率和泛化性能。

算法步骤

数据预处理与先验掩码构建:读取滚动轴承振动时域信号,分割为固定长度样本并做快速傅里叶变换得到频域幅值谱;依据轴承结构参数(滚动体数、节径、滚动体直径、接触角)计算内圈、外圈、滚动体及正常状态的故障特征掩码值。

频域特征标准化:基于训练集计算频域幅值的均值和标准差,对训练集和测试集分别进行标准化处理,消除量纲影响。

编码器潜在特征提取:将标准化后的频域信号输入一维卷积编码器,通过多个卷积模块和池化层提取高维潜在特征向量。

潜在特征拆分与协同学习:将潜在特征沿通道维度均分为两部分,前一半作为自主学习特征(无监督挖掘数据规律),后一半作为先验引导学习特征。

先验知识引导损失计算:对先验引导学习特征进行全局平均池化后输入预测头,得到预测掩码值;采用Huber损失函数计算预测掩码与样本真实掩码之间的差异,以此约束模型学习与故障频率先验一致的特征。

信号重构与分类:将拆分后的两部分特征拼接后输入解码器,重构原始频域信号;同时将完整潜在特征输入分类器,输出各类故障的概率。

联合损失优化:模型的总损失由重构均方误差、分类交叉熵损失及先验引导Huber损失三部分加权求和构成,使用RAdam优化器进行端到端的梯度反传与参数更新。

测试阶段诊断:对于测试样本,仅通过训练好的编码器和分类器前向计算,输出故障类别标签,不再参与解码器重构过程。

 

实验结果如下:

========== 当前训练样本总数 N = 40 ==========

 重复实验 1/3

   Epoch 20 | Loss: 1.1339 | Cls: 0.3232 | Recon: 0.6310 | Prior: 0.1796

   Epoch 40 | Loss: 0.7855 | Cls: 0.2179 | Recon: 0.5272 | Prior: 0.0404

   最佳测试准确率: 82.47%

 重复实验 2/3

   Epoch 20 | Loss: 0.8560 | Cls: 0.2734 | Recon: 0.4266 | Prior: 0.1560

   Epoch 40 | Loss: 0.6694 | Cls: 0.2314 | Recon: 0.3234 | Prior: 0.1146

   最佳测试准确率: 94.98%

 重复实验 3/3

   Epoch 20 | Loss: 1.0619 | Cls: 0.2465 | Recon: 0.7044 | Prior: 0.1110

   Epoch 40 | Loss: 1.0071 | Cls: 0.0810 | Recon: 0.6664 | Prior: 0.2597

   最佳测试准确率: 95.21%

N=40 最终准确率: 97.61% ± 0.83%

 

========== 当前训练样本总数 N = 60 ==========

 重复实验 1/3

   Epoch 20 | Loss: 0.9642 | Cls: 0.1665 | Recon: 0.5974 | Prior: 0.2003

   Epoch 40 | Loss: 0.5711 | Cls: 0.0656 | Recon: 0.4514 | Prior: 0.0540

   最佳测试准确率: 98.04%

 重复实验 2/3

   Epoch 20 | Loss: 0.6082 | Cls: 0.1548 | Recon: 0.3618 | Prior: 0.0916

   Epoch 40 | Loss: 0.4435 | Cls: 0.0743 | Recon: 0.2820 | Prior: 0.0871

   最佳测试准确率: 98.20%

 重复实验 3/3

   Epoch 20 | Loss: 1.0257 | Cls: 0.1290 | Recon: 0.7214 | Prior: 0.1753

   Epoch 40 | Loss: 0.7517 | Cls: 0.0464 | Recon: 0.6278 | Prior: 0.0774

   最佳测试准确率: 99.53%

N=60 最终准确率: 99.35% ± 0.42%

 

========== 当前训练样本总数 N = 80 ==========

 重复实验 1/3

   Epoch 20 | Loss: 0.7430 | Cls: 0.1046 | Recon: 0.5477 | Prior: 0.0907

   Epoch 40 | Loss: 0.6617 | Cls: 0.1508 | Recon: 0.4115 | Prior: 0.0994

   最佳测试准确率: 99.84%

 重复实验 2/3

   Epoch 20 | Loss: 0.6859 | Cls: 0.1869 | Recon: 0.3748 | Prior: 0.1242

   Epoch 40 | Loss: 0.4217 | Cls: 0.0561 | Recon: 0.3041 | Prior: 0.0615

   最佳测试准确率: 99.52%

 重复实验 3/3

   Epoch 20 | Loss: 0.8998 | Cls: 0.1042 | Recon: 0.6988 | Prior: 0.0968

   Epoch 40 | Loss: 0.7152 | Cls: 0.0746 | Recon: 0.5595 | Prior: 0.0810

   最佳测试准确率: 99.20%

N=80 最终准确率: 99.73% ± 0.10%

 

========== 当前训练样本总数 N = 100 ==========

 重复实验 1/3

   Epoch 20 | Loss: 0.7918 | Cls: 0.1461 | Recon: 0.5429 | Prior: 0.1028

   Epoch 40 | Loss: 0.6122 | Cls: 0.0914 | Recon: 0.4224 | Prior: 0.0983

   最佳测试准确率: 99.68%

 重复实验 2/3

   Epoch 20 | Loss: 0.6009 | Cls: 0.1227 | Recon: 0.3837 | Prior: 0.0945

   Epoch 40 | Loss: 0.4465 | Cls: 0.0571 | Recon: 0.3241 | Prior: 0.0653

   最佳测试准确率: 99.43%

 重复实验 3/3

   Epoch 20 | Loss: 0.8706 | Cls: 0.1032 | Recon: 0.6652 | Prior: 0.1022

   Epoch 40 | Loss: 0.6002 | Cls: 0.0207 | Recon: 0.5346 | Prior: 0.0449

   最佳测试准确率: 99.76%

N=100 最终准确率: 99.92% ± 0.07%

 

========== 当前训练样本总数 N = 120 ==========

 重复实验 1/3

   Epoch 20 | Loss: 0.9537 | Cls: 0.2446 | Recon: 0.5144 | Prior: 0.1948

   Epoch 40 | Loss: 0.4598 | Cls: 0.0174 | Recon: 0.3601 | Prior: 0.0823

   最佳测试准确率: 99.75%

 重复实验 2/3

   Epoch 20 | Loss: 0.5607 | Cls: 0.0629 | Recon: 0.3350 | Prior: 0.1628

   Epoch 40 | Loss: 0.3814 | Cls: 0.0326 | Recon: 0.3017 | Prior: 0.0471

   最佳测试准确率: 99.34%

 重复实验 3/3

   Epoch 20 | Loss: 0.7780 | Cls: 0.0830 | Recon: 0.6355 | Prior: 0.0596

   Epoch 40 | Loss: 0.7435 | Cls: 0.1900 | Recon: 0.4964 | Prior: 0.0571

   最佳测试准确率: 99.75%

N=120 最终准确率: 100.00% ± 0.00%

Epoch 10 | Loss 1.2031 | Acc 98.87%

Epoch 20 | Loss 0.7956 | Acc 99.68%

Epoch 30 | Loss 0.6727 | Acc 99.11%

Epoch 40 | Loss 0.4860 | Acc 99.60%

Epoch 50 | Loss 0.7042 | Acc 99.60%

 

在CWRU轴承数据集的小样本故障诊断实验中,提出方法取得了优异性能:当每类训练样本数仅为4个(总训练样本N=40)时,平均测试准确率达97.61%,标准差仅0.83%;随着训练样本增加至N=60、80、100、120,平均测试准确率分别提升至99.35%、99.73%、99.92%和100.00%,且方差持续减小。该结果表明,先验知识的嵌入有效引导了模型在小样本条件下学习更具判别性的故障特征,显著抑制了过拟合现象,验证了提出方法在极端小样本场景下的高效性与鲁棒性。

 





创作时间: