对抗样本的生成方法、装置、存储介质、设备及程序产品与流程

allin2024-10-18  25



1.本技术涉及人工智能技术领域,具体涉及一种对抗样本的生成方法、对抗样本的生成装置、计算机可读存储介质、计算机设备及计算机程序产品。


背景技术:

2.为了对产品安全性进行测试评估,可以采用对抗样本攻击产品的目标模型以判断目标模型是否容易受到对抗样本的影响。在相关技术中,为了生成对抗样本,需要多次访问目标模型,如此容易被识别为异常访问流量,造成攻击行为被发现。


技术实现要素:

3.本技术实施例提供一种对抗样本的生成方法、对抗样本的生成装置、计算机可读存储介质、计算机设备及计算机程序产品,可以采用开源数据集对待训练模型进行训练,以获得预训练模型,再利用目标数据集对预训练模型进行调整以获得代理模型,如此,可以减少获得代理模型所需的目标数据集的样本量。
4.一方面,提供一种对抗样本的生成方法,所述方法包括:采用开源数据集对待训练模型进行训练,以获得预训练模型;采用目标数据集对所述预训练模型进行调整,以获得代理模型,所述目标数据集包括目标样本和目标分类标签,所述目标分类标签为目标模型对所述目标样本分类获得的,所述代理模型能够模拟所述目标模型的决策行为;根据所述代理模型和预设白盒攻击算法生成所述对抗样本,所述对抗样本能够用于攻击所述目标模型。
5.另一方面,提供一种对抗样本的生成装置,所述装置包括第一训练单元、第二训练单元和生成单元。所述第一训练单元用于采用开源数据集对待训练模型进行训练,以获得预训练模型。所述第二训练单元用于采用目标数据集对所述预训练模型进行调整,以获得代理模型,所述目标数据集包括目标样本和目标分类标签,所述目标分类标签为目标模型对所述目标样本分类获得的,所述代理模型能够模拟所述目标模型的决策行为。所述生成单元用于根据所述代理模型和预设白盒攻击算法生成所述对抗样本,所述对抗样本能够用于攻击所述目标模型。
6.另一方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上任一实施例所述的对抗样本的生成方法中的步骤。
7.另一方面,提供一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如上任一实施例所述的对抗样本的生成方法中的步骤。
8.另一方面,提供一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行时实现如上任一实施例所述的对抗样本的生成方法中的步骤。
9.本技术实施例由于先采用开源数据集对待训练模型进行训练,以获得预训练模
型,再利用目标数据集对预训练模型进行调整以获得代理模型,如此,可以减少获得代理模型所需的目标数据集的样本量,因此,不需要多次访问目标模型以获得目标数据集,攻击行为不容易被发现。
附图说明
10.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
11.图1为本技术实施例提供的对抗样本的生成系统的结构示意图。
12.图2为本技术实施例提供的对抗样本的生成方法的第一流程示意图。
13.图3为本技术实施例提供的对抗样本的生成方法的第二流程示意图。
14.图4为本技术实施例提供的对抗样本的生成方法的第三流程示意图。
15.图5为本技术实施例提供的对抗样本的生成方法的第四流程示意图。
16.图6为本技术实施例提供的待组合模型的示意图。
17.图7为本技术实施例提供的对抗样本的生成方法的第五流程示意图。
18.图8为本技术实施例提供的对抗样本的生成方法的第六流程示意图。
19.图9为本技术实施例提供的对抗样本的生成方法的第七流程示意图。
20.图10为本技术实施例提供的对抗样本的生成装置的结构示意图。
21.图11为本技术实施例提供的计算机设备的结构示意图。
具体实施方式
22.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
23.本技术实施例提供一种对抗样本的生成方法、对抗样本的生成装置、计算机可读存储介质、计算机设备及计算机程序产品。具体地,本技术实施例的对抗样本的生成方法可以由计算机设备执行,其中,该计算机设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、台式计算机、智能电视、智能音箱、穿戴式智能设备、智能语音交互设备、智能家电、智能车载终端、飞行器等设备,终端还可以包括客户端,该客户端可以是视频客户端、浏览器客户端或即时通信客户端等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
24.本技术实施例可应用于人工智能、机器学习、模型攻击对抗等各种场景,具体地,本技术实施例可对各种场景中的ai模型进行安全性验证。
25.本技术实施例提供的方案涉及人工智能的ai模型的安全性验证并寻找对应的改
进策略,如在支付的过程中采用人脸识别时,可用本技术实施例的对抗样本评估所采用的ai模型的鲁棒性,是否容易受到对抗样本的影响,并且所产生的对抗样本可用于进一步训练目标模型以使其对此类攻击更具有鲁棒性,具体通过如下实施例进行说明。
26.首先,在对本技术实施例进行描述的过程中出现的部分名词或者术语作如下解释:
27.人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
28.人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
29.计算机视觉技术(computer vision,cv)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、ocr、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3d技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
30.语音技术(speech technology)的关键技术有自动语音识别技术(asr)和语音合成技术(tts)以及声纹识别技术。让计算机能听、能看、能说、能感觉,是未来人机交互的发展方向,其中语音成为未来最被看好的人机交互方式之一。
31.自然语言处理(nature language processing,nlp)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系。自然语言处理技术通常包括文本处理、语义理解、机器翻译、机器人问答、知识图谱等技术。
32.机器学习(machine learning,ml)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
33.自动驾驶技术通常包括高精地图、环境感知、行为决策、路径规划、运动控制等技术,自定驾驶技术有着广泛的应用前景,
34.随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
35.对抗样本:对抗样本是将正常样本(如人脸图像)进行改造,使其在不改变原样本语义信息的基础上,能够误导ai模型的决策判断。比如,将a的人脸图像加入一些轻微量的人眼不可见的噪点,使人脸识别ai模型将其识别为b。
36.tv:目标模型所处理的分类任务对应的数据集,如人脸图像识别数据集lfw。
37.ta:攻击者手头现有的用于某一分类任务的数据集,如开源的自然图像识别数据集imagenet。
38.x:正常未经修改的样本,如干净的图像。
39.x*:对应正常样本x的对抗样本。
40.y:模型的预测结果,如图像的分类标签。
41.f(x):深度学习模型的函数表示,输入待分析样本x,输出预测结果y=f(x)。
42.在相关技术中,根据攻击者对欲攻击模型所知的信息的多少,生成对抗样本的技术可分为两大类:
43.(1)白盒攻击:适用于攻击者已知目标模型的具体技术细节,如模型结构,参数等等。这类攻击技术一般适用于开发侧,用于开发模型的技术人员测试所部署模型的鲁棒性。
44.(2)黑盒攻击:适用于攻击者只获取了一般用户对模型访问的权限,如上传待分析的样本并获得模型在这些样本上的分析结果。黑盒攻击模拟了攻击者伪装成正常用户对模型进行攻击的场景,是本技术实施例所要解决的问题。
45.黑盒攻击的方法有:
46.利用梯度预测进行攻击:主要思路为用有限差分法估计目标模型在某一样本点的梯度,其公式为
[0047][0048]
其中,fd为目标模型g(x)在x点处的梯度估计值,δ为一个小的扰动常量。e1,e2,
……
,ed为标准单位向量。由此估计得梯度可得到对抗样本:
[0049]
x
adv
=x+ε
·
sign(fd
x
(φ(x)y′-φ(x)y,δ))
[0050]
其中,sign(x)为符号函数,并且sign(x)=1,如果x≥0;sign(x)=-1,如果x<0。φ(x)y为目标模型对x样本以及其正确分类标签下的逻辑分类值,y

