首页/文章/ 详情

故障诊断开源代码推荐 | 轴承故障诊断迁移学习综述,免费获取!

1年前浏览5095

针对故障诊断领域开源代码较少,小编整理搜集了一些开源代码与大家进行分享。本期分享的是轴承故障诊断迁移学习综述。由于该论文是2023年发表在TIM上的,综述了近6年的迁移学习方法。该开源代码有各种迁移学习方法的模型,因此这篇开源代码适合参考借鉴并在上面进行改进,适合具备一定的迁移学习和深度学习基础知识的学习者。

代码链接https://github.com/Xiaohan-Chen/transfer-learning-fault-diagnosis-pytorch

1 论文基本信息

论文题目Deep Transfer Learning for Bearing Fault Diagnosis: A Systematic Review Since 2016
论文期刊IEEE Transactions on Instrumentation and Measurement
论文时间:2023年
作者Chen, Xiaohan1 and Yang, Rui2 and Xue, Yihao1 and Huang, Mengjie3 and Ferrero, Roberto4 and Wang, Zidong5
机构School of Advanced Technology, Xi’an Jiaotong-Liverpool University 1,Department of Electrical Engineering and Electronics, University of Liverpool 2,Department of Computer Science, Brunel University London 3

2 摘要

传统的基于深度学习的轴承故障诊断方法假设训练数据和测试数据遵循相同的分布。然而,对于实际场景中收集的轴承数据,这一假设并不总是正确的,导致故障诊断性能显着下降。为了满足这一假设,在深度学习中引入迁移学习的概念,将从其他数据或模型中学习到的知识进行迁移。深度迁移学习方法由于其出色的特征学习和领域迁移能力,近年来在轴承故障诊断中得到了广泛的关注。本文对2016年以来基于深度迁移学习的轴承故障诊断方法的发展进行了全面回顾。本文从标签、机器和故障划分目标域数据属性的角度,提出了一种基于深度迁移学习的轴承故障诊断方法。本文涵盖了基于深度迁移学习的故障诊断的全生命周期,并讨论了研究的挑战和机遇,为研究人员和从业者根据轴承故障诊断中遇到的实际问题,有效地识别合适的深度迁移学习模型提供了系统的指导。

关键词:轴承故障;迁移学习;故障诊断

3 目录

1 论文基本信息
2 摘要
3 目录
4 引言
5 定义与故障诊断流程
6 开源轴承故障数据集
7 轴承故障迁移学习诊断
8 定性分析
9 机遇与挑战
10 总结
11 README.md
注:本文只选中原论文部分进行分享,若想拜读,请下载原论文进行细读。

4 引言

图1 基于传统机器学习的故障诊断方法、基于深度学习的故障诊断方法和基于迁移学习的故障诊断方法的区别
虽然以前的综述总结了显著的成果,但大多数综述从方法 论的角度划分了研究问题,而不是从轴承故障诊断等实际应用中的数据角度。为了给研究人员和从业者提供合适的迁移学习方法选择建议,作者回顾了2016年以来基于深度迁移学习的轴承故障诊断的研究进展,从目标域数据属性的角度对该主题的文献进行了分类,并对广泛使用的深度迁移学习方法进行了全面的分析和讨论。本调查对弥补当前文献差距的贡献总结如下:
1)  本文综述了近6年来深度迁移学习在轴承故障诊断中的发展,为轴承故障诊断研究提供了系统的指导。通过覆盖深度迁移学习的全生命周期,包括源域数据选择和迁移学习模型选择,使读者能够系统地掌握基于深度迁移学习的轴承故障诊断的一般步骤及其研究进展。
2)  本文从目标域数据属性的角度提出了一种新的轴承故障诊断深度迁移学习分类方法,可以帮助研究人员和从业者根据故障诊断中遇到的实际问题高效地选择合适的深度迁移学习模型。
3)  本文从六个方面对广泛使用的深度迁移学习算法进行了系统的比较分析。此外,本文还讨论了可迁移性评估、不同标签迁移、异常数据质量迁移、多源迁移、早期故障诊断以及在不同机器之间迁移中的新应用。
本综述的组织如下,第二节介绍了使用迁移学习的定义和故障诊断过程。第三节介绍了轴承故障诊断中常用的源域数据集。第四节从标签、机器、故障划分目标域数据属性的角度,详细介绍了2016年以来基于深度迁移学习的故障诊断方法。继第四节之后,第五节对四种典型的迁移学习方法进行了定性分析。第六节提出并讨论了现有方法面临的挑战和机遇。最后,第七节给出结论。

