在工业大数据背景下,人工智能和机器学习的快速进步使故障诊断逐步走向智能化,利用数据驱动的故障诊断智能算法越来越受到重视。
虽然很多诸如卷积神经网络等人工智能方法在机械故障诊断领域已经取得了不错的效果,但仍然只是简单地将已有的深度学习模型直接用于机械信号的分析,缺乏工程上的物理解释性。对于卷积神经网络存在的“黑箱”问题,不少学者也对其内部机理进行了深入的研究。比如有学者提出了基于反卷积神经网络的可视化方法,第一次直观地展现了网络不同层级经 过 学习后所得特征的不同,有学者通过类激活图CAM使得CNN具有了定位能力等等。
以LeNet,AlexNet 和 ResNet-18等3种为例为例进行说明。
1) 对于正常轴承,振动较弱,没有明显的冲击峰值,3种网络结构得到的Grad-CAM曲线图较为类似,其中信号中激活程度较大的值,即网络模型的关注区域分散在输入数据时域波形的大部分片段上,表明信号序列大部分对于输出的贡献程度基本相同,可以认为该信号中所包含的全部信息是某一片段信息的简单重复,表示模型从振动数据 的整体模式中学习正常轴承状态的特征。
2) 对于外圈故障的轴承,3种卷积神经网络对于输入样本激活程度较大的部分基本上集中在信号的冲击附近,该部分的信息对于网络的分类结果具有较高的权重,说明该处位置含有故障特征较多的信息,网络识别该类故障的重点关注区域在信号的冲击成分。
3) 对于内圈故障的轴承信号,3种网络结构的激活最大值同样位于时域信号的冲击部分,但不同网络结构对不同位置处冲击成分的激活程度不同, 其中 AlexNet 的效果要弱于另外2种网络结构。
4) 对于钢球故障的轴承,由于波形中的冲击成分分布更为复杂,更难诊断,3种网络结构得到的Grad-CAM图也较为复杂,各个范围的激活程度差异较大,难以直观地解释。但3种网络都在样本信号点的600 ~ 700 区间内具有较大的激活程度,可以认为该位置含有冲击成分的可能性较大。
然而本项目并不采用卷积神经网络进行故障诊断的可解释性,而采用一种可解释的机器学习技术-用于分析频域特征的贡献。该方法受排列特征重要性分析的启发,旨在从全局角度量化和分析时间序列预测模型的机理。
Python环境下一种可解释的机器学习技术-用于分析频域特征的贡献
Python环境下一种可解释的机器学习技术-用于分析频域特征的贡献。该方法受排列特征重要性分析的启发,旨在从全局角度量化和分析时间序列预测模型的机理。
附带参考论文
部分代码如下
import numpy as np
import matplotlib.pyplot as plt
from xgboost import XGBRegressor
t = np.linspace(0,10, 1000)
x1 = np.sin(2 * np.pi * 10 * t)
x2 = np.sin(2 * np.pi * 20 * t)
x3 = np.cos(2* np.pi * 50 * t)
X = np.vstack((x1, x2, x3)).T
y = 2*x1+x2+0.5*x3
代码见评论区。