为模型输出的对x样本的第二可能的预测标签。
[0051]
现实应用场景中,攻击者只能获得跟一般用户一样的对目标模型的访问权限,如通过api形式进行交互,攻击者只能提供待分析样本给目标模型,并获得目标模型在这些样本上的分析结果。由于白盒攻击算法一般要求能够直接访问模型的内部结构来计算其在某一样本点的梯度值,攻击者对于目标模型的权限要求太高,因此直接进行白盒攻击并不适用。
[0052]
利用梯度预测进行攻击,需要多次查询目标模型在待攻击的样本点的临近点的预测值,以此来估计目标模型在待攻击样本点的梯度值。对于每个待攻击的样本点,都需要分
别预测梯度值,造成每次攻击需要访问目标模型的次数非常多。
[0053]
访问目标模型的次数过多会造成两个问题:一是攻击成本过高,因为目标模型的提供商常常会采用按查询次数来付费的方式。二是多次访问目标模型,会更容易被识别为异常访问流量,造成攻击被发现。
[0054]
本技术实施例提供一种对抗样本的生成方法,先采用开源数据集对待训练模型进行训练,以获得预训练模型,再利用目标数据集对预训练模型进行调整以获得代理模型,如此,不需要获得用于训练目标模型的任务数据集来对代理模型进行训练,并且没有从零训练代理模型,可以减少获得代理模型所需的目标数据集的样本量,因此,不需要多次访问目标模型以获得目标数据集,攻击行为不容易被发现。本技术实施例在获得能够模拟目标模型的决策行为的代理模型后,由于代理模型是本技术实施例训练获得的,因此,代理模型的模型参数是可知的,因此,能够根据代理模型和预设白盒攻击算法生成对抗样本,相对于利用梯度预测进行攻击,本技术实施例也不需要在每个待攻击的样本点附近进行大量的查询,因此,不需要多次访问目标模型。根据代理模型和预设白盒攻击算法生成对抗样本,相对于直接获取目标模型的参数的白盒攻击算法,本技术实施例对目标模型的访问权限要求较低,只需要获取一般用户的访问权限:提供目标样本,获得目标模型在这些目标样本上的预测结果(目标分类标签),从而获得目标数据集以训练获得代理模型,在训练获得代理模型后,可以在不访问目标模型的基础上,采用白盒攻击算法攻击代理模型以得到对抗样本。
[0055]
请参考图1,图1为本技术实施例提供的对抗样本的生成系统的结构示意图。该对抗样本的生成系统包括终端10和服务器20等;终端10和服务器20之间通过网络连接,比如,通过有线或无线网络连接等。
[0056]
其中,终端10,可以用于显示图形用户界面。其中,该终端用于通过图形用户界面与用户进行交互,例如通过终端下载安装相应的客户端并运行,例如通过调用相应的小程序并运行,例如通过登录网站呈现相应的图像用户界面等。在本技术实施例中,该终端10可以为能够实现人脸识别等功能的终端设备。服务器20能够生成对抗样本,对抗样本能够用于攻击终端10或其他服务器存储的目标模型。
[0057]
其中,在本技术实施例中,服务器20可以具体用于:采用开源数据集对待训练模型进行训练,以获得预训练模型;采用目标数据集对预训练模型进行调整,以获得代理模型,目标数据集包括目标样本和目标分类标签,目标分类标签为目标模型对目标样本分类获得的,代理模型能够模拟目标模型的决策行为;根据代理模型和预设白盒攻击算法生成对抗样本,对抗样本能够用于攻击终端10或其他服务器存储的目标模型。
[0058]
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优先顺序的限定。
[0059]
本技术各实施例提供了一种对抗样本的生成方法,该方法可以由终端或服务器执行,也可以由终端和服务器共同执行;本技术实施例以对抗样本的生成方法由服务器执行为例来进行说明。
[0060]
请参阅图2至图8,图2至图8均为本技术实施例提供的对抗样本的生成方法的流程示意图。该方法包括:
[0061]
步骤201,采用开源数据集对待训练模型进行训练,以获得预训练模型。
[0062]
具体地,开源数据集例如为imagenet(自然图像分类数据集)、places(场景分类数
据集)、chestx(肺炎分类数据集)等等,由于开源数据集容易获取,因此,采用开源数据集对待训练模型进行训练,可以降低获得预训练模型的难度及成本。采用开源数据集对待训练模型进行训练,以获得预训练模型,具体可以为:将开源数据集划分为开源训练集和开源测试集,采用优化算法不断更新待训练模型的参数,使得开源训练集上的分类损失变小,直至在开源测试集上的分类损失不再提升,从而获得预训练模型。
[0063]
步骤202,采用目标数据集对预训练模型进行调整,以获得代理模型,目标数据集包括目标样本和目标分类标签,目标分类标签为目标模型对目标样本分类获得的,代理模型能够模拟目标模型的决策行为。
[0064]
具体地,提供目标样本,获得目标模型在这些目标样本上的预测结果以作为目标分类标签,结合目标样本和目标分类标签可以获得目标数据集,采用目标数据集对预训练模型进行训练,从而实现对预训练模型的微调,以获得能够模拟目标模型的决策行为的代理模型。其中,采用目标数据集对预训练模型进行调整,以获得代理模型,具体可以为:将目标数据集划分为目标训练集和目标测试集,采用优化算法不断更新预训练模型的参数,使得目标训练集上的分类损失变小,直至在目标测试集上的分类损失不再提升,从而获得代理模型。
[0065]
步骤203,根据代理模型和预设白盒攻击算法生成对抗样本,对抗样本能够用于攻击目标模型。
[0066]
具体地,利用训练好的模型作为代理模型,代理模型为本地模型,代理模型的模型参数是可知的,然后利用预设白盒攻击算法去攻击代理模型,根据预设白盒算法和代理模型的模型参数即可得到对抗样本,如此,即使目标模型为黑盒模型,也可以采用白盒攻击算法攻击代理模型以得到能够用于攻击目标模型的对抗样本。
[0067]
本技术实施例基于预训练的方式构造预训练模型,并收集目标模型在目标样本上的预测结果(目标分类标签),将目标样本和目标分类标签形成的目标数据集作为预训练模型的训练样本并微调预训练模型,以得到代理模型,使得代理模型能够模拟目标模型的决策行为,然后基于该代理模型,利用预设白盒攻击算法生成对抗样本,用于攻击目标模型。可选的,对抗样本还可以用于进一步训练目标模型,以使得目标模型能够对此类攻击更具有鲁棒性。
[0068]
可选的,如图3所示,方法包括:
[0069]
步骤301,根据目标模型的任务类型选取待训练模型。
[0070]
具体地,可以根据目标模型的任务类型选取合适的模型结构的待训练模型,其中,任务类型可以是指分类任务的类型,例如图像分类、文本分类等。本技术实施例以目标模型的任务类型为图像分类为例进行说明,也即是说,本技术生成的对抗样本为针对图像分类深度学习模型的对抗样本,需要注意的是,在其他实施方式中,本技术实施例的技术方案也可以应用于生成针对其他深度学习模型(如,应用于文本分类的深度学习模型)的对抗样本。在目标模型的任务类型为图像分类时,待训练模型的模型结构比如为resnet,vgg net和inception等等。
[0071]
可选的,如图4所示,方法包括:
[0072]
步骤401,获取多个开源数据集。
[0073]
具体地,多个开源数据集可以应用于相同任务(分类场景),或至少两个开源数据
集可以应用于不同任务,例如动物分类和疾病分类属于不同的任务,因为其所针对的数据源于不同的场景。至少两个开源数据集应用于不同任务,可以使得后续待训练模型能够实现针对多任务的开源数据集进行训练,使得预训练模型对不同的任务具有良好的迁移性,从而便于以较少的目标数据集达到较好的模拟目标模型行为的代理模型,降低对目标数据集的样本量的要求,从而能够在样本量较少的目标数据集的基础上便可获得能够模拟目标模型的决策行为的代理模型。
[0074]
开源数据集的数量可以根据目标模型的任务类型来选取。开源数据集的数量越多,后续待训练模型训练获得的预训练模型的效果越好,开源数据集的数量越少,后续待训练模型的训练过程更加简单。
[0075]
可选的,开源数据集的数量也可以为一个,在此不做具体限定。
[0076]
步骤402,获取多个待训练模型。
[0077]
具体地,多个待训练模型的模型结构可以相同,如都采用resnet;或者至少两个待训练模型的模型结构可以不同,具体例如为第一个待训练模型f1(x)为resnet,第二个待训练模型f2(x)为vgg,第三个待训练模型f3(x)为inception等等。采用相同的模型结构,多个待训练模型训练起来比较快,可以提高训练速度、降低训练成本。至少两个待训练模型的模型结构不同,可以使得待训练模型更加全面,从而容易覆盖目标模型的结构,进而使得后续生成的对抗样本更容易攻击成功。例如,目标模型的模型结构是vgg,若待训练模型的模型结构都为resnet,则容易攻击失败,而至少两个待训练模型的模型结构不同,则更可能覆盖到目标模型的模型结构,从而提高攻击的成功率。
[0078]
步骤201可通过步骤403和步骤404来实现,具体为:
[0079]
步骤403,采用多个开源数据集对多个待训练模型进行训练,以获得多个待组合模型。
[0080]
具体地,采用多个开源数据集对多个待训练模型进行训练,具体可以为,采用多个开源数据集分别对每一个待训练模型进行训练,或采用一个开源数据集对对应的一个待训练模型进行训练。可选的,待训练模型的数量与开源数据集的数量可以相同,一个待训练模型对应一个开源数据集,其中,任意两个开源数据集的任务不同,任意两个待训练模型的模型结构不同,多个开源数据集例如为第一个待训练模型f1(x)可以在第一个开源数据集上进行训练,以获得第一个待组合模型,第二个待训练模型f2(x)可以在第二个开源数据集上进行训练,以获得第二个待组合模型,第三个待训练模型f3(x)可以在第三个开源数据集上进行训练,以获得第三个待组合模型,
……
,第n个待训练模型fn(x)可以在第n个开源数据集上进行训练,以获得第三个待组合模型。
[0081]
步骤404,叠加多个待组合模型,以获得预训练模型。
[0082]
可选的,每个待组合模型包括第一特征提取模块和第一分类模块,如图5所示,步骤404可通过步骤501和步骤502来实现,具体为:
[0083]
步骤501,将每个待组合模型中的第一分类模块的待分类种类数调整成与目标模型的待分类种类数一致,以获得待叠加模型。
[0084]
具体地,如图6所示,待组合模型的组成方式可以为第一特征提取模块叠加上第一分类模块,因此待组合模型可以表示为:f(x)=c(g(x))。其中,g(x)为第一特征提取模块,c
(x)为第一分类模块。特征提取模块拥有很强的迁移性,可以用于不同的任务,例如当需要让原本已训练好的imagenet模型进行在其他数据集上(如places)的分类任务时,可以微调原本已训练好的imagenet模型,而不是从零开始训练一个适用于places数据集的模型。具体方法可以为利用该places数据集训练这个原本已训练好的imagenet模型,但在训练的过程中,不改变特征提取模块的参数,而只学习分类模块的参数。
[0085]
待组合模型的第一分类模块可以对样本进行分类获得分类标签,每一种分类标签对应一种待分类种类,同样的,目标模型的分类模块可以对样本进行分类获得分类标签,每一种分类标签对应一种待分类种类。在待组合模型的第一分类模块的待分类种类数与目标模型的待分类种类数不同时,可以改变第一分类模块的结构,使得待组合模型的第一分类模块的待分类种类数调整成与目标模型的待分类种类数一致,以获得待叠加模型,从而后续叠加待叠加模型,以获得预训练模型,并采用目标数据集对预训练模型训练后,便于获得能够模拟目标模型的决策行为的代理模型。将每个待组合模型的第一分类模块进行调整,以使得每个待组合模型的第一分类模块的待分类种类数调整成与目标模型的待分类种类数一致,由于待组合模型最后一层神经元的数量即等于待组合模型的第一分类模块的待分类种类数,因此,可以通过调整待组合模型的最后一层的神经元数量,即可使得待组合模型的第一分类模块的待分类种类数调整成与目标模型的待分类种类数一致。可选的,将每个待组合模型的原本最有一层的神经元去除,然后加上和目标模型的待分类种类数一样的神经元作为最后一层,即可使得待组合模型的第一分类模块的待分类种类数调整成与目标模型的待分类种类数一致。
[0086]
步骤502,叠加多个待叠加模型,以获得预训练模型。
[0087]
具体地,多个待叠加模型例如为f
’1(x),f
’2(x),
……
,f’n
(x),将多个待叠加模型叠加在一起,即可获得预训练模型f(x):
[0088]
f(x)=1/n(f
’1(x)+f
’2(x)+
……
+f’n
(x))
[0089]
可选的,预训练模型包括第二特征提取模块和第二分类模块,如图7所示,步骤202可通过步骤701来实现,具体为:
[0090]
步骤701,采用目标数据集对预训练模型的第二分类模块的参数进行调整,以获得代理模型。
[0091]
具体地,在采用目标数据集对预训练模型进行训练过程中,可以保持各个待叠加模型的第一特征提取模块不变,即保持预训练模型的第二特征提取模块不变,只对各个待叠加模型的第一分类模块进行调整,以实现对预训练模型的第二分类模块的参数进行调整,从而获得代理模型。由于预训练模型由多个表现优异的待叠加模型叠加获得,因此能够具有较强的学习能力来模拟目标模型的决策行为。在采用目标数据集对预训练模型进行训练的过程中,只需要学些更新少量的模型参数(即预训练模型的第二分类模块的参数),因此,所需要的目标数据集的样本量相比于从零开始训练一个模型大大降低。
[0092]
可选的,待叠加模型包括第三特征提取模块和第三分类模块,待叠加模型的第三分类模块包括逻辑层和分类层,如图8所示,步骤502可通过步骤801、步骤802、步骤803和步骤804来实现,具体为:
[0093]
步骤801,叠加多个待叠加模型的逻辑层以得到叠加逻辑层。
[0094]
具体地,第三分类模块包括逻辑(logit)层和分类(softmax)层,因此,第三分类模
块可细分为:c(x)=s(l(x))。其中,s(x)为softmax层,l(x)为logit层,s(x)的表达式具体可以为:
[0095][0096]
其中,c为待分类种类数,l为logit层输出,即l(x)。
[0097]
对各个待叠加模块的logit层(l
’1(x),l
’2(x),
……
,l’n
(x))进行融合形成叠加逻辑层:
[0098]
l’(x)=1/n(l
’1(x)+l
’2(x)+
……
+l’n
(x))
[0099]
步骤802,根据叠加逻辑层和待叠加模型的分类层获得预训练模型的第二分类模块。
[0100]
具体地,将叠加逻辑层输入softmax层,可以获得预训练模型的第二分类模块:
[0101][0102]
其中,l