5 定义与故障诊断流程

图2为一个轴承迁移学习故障诊断实例示意图。

图2 基于迁移学习的故障诊断实例

5.1 轴承故障诊断迁移学习流程

本文综述了深度迁移学习在轴承故障诊断中的研究进展,并从目标域数据属性的角度提出了一种新的分类方法。当研究人员和从业者遇到跨域轴承故障诊断问题时,基于迁移学习的轴承故障诊断的一般过程可分为两个步骤:
1)  源域数据的选择和预处理;
2)  迁移学习方法的选择。
轴承故障诊断迁移学习的总体步骤如图3所示。
图3 轴承故障诊断的深度迁移学习诊断过程
1)  源域数据选择与预处理:传统深度学习算法的突出表现高度依赖于足够的标记数据。然而,贴标签的过程是费时费力;由于财产损失和人员伤亡的风险,用故障轴承收集故障数据也是危险的。幸运的是,源领域和目标领域之间的共享知识可以通过迁移学习来解决这样的挑战。然而,如果源域和目标域之间没有共同的特征,知识迁移就不能对迁移学习产生积极的影响,最终影响目标预测函数的性能。因此,为目标任务选择合适的源数据集具有重要的意义和高优先级。
2)  迁移学习方法的选择:与以往文献不同,本文从目标域数据属性的角度提出了一种新的分类方法,以指导研究人员和从业者根据故障诊断中遇到的实际问题,有效地识别适合的深度迁移学习方法。该分类法基于三个方面的考虑:归纳或直推式迁移学习,不同或相同机器之间的迁移,不同或相同故障之间的迁移,如图3中的步骤2所示。

6 开源轴承故障数据集

实验室数据是在预先设定机械结构和可变工况的受控环境中收集的,并通过人为轴承损伤加速退化实验两种方式引入故障。人为轴承损伤是基于工程师和研究人员的工作经验,因此在实际工业场景中可能会发生这种人为故障。加速退化实验是获取类似工业场景退化数据的有效途径,揭示了轴承从健康到失效的完整退化过程。此外,加速退化实验中轴承故障的发生方式与工业环境中的故障相同。因此,从实验室机器收集的公共数据集中的故障特征可以被重用来诊断其他机器的轴承故障诊断问题。
1)  振动信号是轴承故障诊断中应用最广泛的信号。传感器(如加速度计)被放置在轴承外壳上,以监测由轴承故障引起的异常振动模式。通过传感器监测滚动体每次经过轴承故障表面时产生的异常脉冲响应,进行故障诊断。
2)  电机电流信号近年来在轴承故障诊断中受到广泛关注。轴承故障影响振动,该振动将以特征频率形式在电机电流中出现,分析电流模式可以预测故障类型[94]。此外,电机电流监测技术的优点是不需要额外的传感器来测量,而是可以通过现有的设备(如电流传感器)来收集。
3)  温度信号也可用于轴承故障诊断,因为轴承元件在异常状态下工作时温度有升高的趋势。温度传感器放置在靠近轴承外圈的孔内,以监测温度变化并检测故障[95]。

根据故障的产生情况,将上述数据集分为两组:人为故障数据集和加速退化故障数据集。7个数据集的详细信息如表1所示。

表1 7个开源轴承故障数据集总结

6.1 人造故障数据集

人为故障轴承数据集通常是通过对轴承进行人为加工损伤产生故障轴承,然后对故障轴承进行状态监测来生成故障数据的[94]。

  • CWRU数据集是目前最流行的人为故障数据集之一,它包含了不同电机负载下加速度计采集的振动信号,通过电火花加工在轴承外圈、内圈和滚动体上加工不同直径的故障。
  • 机械故障预防技术学会(MFPT)和渥太华大学数据集(UofO)也是基于振动信号的数据集,提供不同负载下的正常、外圈和内圈故障数据。
  • 帕德博恩大学(PU)数据集包含两个数据集:人为故障数据集和加速退化故障数据集,其中人为故障是由电火花加工、钻孔和手动电雕刻引起的,加速退化故障是在不同转速、载荷和径向力下从轴承外圈和内圈收集的。PU数据集中的人为故障数据既包括安装在电机与变频器之间的电流传感器采集的电流信号,也包括作为参考测量的振动信号。

6.2 加速退化数据集

