本发明涉及人工智能领域,具体涉及面向图像分类的深度神经网络对抗样本生成方法。
背景技术:
0、技术背景
1、深度神经网络(dnn)已被用作在已建立和新兴领域推进人工智能的基本技术,但最近的研究表明,dnn容易受到对抗性例子的影响。对图像的几乎不可察觉的扰动可能导致训练良好的dnn错误分类。许多高效方法在白盒设置中进行攻击:通过完全访问模型的参数和架构,可以直接使用基于梯度的优化来找到成功的对抗性示例。然而,由于隐私和安全性的原因,这种攻击场景现实中通常并不可用。作为现实世界系统中更实用的场景,黑盒攻击假设攻击者只能查询目标网络并获得给定输入的输出(概率或标签)。通过用真实图像查询目标网络,恶意攻击者可以训练替代模型来模仿目标模型。然后,可以使用替代模型来生成对抗性示例,以基于这些对抗性示例的可转移性来攻击目标模型。然而,替代模型需要通过目标模型的训练数据进行训练,由于隐私或传输原因,这些数据很难获取,这又为训练高迁移性的替代模型增加了难度。
2、因此针对无数据的黑盒环境,探索出高效的对抗性攻击方法仍是一项巨大的挑战。
技术实现思路
1、针对图像分类模型的无数据黑盒对抗攻击当前实用性欠缺且方法较少的现状,本专利提出了解决方案,其能够有效消除对训练数据的依赖,并在黑盒场景下高效地生成对抗性示例。
2、为实现上述目的,本技术的技术方案为:高效的无数据黑盒集成对抗性攻击方法,包括:
3、步骤1:给定一批随机噪声z={z1,z2,…,zn}和伪标签y={y1,y2,…,yn},生成器g将z映射到初始图像生成合成数据x=g(z)。
4、步骤2:将x输入替代模型,利用交叉熵损失函数和信息熵损失函数优化生成器g。
5、步骤3:将当前这批合成数据x添加进数据集d1。
6、步骤4:反复执行步骤1,2,3至数据生成环节结束。
7、步骤5:对数据集d1进行数据增强(通过剪切,翻转等技术)获得泛化性更好的数据集d2。
8、步骤6:使用数据集d2训练出新的替代模型s。
9、步骤7:对替代模型集进行集成攻击(攻击方法可选i-fgsm等),其中外循环攻击以良性图像作为初始对抗示例,计算该批模型上的平均梯度,并将当前示例复制到内循环攻击,然后进行多次迭代的内对抗示例更新,结束内循环后再回到外循环进行攻击,多次执行上述流程至外循环攻击结束,获得最终对抗性示例。
10、进一步的,所述步骤2的具体实现方法为:
11、步骤2.1,对标签y进行随机平滑获得标签
12、步骤2.2,将x输入替代模型获得损失函数其中c e()表示交叉熵损失函数;是将x输入替代模型的输出。
13、步骤2.3,引入信息熵hinfor,并根据获得的概率,求合成数据的信息熵损失函数
14、步骤2.4,结合信息熵损失函数更新损失函数
15、进一步的,所述标签平滑的公式如下:
16、
17、其中,是平滑后的标签,yi是独热标签,α是一个超参数,k是标签类别数。
18、进一步的,所述交叉熵损失函数c e()的公式如下:
19、
20、其中,i是样本,n是样本总数,j是样本类别,k是类别总数,yij是符号函数(0或1),如果样本i的真实类别等于j取1,否则取0;pij是样本i属于类别j的预测概率。
21、进一步的,所述信息熵hinfor的计算公式如下:
22、
23、其中,i是样本类别,k是类别总数,pi是该样本属于类别i的预测概率。
24、进一步的,所述信息熵损失函数被公式化为正则化项,其计算公式如下:
25、
26、其中,i是样本类别,k是类别总数,n是样本总数。
27、进一步的,所述步骤6的具体实现方法为:
28、步骤6.1,将数据集d2内的合成数据x输入目标模型和替代模型得到输出和
29、步骤6.2,计算距离损失边界支持损失对抗性样本支持损失
30、步骤6.3,通过损失函数更新替代模型
31、进一步的,所述距离损失就是目标模型与替代模型输出之间的偏差,具体计算公式如下:
32、
33、其中,d是一种度量距离的标准。对于仅标签的场景,该测量可以是交叉熵损失,而对于仅概率的场景,可以是范数。
34、进一步的,所述边界支持损失考虑了和之间存在决策分歧的数据。这类数据主要存在于目标模型和替代模型的决策边界之间。给予这些数据更多的权重有助于弥合两个决策边界之间的差距。因此需要更加关注这些样本,边界支持损失具体计算公式如下:
35、
36、其中,函数1{}是当和对给定数据产生不一致的预测时的指示符。
37、进一步的,所述对抗性样本支持损失考虑了生成的对抗性样本数据。这类数据的存在意味着在它附近,和的决策边界相对较近。对这类数据给予更多的关注可以确保继续朝着靠近边界的正确方向移动,对抗性样本支持损失具体计算公式如下:
38、
39、其中是攻击替代模型生成的对抗性示例。此损失将导致额外的查询成本,需要再次查询目标模型。
40、进一步的,替代模型的损失函数的计算公式如下:
41、
42、其中,β1和β2控制不同损失函数的值,默认设置为1。
43、进一步的,所述步骤7的具体实现方法为:
44、步骤7.1,开启外循环攻击,对替代模型集进行集成攻击获得平均集成梯度
45、步骤7.2,随机选择其中一个模型进入内循环攻击。
46、步骤7.3,计算指定模型的梯度gk。
47、步骤7.4,更新内循环梯度
48、步骤7.5,更新内循环对抗示例并退出此次内循环攻击。
49、步骤7.6,重复步骤7.2,7.3,7.4,7.5m次以进行内循环攻击m次。
50、步骤7.7,更新外循环梯度g。
51、步骤7.8,更新外循环对抗示例并退出此次外循环攻击。
52、步骤7.9,重复上述所有步骤t次以进行外循环攻击t次获得最终对抗性示例。
53、进一步的,所述平均集成梯度的计算公式如下:
54、
55、其中,k是集成模型的数量,是各个集成模型的损失。
56、进一步的,所述内循环梯度的计算公式如下:
57、
58、其中,是第m+1次内循环攻击时的内循环梯度,每次外循环开启时,都将在进入内循环攻击前初始化为0,μ2是内循环衰变因子,是第m+1次内循环攻击时的内循环梯度变化函数,的计算公式如下:
59、
60、其中是第m+1次内循环攻击时内循环对抗示例对应模型的梯度,是第m+1次内循环攻击时外循环对抗示例对应模型的梯度,是平均集成梯度。
61、进一步的,所述内循环对抗示例更新公式如下:
62、
63、其中函数用于将样本中的元素控制在一个给定的范围内,给定需要控制的范围的上下边界,函数将所有小于下边界的数值全部改为下边界,将大于上边界的数值全部改为上边界,此处将满足条件∈是扰动边界,β是内部步长。
64、进一步的,所述外循环梯度g的计算公式如下:
65、
66、其中,gt是第t+1次外循环攻击时的外循环梯度,是m次内循环攻击后的内循环梯度,μ1是外循环衰变因子,g0被初始化为0。
67、进一步的,所述外循环对抗示例更新公式如下:
68、
69、其中函数用于将样本中的元素控制在一个给定的范围内,给定需要控制的范围的上下边界,函数将所有小于下边界的数值全部改为下边界,将大于上边界的数值全部改为上边界,此处将满足条件∈是扰动边界,α=∈/t,t是外循环攻击次数。
70、本发明由于采用以上技术方案,能够取得如下的技术效果:
71、本技术通过改变生成器和替代模型之间的博弈,而不是用不准确的替代目标分歧来训练生成器。让生成器和替代模型具有相对独立的优化过程,进而使得替代模型能够更稳定地收敛到目标模型。
72、本技术通过平衡数据分布和促进数据多样性的角度来缓解无数据替代模型训练中的模型崩溃问题,进而提高替代模型的精度和攻击成功率。
73、本技术通过将集成模型视为外循环的一批数据,并在内循环的每次迭代中随机挑选一个模型,然后再使用最新内循环对抗示例的调整梯度更新外部对抗示例,从而降低集成模型的梯度方差,进一步提高攻击成功率。