首页 > 其他分享 >Applications of UDTL to Intelligent Fault Diagnosis: A Survey and Comparative Study

Applications of UDTL to Intelligent Fault Diagnosis: A Survey and Comparative Study

时间:2024-09-08 19:51:32浏览次数:14  
标签:基于 UDTL Fault Study 样本 源域 目标 IFD

文章目录


摘要

智能故障诊断(IFD)的最新进展很大程度上依赖于深度表征学习和大量标记数据。 然而,机器经常在各种工作条件下运行,或者目标任务与用于训练的收集数据具有不同的分布(域移问题)。 此外,新采集的目标域测试数据通常是未标记的,导致基于无监督深度迁移学习(UDTL)的IFD问题。 虽然它已经取得了巨大的发展,但一个标准的、开源代码的框架和基于UDTL的IFD的比较研究还没有建立起来。 在本文中,我们构建了一个新的分类法,并根据不同的任务对基于UDTL的IFD进行了全面的回顾。 通过对一些典型方法和数据集的对比分析,揭示了基于UDTL的IFD中一些尚未被研究的开放性和本质问题,包括特征的可转移性、backbones的影响、负迁移、物理先验等。 为了强调基于UDTL的IFD的重要性和可重复性,整个测试框架将向研究界发布,以方便未来的研究。 综上所述,发布的框架和对比研究可以作为开展基于UDTL的IFD新研究的扩展接口和基本结果。


一、引言

在基于DL的IFD的有效性背后,有两个必要的假设:1)来自训练数据集(源域)的样本与来自测试数据集(目标域)的样本具有相同的分布;2)在训练阶段有大量的标记数据可用。 虽然标记数据可能是通过动态模拟或故障播种实验生成的,但生成的数据与真实场景中的测试数据并不严格一致。 也就是说,基于训练数据集的深度学习模型在实际应用中部署到测试数据集时,泛化能力较弱。 此外,旋转机械经常在不同的工作条件下运行,例如负载和速度,这也要求使用来自一种工作条件的数据集的训练模型能够成功地从另一种工作条件转移到测试数据集。 简而言之,这些因素使得在源域训练的模型难以直接泛化或转移到目标域。
由于在不同的应用场景或不同的工作条件下具有内在的相似性,这两个领域中存在的共享特性允许这种领域转移是可管理的。 因此,为了使在源域训练的深度学习模型能够很好地迁移到目标域,应该在IFD中引入一种新的范式,称为深度迁移学习(DTL)。 一种有效而直接的深度学习方法是在目标域中使用少量的标记数据对深度学习模型进行微调,然后利用微调后的模型对测试样本进行诊断。 然而,新收集的数据或不同工况下的数据通常是未标记的,有时很难甚至不可能对这些数据进行标记。 因此,在本文中,我们研究了DTL的无监督版本,称为基于无监督DTL (UDTL)的IFD,它是在给定源域上的标记数据的情况下对目标域上的未标记数据进行预测。 值得一提的是,UDTL有时被称为无监督域适应,在本文中,我们不会严格区分这两个概念。
由于其应用价值、开放源代码和基线精度,UDTL在计算机视觉和自然语言处理领域得到了广泛的应用,并取得了巨大的成功。 然而,基于uddi的IFD领域很少有开放源代码或基线精度,大量的基于UDTL的IFD研究只是简单地使用了其他领域已经发表的模型。 由于缺乏开源代码,这些论文中的结果很难重复以进行进一步的比较。 这不利于确定最先进的方法,而且从长远来看,这不利于该领域的发展。 因此,执行比较研究、提供基线准确性和发布基于UDTL的算法的开放源代码是非常重要的。 对于基于UDTL的算法测试,统一的测试框架、参数设置和数据集是影响比较公平性和有效性的三个重要方面,而由于这些因素的不一致性,导致了大量不公平和不合适的比较。 似乎学者们在不断地结合新的技术,所提出的算法总是比以前的算法有更好的性能,这就产生了一个问题:这种改进是有利于IFD还是仅仅依赖于过度的参数调整? 然而,基于UDTL的IFD中开放性和根本性的问题,如特征的可转移性和主干网的影响等,却很少得到研究。
已经有一些很好的关于IFD迁移学习的综述论文。 Zheng等[18]对基于迁移学习的知识转移策略的跨域故障诊断进行了总结,并提供了一些开源数据集,可用于验证诊断方法的性能。 Yan等[19]通过不同的迁移学习方法回顾了旋转机械故障诊断知识迁移的最新进展,并提供了四个案例研究来比较不同方法的性能。 Lei等[20]回顾了基于机器学习方法的IFD,重点介绍了迁移学习理论,将一个或多个数据集的诊断知识应用到其他相关数据集,并指出迁移学习理论可能是缩小实验验证与实际应用之间差距的重要途径。 然而,上述所有的论文都没有关注基于UDTL的IFD,也没有提供开源测试框架来进行公平和适当的比较。 他们都更关注基于标签一致(也称为闭集)UDTL的IFD,它假设源域与目标域具有相同的标签空间,但最近的许多研究论文都集中在标签不一致或多域UDTL上,这更接近工程场景。 因此,仍然需要对基于UDTL的IFD从摇篮到开花的先进发展进行全面的回顾,并指导未来的发展。
在本文中,为了填补这一空白,讨论了常用的基于UDTL的设置和算法,并构建了基于UDTL的IFD的新分类法。 在每个单独的类别中,我们还对基于UDTL的IFD的最新发展进行了全面的回顾。 将一些典型的测试方法整合到一个统一的测试框架中,在五个数据集上进行测试。 这个测试框架和源代码将发布给研究社区,以促进基于UDTL的IFD的研究。 通过这种对比研究和开放源代码,作者试图对现有算法进行深入的讨论(值得一提的是,结果只是精度的下界),并试图找到决定传输性能的核心。
主要贡献
1)新分类法及综述:根据UDTL的不同任务,建立了基于UDTL的IFD新分类法。 层次顺序遵循源域的数量、目标数据在训练阶段的使用情况、源域和目标域的标签一致性、源域和目标域标签集之间的包含关系以及转移方法级别。 我们还为每种类型的类别提供了基于UDTL的IFD的最全面的概述。
2)各种数据集和数据分割:我们收集了大多数适合基于UDTL的IFD的公开可用数据集,并提供了关于其适应性的详细讨论。 我们还讨论了数据分割的方式,并解释了将数据分割为训练和测试数据集更合适,而不管它们是在源域还是目标域。
3)比较研究及进一步讨论:我们对各种基于UDTL的IFD方法进行了评估,并从多个角度进行了系统的比较分析,使未来的研究更具可比性和意义。 我们还讨论了特征的可转移性、主干的影响、负迁移等问题。
4)开放源代码:为了强调基于UDTL的IFD的重要性和可再现性,我们发布了实现本文中讨论的所有基于UDTL的方法的整个评估代码框架。 同时,这是一个可扩展的框架,它保留了一个扩展的接口,供每个人组合不同的算法并加载自己的数据集来进行新的研究。