加速退化数据集是由轴承在各种工况下的加速退化实验生成的,反映了轴承从新的到完全失效的完整生命周期。在加速退化实验结束时,可以得到不同的故障位置,如外圈、内圈、滚动体和保持架。

  • IEEE PHM 2012数据集是典型的加速退化数据集,包含振动和温度两种类型的信号,具有两个加速度计和一个温度传感器,用于不同工况下的数据监测。
  • 另外三个加速退化数据集(XJTU-SYPUIMS数据集)只有振动信号:XJTU-SY和PU数据集中的故障数据是多工况采集的,IMS数据集中的故障数据是单工况采集的。

7 轴承故障的迁移学习诊断


自2016年以来,深度迁移学习得到了广泛的关注,并成功应用于轴承故障诊断领域。本节对解决轴承跨域故障诊断问题的相关文献进行了系统综述。为了给读者一个全面的概述,所提到的参考文献总结在表2。

表2 基于深度迁移学习的轴承故障诊断文献综述

7.1 归纳迁移学习(Inductive Transfer Learning)

归纳迁移学习可以分为两种情况:监督迁移学习和半监督迁移学习。监督迁移学习要求所有的目标域标签都是可用的。半监督迁移学习允许在训练过程中对少量目标域数据进行标记,而对大量目标域数据进行去标记。此外,根据故障数据来源,本综述将有监督迁移学习和半监督迁移学习分为不同机器间迁移和同一机器间迁移,如表3所示。

表3 归纳迁移学习在轴承故障诊断中的应用综述
图4 四种典型的深度迁移学习模型的基本框架(1)基于微调的方法,(2)基于统计的方法,(3)基于对抗的方法,(4)基于少量样本的方法

7.1.1 监督迁移学习

监督迁移学习要求标签在源域和目标域都可用。基于监督迁移学习的常见故障诊断任务可分为不同机器之间和同一机器之间的迁移(见表3)。

  1. 不同机器之间迁移

    在此迁移场景中,目标域的故障数据是从源域的不同机器上收集的。由于不同机器的机械结构、轴承类型、工况等不同,故障数据的分布也不同。利用源域数据训练的故障诊断模型在不进行知识迁移的情况下,不能达到令人满意的诊断效果

  2. 相同机器之间迁移

    在此迁移场景中,源域和目标域数据从同一台机器收集,但工作条件不同。文献中现有的基于深度迁移学习的故障诊断方法可分为基于微调和基于少样本两大类。

    (1) 基于微调(fine-tune-based):通过迁移从其他工况中学习到的模型和/或参数,来提高诊断模型在新工况中的性能。  
    (2) 基于少样本(few-shot-based):少样本学习方法不需要大量的标签数据就能获得令人满意的预测结果,减少了数据收集和计算成本。因此,当遇到数据有限的故障诊断问题时,研究人员通常采用少样本学习方法来解决不同工况或工况间的域迁移问题。


7.1.2 半监督迁移学习

半监督迁移学习结合了目标域中少量打标的故障数据和大量未打标数据的情况,提供了一种有效利用已打标和未打标数据的方法。在目标领域引入大量辅助的未打标数据,使迁移学习模型能够挖掘属于源域和目标域数据的共同潜在特征。现有的半监督迁移学习方法可分为基于统计的方法和基于对抗的方法。

  1. 基于统计的方法:基于统计的迁移学习的基本思想是通过最小化源域和目标域的分布差异来学习域不变表示[见图4(2)]。最大平均差异(MMD)是评价数据分布距离最常用的度量。
  2. 基于对抗的方法:为了从源域和目标域数据中提取域不变特征,Ganin和Lempitsky[116]提出了域自适应神经网络(DANN),这是一种基于对抗性的深度迁移学习方法,包含三个模块:特征提取器、域判别器和分类器。特征提取器从源和目标域数据中提取领域不变表示,分类器和域鉴别器分别预测类和领域标签。

7.2 直推式学习(Transductive Transfer Learning)

本文综述了现有的轴承故障诊断中的迁移学习方法,将其分为不同机器之间的迁移和同一机器之间的迁移。此外,根据故障标签的性质,将不同/相同机器迁移场景下的方法进一步分为相同故障间迁移和不同故障间迁移。

7.2.1 不同机器间的迁移

轴承信号的时频域特性受机器类型和结构的影响很大,因此不同机器的特征分布可能有很大差异。为了解决不同机器之间的特征差异问题,研究人员利用深度迁移学习技术提出了多种方法,包括基于统计的、基于对抗的和基于few-shot的方法,如表4所示。

