超强!一区直接写!基于SSA+Informer-SENet故障诊断模型-AI.x-AIGC专属社区-51CTO.COM

超强!一区直接写!基于SSA+Informer-SENet故障诊断模型

发布于 2024-11-20 14:19
浏览
0收藏

1 模型创新点介绍

超强!一区直接写!基于SSA+Informer-SENet故障诊断模型-AI.x社区

1.1 时序特征捕捉与建模

使用Informer的编码器层来捕捉长故障信号时序依赖特征

  • 长时间序列处理:传统的RNN和LSTM等方法在处理长时间序列时存在计算效率低、梯度消失等问题。Informer通过改进Transformer架构,使用ProbSparse Self-Attention机制,有效地提高了计算效率,特别是对于长时间序列数据。
  • 全局特征提取:通过多头注意力机制,Informer能够捕捉序列数据中的全局特征和长时间依赖关系,确保对故障信号的时序特征进行全面建模。

1.2 概率稀疏注意力机制(ProbSparse Self-attention)

概率稀疏自注意力是Informer模型中引入的一种稀疏自注意力机制。其核心思想是通过概率方法选择最重要的一部分注意力权重进行计算,而忽略那些对结果影响较小的权重。这种方法能够显著降低计算复杂度,同时保持较高的模型性能。

  • 稀疏自注意力:不同于标准 Transformer 的密集自注意力机制,Informer 引入了 ProbSparse Self-attention,通过概率抽样机制选择重要的 Q-K 对进行计算,减少了计算复杂度。
  • 效率提升:稀疏注意力机制显著降低了计算复杂度,从 O(L2⋅d) 降低到 O(L⋅log(L)⋅d),其中 L 是序列长度,d 是每个时间步的特征维度。

1.3 多尺度特征提取-信息蒸馏

Informer的架构图并没有像Transformer一样在Encoder的左边标注来表示N个Encoder的堆叠,而是一大一小两个梯形。横向看完单个Encoder(也就是架构图中左边的大梯形,是整个输入序列的主堆栈)。

超强!一区直接写!基于SSA+Informer-SENet故障诊断模型-AI.x社区

Encoder的作用是Self-attention Distilling,由于ProbSparse自相关机制有很多都是用V的mean填充的,所以天然就存在冗余的attention sorce ,因此在相邻的Attention Block之间应用卷积与池化来对特征进行下采样,所以作者在设计Encoder时,采用蒸馏的操作不断抽取重点特征,从而得到值得重点关注的特征图。

超强!一区直接写!基于SSA+Informer-SENet故障诊断模型-AI.x社区

  • 多尺度时间序列特征提取:Informer 通过多尺度的方式对不同时间粒度的特征进行建模,可以更好地捕捉时间序列中的多尺度依赖关系。
  • 信息蒸馏:引入了信息蒸馏机制,通过层次化的时间卷积池化层逐步缩减时间步长,提取不同尺度的特征,实现长时间依赖的高效建模。
  • 卷积降维:在编码器中使用1D卷积池化层进行降维,步长为2,使得序列长度减半,进一步减少计算复杂度。
  • 信息压缩:通过卷积池化层进行信息压缩,将长序列信息浓缩到较短的时间步长中,从而更高效地进行时序建模。

1.4 特征增强与融合

超强!一区直接写!基于SSA+Informer-SENet故障诊断模型-AI.x社区

在Informer的编码器层结合SENet进行特征增强

  • 自适应特征校准:SENet通过Squeeze-and-Excitation模块,对每个通道的特征进行自适应权重调整,增强重要特征,抑制无关或冗余特征。这种机制可以提升模型对故障信号关键特征的敏感度,提高故障诊断的准确性。
  • 通道间依赖建模:SENet能够捕捉不同通道特征之间的关系,通过重新校准特征通道的权重,使得模型能够更加有效地融合多通道信息,提升整体特征表达能力。

1.5 麻雀优化算法搜索参数

通过SSA,能够在较大的参数空间中高效地找到最优参数组合,增强模型的诊断能力和泛化性能。

参数优化的必要性

  • 参数空间复杂性:Informer-SENet模型包含多个超参数,如学习率、隐藏层维度、注意力头数、编码器层数等,这些参数对模型性能有显著影响。
  • 人工调参的局限性:人工调参耗时耗力,且难以保证找到全局最优参数组合。

