一种针对图像识别模型分类边界敏感的对抗样本生成方法与流程

文档序号:18062668发布日期:2019-07-03 03:11阅读:327来源:国知局
一种针对图像识别模型分类边界敏感的对抗样本生成方法与流程

本发明涉及一种针对图像识别模型分类边界敏感的对抗样本生成方法,属于机器学习以及图像识别技术领域。

技术背景

自从深度神经网络被提出以来,深度神经网络得到了长足的发展。目前,深度神经网络已经应用在了自然语言处理,文本挖掘,恶意软件检测,语音识别,图像识别等领域。特别是在图像识别领域,深度神经网络已经显示出比传统图像识别算法更大的优势。因为深度神经网络在对图像进行识别标注的时候不需要抽取图片的特征,它只需要大量的图片作为训练数据进行训练,让神经网络自己学习经验和知识达到准确识别图片的效果。目前的研究表明,神经网络能够达到很高的准确率。尽管神经网络能够在图像识别领域表现得十分优秀,但是有研究表明神经网络同时也对扰动十分敏感。当一些微小的白噪声被添加到一张正常的图片上的时候,神经网络可能会对图片产生错误的分类,但是不影响人类视觉的正确识别。神经网络的这一特性导致了其在现实领域中应用需要十分谨慎。

目前根据对抗样本的生成方法,按照对被攻击对象信息的了解程度可以分为白盒攻击,灰盒攻击和黑盒攻击。白盒攻击可以获取被攻击模型的全部信息,包括内部参数,模型结构,梯度信息,训练数据集等。而黑盒模型则不知道关于模型的任何信息,只能对模型进行图片查询操作。灰盒攻击则是知道部分的模型信息。



技术实现要素:

本发明的目的在于针对现有对抗样本生成方法在不知道神经网络模型的相关信息的情况下,对模型进行黑盒攻击,生成能让模型产生靶向错误的技术缺陷,设计了一种针对图像识别模型分类边界敏感的对抗样本生成方法。

本发明的核心思想为:针对前提条件:已有一个黑盒模型作为被攻击的目标模型,且目标模型对于查询图片只返回不包括置信度的分类标签,除此之外,关于模型的任何信息都不可获取;对模型进行不断的查询探测出不同类别的决策边界,利用进化以及二分方法找到合适的靶向对抗样本。

所述对抗样本生成方法,包括以下步骤:

步骤一:选择源-目标图片对,经查询得到目标标签并确定基因种群大小;具体包括如下子步骤:

步骤1.1:选择目标图片;

其中,目标图片,即targetimage,记为ti;

步骤1.2:选择原始图片;

其中,原始图片,即sourceimage,记为si;

其中,步骤1.1中的目标图片和步骤1.2中的原始图片组成了源-目标图片对;

步骤1.3:根据目标图片查询被攻击模型,得到目标标签;

其中,目标标签,即targetlabel,tl;

步骤1.4:确定基因种群大小,即种群中个体的数目n;

步骤二:生成原始基因种群,具体包括如下子步骤:

步骤2.1:设定基因初始化概率值,初始化概率值标定了基因中值为1的元素所占的最大百分比;

初始化概率值,即initialprobability,ip;

步骤2.2:根据ip生成n个基因,要求这n个基因对应的对抗样本得标签依旧被目标模型识别为tl;

其中,步骤2.2中根据ip生成的n个基因组成了原始基因种群;原始基因种群中的基因是一个二维数组,二维数组中每个元素的值为0或1,二维数组的大小即是要生成的对抗样本的大小,也即是步骤1.1和步骤1.2中目标图片和原始图片的大小;

步骤三:对基因进行两两交叉,具体包括如下子步骤:

步骤3.1:将原始基因种群中的基因全部复制到新的基因种群中;

步骤3.2:设定基因交叉概率值,新的基因种群中的基因中值为1的元素以这个概率继续保持为1;

其中,交叉概率值,即crossoverprobability,cp;

步骤3.3:从原始基因种群中选择“在此之前没有被配对和被选择过的”两个不同的基因a和基因b;

步骤3.4:将选定的基因a和基因b进行或操作生成新的基因c;

步骤3.5:根据cp对基因c中的值为1的元素进行值保留或者翻转为0的操作,具体为:当随机概率值小于cp时进行翻转,当随机值大于或等于cp时保留原值;

步骤3.6:将基因c表达为对抗样本,用目标模型判断该对抗样本的标签,如果标签为tl,那么将基因c加入到新的基因种群;否则,舍弃基因c;

步骤3.7:重复上述步骤3.3到步骤3.6直到原始基因种群中所有的基因都已经两两配对;

步骤3.8:舍弃原始基因种群,将新的基因种群代替原始基因种群;

步骤四:针对基因种群中的每个基因进行基因变异操作,具体包括如下子步骤:

步骤4.1:将原始基因种群中的基因全部复制到新的基因种群中去;