图4 轴承故障诊断中不同机器间直推式迁移学习综述
  1. 相同故障之间迁移
    i)  基于统计的方法  
    ii)  少样本方法
    iii)  混合方法:全局域自适应广泛应用于轴承跨域故障诊断,预训练的源分类器理论上可以预测目标故障。然而,如果只对全局数据分布进行对齐,而忽略了各个类之间的分布差异,可能会导致分类边界附近的样本被错误地分类到其他类中。因此,Liu等[130]提出了一种跨域轴承故障诊断问题的全局域和子域联合自适应方法。提出了一种基于对抗的网络从输入数据中提取全局域不变特征,并采用局部MMD模块最小化子域分布差异。
  2. 不同故障之间迁移
7.2.2 相同机器之间迁移

不同工况下同一机器之间的迁移是最常见的迁移学习场景。现有研究可分为相同故障间迁移和不同故障间迁移两大类。同一故障间的迁移包括基于统计的方法、基于对抗的方法和混合的方法,不同故障间的转移只包含基于对抗的方法,如表5所示。

表5 轴承故障诊断中相同机间迁移学习方法综述
  1. 相同故障之间迁移
    i)  基于统计的方法  
    ii)  基于对抗的方法
    iii)  基于少样本的方法
  2. 不同故障之间迁移
    i)  基于统计的方法  
    ii)  基于对抗的方法  

8 定性分析

许多研究表明,在目标域数据有限或源域数据与目标域数据分布不同的情况下,基于深度迁移学习的轴承故障诊断是有效的,可以达到比从头开始训练更高的准确率。受文献[165]的启发,作者在表6中引入了六个标准来评估其特征:

  1. 标签依赖性:方法是否需要目标标签;
  2. 数据可扩展性:方法是否需要大数据集来训练模型;
  3. 部署难度:是否方法难以部署;
  4. 效率:方法的计算成本;
  5. 可扩展性:是否可以通过替换现有模块或添加新模块来实现方法的模块化和扩展,以解决更复杂的问题或实现更好的性能;
  6. 性能:诊断方法的准确性。
表6 不同迁移学习方法的比较(*:低,**:中,**:高)

9 机遇与挑战

● 可迁移性评估
● 标签不一致迁移
● 数据质量差情况下的迁移
● 不同信号类型之间的迁移
● 多源迁移
● 早期故障诊断
● 不同机器之间迁移的应用

10 总结

本文综述了2016年以来基于深度迁移学习的轴承故障诊断的发展概况。通过覆盖深度迁移学习的整个生命周期,包括源域数据选择、数据预处理和迁移学习模型选择,为即将开始或扩展轴承故障诊断工作的研究人员和从业者提供了详细的系统指南。介绍和讨论了七个开源轴承数据集和常用的数据转换方法,为研究人员和从业者提供了适当的数据选择和转换的选择。此外,从目标域数据属性按标签、机器和故障划分的角度,提出了一种基于深度迁移学习的故障诊断方法的新分类方法,可以帮助研究人员和从业者根据故障诊断中遇到的实际问题高效地找到合适的深度迁移学习模型。最后,讨论了未来研究的挑战和机遇,包括可移植性评估、数据质量差情况下迁移、多源迁移、早期故障诊断以及在不同机器之间迁移中的新应用。综上所述,本文系统阐述了2016年以来基于深度迁移学习的轴承故障诊断的发展情况,为该领域的研究发展提供了有价值的指导和对未来实践的重要意义。

11 README.md

📖 1. Introduction

This repository contains popular deep transfer learning algorithms implemented via PyTorch for cross-load fault diagnosis transfer tasks, including:

  •  General supervised learning classification task: traing and test apply the same machines, working conditions and faults.

  •  domain adaptation: the distribution of the source domain data may be different from the target domain data, but the label set of the target domain is the same as the source domain.

    •  DDC: Deep Domain Confusion [arXiv 2014]

    •  Deep CORAL: Correlation Alignment for Deep Domain Adaptation [ECCV 2016]

    •  DANN: Unsupervised Domain Adaptation by Backpropagation [ICML 2015]

    •  TODO

  •  Open-set domain adaptation: the distribution of the source domain data may be different from the target domain data. What's more, the target label set contains unknown categories.

    •  OSDABP: Open Set Domain Adaptation by Backpropagation [ECCV 2018]

    •  TODO

Few-shot learning-based bearing fault diagnosis methods please see: https://github.com/Xiaohan-Chen/few-shot-fault-diagnosis

🎈 2. Citation

or further introductions to transfer learning in bearing fault diagnosis, please read our paper. And if you find this repository useful and use it in your works, please cite our paper, thank you~:

@ARTICLE{10042467,
 author={Chen, Xiaohan and Yang, Rui and Xue, Yihao and Huang, Mengjie and Ferrero, Roberto and Wang, Zidong},
 journal={IEEE Transactions on Instrumentation and Measurement},
 title={Deep Transfer Learning for Bearing Fault Diagnosis: A Systematic Review Since 2016},
 year={2023},
 doi={10.1109/TIM.2023.3244237}}

🔧 3. Requirements

  • python 3.9.12

  • Numpy 1.23.1

  • pytorch 1.12.0

  • scikit-learn 1.1.1

  • torchvision 0.13.0

👜 4. Dataset

Download the bearing dataset from CWRU Bearing Dataset Center and place the .mat files in the ./dataset folder according to the following structure:











dataset/  └── CWRU/      ├── Drive_end_0/      │   └── 97.mat 109.mat 122.mat 135.mat 173.mat 189.mat 201.mat 213.mat 226.mat 238.mat      ├── Drive_end_1/      │   └── 98.mat 110.mat 123.mat 136.mat 175.mat 190.mat 202.mat 214.mat 227.mat  239.mat      ├── Drive_end_2/      │   └── 99.mat 111.mat 124.mat 137.mat 176.mat 191.mat 203.mat 215.mat 228.mat 240.mat      └── Drive_end_3/          └── 100.mat 112.mat 125.mat 138.mat 177.mat 192.mat 204.mat 217.mat 229.mat 241.mat

📝 5. Usage

NOTE: When using pre-trained models to initialise the backbone and classifier in transfer learning tasks, run classification tasks first to generate corresponding checkpoints.

Four typical neural networks are implemented in this repository, including MLP, 1D CNN, 1D ResNet18, and 2D ResNet18(torchvision package). More details can be found in the ./Backbone folder.

General Supervised Learning Classification:

  • Train and test the model on the same machines, working conditions and faults. Use the following commands:


python3 classification.py --datadir './dataset' --max_epoch 100

Transfer Learning:

  • If using the DDC transfer learning method, use the following commands:


python3 DDC.py --datadir './dataset' -backbone "CNN1D" --pretrained False --kernel 'Linear'
  • If using the DeepCORAL transfer learning method, use the following commands:


python3 DDC.py --datadir './dataset' -backbone "CNN1D" --pretrained False --kernel 'CORAL'
  • If using the DANN transfer learning method, use following commands:


python3 DANN.py --backbone "CNN1D"

Open Set Domain Adaptation:

  • The target domain contains unknow classes, use the following commands:


python3 OSDABP.py

🔦 6. Results

The following results do not represent the best results.

The following results do not represent the best results.

General Classification task:
Dataset: CWRU
Load: 3
Label set: [0,1,2,3,4,5,6,7,8,9]


MLPNetCNN1DResNet1DResNet2D
acc (time domain)93.9597.7099.5898.02
acc (freq domain)99.9599.44100.099.96

Transfer Learning:
Dataset: CWRU
Source load: 3
Target Load: 2
Label set: [0,1,2,3,4,5,6,7,8,9]
Pre-trained model: True

Time domain:



MLPNetCNN1DResNet1DResNet2D
DDC (linear kernel)75.4785.5391.7991.32
DeepCORAL82.3388.2393.8890.84
DANN87.6894.7798.8893.95

Frequency domain


MLPNetCNN1DResNet1DResNet2D
DeepCORAL98.6598.2299.7599.31
DANN99.3898.7499.8999.47

Open Set Domain Adaptation

  • OSDABP Dataset: CWRU
    Source load: 3
    Target Load: 2
    Source label set: [0,1,2,3,4,5]
    Target label set: [0,1,2,3,4,5,6,7,8,9]
    Pre-trained model: True

🏕️ 7. See also

  • Multi-scale CNN and LSTM bearing fault diagnosis


🌐 8. Acknowledgement

@article{zhao2021applications,
 title={Applications of Unsupervised Deep Transfer Learning to Intelligent Fault Diagnosis: A Survey and Comparative Study},
 author={Zhibin Zhao and Qiyang Zhang and Xiaolei Yu and Chuang Sun and Shibin Wang and Ruqiang Yan and Xuefeng Chen},
 journal={IEEE Transactions on Instrumentation and Measurement},
 year={2021}
}



编辑:李正平

校核:张泽明、张勇、王畅、陈凯歌、赵栓栓

该文资料搜集自网络,仅用作学术分享,不做商业用途,若侵权,后台联系小编进行删除。


来源:故障诊断与python学习
System振动python理论电机Electric
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-09-20
最近编辑:1年前
故障诊断与python学习
硕士 签名征集中
获赞 72粉丝 76文章 152课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