一种基于生成式对抗网络的图片对抗样本生成方法

文档序号:31348750发布日期:2022-08-31 12:16阅读:142来源:国知局
一种基于生成式对抗网络的图片对抗样本生成方法

1.本发明涉及一种基于生成式对抗网络的图片对抗样本生成方法,属于机器学习、计算机视觉和ai安全领域。


背景技术:

2.深度神经网络(deep neural network,dnn)在图片分类与识别、语音处理、文本分类和恶意代码检测等各方面的应用中都取得了非常不错的成绩。但是2014年szeged等人提出了一个有趣的发现,几乎所有已知的机器学习模型,包括最先进的深度神经网络都容易受到高维输入对抗样本的攻击。对抗攻击指在原始样本中设计一些人类不可察觉的改变,导致模型以高置信度输出错误的结果。
3.在黑盒攻击场景中,基于查询的黑盒攻击固然能取得较高的攻击成功率,但是需要大量的查询计算,并且查询结果并未得到充分利用,如何进行高效查询仍是本领域研究的重点。基于迁移的黑盒攻击将在源模型生成的对抗样本迁移到目标模型上进行攻击,但是,源模型和目标模型之间存在较大的差异,使得这种攻击的成功率并不高。


技术实现要素:

4.本发明所要解决的技术问题是提供一种基于生成式对抗网络的图片对抗样本生成方法,以此来训练一个可高度模拟目标模型的代理模型,进而提高对抗样本的可迁移性,生成可以欺骗目标模型的对抗样本;在生成对抗网络中采用双鉴别器的结构对产生的对抗扰动进行约束,以提高对目标模型的攻击成功率和对抗样本的视觉质量;本发明适用于基于分数查询的无目标黑盒攻击设置,并且可以扩展到目标攻击场景中。
5.为解决上述技术问题,本发明采用的技术方案如下:
6.本发明一种基于生成式对抗网络的图片对抗样本生成方法,其采用以下步骤:
7.步骤1、对收集到的图片进行预处理;
8.步骤2、随机初始化生成器g和鉴别器d1,d2;
9.步骤3、将经步骤1处理过后的图片x输入到生成式对抗网络gan的生成器g中,得到初始的扰动向量ε=g(x;θg),其中θg表示生成器g的参数;
10.步骤4、得到关于图片x的对抗样本;
11.步骤5、训练鉴别器d1,d2;
12.步骤6、训练生成器g;
13.步骤7、若步骤5与步骤6所述生成器g和鉴别器d1,d2的损失函数均收敛,则停止训练执行步骤8;否则,重复执行步骤3-6;
14.步骤8、保存生成器g;
15.步骤9、经步骤1预处理后的图片输入到生成器g,得到该图片的扰动向量,经步骤4后生成该图片的对抗样本。
16.本发明步骤4中得到对抗样本采用的步骤如下:
17.4.1).将步骤3的扰动向量ε进行裁剪操作得到扰动向量ε

=clip(ε,α1,α2),其中α1,α2是裁剪下界与上界,clip(
·
)为裁剪函数,具体计算公式如下:
[0018][0019]
4.2).将修改后的扰动向量ε

添加到原始样本x上得到初始对抗样本x

,x

=x+ε


[0020]
4.3).为保证最终的对抗样本在原始样本x的∈邻域内,对初始对抗样本x

进行裁剪,得到最终的对抗样本x
adv
,计算公式如下:
[0021][0022]
其中,‖
·