步骤4.2:设定基因变异概率,基因中为0的元素将以这个概率进行值翻转,由0变成1,即当随机概率值小于mp时将0变为1,否则仍旧保持值为0;

变异概率,即mutationprobability,mp;

步骤4.3:从原始基因种群中选择一个未被选择过的基因,按照mp对选择的基因进行值翻转生成新的基因a;

步骤4.4:将基因a表达为对抗样本,用目标模型判断该对抗样本的标签,如果标签为tl,那么将基因a加入到新的基因种群;否则,舍弃基因a;

步骤4.5:重复上述步骤4.3和步骤4.4直到原始基因种群中的基因全都遍历;

步骤4.6:舍弃原始基因种群,将新的基因种群代替原始基因种群;

步骤五:针对基因种群进行基因选择操作,具体包括如下子步骤:

步骤5.1:计算基因种群中每个基因中值为1的元素的个数,并将所有的基因按照此由高到低进行排序;

步骤5.2:按照排序截取前n个基因作为新的基因种群,替代原始基因种群;

步骤六:基因进化迭代,具体包括如下子步骤:

步骤6.1:重复步骤三到步骤五直到重复的次数达到某个限定值或者已生成了一个值为1的元素的百分占比达到了某个限定值的基因;

步骤6.2:从基因种群中将含有值为1的元素最多的基因选出,作为后续操作的基础;

步骤七:减少对抗样本与原始图片的不同像素点的个数,即减少基因中0的数目,具体包括如下子步骤:

步骤7.1:针对步骤六中选定的基因,遍历其中所有值为0的元素;

步骤7.2:将元素的值由0改为1;

步骤7.3:将基因表达成对抗样本,用目标模型判断该对抗样本的标签;如果标签为tl,那么保留本次元素的修改,否则将元素值由1回滚为0;

步骤7.4:重复上述步骤7.2和步骤7.3直到所有值为0的元素全部遍历一遍;

步骤7.5:重复步骤7.4直到没有元素的值被修改,从而生成了最新的基因;

步骤八:减少对抗样本与原始图片的不同rgbchannels的个数,具体包括如下子步骤:

步骤8.1:将二维的基因扩展到三维,即新增第三维表示rgbchannels,原始基因元素值为0的,增加的第三维值全为0,原始基因元素值为1的,增加的第三维值全为1;在像素层面的操作转移到了rgbchannels层面的操作;

步骤8.2:遍历三维基因中所有值为0的元素;

步骤8.3:将元素值由0变为1;

步骤8.4:将基因表达成对抗样本,用目标模型判断该对抗样本的标签;如果标签为tl,那么保留本次元素的修改,否则将元素值由1回滚为0;

步骤8.5:重复上述步骤8.3和步骤8.4直到所有值为0的元素全部遍历一遍;

步骤8.6:重复步骤8.5直到没有元素的值被修改,从而生成了最新的基因;

步骤九:缩小对抗样本与原始图片的像素值差异,即用二分法逐渐将当前对抗样本的像素值向原始图片靠近,具体包括如下子步骤:

步骤9.1:将步骤8.6生成的基因表达为对抗样本;

步骤9.2:计算步骤9.1中生成的对抗样本与原始图片的差距,两者的差生成三维向量difference;

步骤9.3:遍历difference中不为0的元素,记录这些元素对应的下标;

步骤9.4:根据记录的下标找到对抗样本中对应的rgb通道;

步骤9.5:记录对抗样本和原始图片在步骤9.4找到的rgb通道上的值,分别记为a和b,此二值构成一个连续闭区间,用二分查找的方法在[a,b]区间中查找一个新的值c,c满足的条件为c再向b靠近一个像素值则会改变对抗样本的标签,通过二分查找法找到c值之后将c值赋给对抗样本对应的rgb通道;

步骤9.6:重复步骤9.3到步骤9.5直到向量difference中没有元素被修改。至此,对抗样本即为最终的对抗样本。

步骤9.1:将步骤8.6生成的最新的基因表达为对抗样本;

步骤9.2:计算对抗样本与原始图片的差距,生成二维向量difference;

步骤9.3:遍历difference中不为0的元素,记录这些元素对应的下标;

步骤9.4:根据记录的下标找到对抗样本中对应的rgbchannels;

步骤9.5:用二分查找的方法缩小对抗样本和原始图片的rgb差值;

步骤9.6:重复步骤9.3到步骤9.5直到没有元素被修改,至此,生成了最终的对抗样本。

有益效果

本发明一种基于遗传算法的分类边界探测的黑盒攻击方法与现有的黑盒攻击方法相比,具有以下优势。

1.本发明提出的方法不仅是一种黑盒攻击,而且不依赖于模型返回的置信度,只需要一个最终的分类标签即可;

2.本发明提出的方法针对于大型图片生成对抗样本具有很好的效果。而且实验表明,图片越大,效果越好;