二、背景和定义

A. UDTL 定义

为了简要描述UDTL的定义,我们引入一些基本符号。 假设源域标签全部可用,源域定义如下:
在这里插入图片描述
Ds代表源域,xsi∈Rd是第i个样本,Xs是所有样本的集合,ysi是第i个样本的第i个标签,Ys是所有不同标签的集合,ns表示源样本的总数。 另外,假设目标域中的标签不可用,则目标域定义如下:
在这里插入图片描述
Dt表示目标域,xti∈Rd是第i个样本,Xt是所有样本的集合,nt表示目标样本的总数。
源域和目标域分别服从概率分布P和Q。 我们希望建立一个β(·)模型,该模型可以对目标域中未标记的样本x进行分类
在这里插入图片描述
y hat是预测值。 因此,UDTL旨在利用源数据监督最小化目标风险:
在这里插入图片描述
UDTL总损失可重写为:
在这里插入图片描述
其中Lc为(6)所示的softmax交叉熵损失,λ为权衡参数,L UDTL为减少源域和目标域之间特征差异的部分损失
在这里插入图片描述
C是所有可能种类的数目,E代表数学期望,1是指标函数。

B.基于UDTL的IFD分类

在本节中,我们将介绍基于UDTL的IFD的分类,如图1所示。 我们从宏观角度根据源域的数量将基于UDTL的IFD分为单域和多域UDTL。 在下面,我们对每一个类别做一个简单的介绍,并在下一部分给出详细的描述。
在这里插入图片描述
1)单域UDTL:它们可以进一步分为标签一致(闭集)和标签不一致的UDTL。 如图2所示,标签一致性UDTL表示源域和目标域的标签集是一致的。 根据Tan等人的研究[22],标签一致的UDTL可以从方法论层面上分为四类:基于网络、实例、映射和对抗的方法。 此外,基于标签集之间的包含关系,我们将标签不一致的UDTL分为部分任务、开放任务和通用任务。如图2所示,部分UDTL是指目标标签集是源标签集的一个子空间; 开放 UDTL表示目标标签集包含未知标签; 通用UDTL是前两个的组合。 值得一提的是,这三项任务从方法论层面上可以进一步分为上述四种方法。
在这里插入图片描述
2)多域UDTL:根据目标数据在训练阶段的使用情况,可以进一步分为多域自适应和域泛化(DG)。 多域自适应是指来自目标域的未标记样本参与训练阶段,而域泛化则相反。 此外,这两种情况还可以进一步分为标签一致的UDTL和标签不一致的UDTL。

C. 基于UDTL的IFD动机

由于工作条件、故障大小、故障类型等的影响,训练样本和测试样本的分布通常是不同的。 因此,最近引入了基于UDTL的IFD来解决这个领域转移问题,因为在特定的空间中有一些共享的特性。 利用这些共同的特征,基于uddi的IFD应用主要可以分为四类:不同工况、不同故障类型、不同位置和不同机器。
1)不同的工况:由于转速、负荷、温度等因素的影响,在监测期间工况经常发生变化。 采集到的信号可能存在域移,这意味着在不同的工作条件下,数据的分布可能会有很大的差异[23]。 基于UDTL的IFD的目的是,使用一种工作条件下的信号训练的模型可以转换为另一种不同工作条件下的信号。
2)不同类型的故障:由于同一组件上可能发生不同类型的故障,源域和目标域之间可能存在标签差异。 因此,基于UDTL的IFD有三种情况。 一是未知故障类型出现在目标域中(开集转移)。 二是源域的部分故障类型出现在目标域中(部分转移)。第三种是前两种情况同时发生(普遍转移)。 基于UDTL的IFD的目的是将用某些类型的故障训练的模型转移到具有不同类型故障的目标域。
3)不同位置:由于安装在同一台机器上的传感器往往负责监控不同的部件,因此位于故障部件附近的传感器更适合指示故障信息。 然而,关键部件的故障率概率不同,导致来自不同位置的信号具有不同数量的标记数据。 基于UDTL的IFD的目的是,用来自一个位置的大量标记数据训练的模型可以使用来自其他位置的未标记数据转移到目标领域。
4)不同的机器:由于测试成本和安全性的原因,很难收集到足够的真实机器的标记故障样本。 此外,动态仿真或故障播种实验可以生成足够的标记数据。 然而,由于结构和测量情况相似,动态模拟或故障播种实验的数据分布与真实机器的数据分布不同,但又相似。 因此,基于uUDTL的IFD的目标是可以将模型转换为从真实机器收集的测试数据。

D.主干结构

骨干结构是基于UDTL的IFD中最重要的部分之一,骨干结构作为特征提取,对测试精度有很大的影响。 例如,在图像分类领域,不同的主干,如VGG[24]和ResNet[25],具有不同的特征提取能力,导致分类性能不同。
然而,对于基于UDTL的IFD,不同的研究都有各自的主干,很难确定哪个主干更好。 因此,由于主干的代表能力不同,直接与其他已发表论文的结果进行比较是不公平和不合适的。 在本文中,我们尝试使用相同的CNN骨干网来验证不同基于UDTL的IFD方法的性能,以确保公平的比较。 如图3所示,CNN主干由四个一维卷积层组成,其中包含一维批处理归一化(BN)层和一个ReLU激活函数。 此外,第二种组合具有一维最大池化层,第四种组合具有一维自适应最大池化层,实现对输入长度的自适应。 然后将卷积输出平坦化并通过一个全连接(Fc)层、一个ReLU激活函数和一个dropout层。 具体参数如表1所示。
在这里插入图片描述

三、LABEL-CONSISTENT UDTL

标签一致(也称为闭集)基于UDTL的IFD,假设源域与目标域具有相同的标签空间。 在本节中,我们从方法层面将标签一致UDTL分为基于网络、实例化、映射和对抗的方法。

A.基于网络的UDTL

