一种防御基于梯度的对抗攻击的方法转让专利

申请号 : CN202211146344.4

文献号 : CN115481719B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 董理季潇剑王让定严迪群

申请人 : 宁波大学

摘要 :

本发明涉及一种防御基于梯度的对抗攻击的方法,包括:构建神经网络模型并对其进行训练,得到训练完成后的神经网络模型;在训练完成后的神经网络模型的第一层之前增加处理层,即得到防御模型;选取任一个测试样本x作为防御模型的输入,得到测试样本x经过防御模型后的输出;上述防御模型满足如下两个条件:条件一:x=g(x);条件二:#imgabs0#最后对测试样本x进行白盒对抗攻击,并将白盒对抗攻击后生成的测试样本x′输入到防御模型中,即得到防御后的输出。该方法能适合任何神经网络模型,无需额外训练,并能实现在不影响模型精度和推理时间复杂度的情况下,防御来自白盒场景下的对抗攻击。

权利要求 :

1.一种防御基于梯度的对抗攻击的方法,其特征在于包括如下步骤:步骤1、获取多幅图像,并将其构建成训练集和测试集;

步骤2、构建神经网络模型,并初始化神经网络模型的参数,使用上述的训练集对初始化的神经网络模型进行训练,得到训练完成后的神经网络模型;

步骤3、从测试集中选取任一个测试样本x,并获取该测试样本x的真实标签y;

步骤4、在上述步骤2中训练完成后的神经网络模型的第一层之前增加处理层,即得到防御模型;

步骤5、将步骤3中的测试样本x作为防御模型的输入,得到测试样本x经过防御模型后的输出h′(x);

上述h′(x)的获取方法为:将测试样本x输入到处理层后,得到处理层的输出g(x),并将该g(x)输入到训练完成后的神经网络模型中,即得到:h′(x)=h(g(x))

其中,h(g(x))为将处理层的输出g(x)输入到训练完成后的神经网络模型h(·)中而得到的输出;

上述防御模型满足如下两个条件:

条件一:x=g(x);

条件二:

其中,L(h(x),y)为根据测试样本x输入到训练完成后的神经网络模型h(·)中得到的预测标签h(x)和测试样本x的真实标签y计算得到的损失函数; 为损失函数L(h(x),y)对测试样本x求偏导;Sign为符号函数;L(h(g(x)),y)为根据测试样本x输入到防御模型中得到的预测标签h(g(x))和测试样本x的真实标签y计算得到的损失函数;

获取同时满足上述条件一和条件二的处理层关系式,使用该处理层关系式与训练完成后的神经网络模型得到最终的防御模型;

同时满足条件一和条件二的g(x)表达式为:

g(x)=sin(k1πx+k2π)+x;

其中,k1和k2均为整数,并且k1为偶数,k2为奇数;

步骤6、对步骤3中的测试样本x进行白盒对抗攻击,得到白盒对抗攻击后生成的测试样本x′,并将白盒对抗攻击后生成的测试样本x′输入到最终的防御模型中,即得到防御后的输出y′。

2.根据权利要求1所述的方法,其特征在于:k1=2,k2=1。

3.根据权利要求1或2所述的方法,其特征在于:所述步骤6中的白盒对抗攻击为FGSM攻击方法或PGD攻击方法。

说明书 :

一种防御基于梯度的对抗攻击的方法

技术领域

[0001] 本发明涉及图像处理技术领域,特别涉及一种防御基于梯度的对抗攻击的方法。

背景技术