更多详细内容参考讲解视频!

2 轴承数据加载与预处理

2.1 导入数据

参考之前的文章,进行故障10分类的预处理,凯斯西储大学轴承数据10分类数据集:

超强!一区直接写!基于SSA+Informer-SENet故障诊断模型-AI.x社区

train_set、val_set、test_set 均为按照7:2:1划分训练集、验证集、测试集,最后保存数据。

超强!一区直接写!基于SSA+Informer-SENet故障诊断模型-AI.x社区

上图是数据的读取形式以及预处理思路。

2.2 数据预处理,制作数据集

超强!一区直接写!基于SSA+Informer-SENet故障诊断模型-AI.x社区

3 麻雀优化算法

3.1 麻雀优化算法介绍

麻雀优化算法(Sparrow Search Algorithm,简称SSA)是一种基于自然界麻雀行为特点的优化算法,它模拟了麻雀在觅食、迁徙和社交等行为中的优化策略。该算法在解决多种优化问题方面展现出了良好的性能。

麻雀优化算法的基本思想是通过模拟麻雀的觅食行为,不断优化搜索空间中的解。算法的过程可以分为觅食行为、迁徙行为和社交行为三个阶段。

(1). 觅食行为(Foraging Behavior):麻雀在觅食时会选择距离较近且具有较高适应度的食物源。在算法中,解空间中的每个个体被看作是一个食物源,具有适应度评价值。麻雀通过选择适应度较高的个体来寻找更优的解。

(2). 迁徙行为(Migration Behavior):当麻雀在一个食物源周围搜索一段时间后,如果没有找到更优的解,它们会选择离开当前食物源,前往其他食物源继续寻找。在算法中,个体之间的位置信息会发生变化,以模拟麻雀的迁徙行为。

(3). 社交行为(Social Behavior):麻雀在觅食时会通过与其他麻雀的交流来获取更多的信息,从而提高自己的觅食效率。在算法中,个体之间通过交换信息来改善自身的解,并且更新解空间中的最优解。

3.2 基于Python的麻雀优化算法实现

超强!一区直接写!基于SSA+Informer-SENet故障诊断模型-AI.x社区

3.3 麻雀优化算法-超参数寻优过程

麻雀优化算法具有简单易实现、全局寻优能力和自适应性等特点,适用于解决组合优化问题。我们通过麻雀优化算法来进行Informer-SENet模型的超参数寻优。

超强!一区直接写!基于SSA+Informer-SENet故障诊断模型-AI.x社区

通过设置合适的种群规模和优化迭代次数,我们在给定的超参数范围内,搜索出最优的参数。

4 基于Pytorch的SSA-Informer-SENet创新诊断模型

4.1 定义SSA-Informer-SENet分类网络模型

超强!一区直接写!基于SSA+Informer-SENet故障诊断模型-AI.x社区

4.2 设置参数,训练模型

超强!一区直接写!基于SSA+Informer-SENet故障诊断模型-AI.x社区

50个epoch,准确率100%,SSA-Informer-SENet网络分类效果显著,模型能够充分提取轴承故障信号的多尺度特征,收敛速度快,性能特别优越,效果明显。

4.3 模型评估

准确率、精确率、召回率、F1 Score

超强!一区直接写!基于SSA+Informer-SENet故障诊断模型-AI.x社区

故障十分类混淆矩阵:

超强!一区直接写!基于SSA+Informer-SENet故障诊断模型-AI.x社区

其他效果展示:

(1)模型训练可视化

超强!一区直接写!基于SSA+Informer-SENet故障诊断模型-AI.x社区

(2)分类标签可视化

超强!一区直接写!基于SSA+Informer-SENet故障诊断模型-AI.x社区

(3)原始数据 t-SNE特征可视化

超强!一区直接写!基于SSA+Informer-SENet故障诊断模型-AI.x社区

(4)模型训练后的 t-SNE特征可视化:

超强!一区直接写!基于SSA+Informer-SENet故障诊断模型-AI.x社区图片

本文转载自 建模先锋​,作者: 小蜗爱建模

已于2024-11-20 16:56:09修改
收藏
回复
举报
回复
相关推荐