# 机械设备故障的靶向迁移诊断与OpenAI分析

1. 靶向迁移学习概念

机械故障迁移诊断运用已学习到的设备(源域)诊断知识解决相关设备(目标域)的诊断问题,可望克服大数据下标签数据稀缺、故障信息不全的智能诊断难题。为有效地跨域迁移故障诊断知识,使智能诊断模型能够在不同设备间迁移应用,现有研究要求目标域的数据标签空间相对源域的偏移较小,且两者相互对称,这在跨设备迁移诊断中难以满足,降低了智能诊断模型的迁移诊断精度。受“靶向治疗”基本原理启发,提出机械故障靶向迁移诊断方法。首先建立领域共享的深度卷积网络,将源域与目标域的数据映射到深层特征空间;然后设置目标域中极少量的标签数据为制导锚点,并根据制导锚点与源域数据的标签对应关系确定深层特征空间中的靶向区域;最后规划目标域数据向靶向区域移动的制导轨迹,进而基于最优传输理论适配深层特征的局部分布。通过不同设备之间的轴承故障迁移诊断试验对提出方法进行验证,结果表明:提出方法能够定向适配深层特征的局部分布,提高了智能诊断模型在不同设备间的轴承故障迁移诊断精度。

已经开发了基于深度迁移学习的故障诊断来纠正数据分布偏移,促进相关机器之间的诊断知识转移。然而,存在两个弱点:1)所有目标域数据都未标记的假设对于深度转移学习在不同机器之间诊断的稳健应用是严格的;2) 现有方法的成功大多是在相同的条件标签分布下实现的。针对这些弱点,本文放宽了一个合理的假设,即称为锚的一次性目标域样本被标记,并进一步提出了一种针对不同条件标签分布的任务的深度目标迁移学习(DTTL)方法。DTTL包括三个部分。首先,构建了一个域共享残差网络来表示跨域数据中的发送特征。其次,目标域聚类模块将未标记的目标域样本收集到wards锚点。第三,目标自适应模块根据锚的相关标签和源域数据设计目标域样本的自适应轨迹,然后校正联合分布偏移。DTTL在不同轴承的转移诊断任务中进行了演示。结果表明,跨域数据可以通过遵循可设计的适应轨迹来对齐。与其他方法相比,DTTL具有更高的诊断准确性。

2. 为什么做靶向迁移学习

尤其随着深度学习的兴起与蓬勃发展,故障诊断准确性与智能化明显提升。然而,智能诊断的实际应用却困难重重,原因在于:① 大规模且高质量的标签数据是智能诊断成功应用的前提,而工程实际中的数据标注成本高昂,导致数据规模虽大但可用数据少;② 机械设备在服役期内长期处于正常状态,即使有故障萌生,故障类型也难以覆盖设备的所有状态,因此,获取的数据中正常信息重复性高、典型故障信息不全。综上原因,智能诊断无法从标签稀缺且故障信息不全的数据中充分学习诊断知识,导致漏诊或误诊频发。

迁移学习为解决大数据下的智能诊断应用难题提供了新思路:针对数据标签稀缺且故障信息不全的待诊断设备(目标域),若存在与之相关的某设备(源域),已积累了大量的标签数据,且其中包含丰富的故障信息,则从这些标签数据中学习到的诊断知识可用于解决待诊断设备的诊断问题。为此,国内外学者研究了实例加权、参数迁移、特征适配等方法。其中,特征适配的迁移诊断方法通过缩小源域与目标域的数据特征分布差异,促使故障诊断知识跨设备迁移应用。由于这种方法能够在跨域差异显著时迁移故障诊断知识,因而成为当前研究的前沿热点。尤其受深度学习理论与技术驱动,特征适配由浅入深,并在多种迁移诊断任务上表现出优异的效果。

然而,上述研究成果表明:特征适配的迁移诊断不仅放宽了现有智能诊断研究对大量标签数据的强依赖性,而且能够利用源域数据中丰富的故障信息弥补目标域的典型故障信息缺失。然而,仍存在以下不足:① 现有研究的有效性一般基于源域与目标域间具有较小的数据条件分布差异,而对于跨设备迁移诊断任务,数据从不同设备上采集,其标签空间因机械结构、型号、测试环境等多重因素变化而产生较大偏移,数据条件分布差异显著,导致现有研究在这类任务上的迁移诊断性能欠佳,往往需要针对特定目标域不断试错出可迁移性较高的源域,这不仅费时费力,而且要求源域选择范围广泛;② 现有研究多假设源域与目标域的数据标签空间相互对称,即目标域待诊断数据的故障类型恰与源域数据的故障类型相同,这与工程实际不符。例如,在实验室场景中通过故障模拟能够获取故障类型丰富的数据,而这些故障中可能仅有一部分在实际设备的服役过程出现。对此,现有研究在特征分布适配中仅考虑了数据的全局分布而忽视了局部分布的差异性,因此难以在标签空间不对称的情况下准确适配。

3. OpenAI分析其算法实现

  • Chatgpt模型的分析结果

    根据论文摘要所描述的方法,该程序需要实现以下功能:

  1. 建立深度卷积网络,用于将源域和目标域的数据映射到深层特征空间。
  2. 根据目标域中的极少量标签数据,确定深层特征空间中的靶向区域。
  3. 规划目标域数据向靶向区域移动的制导轨迹,并基于最优传输理论适配深层特征的局部分布。
  4. 对跨设备迁移诊断进行测试,评估迁移诊断精度。

以下是生成的demo程序

import tensorflow as tf
import numpy as np

# 加载已训练的模型
source_model = tf.keras.models.load_model('source_model.h5')

# 加载目标设备数据
target_data = np.load('target_data.npy')

# 设置制导锚点
anchor_idx = [10, 20, 30]  # 假设我们在目标设备数据中选择了前30个数据中的第10、20和30个作为锚点
anchors = target_data[anchor_idx]

# 对目标设备数据进行预测,得到深层特征
target_features = source_model.predict(target_data)

# 确定靶向区域
target_labels = [...]  # 在这里输入目标设备数据的真实标签
anchor_labels = [...]  # 在这里输入制导锚点的真实标签
target_anchors = target_features[anchor_idx]
target_labels = np.array(target_labels)[anchor_idx]
anchor_labels = np.array(anchor_labels)
target_indices = np.isin(target_labels, anchor_labels)
target_anchors_indices = np.isin(anchor_labels, target_labels[target_indices])
target_anchor_features = target_anchors[target_anchors_indices]
target_features_indices = np.where(target_indices)[0]
target_features = target_features[target_features_indices]
target_anchor_labels = target_labels[target_indices]
....

小结:
感觉基本思路分析还是挺完备,但是精准的代码编写还是挺困难。

参考文献资料

【1】JME-跨设备的机械故障靶向迁移诊断方法
【2】Deep Targeted Transfer Learning along Designable Adaptation Trajectory for Fault Diagnosis across Different Machines

猜你喜欢

转载自blog.csdn.net/u013537270/article/details/129738857