[0002] 目前深度神经网络在各种视觉任务上都表现出了强大的能力,其中包括图像分类、物体检测和语义分割等任务,同时也有类似汽车自动驾驶等现实世界的安全关键应用。然而,已经有许多工作已经证明,一个训练有素的深度神经网络模型可以被对抗样本恶意攻击,对抗样本可以通过在干净样本上添加视觉上无法察觉的对抗性噪声来人为的制造。
这引起了人们对人工智能系统在安全风险方面的关切,引发了对现实世界中关键安全应用场景下的神经网络鲁棒性的调查。
[0003] 生成对抗样本的方法一般可分为两类:基于梯度的方法和无需梯度的方法。在受到广泛研究的白盒场景下,模型的梯度信息是进行攻击的关键,而且模型的权重对攻击者来说是可以利用的,因此可以进行有效的基于梯度的攻击。Goodfellow提出了FGSM,这是一种单步的攻击方法,通过利用梯度信息可以高效地生成对抗样本。基于迭代的攻击方法,如I‑FGSM、PGD,通过多步迭代的方式,可以以极高的成功率产生不可察觉的同时有效的对抗性噪声。DeepFoo、C&W则能在有限的扰动限制下产生稀疏的对抗性噪声。无梯度方法经常被应用于黑箱攻击的场景。对手只能获取预测分数(软标签Soft‑Label)或预测类别(硬标签Hard‑Label)来指导对抗样本的生成。
[0004] 目前针对对抗样本的防御大致可以分为三类,即对抗性训练、图像预处理和模型后处理。对抗性训练是最广泛使用的防御策略之一。这种防御方法收集了对抗样本,并使用这些数据重新训练模型。许多早期的工作都集中在使用这种方法,然而,这种类型的防御需要产生大量的对抗样本来训练模型,然而生成对抗样本是十分花费时间的。此外,对抗训练后的模型在干净图像上的性能也会有所下降。目前图像预处理是最主流防御方法。这种防御方法试图将输入的图像转化为干净的图像,例有学者提出使用有损的JPEG压缩来消除这种噪声,然而这种基于压缩的方法都会存在一个问题:较大的压缩率会降低干净图像的分类精度,而较低的压缩率不足以去除对抗性噪声;其次有学者提出了基于随机化的防御机制,通过将图像输入分类模型之前对图像进行随机缩放的预处理达到防御目的,然而这种处理方法让模型的预测结果充满了不确定性,且将图片进行缩放也会导致模型精度的下降;另外有学者提出了随机离散化防御,通过注入随机高斯噪声和离散每个像素,从而减少原始样本和对抗样本之间的KL散度,但是这会对模型的推理产生严重的负担;最后模型的后处理旨在完善训练后的模型,以提高模型的稳健性。例如,有学者提出了基于知识蒸馏的防御性蒸馏法,但这种类型的防御往往会产生沉重的计算负担。
[0005] 综上所述,现有的防御方法有三个弊端,第一,防御方法会降低干净图像上的分类性能;第二,防御方法会增加额外的训练时间;第三,防御方法会对模型推理造成负担。为此需要对现有的防御方法作进一步改进。

发明内容

[0006] 本发明所要解决的技术问题是针对上述现有技术,而提供一种适合任何神经网络模型,无需额外训练,并且不会对模型精度和时间复杂度造成影响的防御基于梯度的对抗攻击的方法。
[0007] 本发明解决上述技术问题所采用的技术方案为:一种防御基于梯度的对抗攻击的方法,其特征在于包括如下步骤:
[0008] 步骤1、获取多幅图像,并将其构建成训练集和测试集;
[0009] 步骤2、构建神经网络模型,并初始化神经网络模型的参数,使用上述的训练集对初始化的神经网络模型进行训练,得到训练完成后的神经网络模型;
[0010] 步骤3、从测试集中选取任一个测试样本x,并获取该测试样本x的真实标签y;
[0011] 步骤4、在上述步骤2中训练完成后的神经网络模型的第一层之前增加处理层,即得到防御模型;
[0012] 步骤5、将步骤3中的测试样本x作为防御模型的输入,得到测试样本x经过防御模型后的输出h′(x);
[0013] 上述h′(x)的获取方法为:将测试样本x输入到处理层后,得到处理层的输出g(x),并将该g(x)输入到训练完成后的神经网络模型中,即得到:
[0014] h′(x)=h(g(x))
[0015] 其中,h(g(x))为将处理层的输出g(x)输入到训练完成后的神经网络模型h(·)中而得到的输出;
[0016] 上述防御模型满足如下两个条件:
[0017] 条件一:x=g(x);
[0018] 条件二:
[0019] 其中,L(h(x),y)为根据测试样本x输入到训练完成后的神经网络模型h(·)中得到的预测标签h(x)和测试样本x的真实标签y计算得到的损失函数; 为损失函数L(h(x),y)对测试样本x求偏导;Sign为符号函数;L(h(g(x)),y)为根据测试样本x输入到防御模型中得到的预测标签h(g(x))和测试样本x的真实标签y计算得到的损失函数;
[0020] 获取同时满足上述条件一和条件二的处理层关系式,使用该处理层关系式与训练完成后的神经网络模型得到最终的防御模型;
[0021] 步骤6、对步骤3中的测试样本x进行白盒对抗攻击,得到白盒对抗攻击后生成的测试样本x′,并将白盒对抗攻击后生成的测试样本x′输入到最终的防御模型中,即得到防御后的输出y′=h′(x′)。
[0022] 优选地,所述步骤5中同时满足条件一和条件二的g(x)表达式为:
[0023] g(x)=sin(k1πx+k2π)+x;
[0024] 其中,k1和k2均为整数,并且k1为偶数,k2为奇数。
[0025] 优选地,k1=2,k2=1。
[0026] 优选地,所述步骤6中的白盒对抗攻击为FGSM攻击方法或PGD攻击方法。
[0027] 与现有技术相比,本发明的优点在于:通过在神经网络模型的第一层之前增加处理层而得到防御模型,该处理层能对输入图像进行处理,并能保证处理层的输出与输入相同,该处理层在正向传播时不会对神经网络模型的精度造成影响,反向传播时可以反转梯度方向从而防御基于梯度的白盒攻击。该方法的处理层能适合任何神经网络模型,无需额外训练,并能实现在不影响模型精度和推理时间复杂度的情况下,防御来自白盒场景下的对抗攻击。

