1.本发明涉及机械故障诊断领域,特别涉及一种对抗样本生成方法及对抗样本的防御方法。
背景技术:2.随着重工业,航天业的快速发展,机械故障诊断对于保证设备安全运行和生产越来越重要。针对传统故障诊断方法难以解决人工提取的不确定性的问题,因此提出了大量深度学习的特征提取方法,极大的推动了机械故障诊断的发展,其中当前主流的方法是基于卷积神经网络进行诊断的。机械故障诊断系统通过记录机械的振动信号,并输入训练好的诊断系统来得到机械设备当前的状态,由此来定位故障的位置。但由于现有的机械故障诊断系统大多都是基于深度学习的方法,在理想情况下,能够达到非常高的识别准确率。尽管基于神经网络的机械故障诊断方法取得了长足的进步,然而现有的这些诊断方法鲁棒性较差,识别准确率很容易受来自外界的扰动影响,从而导致识别错误。
3.为此需要生成对抗样本,以对当前的模型进行鲁棒性评估,也可以通过对抗训练增强模型的鲁棒性。对抗样本是指一种被攻击者有目的加入细微扰动后的样本,其主要目的是导致深度神经网络性能失效,甚至诱导深度学习网络做出攻击者指定的判断。在人的感知上,对抗样本应具有与其对应的正常样本无异,却能使深度神经网络失效的性质。
4.但现有对抗样本的生成技术大都是针对图像,语音等方向的,如申请号为cn202111390854.1(申请公布号为cn114049537a)的中国发明专利公开了一种基于卷积神经网络的对抗样本防御方法。在振动信号的对抗样本生成方面,有针对性的方法还有待探索。另外对于图像和音频,可以通过人眼看出图像中的扰动,可以通过人耳听出音频中的扰动,图像和音频的失真度量方法常采用信噪比(snr)来评判,以保证扰动尽可能地不易察觉。然而,由于振动信号很复杂,人眼和人耳都不能直接识别出扰动,因此对抗样本的传统失真度量方法并不适用于振动信号。为此需要进一步改进。
技术实现要素:5.本发明所要解决的第一个技术问题是针对上述现有技术提供一种对抗样本的生成方法,适用于对振动信号生成对抗样本,以提高机械故障诊断模型的鲁棒性。
6.本发明所要解决的第二个技术问题是针对上述现有技术提供一种针对上述方法生成的对抗样本的防御方法。
7.本发明解决上述第一个技术问题所采用的技术方案为:一种对抗样本的生成方法,用于将扰动加入到振动信号中,其特征在于:包括以下步骤:
8.步骤1、对原始振动信号样本进行预处理,得到预处理后的样本x
t
;该样本x
t
的采样序列依次为:x
t
(1)、x
t
(2)、
…
x
t
(n)
…
x
t
(n);n∈{1、2
…
n};n为样本x
t
的采样序列总个数;
9.步骤2、将该样本x
t
输入到目标网络f中,计算损失函数t的初始值为0;
10.步骤3、计算更新后的样本x
t+1
;根据下述公式对采样序列点x
t
(n)进行更新,得到
更新后的采样序列点x
t+1
(n);
[0011][0012]
其中,α为预设阈值,0<α<1;为对损失函数求取采样序列点x
t
(n)的梯度;为计算的符号函数;
[0013][0014][0015]
依次使n=1、2
…
n,得到更新后的采样序列点x
t+1
(1)、x
t+1
(2)、
…
x
t+1
(n),即得到更新后的样本x
t+1
;
[0016]
步骤4、对更新后的样本x
t+1
进行度量,得到该样本x
t+1
的度量结果;
[0017]
具体为:采用滑动窗口将样本x
t+1
的采样序列点分成等长度的多个片段,通过下述计算公式计算每个片段的度量结果,并将每个片段的度量结果平均值作为该样本x
t+1
的度量结果;
[0018]
某一个片段的度量结果cost(s)计算公式为:
[0019][0020]
其中,mean()为计算平均值的函数;s为每个片段的长度;s是某一个片段的起始位置;|x0(k)|2为计算x0(k)的绝对值平方;|x
t+1
(k)-x0(k)|2为计算x
t+1
(k)-x0(k)的绝对值平方;
[0021]
步骤5、判断步骤4中度量结果是否大于预设的度量阈值,如是,则将x
t+1
作为x
t
的对抗样本,结束;如否,则将t值加1后更新t值,并转至步骤2。
[0022]
作为改进,所述步骤1中对原始振动信号样本进行预处理,具体为:
[0023]
将原始振动信号样本中的每个采样序列数据均归一化到[0,1];归一化计算公式为:
[0024][0025]
其中,x为采样序列数据,k(x)为采样序列x归一化后的数值。
[0026]
优选地,所述步骤2中目标网络f为神经网络。该神经网络可以为现有技术中常见的卷积神经网络、深度神经网络等。
[0027]
本发明解决上述第二个技术问题所采用的技术方案为:一种对抗样本的防御方法,用于对使用上述对抗样本的生成方法生成的振动信号对抗样本进行防御,其特征在于:
包括以下步骤:
[0028]
步骤a、对采集的振动信号样本进行预处理;
[0029]
步骤b、在上述对抗样本生成时使用的目标网络f中的不同神经网络层之间添加数据处理层,以构建成防御网络;
[0030]
该数据处理层的计算公式为:
[0031][0032]
其中,yi为数据处理层的输出,xi为数据处理层的输入,γ和δ均为需要学习的参数;m为每一批次输入到数据处理层的数据总个数;∈为预设常数;
[0033]
步骤c、使用步骤a中多个预处理后的振动信号样本对构建的防御网络进行训练,得到训练完成后的防御网络。
[0034]
在本方案中,所述步骤a中的预处理具体为将采集的振动信号样本归一化至[0,1]。
[0035]
与现有技术相比,本发明的优点在于:本发明中构建的对抗样本能够以较高的成功率欺骗目标网络,并保证构建的振动信号对抗样本质量,此外对机械故障诊断系统的鲁棒性研究有着推动作用。另外本发明中针对攻击方法提出的简单但非常有效的防御方法,该防御方法通过在目标网络中添加数据处理层,以此来提高模型的鲁棒性,从而提高了目标网络的防御能力,能够极大降低对抗攻击的攻击成功率,同时也能够加快目标网络训练时的收敛速度。
附图说明
[0036]
图1为本发明实施例中对抗样本生成方法的原理框图;
[0037]
图2为本发明实施例中防御网络的示意图。
具体实施方式
[0038]
以下结合附图实施例对本发明作进一步详细描述。
[0039]
振动信号为对机械设备采集而获取的,通常通过分析振动信号以获取机械故障诊断结果,本实施例中对抗样本的生成方法是用于将扰动加入到振动信号中,以提高机械故障诊断系统的鲁棒性。
[0040]
如图1所示,本实施例中的对抗样本的生成方法包括以下步骤:
[0041]
步骤1、对原始振动信号样本进行预处理,得到预处理后的样本x
t
;该样本x
t
的采样序列依次为:x
t
(1)、x
t
(2)、
…
x
t
(n)
…
x
t
(n);n∈{1、2
…
n};n为样本x
t
的采样序列总个数;x
t
(1)、x
t
(2)、xt
(
n)、x
t
(n)分别为样本x
t
的第1个采样序列、第2个采样序列、第n个采样序列和第n个采样序列;
[0042]
本实施例中,预处理方法具体为:
[0043]
将原始振动信号样本中的每个采样序列数据均归一化到[0,1];归一化计算公式
为:
[0044][0045]
其中,x为采样序列数据,k(x)为采样序列x归一化后的数值;
[0046]
另外预处理还包括降噪、去噪等常规处理;
[0047]
步骤2、将该样本x
t
输入到目标网络f中,计算损失函数t的初始值为0;
[0048]
该目标网络f为神经网络,可以为已训练好的卷积神经网络、深度神经网络、bp神经网络或其他现有技术中输入为振动信号的神经网络,该神经网络的具体构成参考现有技术,在此不展开赘述;例如:专利号为zl202110472851.6中公开的基于改进pso-bp神经网络的齿轮箱故障诊断方法中涉及的bp神经网络;
[0049]
步骤3、计算更新后的样本x
t+1
:根据下述公式对采样序列点x
t
(n)进行更新,得到更新后的采样序列点x
t+1
(n);
[0050][0051]
其中,α为预设阈值,0<α<1;为对损失函数求取采样序列点x
t
(n)的梯度;为计算的符号函数;
[0052][0053][0054]
依次使n=1、2
…
n,得到更新后的采样序列点x
t+1
(1)、x
t+1
(2)、
…
x
t+1
(n),即得到更新后的样本x
t+1
;
[0055]
步骤4、对更新后的样本x
t+1
进行度量,得到该样本x
t+1
的度量结果;
[0056]
具体为:采用滑动窗口将样本x
t+1
的采样序列点分成等长度的多个片段,通过下述计算公式计算每个片段的度量结果,并求取所有片段的度量结果的平均值作为该样本x
t+1
的度量结果;
[0057]
某一个片段的度量结果cost(s)计算公式为:
[0058][0059]
其中,mean()为计算平均值的函数;s为每个片段的长度;s是某一个片段的起始位置;|x0(k)|2为计算x0(k)的绝对值平方;|x
t+1
(k)-x0(k)|2为计算x
t+1
(k)-x0(k)的绝对值平方;
[0060]
对于包含人类可以直接理解的信息的图像和音频,失真度量包括信噪比,距离可
以保证扰动尽可能地不易察觉。然而,由于振动信号很复杂,对抗样本的传统失真度量方法并不适用。在机械故障诊断条件下限制攻击实施的是如何添加噪声。实际上,噪声可能通过以下形式出现:(i)电机的机械运动;(ii)系统内设备的电路;(iii)来自计算机病毒的恶意攻击以改变原始数据;(iv)通过对传感器施加外力的物理攻击。为此在进行攻击时,攻击成本可以理解为施加在振动源上的外部能量;因此通过上述样本的度量计算公式能有效对对抗样本进行评估和度量;
[0061]
步骤5、判断步骤4中度量结果是否大于预设的度量阈值,如是,则将x
t+1
作为x
t
的对抗样本,结束;如否,则将t值加1后更新t值,并转至步骤2。
[0062]
为了对使用上述对抗样本的生成方法生成的振动信号对抗样本进行防御,本实施例中的对抗样本的防御方法包括以下步骤:
[0063]
步骤a、对采集的振动信号样本进行预处理;
[0064]
其中,预处理具体为将采集的振动信号样本归一化至[0,1];
[0065]
步骤b、在上述对抗样本生成时使用的目标网络f中的不同神经网络层之间添加数据处理层,以构建成防御网络;如图2所示,数据处理层设于其中任一个全连接层或所有全连接层之间;
[0066]
该数据处理层的计算公式为:
[0067][0068]
其中,yi为数据处理层的输出,xi为数据处理层的输入,γ和δ均为需要学习的参数;m为每一批次输入到数据处理层的数据总个数;∈为预设常数;
[0069]
然而,没有该数据处理层的目标网络由于对抗样本和原始输入之间差异较小难以进行区分,因而失去了鲁棒性。不仅如此,此外通过相同的方式处理数据还可以减轻对抗训练时的不稳定性,帮助对抗训练以增强模型的鲁棒性;
[0070]
步骤c、使用步骤a中多个预处理后的振动信号样本对构建的防御网络进行训练,得到训练完成后的防御网络。
[0071]
本实施例中采取机械驱动端在12khz下采样的连续振动信号,为了便于训练,首先需要将数据进行扩增,本实施例中采用以2048为单个样本长度,步长为28对原始振动信号数据进行扩增,以增加数据量;采样后对每一类机械状态,分别得到1000个样本。同时,还需将信号数据采用上述步骤1中的归一化方法标准化到[0,1];最后,将数据随机打乱顺序并按照6:2:2进行数据集划分为训练集,验证集,测试集。即可使用训练集和验证集中的样本对构建的防御网络进行训练和验证,最终使用测试集中的样本对训练完后的防御网络进行测试。
[0072]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。