1)基本概念:基于网络的DTL是指在源域中预训练的部分网络参数直接转换为测试过程的部分网络参数,或者在目标域中使用少量标记数据对网络参数进行微调。 最流行的基于网络的DTL方法是利用目标域中的少量标记数据对训练好的模型进行微调。 但是,对于基于EDTL的IFD,目标域中的标签不可用。 我们使用带有bottleneck的主干,其由Fc层(out_features=256)、ReLU激活函数、dropout层(p = 0.5)和一个基本的softmax分类器组成,以构建我们的基本模型(我们称之为basis),如图4所示。 训练后的模型直接用于目标域的样本测试,这意味着源域和目标域共享相同的模型和参数。
在这里插入图片描述
2)在IFD中的应用:在[26]-[37]中使用源数据预训练的深度神经网络,通过冻结其部分参数,然后将部分网络参数转移到目标网络中,使用少量目标数据对其他参数进行微调。 [38] -[42]中使用了ImageNet上预训练的深度神经网络,并对有限的目标数据进行了微调,以适应工程应用领域。 [43]和[44]中使用了集成技术和多通道信号来初始化目标网络,该网络由来自目标域的少量训练样本进行微调。 二维图像,如灰度图像[45]使用时频图像[46]和热图像[47]对特定设计的网络进行预训练,并通过微调将其转移到目标任务中。
Qureshi等人[48]在一个风电场上预训练了9个深度稀疏自编码器,并通过微调预训练网络对另一个风电场进行预测。 Zhong等人[49]在足够的正常样本上训练一个CNN,然后用支持向量机代替Fc层作为目标模型。 Han等人[50]讨论并比较了三种微调策略:仅微调分类器、微调特征描述符以及同时微调特征描述符和分类器以诊断未见机器状态。 Xu等人[51]在源域对离线CNN进行预训练,通过对目标域的在线CNN进行微调进行在线IFD,直接将离线CNN转移到在线CNN的浅层。 Zhao等人[52]提出了一种在源域预训练的多尺度卷积迁移学习网络,然后通过适当的微调将模型转移到其他不同但相似的域。

B.基于实例化的UDTL

1)基本概念:基于实例的UDTL是指在源域中重新加权实例,以帮助分类器预测标签或使用实例的统计信息来帮助对齐目标域,如TrAdaBoost[53]和adaptive BN (AdaBN)[54]。 在本文中,我们使用AdaBN来表示一个基于实例的UDTL方法,它不需要来自目标域的标签。 BN可以避免内部协变量移位的问题,是最重要的技术之一。 由于BN(批量归一化)使输入分布更加稳定,因此可以促进更快的训练速度。 详细描述和性质可参考[55]。 值得一提的是,BN层只在训练过程中更新,在测试过程中使用训练样本的全局统计量对测试样本进行归一化。
AdaBN是一种简单且无参数的移域技术,在[54]中被提出以提高泛化能力。 AdaBN的主要思想是在测试阶段将每个BN层的全局统计信息替换为目标域的统计信息。 在我们的AdaBN实现中,在训练后,我们提供了两种更新策略来使用目标数据对BN层的统计进行微调,包括每批更新和整个数据更新。 在本文中,考虑到内存限制,我们通过每批更新BN层的统计信息。
2)在IFD中的应用:Xiao等[56]利用TrAdaBoost通过调整每个训练样本的权重因子来增强故障分类器的诊断能力。 Zhang等人[57]和Qian等人[58]使用AdaBN来提高模型的域适应能力,保证每一层接收的数据来自相似的分布。

C.基于映射的UDTL

1)基本概念:基于映射的UDTL是指通过特征提取器从源域和目标域到特征空间的映射实例。 基于映射的UDTL有许多方法,如欧氏距离、Minkowski距离、Kullback-Leibler、相关对齐(CORAL)[59]、最大平均差异(MMD)[60]、[61]、多核MMD (MK-MMD)[21]、[62]、联合分布自适应(JDA)[63]、平衡分布自适应(BDA)[64]、联合MMD (JMMD)[65]。 在本文中,我们使用MK-MMD、JMMD和CORAL来表示基于映射的方法,并测试它们的性能。
2)在IFD中的应用:[70]和[71]中使用BDA自适应平衡深度神经网络学习的IFD特征域之间的边缘分布和条件分布差异的重要性。 CORAL损失[72],[73]和最大方差差异(MVD)[74]被用来减少不同区域之间的分布差异。 Qian等人[58],[75]考虑了高阶矩,提出了HKL散度来调整旋转机械故障诊断的域分布。 [76]提出了用于测量域和目标张量表示的距离,将张量表示对齐到轴承故障诊断的不变张量子空间中。
另一种度量距离称为MMD,被广泛应用于智能诊断领域[77]-[85]。 Tong等人[86]、[87]通过细化轴承故障诊断的伪测试标签,在特征空间中基于MMD同时减少了跨域的边际分布和条件分布。 Wang等[88]提出了一种基于估计伪标签的条件MMD,缩短了轴承故障诊断的条件分布距离。 通过最小化MMD,在多层同时对齐边缘分布和条件分布[89],[90]。 Yang等人[91]在MMD中用多项式核代替高斯核,更好地对准分布差异。 Cao等[92]提出了一种伪分类的MMD来缩小类内跨域分布差异。 MMD还与其他技术相结合,如Grassmann流形[93]、保局域投影[94]和图拉普拉斯正则化[95]、[96],以提高分布对齐的性能。
MK-MMD在[23]和[97]-[101]中被用来更好地将学习到的特征在源域的分布转移到IFD的目标域的分布。 Han等人[102]和Qian等人[103]使用JDA同时对齐条件分布和边缘分布,以构建更有效和鲁棒的特征表示,以应对较大的分布差异。 Wu等[104]进一步使用灰狼优化算法学习JDA的参数。 Cao等[105]在JMMD的基础上,提出了一种软JMMD,通过增强辅助软标签来减少边际分布和条件分布的差异。

D.基于对抗性的IFD

1)基本概念:基于对抗性的UDTL是一种利用域鉴别器来减少特征提取器产生的源域和目标域之间的特征分布差异的对抗性方法。 本文采用域对抗神经网络(domain adversarial neural network, DANN)[106]和条件域对抗网络(conditional domain adversarial network, CDAN)[107]两种常用的方法来表示基于对抗的方法,并测试了相应的准确性。
2)在IFD中的应用:在[108]-[115]中,使用标记好的源数据对特征提取器进行预训练,并用于生成目标特征。 然后,对源域和目标域的特征进行训练,使域鉴别器损失最大化,从而实现IFD的分布对齐。 通过对抗性训练过程,在基于UDTL的IFD中引入了分类器差异[116]-[118],这意味着对源域和目标域使用单独的分类器。 同时,对抗训练还与其他度量距离相结合,如L1对齐[119]、MMD[120]、MK-MMD[121]、JMMD[122],以更好地匹配IFD不同域之间的特征分布。 Li等人[123]分别使用MMD和领域对抗训练训练的两个特征提取器和分类器; 同时,进一步利用集成学习得到最终结果。 Qin等[124]提出了一种多尺度转移投票机制(MSTVM)来改进经典的领域自适应模型,并通过MMD和领域对抗训练对验证后的模型进行训练。 此外,Qin等人还提出了参数共享[125]和多尺度[126]思想,以降低网络结构的复杂性,提取更多的域不变特征。 通过嵌入度量距离的领域对抗训练(如MMD和CORAL)对验证的模型进行训练。
[127] -[130]中使用Wasserstein距离来指导对抗性训练,以对齐IFD分布的差异。 Yu等[131]将条件对抗数据挖掘与基于中心的判别损失相结合,实现了机车故障诊断的分布差异和特征判别。 Li等人[132]提出了一种基于最小化联合分布域对抗损失的轴承故障诊断策略,该策略将伪标签信息嵌入到对抗训练过程中。 此外,另一种使用对抗性方法的策略包括采用GAN为目标域生成样本[133],[134]。