为叠加逻辑层,即l’(x)。
[0103]
步骤803,叠加多个待叠加模型的第三特征提取模块,以得到预训练模型第二特征提取模块。
[0104]
具体地,待叠加模型的第三特征提取模块和待组合模型的第一特征提取模块是相同的,通过叠加多个待叠加模型的第三特征提取模块,或通过叠加多个待组合模型的第一特征提取模块,即可得到预训练模型的第二特征提取模块。
[0105]
步骤804,根据预训练模型的第二分类模块和预训练模型的第二特征提取模块获得预训练模型。
[0106]
将第二特征提取模块和第二分类模块组合在一起即可获得预训练模型。
[0107]
可选的,如图9所示,方法包括:
[0108]
步骤901,获取多个开源数据集。
[0109]
具体地,多个开源数据集可以应用于相同任务(分类场景),或至少两个开源数据集可以应用于不同任务,例如动物分类和疾病分类属于不同的任务,因为其所针对的数据源于不同的场景。至少两个开源数据集应用于不同任务,可以使得后续待训练模型能够实现针对多任务的开源数据集进行训练,使得预训练模型对不同的任务具有良好的迁移性,从而便于以较少的目标数据集达到较好的模拟目标模型行为的代理模型,降低对目标数据集的样本量的要求,从而能够在样本量较少的目标数据集的基础上便可获得能够模拟目标模型的决策行为的代理模型。
[0110]
开源数据集的数量可以根据目标模型的任务类型来选取。开源数据集的数量越多,后续待训练模型训练获得的预训练模型的效果越好,开源数据集的数量越少,后续待训练模型的训练过程更加简单。
[0111]
可选的,开源数据集的数量也可以为一个,在此不做具体限定。
[0112]
步骤902,获取一个待训练模型。
[0113]
具体地,待训练模型的模型结构可以为resnet、vgg、inception等。采用一个待训练模型,可以提高训练速度、降低训练成本。
[0114]
步骤201可通过步骤903来实现,具体为:
[0115]
步骤903,采用多个开源数据集分别对待训练模型进行训练,以获得预训练模型。
[0116]
具体地,多个开源数据集例如为待训练模型可以分别在待训练模型可以分别在上进行训练,从而获得预训练模型。
[0117]
可选的,开源数据集包括开源样本和开源分类标签,目标样本与开源样本相同。
[0118]
具体地,开源分类标签是开源样本的真实标签,可以将之前收集的开源数据集中的开源样本提供给目标模型,获得目标模型在这些开源样本上的预测结果以作为目标分类标签,由此,开源样本和目标分类标签就形成了目标数据集。利用开源样本作为目标样本来形成目标数据集,由于开源样本获取比较方便,因此可以方便得到目标样本,并且也可以减少总样本量。
[0119]
可选的,目标样本与开源样本也可以不同,例如开源样本为imagenet中的样本,而目标样本为places中的样本。
[0120]
可选的,预设白盒攻击算法包括基本迭代法或快速梯度符号法。
[0121]
由于训练好的代理模型为本地模型,其参数结构都已知,梯度也可以很容易地得到,因此对于待攻击的样本x,可以应用白盒攻击算法攻击代理模型,从而得到相对应的对抗样本x*,用于攻击目标模型。
[0122]
基本迭代法(basic iterative method)可以如下所示:
[0123][0124]
其中,为第t次迭代得到的对抗样本,ε为人为设定的总扰动量,且该参数与攻击者所追求的攻击的隐蔽性有关,具体取值可以为图像最大像素值的6%。ε越小,攻击的隐蔽性越高;ε越大,攻击的成功率越高。t为人为设定的总迭代次数,可根据攻击的效果来进行调整。
[0125]
j为代理模型的训练目标函数,其表达式可以为:
[0126][0127]
其中,m为待分类种类数,y
x,c
为指示函数(0或1),说明样本x的真实标签是否为类别c,p
x,c
为代理模型预测的该样本x是否为类别c的概率。将迭代t次后得到的样本作为x的对抗样本来攻击目标模型。
[0128]
快速梯度符号法(fast gradient sign method)可以如下所示:
[0129]
x
*
=x+ε
·
sign(
x
j(x,y))
[0130]
ε为允许扰动量大小。j为代理模型的训练目标函数,其表达式可以为:
[0131][0132]
其中,m为待分类种类数,y
x,c
为指示函数(0或1),说明样本x的真实标签是否为类别c,p
x,c
为代理模型预测的该样本x是否为类别c的概率。
[0133]
为了更好的说明本技术实施例提供的对抗样本的生成方法,本技术实施例提供的对抗样本的生成方法的流程可总结归纳为下述步骤:
[0134]
步骤301,根据目标模型的任务类型选取待训练模型。
[0135]
步骤401,获取多个开源数据集。
[0136]
步骤402,获取多个待训练模型。
[0137]
步骤403,采用多个开源数据集对多个待训练模型进行训练,以获得多个待组合模型。
[0138]
步骤501,将每个待组合模型中的第一分类模块的待分类种类数调整成与目标模型的待分类种类数一致,以获得待叠加模型。
[0139]
步骤502,叠加多个待叠加模型,以获得预训练模型。
[0140]
步骤701,采用目标数据集对预训练模型的第二分类模块的参数进行调整,以获得代理模型。
[0141]
步骤203,根据代理模型和预设白盒攻击算法生成对抗样本,对抗样本能够用于攻击目标模型。
[0142]
上述所有的技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
[0143]
本技术实施例先采用开源数据集对待训练模型进行训练,以获得预训练模型,再利用目标数据集对预训练模型进行调整以获得代理模型,如此,不需要获得用于训练目标模型的任务数据集来对代理模型进行训练,并且没有从零训练代理模型,可以减少获得代理模型所需的目标数据集的样本量,因此,不需要多次访问目标模型以获得目标数据集,攻击行为不容易被发现。本技术实施例在获得能够模拟目标模型的决策行为的代理模型后,由于代理模型是本技术实施例训练获得的,因此,代理模型的模型参数是可知的,因此,能够根据代理模型和预设白盒攻击算法生成对抗样本,相对于利用梯度预测进行攻击,本技术实施例也不需要在每个待攻击的样本点附近进行大量的查询,因此,不需要多次访问目标模型。根据代理模型和预设白盒攻击算法生成对抗样本,相对于直接获取目标模型的参数的白盒攻击算法,本技术实施例对目标模型的访问权限要求较低,只需要获取一般用户的访问权限:提供目标样本,获得目标模型在这些目标样本上的预测结果(目标分类标签),从而获得目标数据集以训练获得代理模型。
[0144]
为便于更好的实施本技术实施例的对抗样本的生成方法,本技术实施例还提供一种对抗样本的生成装置。请参阅图10,图10为本技术实施例提供的对抗样本的生成装置的结构示意图。其中,该对抗样本的生成装置1000可以包括:
[0145]
第一训练单元1010,第一训练单元1010可用于采用开源数据集对待训练模型进行训练,以获得预训练模型;
[0146]
第二训练单元1020,第二训练单元1020可用于采用目标数据集对预训练模型进行调整,以获得代理模型,目标数据集包括目标样本和目标分类标签,目标分类标签为目标模型对目标样本分类获得的,代理模型能够模拟目标模型的决策行为;
[0147]
生成单元1030,生成单元1030可用于根据代理模型和预设白盒攻击算法生成对抗样本,对抗样本能够用于攻击目标模型。
[0148]
可选的,装置1000包括第一获取单元1040,第一获取单元1040可用于:根据目标模型的任务类型选取待训练模型。
[0149]
可选的,装置1000包括第二获取单元1050,第二获取单元1050可用于:获取多个开源数据集。第一获取单元1040可用于:获取多个待训练模型。第一训练单元1010可用于:采用多个开源数据集对多个待训练模型进行训练,以获得多个待组合模型;叠加多个待组合
模型,以获得预训练模型。
[0150]
可选的,每个待组合模型包括第一特征提取模块和第一分类模块,第一训练单元1010可用于:将每个待组合模型中的第一分类模块的待分类种类数调整成与目标模型的待分类种类数一致,以获得待叠加模型;叠加多个待叠加模型,以获得预训练模型。
[0151]
可选的,预训练模型包括第二特征提取模块和第二分类模块,第二训练单元1020可用于:采用目标数据集对预训练模型的第二分类模块的参数进行调整,以获得代理模型。
[0152]
可选的,待叠加模型包括第三特征提取模块和第三分类模块,待叠加模型的第三分类模块包括逻辑层和分类层,第一训练单元1010可用于:叠加多个待叠加模型的逻辑层以得到叠加逻辑层;根据叠加逻辑层和待叠加模型的分类层获得预训练模型的第二分类模块;叠加多个待叠加模型的第三特征提取模块,以得到预训练模型第二特征提取模块;根据预训练模型的第二分类模块和预训练模型的第二特征提取模块获得预训练模型。
[0153]
可选的,第二获取单元1050可用于:获取多个开源数据集。第一获取单元1040可用于:获取一个待训练模型。第一训练单元1010可用于:采用多个开源数据集分别对待训练模型进行训练,以获得预训练模型。
[0154]
上述对抗样本的生成装置中的各个模块、单元可全部或部分通过软件、硬件及其组合来实现。上述各个模块、单元可以以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行上述各个模块、单元对应的操作。
[0155]
对抗样本的生成装置1000,可以集成在具备储存器并安装有处理器而具有运算能力的终端或服务器中,或者该对抗样本的生成装置1000为该终端或服务器。
[0156]
可选的,本技术还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
[0157]
图11为本技术实施例提供的计算机设备的结构示意图,该计算机设备可以是图1所示的终端或服务器。如图11所示,该计算机设备1100可以包括:通信接口1101,存储器1102,处理器1103和通信总线1104。通信接口1101,存储器1102,处理器1103通过通信总线1104实现相互间的通信。通信接口1101用于与外部设备进行数据通信。存储器1102可用于存储软件程序以及模块,处理器1103通过运行存储在存储器1102的软件程序以及模块,例如前述方法实施例中的相应操作的软件程序。
[0158]
可选的,该处理器1103可以调用存储在存储器1102的软件程序以及模块执行如下操作:采用开源数据集对待训练模型进行训练,以获得预训练模型;用于采用目标数据集对预训练模型进行调整,以获得代理模型,目标数据集包括目标样本和目标分类标签,目标分类标签为目标模型对目标样本分类获得的,代理模型能够模拟目标模型的决策行为;根据代理模型和预设白盒攻击算法生成对抗样本,对抗样本能够用于攻击目标模型。
[0159]
本技术还提供了一种计算机可读存储介质,用于存储计算机程序。该计算机可读存储介质可应用于计算机设备,并且该计算机程序使得计算机设备执行本技术实施例中的对抗样本的生成方法中的相应流程,为了简洁,在此不再赘述。
[0160]
本技术还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得计算机设备执行本技术实施例中的对抗样
本的生成方法中的相应流程,为了简洁,在此不再赘述。
[0161]
本技术还提供了一种计算机程序,该计算机程序包括计算机指令,计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得计算机设备执行本技术实施例中的对抗样本的生成方法中的相应流程,为了简洁,在此不再赘述。
[0162]
应理解,本技术实施例的处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0163]
可以理解,本技术实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
[0164]
应理解,上述存储器为示例性但不是限制性说明,例如,本技术实施例中的存储器还可以是静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synch link dram,sldram)以及直接内存总线随机存取存储器(direct rambus ram,dr ram)等等。也就是说,本技术实施例中的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
[0165]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员
可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0166]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0167]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0168]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0169]
另外,在本技术实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0170]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0171]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。