3.本发明提出的方法在参数调节恰当的情况下,比一般的基于决策边界的攻击方法所需要的查询次数更少。

附图说明

图1是本发明一种基于遗传算法的分类边界探测的黑盒攻击方法中目标图片targetimage,原始图片sourceimage,对抗样本adversarialimage和基因gene之间的关系;

图2是本发明一种基于遗传算法的分类边界探测的黑盒攻击方法中步骤9.5二分查找法的原理;

图3是本发明一种基于遗传算法的分类边界探测的黑盒攻击方法中实施例1中的原始图片;

图4是本发明一种基于遗传算法的分类边界探测的黑盒攻击方法实施例1中的目标图片;

图5是发明是本发明一种基于遗传算法的分类边界探测的黑盒攻击方法实施例1中样本生成过程中查询次数与像素变化情况说明;

图6是本发明一种基于遗传算法的分类边界探测的黑盒攻击方法实施例1中的90组对抗示例效果展示。

具体实施方式

下面结合附图和实施例对本发明做进一步的说明和阐述。

实施例1

本实施例详细阐述了应用本发明所述的一种基于遗传算法的分类边界探测的黑盒攻击方法攻击实验室本地resnet50黑盒模型的过程。本实施例选用keras提供的resnet50作为被攻击的目标黑盒模型,该模型具有能识别1000个图片分类的能力,构建本地实验室目标黑盒模型环境时只需要从keras工具包导入该模型即可。为了保证模型黑盒的特性,在本实施例中,对模型的利用仅限于查询图片的top1标签,并且不参考其返回的置信度等其他数据。攻击过程如下:

1.选择原始图片(图3)和目标图片(图4),并将两张图片的大小置为224x224;

2.确定目标标签为owl;

3.确定基因种群的大小为5;

4.设定ip为0.03;

5.生成一个大小为224x224的二维数组作为基因,每个元素的值初始化为0,以0.03的概率让这些0变为1,然后将基因表达为对抗样本,即值为1表示对抗样本对应位置的像素来自si,值为0表示来自ti。查询该对抗样本的标签,若标签是owl,则保留这个基因;

6.如此生成5个基因作为原始基因种群;

7.设定cp为1;

8.将基因种群中的5个基因两两进行或操作,得到新的基因后将新的基因表达为对抗样本。查询该对抗样本的标签,若标签是owl,则保留这个基因;

9.设定mp为0.005;

10.将基因种群中的所有基因按照0.005的概率将0翻转为1,得到新的基因后将新的基因表达为对抗样本。查询该对抗样本的标签,若标签是owl,则保留这个基因;

11.将基因种群中所有的基因按照1的数目排序,选择前5个基因作为新的基因种群,进行下一轮迭代进化;

12.直到迭代论述达到1000次或者出现了1的数目达到95%的基因则停止迭代进化,选出含有1数目最多的基因;

13.遍历当前基因中所有为0的元素,并逐一将0改成1,得到新的基因后将新的基因表达为对抗样本。查询该对抗样本的标签,若标签是owl,则保留这次修改,否则回滚到0;

14.重复遍历多次,直到找不到能够从0改为1的元素;

15.将基因扩展到三维,变成224x224x3大小的三维数组,即原基因中的0被扩展为[0,0,0];

16.遍历当前基因中所有为0的元素,并逐一将0改成1,得到新的基因后将新的基因表达为对抗样本。查询该对抗样本的标签,若标签是owl,则保留这次修改,否则回滚到0;

17.重复遍历多次,直到找不到能够从0改为1的元素;

18.将当前的基因表达为对抗样本,与原始图片作对比,用二分法,如图2所示,逐渐将当前对抗样本的像素值向原始图片靠近。直到无法找到可以继续修改的像素值为止;

19.至此,对抗样本生成。

本发明一种基于遗传算法的分类边界探测的黑盒攻击方法中目标图片targetimage,原始图片sourceimage,对抗样本adversarialimage和基因gene之间的关系,如图1所示。

对抗样本的变化情况见图5,最终生成的对抗样本人眼看到的是猫头鹰(owl)但实际上resnet50却将其识别为海豹(seal),达到了我们的攻击目的。整个过程查询了20000次左右,最终的对抗样本相对于原始图片修改了0.1%的像素值。

后续又用本发明提出的方法针对上述的黑盒模型做了90组对抗攻击实验,实验结果表明本发明提出的方法能100%完成黑盒攻击,效果展示见图6,所有的对抗样本相对于原始图片平均修改的幅度为0.4%。

与其他发明的对比

目前在图像识别领域大都是关于如何准确识别图像,搭建高精度的识别模型,并没有和本专利类似的针对图像识别模型的对抗样本生生方法。

以上所述为本发明的较佳实施例而已,本发明不应该局限于该实施例和附图所公开的内容。凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1