四.LABEL-INCONSISTENT UDTL

由于源域和目标域的标签集在实际应用中很难保持一致,因此研究标签不一致的UDTL具有重要的意义。 本文研究了三种标签不一致的传输设置,包括partial UDTL、open set UDTL和universal UDTL。

A. Partial UDTL

1)基础概念:在[135]中提出的Partial UDTL是一种迁移学习范式,其中目标标签集Ct是源标签集Cs的子空间。
2)部分对抗域适应(PADA):其中一种流行的部分UDTL方法,名为PADA,由Cao等人提出[136]。 PADA模型类似于DANN,并进一步考虑将目标数据分配给源私有类的概率很小,并且对所有目标数据的标记预测是平均的,以量化每个源类的贡献
在这里插入图片描述
将γ最大值归一化后,γ^作为类级权值
在这里插入图片描述
通过将类级权重应用于类预测器和域鉴别器的损失,可以减少属于源私有类的源样本的贡献。 预测和对抗损失重写如下
在这里插入图片描述
ysi是源域样本xsi的真实标签,在这里插入图片描述是归一化,类别权重,λPADA是一个权衡参数。
我们通过对损失函数应用类级权重来设计基于UDTL的模型,以减少异常源类的影响,如图10所示。 最终损失函数定义如下:
在这里插入图片描述
在这里插入图片描述
3)在IFD中的应用:在[137]中,构建了两个分类网络,使用两个网络的目标标签预测计算源域的类级权重,然后将权重应用于源分类损失以减轻异常源样本的影响 。 李等人 [138]在对抗性迁移网络中添加了权重模块,并构建了加权学习策略来量化源样本的可迁移性。 通过过滤掉不相关的源样本,可以减少共享标签空间中跨域的分布差异。 Li和Zhang[139]提出了一种条件数据对齐技术来对齐健康数据的分布,并提出了一种预测一致性技术来对齐两个域中其他类的分布。 在[140]中,为了促进共享类的正迁移并减少异常类的负迁移,使用每个源类的平均域预测损失作为类级权重。 为了避免潜在的负面影响并维护阶级间的关系,王等人 [141]提出通过添加一致性损失来单方面将目标域与源域对齐,这迫使对齐的源特征接近预训练的源特征。 邓等人 [142]为每个类构造了子域鉴别器以实现更好的灵活性。 提出了双层注意力机制,为子域判别器分配不同的注意力,为样本分配不同的注意力,以选择相关样本。 杨等人 [143]提出通过训练域鉴别器来学习域不对称因素,并且在分布适应中对源样本进行加权以阻止不相关的知识。

B.Open Set UDTL

1)基本概念:考虑到UDTL目标域的标签空间是不确定的,Saito等人 [144]提出开放集域适应(OSDA),目标域可以包含源域中不存在的类的样本,即 Cs ⊂ Ct 。 OSDA的目标是正确分类已知类目标样本,并将未知类目标样本识别为附加类。
2)开集反向传播 (OSBP):Saito等人[144]提出了一种基于对抗性的UDTL方法,称为OSBP,旨在为未知类制定伪决策边界。 OSBP模型由特征提取器Gf和C+1分类器Gc组成,其中C表示源类的数量。 然后将 Gc 的输出输入到 softmax 中以获得类别概率。x 被分类为 c 类的概率定义为ptc。1∼ C 和 C + 1 维度分别表示已知类和未知类的概率。
为了正确分类源样本,使用(6)中的预测损失 Lc 来训练特征提取器和分类器。 此外,通过训练分类器输出 ptC+1 = τ,其中 τ 的范围从 0 到 1,训练分类器将目标样本识别为未知类,而特征提取器则通过训练特征提取器来训练欺骗分类器允许ptC+1高于或低于τ。这样,可以在已知和未知目标样本之间构建良好的边界。 二元交叉熵损失用于对抗训练
在这里插入图片描述
我们设计了一个基于UDTL的模型,引入C+1分类器,并将对抗性思想添加到损失函数中,为未知类做出伪决策边界,如图11所示。
在这里插入图片描述
鞍点 ( ˆθ f , ˆθc) 使用以下最小–最大优化问题求解:
在这里插入图片描述
3)应用到IFD:李等人 [145]提出了一种新的故障分类器来检测未知类别,并进一步建立了卷积自动编码器模型来识别[146]中新故障类型的数量。 张等人 [147]提出了一种实例级加权UDTL方法,在特征对齐过程中应用目标样本的相似性。 为了识别具有离群值类别的目标样本,使用具有伪离群值标签的目标实例来训练离群值分类器。

C.Universal UDTL

1)基础概念: [148]提出了通用域适应(UDA),它不对标签集强加先验知识。 在UDA中,对于给定的源标签集和目标标签集,它们可能分别包含公共标签集和私有标签集。 UDA 要求模型在目标样本与公共标签集中的标签相关联时正确分类目标样本,否则将其标记为“未知”。 令Cs表示源标签集,Ct表示目标标签集,C=Cs∩Ct表示公共标签集。 Cs = Cs\C 和 Ct = Ct \C 分别表示源标签集和目标自有标签集。
2)通用适应网络(UAN):
3)应用到IFD:张等人[149]提出了一种选择性UDTL方法。 分类权重应用于源域,实例权重应用于目标域。 训练异常值识别器来识别未知的故障模式。 于等人 [150]提出了一种双边加权对抗网络来对齐共享类源样本和目标样本的特征分布,并解开共享类和异常类样本。 经过模型训练,在源样本的特征表示上建立极值理论(EVT)模型,并进一步用于检测目标域中的未知类样本。

五.多域UDTL

考虑到单个源域可能不足以满足实际应用中的 UDTL,考虑多域 UDTL 也很重要,这可以帮助学习域不变的特征。本文研究了两种多域UDTL设置,包括多域自适应(在训练阶段使用目标数据)和DG(在训练阶段不使用目标数据)。 由于多域UDTL中有多个源域,因此我们首先需要重新定义一些基本符号。在这里插入图片描述代表源域,nsd代表源域数量,Dt代表目标域,Ds,n代表第n个目标域,xsi,n ysi,n分别代表第i个样本和其对应的标签,dsi,n是xsi,n的域标签,dti是xti的域标签。