p
表示p范数,∈为扰动上界。
[0023]
本发明步骤5具体采用如下步骤:
[0024]
5.1).将对抗样本x
adv
和原始样本x一同输入到目标模型t,得到目标模型t对于对抗样本x
adv
的查询结果t0(x
adv
)以及对于原始样本x的查询结果t0(x);
[0025]
5.2).将t0(x
adv
)和t0(x)转换成相对应的类别标签t(x
adv
)和t(x),即将查询结果t0(x
adv
)和t0(x)先经过softmax函数,得到各个类别的概率值,然后分别选取概率值最大的类别标签作为t(x
adv
)和t(x);
[0026]
5.3).将(x,t(x))、(x
adv
,t(x
adv
))作为训练数据输入鉴别器d1,计算损失函数以更新鉴别器d1;
[0027]
5.4).将对抗样本x
adv
和原始样本x作为训练数据输入鉴别器d2,计算损失函数以更新鉴别器d2。
[0028]
本发明步骤5.3)的具体操作如下:
[0029]
5.3.1).将对抗样本x
adv
与从目标模型t中得到的关于对抗样本的查询结果对应的标签值t(x
adv
),以及原始样本x和目标模型t关于原始样本的查询结果对应的标签值t(x)作为输入一并传递给生成式对抗网络gan的鉴别器d1,用鉴别器d1来对目标模型t进行拟合,将鉴别器d1的损失函数公式定义为:
[0030][0031]
其中,x
adv
为原始样本x的对抗样本,t(x
adv
)表示将对抗样本x
adv
输入目标模型t得到的查询结果转换成的标签值,t(x)表示将原始样本x输入目标模型t得到的查询结果转换成的标签值,θ
d1
表示鉴别器d1的模型参数,d1(x
adv
;θ
d1
)表示鉴别器d1对于对抗样本x
adv
的输出结果,d1(x;θ
d1
)表示鉴别器d1对于原始样本x的输出结果,entropy(a,b)表示a与b的交叉熵函数,β为训练的权重;
[0032]
5.3.2).在训练鉴别器d1的过程中,为了减少对目标模型t的查询次数,同时保证鉴别器d1对目标模型t的拟合效果,将鉴别器d1的训练分为预训练和微调两个阶段;
[0033]
5.3.3).在进行鉴别器d1的预训练和微调时,采用如下公式更新鉴别器d1:
[0034][0035]
其中,表示第i次迭代后得到的鉴别器d1的参数,表示第i+1次迭代后得到的鉴别器d1的参数,η1为鉴别器d1的学习率,为损失函数关于参数的梯度。
[0036]
本发明步骤5.4)具体采用如下步骤:
[0037]
5.4.1).为了保证对抗样本x
adv
的视觉质量,使得对抗样本能够更加相似于原始样本,用鉴别器d2来判断样本的真假,若样本为原始样本,则为真,标签为1;若样本为对抗样本,则为假,标签为0;将对抗样本x
adv
和原始样本x作为训练数据输入鉴别器d2,鉴别器d2的损失函数公式为:
[0038][0039]
其中,p
data
(x)为原始图片x的数据分布,ε是对表达式求数学期望,d2(x;θ
d2
)表示鉴别器d2对于原始样本x的输出结果,d2(x
adv
;θ
d2
)表示鉴别器d2对于对抗样本x
adv
的输出结果,θ
d2
表示鉴别器d2的模型参数;
[0040]
5.4.2).更新鉴别器d2的操作采用如下公式:
[0041][0042]
其中,表示第i次迭代后得到的鉴别器d2的参数,表示第i+1次迭代后得到的鉴别器d2的参数,η2为鉴别器d2的学习率,为损失函数关于参数的梯度。
[0043]
本发明步骤6中训练生成器g的具体操作采用如下步骤:
[0044]
6.1).将鉴别器d1关于对抗样本x
adv
的输出结果d1(x
adv
;θ
d1
)返回给生成器g,对于无目标攻击,定义生成器g关于鉴别器d1的损失函数为:
[0045][0046]
其中,y表示真实类别的标签;
[0047]
6.2).为了使得生成的对抗样本能够接近真实的数据分布,设置鉴别器d2来对样本的真假进行判别;将鉴别器d2对于对抗样本x
adv
的输出结果d2(x
adv
;θ
d2
)返回给生成器g,生成器g关于鉴别器d2的损失函数公式定义为:
[0048][0049]
其中,x
adv
表示对抗样本,即x
adv
=clip
x,∈
(clip(g(x;θg),α1,α2)+x,x),其中:clip(
·
)和clip
x,∈
(
·
)为裁剪函数,以保证生成的对抗样本x
adv
在原始样本x的∈邻域内,α1,α2为裁剪边界;
[0050]
6.3).对于无目标攻击,攻击目标为最大化目标模型的预测类别和真实类别的距离;对于目标攻击,攻击目标为最小化目标模型的预测类别与目标类别之间的距离,攻击的目标损失函数为:
[0051][0052]
其中,表示目标攻击中鉴别器d1对目标类别的预测概率或者无目标攻击中对真实类别的预测概率,表示鉴别器d1对其他类别预测概率中的最大值;
[0053]
6.4).训练生成器g的目标函数为:
[0054][0055]
其中,γ1,γ2,γ3为三项损失的权重系数,控制着三项损失的相对重要性;使得生成的对抗样本可以逐步达到欺骗鉴别器d1的目的,进而迁移至目标模型;使得生成的对抗样本能够更加接近真实的数据分布,产生更好的视觉效果;l
att
为攻击损失,对其进行优化以产生更好的攻击效果;
[0056]
6.5).更新生成器g的操作采用如下公式:
[0057][0058]
其中,表示第i次迭代后得到的生成器g的参数,表示第i+1次迭代后得到的生成器g的参数,η为生成器g的学习率,为损失函数l关于参数的梯度。
[0059]
本发明步骤5.3.2)中:
[0060]
当迭代次数iter≤n时,对鉴别器d1进行预训练;当迭代次数iter》n且iter mod m=0时,对鉴别器d1进行微调;其他情况下,鉴别器d1模型参数保持不变。
[0061]
采用上述技术方案所取得的技术效果在于:
[0062]
本发明在生成对抗网络中采用双鉴别器的结构,可以针对任何黑盒模型高效产生对抗样本;在保证生成的对抗样本有效攻击基于机器学习的图片分类模型的同时,将生成的对抗样本限制在原始样本的∈邻域内;对鉴别器d1的训练采用先预训练然后微调的模式,训练好的鉴别器d1可以成功作为目标模型t的代理模型,从一定程度上减小了对目标模型t的查询次数;用鉴别器d2对生成的扰动进行约束,保证了对抗样本的视觉质量。
附图说明
[0063]
图1是本发明的方法流程图。
具体实施方式
[0064]
下面结合附图对本发明作进一步详细的说明;
[0065]
如图1所示,本发明一种基于生成式对抗网络的图片对抗样本生成方法,包括以下步骤:
[0066]
步骤1、对收集到的图片进行预处理,使得数据转换为tensor并进行归一化;本发明采用第三方库torchvision.transforms.totensor(),将数据类型转换为tensor,并且把灰度范围从0-255归一化至[0,1];
[0067]
步骤2:随机初始化生成器g和鉴别器d1,d2;
[0068]
步骤3、将经步骤1处理过后的图片x输入到生成式对抗网络gan的生成器g中,得到初始的扰动向量ε=g(x;θg),其中θg表示生成器g的参数;
[0069]
步骤4、得到关于图片x的对抗样本,采用的具体步骤如下:
[0070]
4.1)将步骤3的扰动向量ε进行裁剪操作得到扰动向量ε