附图说明

[0028] 图1为本发明实施例中处理层输出g(x)的函数表示示意图。

具体实施方式

[0029] 以下结合附图实施例对本发明作进一步详细描述。
[0030] 本实施例中的防御基于梯度的对抗攻击的方法包括如下步骤:
[0031] 步骤1、获取多幅图像,并将其构建成训练集和测试集;
[0032] 该图像可以为现有技术中神经网络模型训练时常用的图像分类数据集CIFAR‑10、MNIST数据集等,在此不展开赘述;
[0033] 步骤2、构建神经网络模型,并初始化神经网络模型的参数,使用上述的训练集对初始化的神经网络模型进行训练,得到训练完成后的神经网络模型;本实施例中神经网络模型可以为现有技术中常用的卷积神经网络、BP神经网络等;神经网络模型的具体实现过程可参考现有技术,在此不展开赘述;
[0034] 步骤3、从测试集中选取任一个测试样本x,并获取该测试样本x的真实标签y;
[0035] 步骤4、在上述步骤2中训练完成后的神经网络模型的第一层之前增加处理层,即得到防御模型;
[0036] 步骤5、将步骤3中的测试样本x作为防御模型的输入,得到测试样本x经过防御模型后的输出h′(x);
[0037] 上述h′(x)的获取方法为:将测试样本x输入到处理层后,得到处理层的输出g(x),并将该g(x)输入到训练完成后的神经网络模型中,即得到:
[0038] h′(x)=h(g(x))
[0039] 其中,h(g(x))为将处理层的输出g(x)输入到训练完成后的神经网络模型h(·)中而得到的输出;
[0040] 上述防御模型满足如下两个条件:
[0041] 条件一:x=g(x);
[0042] 条件二:
[0043] 其中,L(h(x),y)为根据测试样本x输入到训练完成后的神经网络模型h(·)中得到的预测标签h(x)和测试样本x的真实标签y计算得到的损失函数; 为损失函数L(h(x),y)对测试样本x求偏导;Sign为符号函数;L(h(g(x)),y)为根据测试样本x输入到防御模型中得到的预测标签h(g(x))和测试样本x的真实标签y计算得到的损失函数;
[0044] 获取同时满足上述条件一和条件二的处理层关系式,使用该处理层关系式与训练完成后的神经网络模型得到最终的防御模型;
[0045] 步骤6、对步骤3中的测试样本x进行白盒对抗攻击,得到白盒对抗攻击后生成的测试样本x′,并将白盒对抗攻击后生成的测试样本x′输入到最终的防御模型中,即得到防御后的输出y′=h′(x′)。
[0046] 本实施例中,白盒对抗攻击为FGSM攻击方法、PGD攻击方法或其他现有技术中常有的基于梯度的白盒对抗攻击方法。
[0047] 本实施例中考虑的应用场景中,攻击者可以根据模型的梯度信息,沿着模型最脆弱的方向生成对抗性噪声来攻击模型,通常情况下,攻击者可以通过优化损失函数来达到这一目的。这种场景在实际应用中是较为常见的,比如某公司研发出效果领先的图像分类模型,想要将其面向公众进行商业用途,竞争公司雇佣攻击者,攻击者通过非法的手段获得了参数和结构被加密后模型,但是模型还是可以传递梯度信息,当攻击者想要对该模型进行攻击时,模型的梯度信息是尤其重要的,仅仅是获得模型的梯度信息就能大大降低攻击者的攻击难度,攻击者可以根据得到的梯度信息,利用已经非常成熟的白盒梯度攻击方法(例如FGSM、PGD等)可以大规模的快速且高效的批量生成能够误导目标模型的对抗样本。对于一个商用的神经网络模型来说,被发现有大量且有效的对抗样本可以影响模型的正常运行,势必会造成使用者对其的不信任,从而影响该模型的商业推广,再比如说在一些政府或者企业的机密部门,通常会应用一些人脸识别的神经网络模型。如果攻击者获得了模型梯度信息后,就会有极大的概率可以制作出可以欺骗人脸识别系统的面具,从而引发一系列的安全问题。
[0048] 为了避免模型遇到上述的安全性问题,一种可行的方法便是在模型的顶端设计一层预处理层,将输入模型的对抗样本图片尽可能的进行去除对抗噪声的操作,从而辅助模型的准确判断。但是这种方法不可避免的会造成模型的对干净样本的判断精度的下降,而如果使用更为复杂的预处理方法又有可能导致模型的推理时间过长,为了避免这些问题,本实施例中对抗攻击的防御方法在攻击者的攻击阶段进行防御,让攻击者的攻击无法成功,甚至可以让攻击者的攻击转化为对模型的一种防御。而在模型的训练阶段并不需要为本实施例中的神经网络模型进行额外的训练,在神经网络模型的推理阶段对神经网络模型推理的精准度不会造成任何影响,对神经网络模型的推理时间的影响几乎可以忽略不计。
[0049] 具体来说,本发明提出了一种对输入图像的处理方法,表现为神经网络的第一层之前的处理层,对任何神经网络模型都可以做到即插即用,处理层的函数表示形式为g(·)。
[0050] 为了达到防御的目的,本方法要达到两个条件:
[0051] 条件一:在神经网络模型前向传播过程要求使得经过该层的图像x′=g(x)与原始图像x相等即:
[0052] x=g(x)                               (1)
[0053] 这样就不会对神经网络模型的精度造成影响;
[0054] 条件二:在神经网络模型后向传播时会误导基于梯度的攻击,g(·)要将反向传播计算得到的梯度反向与原始的梯度方向相反,数学上可以表示为:
[0055]
[0056] 其中Sign(·)为符号函数,当x0>0,sign(x0)=1;当x0=0,sign(x0)=0;当x0<0,sign(x0)=‑1;这样做能使的基于梯度的攻击生成的对抗性噪声失效甚至起到提高精准度的效果。
[0057] 为了满足上述两个条件本方法采用一个加法的模型,即表示为以下形式[0058] g(x)=x+s(x)
[0059] 此时我们问题就转化为寻找函数s(·)。为了满足g(x)=x的条件,可知s(x)在前向传播时要始终为0。此时注意到图像在实际应用中通常为离散的,也就是要满足s(0)=sb(1)=s(2)=…s(2‑1)=0,其中s是图像的色深,以8比特色深的图像为例,每个像素合理的灰度值范围为{0,1,2…,255},也就是我们要保证s(0)=s(1)=…s(255)=0。这就要求s(x)是一个周期函数,最广泛使用的周期函数是三角函数,因此本实施例中挑选了三角函数中的正弦函数来实现本方法。正弦函数的一般形式可以写为:
[0060] s(x)=sin(w1x+w2)
[0061] 通过上述两个条件的约束来确定w1和w2的值。
[0062] 首先,注意到s(0)=sin(w2)=0,可以得出 并且s(0)=s(1)=sb
(2)=…s(2 ‑1)=0,一种可行的解为 s(x)可以改写为
其次,为了满足条件二,故先用链式法将
和 展开可得到
[0063]
[0064]
[0065] 由于保证了g(x)=x所以 也就是:
[0066]
[0067] 由此可以看出为了实现 要满足也就是保证:
[0068]
[0069] 因此可以看出k1cos(k1πx+k2π)<‑1,为了不损失一般性,k1,k2应该选择非负整数,也就是 那么这也要求:
[0070] cos(k1πx+k2π)<0                    (6)
[0071] 因为sin(k1π·0+k2π)=sin(k1π·1+k2π)=…=sin(k1π·(2b‑1)+k2π)=0,这就意味着k2需要是一个奇数整数,而k1则是一个偶数整数。理论上k1,k2可以选择满足上述条件的任何数,为了简单起见,本方法选择k1=2,k2=1,也就是说现在g(x)可以表示为[0072] g(x)=sin(2πx+π)+x                  (7)
[0073] 如图1所示,显示了(7)的一个直观的可视化表示。可以看出,对于离散的像素值x,我们有g(x)=x(图中用红点表示),满足(1)的要求。此外,g(x)在红点处(即当x为离散值时)的导数为负,即满足(2)。
[0074] 本实施例中可以适用与所有神经网络模型,即插即用,不会对神经网络模型的精度造成影响,同时也不需要对神经网络模型进行额外的训练。在攻击者处于一个可以获取模型梯度信息的白盒环境中时,让攻击者的攻击失效,同时能够利用攻击者的攻击,在攻击者无法察觉的情况下,将攻击者生成的对抗性噪声转化为提高真实标签置信度的防御噪声。
[0075] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。