A多域适配

1)基础概念:传统的基于单源域的UDTL无法充分利用多源域的数据,可能无法发现私有关系和域不变的特征。 因此,多域适应旨在利用标记的多源域和未标记的目标域来挖掘这种关系和域不变特征。
2)多源无监督对抗域适应(MS-UADA)
3)应用到IFD:朱等人 [154]提出了一种多域适应的对抗性学习策略来捕获故障特征表示。 Rezaeianjouybari和Shang[155]提出了一种新颖的多源适应框架,可以实现特征和任务级别的对齐。 张等人 [156]根据分类器对齐方法提出了一种对抗性多域适应,以从多个源域捕获域不变特征。 [157]提出了一种基于多源域中的K均值和空间变换的方法。 魏等人 [158]提出了一种多源适应框架,用于基于分布相似性来学习域不变特征。 张等人 [74]提出了一种基于MVD和MMD的增强传输联合匹配方法,用于多域自适应。 李等人 [159]提出了一种多域适应方法,通过域对抗训练来学习诊断知识。 黄等人 [160]提出了一种多源密集自适应对抗网络来实现各种工况下的故障诊断。

B领域泛化

1)基础概念:DG是从多个源领域学习共享知识,并将知识泛化到目标领域,这在训练阶段是看不到的。 DG最大的区别在于目标域中未标记的样本仅出现在测试阶段。 基于[161]中的讨论,DG的核心思想是学习到的域不变特征应满足以下两个属性:1)G f 提取的特征应具有区分性;2)从不同源域提取的特征应具有域不变性 。 更详细的信息可以参考[161]。
2)不变对抗网络(IAN):根据上面的描述,DG的性能取决于判别性和域不变的特征。 领域不变的特征需要诊断模型来减少不同领域之间的特征差距。 正如第三节所述,对抗性训练可以减少不同领域之间的特征差距。 如图14所示,DG中使用了一种基于DANN的简单对抗训练方法IAN [162]、[163],以帮助G f 通过对齐边缘分布来提取域不变特征。 IAN的结构如图13所示,域鉴别器Gd的IAN损失定义如下:在这里插入图片描述
G f 应该会混淆 Gd。 因此,IAN 的总损失是一个极小极大博弈
在这里插入图片描述
3)应用到IFD:郑等人 [164]提出了一种基于IFD先验诊断知识和预处理技术的DG网络。 廖等人 [165]提出了一种深度半监督 DG 网络,通过推土机距离使用未标记和标记的源数据。 李等人 [162]通过结合数据增强、对抗性训练和基于距离的度量,提出了 IFD 中的 DG 方法。 杨等人 [166]使用中心损失来学习跨不同源域的域不变特征来实现 DG。 张等人 [167]提出了一种基于单个判别器的条件对抗性 DG 方法,以实现更好的传输和较低的计算复杂度。 韩等人 [168]提出了一种基于 DG 的混合诊断网络,通过三元组损失和对抗性训练部署到不可见的工作条件。

六.数据集

B.数据处理和分割

数据预处理和分割是影响基于UDTL的IFD性能的两个重要方面。 虽然基于UDTL的方法通常具有自动特征学习能力,但一些数据处理步骤可以帮助模型获得更好的性能,例如语音信号分类中的短时傅里叶变换(STFT)和图像分类中的数据归一化。 此外,在训练阶段经常存在一些陷阱,尤其是测试泄漏。 也就是说,在训练阶段不经意地使用了测试样本。
1)输入类型:本文测试了两种输入类型,包括时域输入和频域输入。 对于前一种,直接使用信号作为输入,样本长度为1024,没有任何重叠。 对于后一种,信号首先变换到频域,由于频谱系数的对称性,样本长度为512
2)归一化:数据归一化是基于UDTL的IFD的基本过程,它可以将输入值保持在一定的范围内。 在本文中,我们使用 Z -score标准化。
3)数据分割:由于本文不使用验证集来选择最佳模型,因此这里忽略验证集的分割。 在基于UDTL的IFD中,目标域中的数据用于训练过程以实现域对齐,并且也用作测试集。 事实上,这两种情况的数据不应该重叠; 否则会出现测试泄漏。 因此,如图15所示,我们在源域和目标域中将总样本的80%作为训练集,将总样本的20%作为测试集,以避免这种测试泄漏。

七.对比研究

我们将在本节中讨论评估结果。*为了使准确性更具可读性,我们使用一些可视化方法来呈现结果。

B.Label-Consistent UDTL

对于MK-MMD、JMMD、CORAL、DANN和CDAN,我们用前50个epoch的源样本训练模型,得到所谓的预训练模型,然后激活迁移学习策略。 对于 AdaBN,我们通过每个批次更新 BN 层的统计数据,额外增加三个 epoch。
1)评估指标:为简单起见,我们使用总体准确率(即正确分类的样本数除以测试数据中的样本总数)来验证不同模型的性能。 为了避免随机性,我们进行了五次实验,并使用总体精度的平均值和最大值来评估最终性能,因为五次实验的方差在统计上没有用处。 在本文中,我们使用最后一个时期的平均值和最大精度表示为last-mean和lastmax来表示没有任何测试泄漏的测试精度。 同时,我们还列出了模型达到最佳性能的时期的平均和最大准确率,分别表示为 best-mean 和 best-max。
2)数据集结果:为了更清楚地进行比较,我们总结了所有方法中不同数据集的最高平均准确率,结果如图16所示。我们可以观察到CWRU和JNU可以达到95%以上的准确率,而其他数据集只能达到95%以上的准确率。 准确率在60%左右。 还值得一提的是,由于很难对每个参数进行详细的微调,因此准确率只是一个下限。
3)模型结果:不同方法的结果如图17-图31所示。 图21没有设置为雷达图,因为两个传输任务不适合这种可视化。 对于所有数据集,本文讨论的方法都可以提高基础的准确性,除了 CORAL 之外。 对于CORAL来说,它只能提高频域输入的CWRU或某些传输任务中的精度。 对于AdaBN,改进比其他方法要小得多。
总的来说,JMMD的结果优于MK-MMD,这表明源域和目标域联合分布的假设对于提高性能是有用的。 DANN 和 CDAN 的结果通常优于 MK-MMD,这表明对抗性训练有助于对齐域转移。
4)输入类型结果:两种输入类型的精度比较如图22所示,可以得出结论,时域输入在CWRU、JNU和SEU中获得更好的精度,而频域输入在PU和PHM2009中获得更好的精度。 此外,这两种输入类型之间的准确率差距较大,并且由于骨干网络的影响,我们不能简单地推断哪一种更好。
因此,对于一个新的数据集,我们应该测试不同输入类型的结果,而不是仅仅使用更先进的技术来提高一种输入类型的性能,因为使用不同的输入类型可能比使用先进技术更有效地提高准确性。
5)精度类型结果:正如第七节中提到的,我们使用四种精度来评估性能,包括best-mean、bestmax、last-mean和last-max。 如图23所示,不同实验的波动有时很大,特别是对于那些总体精度不是很高的数据集,这表明所使用的算法不是很稳定和鲁棒。 此外,时域输入的波动似乎比频域输入的波动小,原因可能是本文使用的骨干网络更适合时域输入。
如图24所示,不同实验的波动也很大,这对于评估真实性能是危险的。 由于best使用测试集来选择最佳模型(这是一种测试泄漏),所以last可能更适合表示泛化精度。 因此,一方面,基于UDTL的IFD的稳定性和鲁棒性需要更多的关注,而不仅仅是提高精度。 另一方面,正如我们上面分析的,当best和last之间波动较大时,最后一个epoch(Last)的准确率更适合代表算法的泛化能力。