技术特征:
1.一种对抗样本的生成方法,其特征在于,所述方法包括:采用开源数据集对待训练模型进行训练,以获得预训练模型;采用目标数据集对所述预训练模型进行调整,以获得代理模型,所述目标数据集包括目标样本和目标分类标签,所述目标分类标签为目标模型对所述目标样本分类获得的,所述代理模型能够模拟所述目标模型的决策行为;根据所述代理模型和预设白盒攻击算法生成所述对抗样本,所述对抗样本能够用于攻击所述目标模型。2.根据权利要求1所述的方法,其特征在于,所述方法包括:根据所述目标模型的任务类型选取所述待训练模型。3.根据权利要求1所述的方法,其特征在于,所述方法包括:获取多个所述开源数据集;获取多个所述待训练模型;所述采用开源数据集对待训练模型进行训练,以获得预训练模型,包括:采用多个所述开源数据集对多个所述待训练模型进行训练,以获得多个待组合模型;叠加多个所述待组合模型,以获得所述预训练模型。4.根据权利要求3所述的方法,其特征在于,每个所述待组合模型包括第一特征提取模块和第一分类模块,所述叠加多个所述待组合模型,以获得所述预训练模型,包括:将每个所述待组合模型中的第一分类模块的待分类种类数调整成与所述目标模型的待分类种类数一致,以获得待叠加模型;叠加多个所述待叠加模型,以获得所述预训练模型。5.根据权利要求4所述的方法,其特征在于,所述预训练模型包括第二特征提取模块和第二分类模块,所述采用目标数据集对所述预训练模型进行调整,以获得代理模型,包括:采用所述目标数据集对所述第二分类模块的参数进行调整,以获得所述代理模型。6.根据权利要求4所述的方法,其特征在于,所述预训练模型包括第二特征提取模块和第二分类模块,所述待叠加模型包括第三特征提取模块和第三分类模块,所述第三分类模块包括逻辑层和分类层,所述叠加多个所述待叠加模型,以获得所述预训练模型,包括:叠加多个所述逻辑层以得到叠加逻辑层;根据所述叠加逻辑层和所述分类层获得第二分类模块;叠加多个所述第三特征提取模块,以得到所述第二特征提取模块;根据所述第二分类模块和所述第二特征提取模块获得所述预训练模型。7.根据权利要求1所述的方法,其特征在于,所述方法包括:获取多个所述开源数据集;获取一个所述待训练模型;所述采用开源数据集对待训练模型进行训练,以获得预训练模型,包括:采用多个所述开源数据集分别对所述待训练模型进行训练,以获得所述预训练模型。8.根据权利要求1所述的方法,其特征在于,所述开源数据集包括开源样本和开源分类标签,所述目标样本与所述开源样本相同。9.根据权利要求1所述的方法,其特征在于,所述预设白盒攻击算法包括基本迭代法或快速梯度符号法。
10.一种对抗样本的生成装置,其特征在于,所述装置包括:第一训练单元,所述第一训练单元用于采用开源数据集对待训练模型进行训练,以获得预训练模型;第二训练单元,所述第二训练单元用于采用目标数据集对所述预训练模型进行调整,以获得代理模型,所述目标数据集包括目标样本和目标分类标签,所述目标分类标签为目标模型对所述目标样本分类获得的,所述代理模型能够模拟所述目标模型的决策行为;生成单元,所述生成单元用于根据所述代理模型和预设白盒攻击算法生成所述对抗样本,所述对抗样本能够用于攻击所述目标模型。11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如权利要求1-9任一项所述的生成方法中的步骤。12.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行权利要求1-9任一项所述的生成方法中的步骤。13.一种计算机程序产品,包括计算机指令,其特征在于,所述计算机指令被处理器执行时实现权利要求1-9任一项所述的生成方法中的步骤。

技术总结
本申请公开一种对抗样本的生成方法、装置、存储介质、设备及程序产品,可应用于人工智能、机器学习、模型攻击对抗等场景。该方法包括:采用开源数据集对待训练模型进行训练,以获得预训练模型;采用目标数据集对预训练模型进行调整,以获得代理模型,目标数据集包括目标样本和目标分类标签,目标分类标签为目标模型对目标样本分类获得的,代理模型能够模拟目标模型的决策行为;根据代理模型和预设白盒攻击算法生成对抗样本,对抗样本能够用于攻击目标模型。本申请实施例采用开源数据集对待训练模型进行预训练,如此,可以减少获得代理模型所需的目标数据集的样本量,因此,不需要多次访问目标模型以获得目标数据集,攻击行为不容易被发现。易被发现。易被发现。


技术研发人员:吴炜滨 赵沛霖
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2022.03.25
技术公布日:2022/7/4
转载请注明原文地址: https://www.8miu.com/read-17125.html

最新回复(0)