=clip(ε,α1,α2),其中α1,α2是裁剪下界与上界,clip(
·
)为裁剪函数,计算公式如下:
[0071][0072]
4.2)将修改后的扰动向量ε

添加到原始样本x上得到初始对抗样本x

,x

=x+ε


[0073]
4.3)为保证最终的对抗样本在原始样本x的∈邻域内,对初始对抗样本x

进行裁剪工作,得到最终的对抗样本x
adv
,计算公式如下:
[0074][0075]
其中,‖
·

p
表示p范数,∈为扰动上界;
[0076]
步骤5、训练鉴别器d1,d2;具体采用如下步骤:
[0077]
5.1)将对抗样本x
adv
和原始样本x一同输入到目标模型t,得到目标模型t对于对抗样本x
adv
的查询结果t0(x
adv
)以及对于原始样本x的查询结果t0(x);
[0078]
5.2)将t0(x
adv
)和t0(x)转换成相对应的类别标签t(x
adv
)和t(x),即将查询结果t0(x
adv
)和t0(x)先经过softmax函数,得到各个类别的概率值,然后分别选取概率值最大的类别标签作为t(x
adv
)和t(x);
[0079]
5.3)将(x,t(x))、(x
adv
,t(x
adv
))作为训练数据输入鉴别器d1,计算损失函数l
d1
以更新鉴别器d1,具体操作采用如下步骤:
[0080]
5.3.1)将对抗样本x
adv
与从目标模型t中得到的关于对抗样本的查询结果对应的标签值t(x
adv
),以及原始样本x和目标模型t关于原始样本的查询结果对应的标签值t(x)作为输入一并传递给生成式对抗网络gan的鉴别器d1,用鉴别器d1来对目标模型t进行拟合,将鉴别器d1的损失函数公式定义为:
[0081][0082]
其中,x
adv
为原始样本x的对抗样本,t(x
adv
)表示将对抗样本x
adv
输入目标模型t得到的查询结果转换成的标签值,t(x)表示将原始样本x输入目标模型t得到的查询结果转换成的标签值,θ
d1
表示鉴别器d1的模型参数,d1(x
adv
;θ
d1
)表示鉴别器d1对于对抗样本x
adv
的输出结果,d1(x;θ
d1
)表示鉴别器d1对于原始样本x的输出结果,entropy(a,b)表示a与b的交叉熵函数,β为训练的权重;
[0083]
5.3.2)在训练鉴别器d1的过程中,为了减少对目标模型t的查询次数,同时保证鉴别器d1对目标模型t的拟合效果,将鉴别器d1的训练分为预训练和微调两个阶段:
[0084]
当迭代次数iter≤n时,对鉴别器d1进行预训练;当迭代次数iter》n且iter mod m=0时,对鉴别器d1进行微调;其他情况下,鉴别器d1模型参数保持不变;
[0085]
5.3.3)在进行鉴别器d1的预训练和微调时,更新鉴别器d1采用如下公式:
[0086][0087]
其中,表示第i次迭代后得到的鉴别器d1的参数,表示第i+1次迭代后得到的鉴别器d1的参数,η1为鉴别器d1的学习率,为损失函数关于参数的梯度;
[0088]
5.4)将对抗样本x
adv
和原始样本x作为训练数据输入鉴别器d2,计算损失函数以更新鉴别器d2;具体采用如下步骤:
[0089]
5.4.1)为了保证生成的对抗样本x
adv
的视觉质量,使得对抗样本能够更加相似于原始样本,用鉴别器d2来判断样本的真假,若样本为原始样本,则为真,标签为1;若样本为对抗样本,则为假,标签为0;将对抗样本x
adv
和原始样本x作为训练数据输入鉴别器d2,鉴别器d2的损失函数公式为:
[0090][0091]
其中,p
data
(x)为原始图片x的数据分布,e是对表达式求数学期望,d2(x;θ
d2
)表示鉴别器d2对于原始样本x的输出结果,d2(x
adv
;θ
d2
)表示鉴别器d2对于对抗样本x
adv
的输出结果,θ
d2
表示鉴别器d2的模型参数;
[0092]
5.4.2):更新鉴别器d2的操作如下:
[0093][0094]
其中,表示第i次迭代后得到的鉴别器d2的参数,表示第i+1次迭代后得到的鉴别器d2的参数,η2为鉴别器d2的学习率,为损失函数关于参数的梯度;
[0095]
本发明采用的训练策略是先训练两个鉴别器d1,d2,再训练生成器g;为了更好地训练鉴别器d1,可以最小化这样可以使鉴别器d1更好地拟合目标黑盒模型t,进而使得生成器g生成效果更好的对抗图片;训练鉴别器d2是为了判别生成的对抗样本的真假,从而使得生成的对抗样本更加接近真实的数据分布。
[0096]
在鉴别器d1,d2的损失函数中含有生成器g的输出结果g(x;θg),即生成器和鉴别器是相互博弈的关系,两者相互促进,相互制约;
[0097]
步骤6、训练生成器g的具体操作如下:
[0098]
6.1)将鉴别器d1关于对抗样本x
adv
的输出结果d1(x
adv
;θ
d1
)返回给生成器g,对于无目标攻击,定义生成器g关于鉴别器d1的损失函数为:
[0099][0100]
其中,y表示真实类别的标签;
[0101]
鉴别器d1的训练目标是能够模拟目标模型t的输出,因此一个训练好的鉴别器d1可以成功作为目标模型t的代理模型,若生成的对抗样本可以欺骗鉴别器d1,那么该对抗样本也可以迁移到目标模型t;
[0102]
6.2):为了使得生成的对抗样本能够接近真实的数据分布,设置鉴别器d2来对样
本的真假进行判别;将鉴别器d2对于对抗样本x
adv
的输出结果d2(x
adv
;θ
d2
)返回给生成器g,生成器g关于鉴别器d2的损失函数公式定义为:
[0103][0104]
其中,x
adv
表示对抗样本,即x
adv
=clip
x,∈
(clip(g(x;θg),α1,α2)+x,x),其中:clip(
·
)和clip
x,∈
(
·
)为裁剪函数,以保证生成的对抗样本x
adv
在原始样本x的∈邻域内,α1,α2为裁剪边界;
[0105]
6.3):对于无目标攻击,攻击目标为最大化目标模型的预测类别和真实类别的距离;对于目标攻击,攻击目标为最小化目标模型的预测类别与真实类别之间的距离,攻击的目标损失函数为:
[0106][0107]
其中,表示目标攻击中鉴别器d1对目标类别的预测概率或者无目标攻击中对真实类别的预测概率,表示鉴别器d1对其他类别预测概率中的最大值;
[0108]
6.4):训练生成器g的目标函数为:
[0109][0110]
其中,γ1,γ2,γ3为三项损失的权重系数,控制着三项损失的相对重要性;使得生成的对抗样本可以逐步达到欺骗鉴别器d1的目的,进而迁移至目标模型;使得生成的对抗样本能够更加接近真实的数据分布,产生更好的视觉效果;l
att
为攻击损失,对其进行优化以产生更好的攻击效果;
[0111]
6.5):更新生成器g的操作为:
[0112][0113]
其中,表示第i次迭代后得到的生成器g的参数,表示第i+1次迭代后得到的生成器g的参数,η为生成器g的学习率,为损失函数l关于参数的梯度;
[0114]
本发明通过求解极大极小函数来获得生成器g和鉴别器d1,d2;
[0115]
为了更好地训练生成器g,可以最小化lg,这样生成的对抗样本将降低鉴别器d1,d2的分类能力;由于鉴别器d1试图模拟目标模型t,随着迭代次数的增加,鉴别器d1对目标模型t的拟合能力逐步增强,在每次训练迭代中,用查询鉴别器d1来代替查询目标模型t,将大大减少对目标模型t的查询次数;同时,用鉴别器d2判断对抗样本的真假,由二者来对生成器g进行约束将使得生成的对抗样本更加接近原始数据分布,并且攻击成功率进一步提高。
[0116]
生成器与鉴别器是相互博弈的关系,在每次迭代训练中,先根据上一轮的模型参数训练鉴别器,然后用更新之后的鉴别器来训练生成器,在每一次迭代中,目标模型t、鉴别器d1,d2会为每个输入计算相应的预测结果,鉴别器d1根据目标模型t的输出结果来对目标模型t进行拟合,随着迭代次数的增加,鉴别器d1对目标模型t的拟合效果越来越好,使得生
成器g对目标模型t的攻击能力不断增加;同时,随着迭代次数的增加,鉴别器d2对真假样本的分类能力越来越强,将促进生成的对抗样本更加接近真实数据的分布;
[0117]
步骤5与步骤6两者相互促进,相互制约,形成了鉴别器d1,d2和生成器g不断进行博弈、进步的关系;
[0118]
步骤7、若步骤5与步骤6所述鉴别器d1,d2和生成器g的损失函数均收敛,则停止训练执行步骤8,否则,重复步骤3-6;
[0119]
步骤8、保存生成器g;
[0120]
步骤9、对于一个经步骤1预处理后的图片输入到步骤8保存的生成器g(即训练好的生成器g),得到该图片的扰动向量,经步骤4的裁剪工作后,生成该图片的对抗样本。
[0121]
本发明对于训练好的生成器g,其输入为原始样本输出为高质量的对抗扰动,进而得到对抗样本,可以用来高效攻击黑盒模型。
[0122]
本发明用mnist数据集进行训练和测试,用一个4层卷积图片分类模型作为目标模型t,目标模型t在mnist测试集上的分类精度可以达到99.4%,在无目标且基于分数查询的攻击设置中,用本发明产生的对抗样本攻击目标模型t,达到了98.92%的攻击成功率,并且训练时间较短;结果表明,本发明基于生成式对抗网络的图片对抗样本生成方法具有优异的表现。
[0123]
本发明在生成对抗网络中采用双鉴别器的结构,可以针对任何黑盒模型高效产生对抗样本,在保证对抗样本有效攻击基于机器学习的图片分类模型的同时,将生成的对抗扰动大小限制在∈邻域内;对鉴别器d1的训练采用先预训练然后微调的模式,训练好的鉴别器d1可以成功作为目标模型的代理模型,从一定程度上减小了对目标模型t的查询次数;用鉴别器d2来对对抗样本进行约束,保证了生成的对抗样本的视觉质量,使得对抗样本与原始样本的数据分布更加接近。
[0124]
最后说明的是,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1