C.Label-Inconsistent UDTL

在这些方法中,迁移学习策略从一开始就被激活。 对于UAN,非对抗性域鉴别器损失的权衡参数固定为1。对于所有任务,OSBP的值τ和UAN的阈值ω0都设置为0.5。
1)评估指标:对于基于部分的迁移学习,评估指标与标签一致的UDTL相同,包括last-mean、last-max、best-mean和bestmax。 对于开放集和通用迁移学习,由于未知类的存在,仅整体精度不足以评估模型性能。 为了清楚地解释评估指标,定义了几种数学符号。 MS和MU分别是正确分类的共享类和成功检测到未知类测试样本的数量。NS和NU分别是所有共享类和未知类测试样本的数量。 Accc 是第 c 类测试样本的准确率。继[144]、[150]、[176]和[177]中先前的工作之后,采用了五个评估指标。
在这里插入图片描述
在这里插入图片描述
与标签一致的UDTL类似,使用整体准确率的平均值和最大值来评估最终性能。 我们使用上一个时期的所有五个评估指标的平均准确度,表示为 Last-Mean-ALL*、LastMean-UNK、Last-Mean-OS、Last-Mean-ALL 和 Last-MeanH-score。 我们使用模型在上一个时期的五次测试中执行最佳 H 分数时的准确性,表示为 Last-Max-ALL*、Last-Max-UNK、Last-Max-OS、Last-MaxALL 和 Last-Max- H 分数。 同时,我们还列出了模型在 H 上取得最佳性能的时代的平均准确度,表示为 Best-Mean-ALL*、Best-MeanUNK、Best-Mean-OS、Best-Mean-ALL 和 Best-Mean-Hscore -分数。 我们还列出了表示为 Best-MaxALL*、Best-Max-UNK、Best-Max-OS、Best-Max-ALL 和 Best-Max-H-score 的准确度,其中模型在五个指标中的 H -score上实现了最佳性能 测试。
2) 数据集设置:选择CWRU来测试性能。 继[150]中最近的工作之后,随机选择不同的类来形成迁移学习任务,以验证模型在不同标签集上的有效性。 部分迁移学习、开集迁移学习和通用迁移学习的故障诊断任务分别如表七所示。
在这里插入图片描述
3)Partial UDTL 的结果:为了简单起见,如图 25 所示,由于时域输入和频域输入之间的相似性,我们仅列出具有时域输入的 PADA 的最佳均值和最后均值。 根据整个训练阶段,我们可以观察到 PADA 在大多数任务上都能取得良好的表现。 但对于任务 3-1、2-3 和 3-2,last-mean 明显低于 best-mean,表明 PADA 无法完全解决额外源标签导致的负迁移,并且存在过拟合问题 在训练过程中。
4)Open Set UDTL的结果:时域输入的OSBP的最佳均值和最后均值精度如图26所示。从图26(a)可以看出,OSBP在大多数情况下都能取得相对较好的性能。 转移任务。 然而,如图26(b)所示,后期性能明显下降,特别是对于UNK,这表明模型对源样本过度拟合,从而无法有效识别未知类样本。 而且,最低的 ALL* 仅约为 50%,这意味着只有一半的共享类样本可以被正确分类。 因此,需要更有效的模型,不仅能够检测未知类样本,而且能够确保准确的共享类分类。
5) Universal UDTL的结果:时域输入的UAN的最佳均值和最后均值精度如图27所示。一般来说,根据图27(a),UAN可以在CWRU数据集上实现优异的性能。 与OSBP的结果类似,UAN的性能在后期也会因为过拟合问题和错误的特征对齐而下降。 此外,共享类分类精度仍需提高。 模型仍然很难分离额外的源类并从目标域中检测未知类。
6)多标准评估指标的结果:由于我们对开放集 UDTL 和通用 UDTL 有五个评估指标,因此最好对不同指标进行最终评分,以便更好地理解结果。由于我们对开放集 UDTL 和通用 UDTL 有五个评估指标,因此最好对不同指标进行最终评分,以便更好地理解结果。 因此,我们使用多标准评价指标中著名的方法——理想解相似排序法(TOPSIS)作为最终得分。 同时,TOPSIS也被广泛应用于故障诊断领域[178]-[180]。 在本文中,我们使用 ALL*、UNK、OS、ALL 和 H-score 来计算多标准评估的 TOPSIS。 为了简单起见,TOPSIS中各指标的权重均设置为0.25。 如图28所示,我们可以观察OSBP和UAN对于不同迁移学习任务的TOPSIS比较。 毫不奇怪,使用 TOPSIS 进行的评估与图 26和 2 7中的这些指标类似。由于过拟合问题和错误的特征对齐,后期整体性能也会下降。 共享类分类准确率还有较大的提升空间。 此外,分离额外的源类和检测目标域中的未知类仍然没有得到很好的解决。

D.Multidomain UDTL

对于多域UDTL,评估指标与标签一致的UDTL相同,包括last-mean、lastmax、best-mean和best-max。
1)数据集设置:与标签不一致的UDTL类似,选择CWRU来测试多域UDTL的性能,包括MS-UADA和IAN。 输入类型包括时域输入和频域输入。 多域UDTL的故障诊断任务如表VIII所示。 例如123-0_T表示任务1、2、3(如表3所示)作为多个源域; 任务0作为目标域; 时域输入作为模型输入。 值得一提的是,在测试DG的性能时,我们并没有使用训练阶段的目标数据。
2)Multidomain Adaptation的结果:如图29(a)和(b)所示,我们可以观察到与base相比,MS-UADA总是可以提高CWRU的准确性,直接将使用多个源域训练的模型转移到目标 领域。 时域输入的性能略好于频域输入的性能,但总体差异很小。
3)DG的结果:如图 29(a)和(b)所示,我们可以观察到 CWRU 的 IAN 的性能与大多数任务中的基础相似。 然而,对于任务012-3_F,IAN的准确性大大下降。 主要原因可能是IAN仅使用多个源来查找域不变特征,这不适合看不见的目标域。 因此,应该进一步设计更复杂的DG方法来挖掘判别性和领域不变的特征。

