机械故障诊断代理模型的案例分析(可解释性,SHAP方法)

参考如下MSSP的文章:

HERWIG N,BORGHESANI P. Explaining deep neural networks processing raw diagnostic signals[J]. Mechanical Systems and Signal Processing,2023,200:110584.

该文献将SHAP方法应用于凯斯西储大学轴承故障诊断中,并对高维数据问题进行了两处改进。①将时域信号转换到频域或时频域,在特征相对稀疏的频域或时频域计算Shapely值,并且完全可逆的变换保证了信息的完整性;②相比于计算谱图的每条谱线的Shapely值,该方法将谱图进行了划分,例如将频谱图划分为等距频带或自适应频带,将该频带作为计算Shapely值的特征。基于上述两处改进,该方法在高频轴承数据上进行SHAP分析的流程如下:①将时域信号转换为谱域信号,然后将谱域信号进行谱带划分,每个谱带赋予独立编号、并被视为特征属性;

②随机置换谱带、并进行拼接,构成待分析样本集;

③将置换、拼接后的谱域信号再变换为时域信号,输入到神经网络中,计算相应的Shapely值。该方法的好处是可以对谱带进行自适应划分,细化Shapely值的分析粒度。

如下图所示,将时域信号转变为频域信号,计算自适应频带的SHAP,绝对值越大表明该频带的边际贡献越大,正号表明正相关,负号表明负相关。其中,上图为神经网络输入信号,左下图是完整频域及对应SHAP值图,右下图是感兴趣频带及SHAP值图。

学术咨询:

担任《Mechanical System and Signal Processing》《中国电机工程学报》等期刊审稿专家,擅长领域:信号滤波/降噪,机器学习/深度学习,时间序列预分析/预测,设备故障诊断/缺陷检测/异常检测。

一维神经网络的特征可视化分析-以心电信号为例(Python,Jupyter Notebook)

包括Occlusion sensitivity方法,Saliency map方法,Grad-CAM方法

基于深度学习的机械故障诊断及其权重可视化(Python)

MATLAB环境下基于CNN的轴承故障诊断及特征可视化

算法程序运行环境为MATLAB R2021B,使用 CNN 进行滚动轴承故障诊断,原始数据来自西储大学轴承数据中心,包含3种故障工况(内圈故障,外圈故障和滚动体故障)和1种正常工况。

医学图像的深度学习可解释性(MATLAB R2021B)

一维时间序列信号的稀疏度度量方法(MATLAB R2018A)

算法运行环境为MATLAB R2018A,执行一维信号的稀疏度量方法,包括峰度(Kurt)、负熵(NE)、d -范数(DN)、2-范数与1-范数之比(L2/L1)、基尼指数(GI)、修正平滑指数(MSI)、基尼指数2 (GI2)、基尼指数3 (GI3)、广义基尼指数(GGI)、完全广义基尼指数等。

算法可迁移至金融时间序列,地震信号,机械振动信号,语音信号,声信号,生理信号(EEG,EMG)等一维时间序列信号。

基于脉冲小波的旋转机械故障诊断(MATLAB R2018a)

### 轴承故障诊断中的代码可解释性 在轴承故障诊断领域,确保所使用的算法具有良好的可解释性对于实际应用至关重要。这不仅有助于工程师理解模型的工作原理,还能增强对决策过程的信任。 #### 使用FFT实现的简单且易于解释的方法 一种常见且直观的方式是利用快速傅里叶变换(FFT)。这种方法能够将时间域内的振动信号转换到频率域,在此过程中可以直接观察特定频带内是否存在异常峰值,从而指示潜在的机械问题[^1]。 ```matlab % 基于FFT的轴承故障检测示例 Fs = 1000; % Sampling frequency T = 1/Fs; % Sample time L = 1000; % Length of signal t = (0:L-1)*T; % Time vector f = Fs*(0:(L/2))/L; % Generate a sample bearing vibration signal with noise and fault signature at specific frequencies. signal = sin(2*pi*50*t) + sin(2*pi*120*t); signal = signal + 2*randn(size(t)); Y = fft(signal); P2 = abs(Y/L); P1 = P2(1:L/2+1); P1(2:end-1) = 2*P1(2:end-1); figure; plot(f,P1) title('Single-Sided Amplitude Spectrum of X(t)') xlabel('Frequency (Hz)') ylabel('|P1(f)|') grid on ``` 上述MATLAB脚本展示了如何通过简单的数学运算获取输入数据的主要特征,并将其可视化以便分析人员解读。这种透明度使得即使不具备深厚编程背景的技术人员也能轻松掌握并运用该工具进行初步评估。 #### 结合现代机器学习提高复杂场景下的可解释性 随着人工智能的发展,一些更复杂的模型也被应用于这一领域。例如,有研究者提出了基于变分模态分解(VMD)+卷积神经网络(CNN)-双向门控循环单元(BiGRU)-注意力机制(Attention)架构来进行更加精准而细致化的分类任务[^2]。然而值得注意的是,尽管这类深度学习方案可能带来更高的准确性,但在保持其内部运作逻辑清晰方面往往面临挑战。因此,在设计此类系统时应特别关注构建具备良好解释能力的组件,比如采用可视化的中间层输出或引入专门针对黑箱预测结果解析的技术手段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值