八.进一步讨论

A.特征的可迁移性

嵌入迁移学习方法的深度学习模型之所以能够在计算机视觉领域取得突破性的性能,是因为许多研究已经表明并证明,与传统的手工特征相比,深度学习模型可以为这些任务学习更多的可迁移特征[181]、[182]。 尽管具有学习一般特征和可转移特征的能力,深度学习模型也存在从一般特征到特定特征的过渡,并且其可转移性在最后一层显着下降[182]。 因此,需要研究微调深度学习模型或在训练过程中添加各种迁移学习策略,以实现有效的迁移。
然而,对于IFD,还没有关于DL模型中的特征如何可迁移的研究,实际上,回答这个问题是基于UDTL的IFD最重要的基石。 由于本文的目的是给出比较准确度并发布代码库,因此我们假设瓶颈层是特定于任务的层,其输出特征受到各种迁移学习策略的限制。 因此,研究特征的可迁移性并回答可迁移特征如何学习的问题对于学者来说是势在必行的。 为了使特征的可迁移性更加合理,我们建议学者们可能需要通过现有的可视化算法对神经元进行可视化来分析学习到的特征[183]​​,[184]。

B.Backbones and Bottleneck的影响

在计算机视觉领域,许多强大的CNN模型(也称为主干),例如VGG [24]和ResNet [25],可以在不关心模型选择的情况下进行扩展。 学者们经常使用相同的主干来测试所提出的算法的性能,并且可以更加关注构建特定的算法来对齐源域和目标域。
然而,已发表的基于UDTL的IFD的backbone往往不同,这使得结果很难直接比较,并且不同backbone的影响从未被彻底研究过,而基于UDTL的算法的backbone确实对比较结果有巨大的影响 具有频域输入的 CWRU 与[111,表 II] 之间的差异(主要区别是本文和[111]中使用的主干)。 我们可以观察到,带有频域输入的 CWRU 中与任务 3 相关的精度比 [111,表 II] 中的精度差很多。 然而,本文使用的主干网络可以在时域输入下取得优异的结果,并且某些精度甚至高于[111]中的精度。
为了做出更有力的说法,我们还使用著名的 ResNet18 主干网(我们修改了 ResNet18 的结构以适应一维输入)来测试 SEU 和 PHM2009 数据集,以解释主干网的巨大影响。 从图 30 所示的 PHM2009 对比来看,ResNet18 可以显着提高各算法的准确率。 此外,从图31所示的SEU比较来看,时域输入的ResNet18实际上降低了精度,相反,频域输入的ResNet18显着提高了精度。 总之,不同的主干网对于不同的数据集和输入类型表现不同。
因此,找到一个强大且合适的backbone,它可以为IFD学习更多可转移的特征,对于基于UDTL的方法也非常重要(有时,选择一个更有效的backbone甚至比使用更先进的算法更重要)。 我们建议学者们应该首先找到一个强大的骨干网,然后使用相同的骨干网来比较结果,以避免不公平的比较。 在上面的比较中,我们讨论了主干网的影响。 然而,在我们设计的结构中,源域中的瓶颈层也与目标域中的瓶颈层共享参数。 因此,有必要讨论迁移学习过程中瓶颈层的影响。 为了简单起见,我们仅使用具有两个不同输入的 CWRU 来测试两种代表性的 UDTL 方法,包括 MK-MMD 和 DANN。
在本文中,我们使用 Type I 表示原始模型,Type II 表示没有瓶颈层的模型,Type III 表示在开始迁移学习时(仅更新)主干参数固定的模型(其参数由源数据预先训练) 转移学习过程中瓶颈层的参数)。 比较结果如图32所示。我们可以观察到,对于时域输入,有和没有瓶颈层几乎是相同的。 同样,对于频域输入,也很难判断哪一个更好。 因此,选择一个合适的网络(根据数据集、迁移学习方法、输入类型等),能够学习更多可迁移特征,对于基于 UDTL 的方法来说非常重要。 此外,很明显,当在迁移学习过程中固定主干的参数时,目标域的准确性会急剧下降,这意味着使用源数据训练的主干不能直接迁移到目标域。

C.负迁移

正如我们在第四节中讨论的,基于 UDTL 的 IFD 主要有四种场景,但所有五个数据集的实验都是关于不同工作条件之间的传输。 为了说明这些场景并不总是适合生成正迁移,我们使用 PU 数据集设计另一个迁移任务,考虑不同生成损害方法之间的迁移。 每个任务由三个健康状况组成,详细信息列于表九中。 总共有两种迁移学习设置。
迁移结果如图 33 和附录 A(称为 PU 类型)所示。 我们可以观察到每种方法对时域或频域输入都有负迁移,这种现象表明这个构造的任务可能不适合迁移学习任务。 事实上,也有一些发表的论文设计了迁移学习任务,解决将齿轮样本迁移到轴承样本(这可能不是一个可靠的迁移任务)或将实验数据迁移到真实数据(如果两台机器的结构不同) ,它也可能不是一个可靠的传输任务)。 因此,首先弄清楚这个任务是否适合迁移学习以及两个领域是否具有共享特征非常重要。

D.Physical Priors

在计算机视觉和自然语言处理领域,新的迁移学习方法往往利用已有的知识或规律提供有意义的解释,如注意机制[185]和多模态结构[107]。 然而,对于基于UDTL的IFD,许多学者只是引入了其他领域已经存在的方法来执行IFD任务,而很少关注数据背后的先验知识(缺乏使用物理系统中的特殊现象或规则)。 因此,我们建议学者可以借鉴迁移学习领域的核心思想(而不仅仅是使用现有的方法),并将物理系统的先验知识引入所提出的方法中,以构建更具针对性和适用性的诊断模型,并在工业应用中具有更高的识别率。

E.Label-Inconsistent Transfer

最近,一些学者考虑了标签不一致的情况,并提出了一些具体的方法,使模型能够适应这种情况(详细的参考文献可以在上面的综述中找到)。 然而,正如在标签不一致转移的比较结果中所讨论的那样,所选择的方法往往面临过拟合的风险。 也就是说,虽然最好的平均精度是可以接受的,但最后的平均精度往往有很大的下降。 主要原因可能是模型不能有效地关注共享类,从而导致较差的域对齐。
因此,需要更多地关注标签不一致的场景,以实现有效的额外源类分离和来自目标域的未知类检测。 一种可能的解决方案是结合其他有效的开放集识别算法来更好地检测未知类[150],[186]。 例如,利用源样本的深度特征的EVT模型被用于检测未知类样本[150]。

F.多域迁移

大多数已发表的论文都是基于单一来源领域,但在实际应用中,标记的数据可能来自多个来源领域。 这些域通常遵循不同的分布,但在多个源域之间存在共享或相关的特性。 一个常见的步骤是通过多域自适应(DG)来对齐共享特性。 然而,如何平衡多源域的贡献仍然没有很好地解决。 例如,在比较分析中,我们简单地假设每个领域对迁移学习的贡献相同。 因此,在多域转移过程中应仔细设计合适的权值并添加相应的权值。 此外,为了更好地利用未标记源域中的一些数据,半监督多域学习[165]也值得关注。 为了进一步提高准确率,最小化条件分布的差距可能是对齐共享特征的有效方法[163],[167]。

G.其他方面

虽然可以收集到大量不同条件下的数据,但某些条件下的故障数据仍然是稀缺的。 由于大多数机器都是在正常状态下运行,所以在实际应用中往往自然存在类不平衡问题。 因此,不平衡学习或few-shot学习与迁移学习方法相结合[187]也可能是更好地实现构造算法的一个重要方向。 联邦迁移学习(FTL)[188]为特定行业提供了一种更安全、更可靠的方法。 同时,基于迁移学习的特点,FTL参与者可以拥有自己的特征空间,而不需要所有参与者拥有或使用相同的特征数据,这使得FTL适用于更多的应用场景。 超光速最初用于IFD[189],需要更深入的研究。
不确定性量化在评估深度学习模型在构建、优化和决策过程中的安全性方面起着至关重要的作用。 贝叶斯网络[190]和集成学习技术[191]是两种广泛使用的不确定性量化方法,其有效性已被不同类型的应用验证,如生物信息学和自动驾驶汽车。 因此,不确定性作为一个辅助术语可以用来进一步纠正迁移学习过程中一些不适当的预测或结果。 例如,在训练过程中明确估计预测的不确定性,以纠正语义分割UDTL的伪标签学习[192]。

九.结论

在本文中,我们构建了一个新的分类法,并根据UDTL的不同任务对基于UDTL的IFD进行了全面的回顾。 收集了五个公开可用的数据集,从几个角度对不同的基于UDTL的IFD方法进行了比较分析。 通过系统的比较研究,得出了一些有益的结论,为今后的研究提供了参考。 首先,CWRU和JNU的准确率都大于95%。 其次,不同方法的结果表明,联合分布假设和对抗性训练是两种有助于提高准确率的技术。 第三,不同的输入类型通常在每个数据集上表现不同,选择合适的输入类型对于提高准确性也很重要。 最后,需要认真对待基于UDTL的IFD的稳定性和健壮性。 综上所述,学者们在开发新模型之前先考虑这些结果可能是有用的。

标签:基于,UDTL,Fault,Study,样本,源域,目标,IFD
From: https://blog.csdn.net/llllfffffffff/article/details/141869919

相关文章

  • Study Plan For Algorithms - Part24
    1.全排列II题目链接:https://leetcode.cn/problems/permutations-ii/给定一个可包含重复数字的序列nums,按任意顺序返回所有不重复的全排列。classSolution:defpermuteUnique(self,nums:List[int])->List[List[int]]:defbacktrack(nums,path,res,us......
  • Study Plan For Algorithms - Part25
    1.栈的压入、弹出序列输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。方法一:defvalidateStackSequences(pushed,popped):stack=[]len_pushed=len(pushed)stack_index=0i......
  • Study Plan For Algorithms - Part23
    1.跳跃游戏II题目链接:https://leetcode.cn/problems/jump-game-ii/给定一个长度为n的0索引整数数组nums。初始位置为nums[0]。每个元素nums[i]表示从索引i向前跳转的最大长度:0<=j<=nums[i]i+j<n返回到达nums[n-1]的最小跳跃次数。classSolutio......
  • Study Plan For Algorithms - Part22
    1.字符串相乘题目链接:https://leetcode.cn/problems/multiply-strings/给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式。classSolution:defmultiply(self,num1:str,num2:str)->str:ifnum1==......
  • C++ 使用终端GDB调试复杂项目中Segmentation Fault 和 std::bad_alloc问题
            近期在公司虚拟机上写代码遇到SegmentationFault和std::bad_alloc问题,但是项目庞大,在不了解功能、代码连接关系的时候很难追踪具体是什么地方出了问题。网络上许多关于GDB的教程仅仅停留在简单的示例中的调试,对于复杂的项目结构(多文件,多作用域,......)来说显......
  • Study Plan For Algorithms - Part21
    1.缺失的第一个正数题目链接:https://leetcode.cn/problems/first-missing-positive/给定一个未排序的整数数组nums,请找出其中没有出现的最小的正整数。classSolution:deffirstMissingPositive(self,nums:List[int])->int:n=len(nums)forii......
  • Python 默认列表(Default List):一种灵活的数据结构
    Python中的默认列表(DefaultList)是一种特殊的数据结构,它允许我们创建一个包含特定元素类型的列表,并在需要时动态地添加或删除元素。这种灵活性使得默认列表成为了处理一些不确定或变化的数据的有力工具。创建列表时指定元素类型在Python中,我们可以在创建列表时指定元素类型,如果......
  • MyBatis 源码解析:DefaultSqlSession 功能解析
    摘要DefaultSqlSession是MyBatis中的核心类,负责执行SQL语句和管理事务。在日常开发中,我们经常会通过SqlSession来执行数据库的增删改查操作。你是否想深入了解DefaultSqlSession的内部实现机制?本文将通过自定义实现一个DefaultSqlSession类,带你全面解析MyBatis......
  • Study Plan For Algorithms - Part20
    1.组合总和题目链接:https://leetcode.cn/problems/combination-sum/给定一个无重复元素的整数数组candidates和一个目标整数target,找出candidates中可以使数字和为目标数target的所有不同组合,并以列表形式返回。classSolution:defcombinationSum(self,ca......
  • JavaScript中的export、export default、exports和module.exports(export、export defa
    简介:在JavaScript中,export和exportdefault是ES6模块系统的核心部分,用于从文件中导出函数、关键字,对象或值,使其可以在其他文件中通过import语句导入和使用,而exports和module.exports是CommonJS模块系统的一部分,在Node.js环境中,你可以使用exports或module.exports......