发明内容
在本上下文中,本发明的实施方式期望提供一种基于代理模型的对抗样本生成方法、装置、介质和计算设备。
在本发明实施方式的第一方面中,提供了一种基于代理模型的对抗样本生成方法,包括:
提供代理模型、原始样本和一基于迭代的对抗样本生成算法;
基于代理模型、原始样本和对抗样本生成算法迭代生成对抗样本,直到达到预设终止条件;
在每个迭代轮次中:
获取上一轮次迭代生成对抗样本时,所述代理模型的损失结果和各个参数自身的权重;
基于所述代理模型的损失结果和所述参数自身的权重计算各个参数自身的梯度;
将各个参数的梯度作为对应参数的重要性分数,所述重要性分数用于表示相应轮次中代理模型的对应参数对生成的对抗样本的影响程度;
根据预设规则以及所述代理模型的各个参数的重要性分数剪除所述代理模型的部分参数;
根据剪除部分参数后保留的各个参数更新所述代理模型;
将达到预设终止条件时生成的对抗样本作为最终的对抗样本。
在本实施方式的一个实施例中,获取上一轮次迭代生成对抗样本时,所述代理模型的损失结果,包括:
根据预设方式随机采样生成多个服从预设概率分布的白噪声;
在该轮次生成的对抗样本上叠加所述白噪声得到多个输入样本;
将所述多个输入样本输入所述代理模型得到多个损失结果;
基于所述代理模型的损失结果和所述参数自身的权重计算各个参数自身的梯度,包括:
基于所述多个损失结果和各个参数自身的权重计算得到每一个参数的多个梯度;
将各个参数的梯度作为对应参数的重要性分数,包括:
根据每一个参数的多个梯度计算对应参数的重要性分数。
在本实施方式的一个实施例中,提供包括多个原始样本的原始样本集;
在每个迭代轮次中,剪除部分参数之前,所述方法包括:
基于所述代理模型的损失结果和所述参数自身的权重,计算在生成每一对抗样本时各个参数自身的梯度;
基于各个参数的多个梯度计算对应参数的重要性分数。
在本实施方式的一个实施例中,某一参数的重要性分数为所述参数的梯度的绝对值或所述参数的多个梯度的平均数值。
在本实施方式的一个实施例中,所述预设规则包括剪除重要性分数低于预设阈值的参数和/或以预设的剪枝率进行参数剪除。
在本实施方式的一个实施例中,根据预设规则以及所述代理模型的各个参数的重要性分数剪除所述代理模型的部分参数,包括:
针对代理模型每一层的参数的重要性分数,按照从高到低的顺序对各个参数进行排序;
根据所述剪枝率,对所述代理模型的每一层中排序在后的部分参数进行剪除。
在本实施方式的一个实施例中,通过将数值设为0的方式将所述代理模型的部分参数剪除。
在本实施方式的一个实施例中,所述基于迭代的对抗样本生成算法包括动量迭代式对抗样本生成算法;
其中,
表示第
i轮更新得到的动量,
表示动量衰减速度,
表示代理模型的损失函数计算得到的损失结果
关于第i-1轮生成的对抗样本
的梯度,
表示L1范数,
y表示
所对应的原始样本
X的类别,
表示将修改中的对抗样本
投影到距离原始样本
X不超过ϵ的范围内,其中α是超参数。
在本实施方式的一个实施例中,在第
i轮迭代时,通过以下方式计算某个参数对上一轮次生成的对抗样本
的重要性分数:
其中,ΔX为随机生成的白噪声,N(0,δ 2 I)表示一个期望为0,标准差为δ的高斯分布,I表示单位矩阵,ΔX∼N(0,δ 2 I)表示ΔX服从概率分布N,d表示微分,w表示参数的权重。
在本发明实施方式的第二方面中,提供了一种基于代理模型的对抗样本生成装置,包括:
预处理模块,被配置为提供代理模型、原始样本和一基于迭代的对抗样本生成算法;
迭代模块,被配置为基于代理模型、原始样本和对抗样本生成算法迭代生成对抗样本,直到达到预设终止条件,包括:
获取单元,被配置为在每个迭代轮次中,获取上一轮次迭代生成对抗样本时,所述代理模型的损失结果和各个参数自身的权重;
计算单元,被配置为在每个迭代轮次中,基于所述代理模型的损失结果和所述参数自身的权重计算各个参数自身的梯度;以及
将各个参数的梯度作为对应参数的重要性分数,所述重要性分数用于表示相应轮次中代理模型的对应参数对生成的对抗样本的影响程度;
剪枝单元,被配置为在每个迭代轮次中,根据预设规则以及所述代理模型的各个参数的重要性分数剪除所述代理模型的部分参数;
更新单元,被配置为在每个迭代轮次中,根据剪除部分参数后保留的各个参数更新所述代理模型;
确定单元,被配置为在每个迭代轮次中,将达到预设终止条件时生成的对抗样本作为最终的对抗样本。
在本发明实施方式的第三方面中,提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可以实现所述基于代理模型的对抗样本生成方法。
在本发明实施方式的第四方面中,提供了一种计算设备,包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于执行上述基于代理模型的对抗样本生成方法。
根据本发明实施方式的基于代理模型的对抗样本生成方法和装置,基于代理模型、原始样本和对抗样本生成算法迭代生成对抗样本,直到达到预设终止条件;在每个迭代轮次中:获取上一轮次迭代生成对抗样本时,所述代理模型的损失结果和各个参数自身的权重;基于所述代理模型的损失结果和所述参数自身的权重计算各个参数自身的梯度;将各个参数的梯度作为对应参数的重要性分数,所述重要性分数用于表示相应轮次中代理模型的对应参数对生成的对抗样本的影响程度;根据预设规则以及所述代理模型的各个参数的重要性分数剪除所述代理模型的部分参数;根据剪除部分参数后保留的各个参数更新所述代理模型;将达到预设终止条件时生成的对抗样本作为最终的对抗样本。
根据本申请的技术方案生成的对抗样本相对于基于原代理模型迭代生成的对抗样本,将具备更强的迁移性能以及更高的黑盒攻击的成功率。
和现有技术相比,本发明主要具有以下有益效果:
一、本发明属于基于迁移的黑盒对抗样本生成方法,所以不需要获取受害模型,也不需要对受害模型进行大量的访问。
二、本发明可以与任何基于迭代的攻击方法结合(如TIM攻击方法),带来迁移性能的提升。
三、本发明最终生成的对抗样本基于多次剪除参数后的代理模型,所述代理模型中保留的参数相比于剪除的参数,对图像识别结果更加重要,即更加关注图片的重要特征,从而本发明生成的对抗样本有助于图像的异常检测或可解释性。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种基于代理模型的对抗样本生成方法、装置、介质和计算设备。
此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
发明人发现,在攻击神经网络判别/分类/预测模型的方法中,不同的对抗样本生成方法的区别主要在于优化算法和扰动形式。对于常见的基于白盒的攻击方法,基于分数的黑盒攻击方法,基于决策的黑盒攻击方法以及基于迁移的黑盒攻击方法,其扰动形式通常是在正常样本上线性叠加一个噪声。它们的区别只是在于使用不同的优化过程。这些方法都各自存在一些缺点,例如:
一、基于白盒的攻击方法,需要获取受害模型,而现实中这一模型往往不易获取。
二、基于分数的黑盒攻击方法与基于决策的黑盒攻击方法,往往需要多次访问受害者模型,降低了攻击的效率。
三、基于迁移的黑盒攻击方法,黑盒模型与受害模型的相似度对攻击的成功率影响较大。
基于神经网络构建的判别/分类/预测模型,往往都是基于相似的特征提取及特征处理方式,例如对样本的特征进行提取,进而对提取到的特征执行相应的判别/分类/预测操作。
而基于神经网络构建的判别/分类/预测模型中,往往存在大量的具有不同参数结构的层级,这些参数对模型的最终输出结果起到不同的影响作用,由此,发明人构思了一种采用网络剪枝技术的对抗样本生成方法,在每步迭代生成对抗样本时都会寻找代理模型关于原始样本的不重要参数并剪去,从而得到一个更关注样本重要特征的代理模型。在该代理模型上生成的对抗样本,相对于原模型,将具备更强的迁移性能和更高的黑盒攻击的成功率。
示例性方法
下面参考图1和图2来描述根据本发明示例性实施方式的基于代理模型的对抗样本生成方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
本发明的实施例提供了一种基于代理模型的对抗样本生成方法,包括:
步骤S110,提供代理模型、原始样本和一基于迭代的对抗样本生成算法;
步骤S120,基于代理模型、原始样本和对抗样本生成算法迭代生成对抗样本,直到达到预设终止条件;
在每个迭代轮次中:
步骤S121,获取上一轮次迭代生成对抗样本时,所述代理模型的损失结果和各个参数自身的权重;
步骤S122,基于所述代理模型的损失结果和所述参数自身的权重计算各个参数自身的梯度;
步骤S123,将各个参数的梯度作为对应参数的重要性分数,所述重要性分数用于表示相应轮次中代理模型的对应参数对生成的对抗样本的影响程度;
步骤S124,根据预设规则以及所述代理模型的各个参数的重要性分数剪除所述代理模型的部分参数;
步骤S125,根据剪除部分参数后保留的各个参数更新所述代理模型;
步骤S126,将达到预设终止条件时生成的对抗样本作为最终的对抗样本。
可以理解的是,本发明的对抗样本生成方法是基于一个代理模型迭代生成对抗样本,在每步迭代生成对抗样本时都会寻找代理模型关于原始样本的不重要参数并剪去,从而得到一个更关注样本重要特征的代理模型。在剪除不重要参数后的代理模型上生成的对抗样本,相较于在原代理模型上生成的对抗样本,将具备更强的迁移性能和更高的黑盒攻击的成功率。
本发明的方法适用于各种类型数据的对抗样本生成,所述原始样本包括但不限于图片样本、语音样本、文本样本,相应的代理模型则是对应原始样本的基于神经网络构建的图像处理模型、语音处理模型、文本处理模型。
下面结合附图说明如何进行基于代理模型的图片类对抗样本生成:
首先,执行步骤S110,提供代理模型、原始样本和一基于迭代的对抗样本生成算法;
在本实施例中,首先需要提供原始样本和代理模型,原始样本可以是预先准备好的图片样本或图片样本集中的一张或多张,在需要从图片样本集中获取原始样本时,可以通过随机采样的方式或其他预设规则进行,本实施例对此不做限定,所述代理模型为可以基于所述原始样本进行判别/分类/预测的白盒神经网络模型,即我们可以获知所述代理模型的神经网络结构和参数详情,所述代理模型以与意图攻击的模型(也可以称之为受害模型)的用途相同或相似,例如受害模型用于图像分类,则代理模型也最好是用于图像分类,在本实施例中,以攻击图像分类模型为例进行说明,具体来说,可以是VGG16、VGG19、InceptionV3、Xception、MobileNet、AlexNet、LeNet、ZF_Net、ResNet18、ResNet34、ResNet50、ResNet_101和ResNet_152中的任一个。
所述基于迭代的对抗样本生成算法指的是能够根据上一轮次生成的对抗样本输入代理模型后的输出结果进行迭代优化,以使后续生成的对抗样本攻击成功率逐渐提高的方法,在基于图像样本和图像分类模型构建对抗样本时,所述基于迭代的对抗样本生成算法可以是Basic Iterative Method:一种基于梯度下降的对抗样本生成方法;或者Momentum Iterative Fast Gradient Sign Method: 一种利用动量的基于优化的对抗样本生成方法;或者其他方式,本实施例对此不做限定。
本实施例中以如何生成图片类对抗样本为例进行了说明,但不代表本发明仅仅可以应用于图片类对抗样本的生成,在需要进行其他类对抗样本如语音或文本时,也可以根据本发明的各个步骤对应采用相应的数据处理模型和迭代攻击方式即可。
接下来执行步骤S120,基于代理模型、原始样本和对抗样本生成算法迭代生成对抗样本,直到达到预设终止条件;具体包括,在每个迭代轮次中:
步骤S121,获取上一轮次迭代生成对抗样本时,所述代理模型的损失结果和各个参数自身的权重;
在神经网络中,经常可以看到某个神经元对输入数据x进行处理的表达式为z=wx+b,其中w为权重,b为偏置项;本步骤获取的各个参数的权重即为相应的神经元的所述权重w。
相应的,代理模型的损失结果的获取或计算方式由损失函数决定,也是本领域的技术人员所熟知的,本实施例中不再进行详细举例说明。
步骤S122,基于所述代理模型的损失结果和所述参数自身的权重计算各个参数自身的梯度;
步骤S123,将各个参数的梯度作为对应参数的重要性分数,所述重要性分数用于表示相应轮次中代理模型的对应参数对生成的对抗样本的影响程度;
需要说明的是,某个参数自身的权重或梯度可能为正或为负。如果直接使用某个参数自身的权重或者梯度作为重要性分数,就可能会简单地认定正的权重或梯度比负的更重要。实际上,非常负的权重或者梯度意味着该参数能起到非常大的副作用,它对模型预测结果的影响程度与非常大的正的权重或者梯度是相当的。所以本申请用绝对值,即其数值的幅度(而忽略符号),来衡量模型参数的重要性。
可以理解的是,在本实施方式的一个实施例中,某一参数的重要性分数为所述参数的梯度的绝对值。
接下来,执行步骤S124,根据预设规则以及所述代理模型的各个参数的重要性分数剪除所述代理模型的部分参数;
在本实施方式的一个实施例中,所述预设规则包括剪除重要性分数低于预设阈值的参数。
在本实施方式的另外一个实施例中,所述预设规则包括以预设的剪枝率进行参数剪除,在本实施例中,根据预设规则以及所述代理模型的各个参数的重要性分数剪除所述代理模型的部分参数,包括:
基于各个参数的重要性分数,按照从高到低的顺序对各个参数进行排序;
根据所述剪枝率对排序在后的部分参数进行剪除。
例如,当前的代理模型中存在N个参数:a1,a2···an,分别对应计算得到重要性分数s1,s2···sn,然后基于各个参数的重要性分数按照从高到低的顺序对各个参数进行排序,根据剪枝率(即需要剪除的参数的比例,例如20%)对排序在后20%的参数进行剪除,具体来说,可以通过将数值设为0的方式将排序在后20%的部分参数剪除。
或者,也可以以神经网络的层级为单位,剪除各个神经网络层中的不重要参数,根据预设规则以及所述代理模型的各个参数的重要性分数剪除所述代理模型的部分参数,包括:
针对代理模型每一层的参数的重要性分数,按照从高到低的顺序对各个参数进行排序;
根据所述剪枝率,对所述代理模型的每一层中排序在后的部分参数进行剪除。
例如,当前的代理模型中的第m层存在N个参数:a1,a2···an,分别对应计算得到重要性分数s1,s2···sn,然后基于各个参数的重要性分数按照从高到低的顺序对第m层的各个参数进行排序,根据剪枝率(即需要剪除的参数的比例,例如20%)对排序在后20%的参数进行剪除,具体来说,可以通过将数值设为0的方式将排序在后20%的部分参数剪除。
接下来执行步骤S125,根据剪除部分参数后保留的各个参数更新所述代理模型;
步骤S126,将达到预设终止条件时生成的对抗样本作为最终的对抗样本。
在本实施方式中,所述预设终止条件可以是迭代达到预设次数,或者所述代理模型的参数剪除超过一定的比例,或者迭代生成的对抗样本的攻击成功率达到预设阈值,本实施方式对此不做限定。
在本实施方式的又一个实施例中,提出了一种不同的参数的梯度计算方案,该方案在每一迭代轮次根据预设方式随机采样生成服从预设概率分布的白噪声,并将所述白噪声叠加在该轮次生成的对抗样本后输入所述代理模型,以获取相应的多个损失结果,进而根据多个损失结果计算各个参数的梯度,确保每一个参数的重要性分数更加稳定。具体来说,获取上一轮次迭代生成对抗样本时,所述代理模型的损失结果,包括:
根据预设方式随机采样生成多个服从预设概率分布的白噪声;
在本实施例中,所述预设概率分布可以是均匀分布、高斯分布等,所述随机采样可以是蒙特卡洛采样。
在该轮次生成的对抗样本上叠加所述白噪声得到多个输入样本;
将所述多个输入样本输入所述代理模型得到多个损失结果;
基于所述代理模型的损失结果和所述参数自身的权重计算各个参数自身的梯度,包括:
基于所述多个损失结果和各个参数自身的权重计算得到每一个参数的多个梯度;
将各个参数的梯度作为对应参数的重要性分数,包括:
根据每一个参数的多个梯度计算对应参数的重要性分数。
下面对本申请的技术方案的上述实施例进行更加详细的说明,以MI-FGSM攻击算法作为所述基于迭代的对抗样本生成算法,以AlexNet、DenseNet161和ResNet18这三个网络分别作为所述代理模型和迁移攻击的模型,原始样本包括1000张ImageNet图片,剪枝率r为20%。
首先,选取一张受害者图像X和一个代理模型M。所述受害者图像X图像的类别为y。
然后,选取超参数,例如预定停止条件:攻击迭代轮数N,动量衰减速度μ,每步攻击幅度α,允许的扰动总大小ϵ,剪枝率r。
接下来,初始化对抗样本
,动量
,0为与
同维度的全零张量。
其中,
表示第
i轮更新得到的动量,
表示动量衰减速度,
表示代理模型的损失函数计算得到的损失结果
关于第i-1轮生成的对抗样本
的梯度,
表示L1范数,
y表示
所对应的原始样本
X的类别,
表示将修改中的对抗样本
投影到距离原始样本
X不超过ϵ的范围内,其中α是超参数。
在本实施方式的一个实施例中,在第
i轮迭代时,通过以下方式计算某个参数对上一轮次生成的对抗样本
的重要性分数:
其中,ΔX为随机生成的白噪声,N(0,δ 2 I)表示一个期望为0,标准差为δ的高斯分布,I表示单位矩阵,ΔX∼N(0,δ 2 I)表示ΔX服从概率分布N,d表示微分,w表示参数的权重。
在进行不重要参数的剪除时,对代理模型M的每一层,将该层参数按重要性分数排序。设当前层共n个参数,将重要性分数最低的nr个参数设为0,得到临时模型M i 并返回。
在本轮次的迭代中(第
i轮迭代),基于所述临时模型
M i 生成对抗样本
。
在迭代N轮时,即
i=
N时,将
作为最终输出的对抗样本。
在本实施方式的再一个实施例中,又提出了一种不同的参数的梯度计算方案,在该实施例中,提供包括多个原始样本的原始样本集;
在每个迭代轮次中,剪除部分参数之前,所述方法包括:
基于所述代理模型的损失结果和所述参数自身的权重,计算在生成每一对抗样本时各个参数自身的梯度;
基于各个参数的多个梯度计算对应参数的重要性分数。
在本实施例中,首先需要从原始样本集中采样多个用来迭代生成对抗样本的原始样本,从而在计算重要性分数时,能够充分考虑不同的样本,基于多个样本的平均得到更加稳定准确的参数梯度,以使剪除参数时的依据更加客观,从而得到更关注重要特征的代理模型。
在本实施例中,对原始样本进行采样时,可以采用任一预设的采样方法,例如随机采样。
可以理解的是,可以在每个迭代轮次都进行原始样本的采样,或者也可以在第一个迭代轮次进行原始样本的采样,之后的迭代轮次沿用第一个迭代轮次采样的多个原始样本进行对抗样本的生成和代理模型的更新。
在本实施例中,每一个迭代轮次,都会根据采样得到的多个原始样本进行参数的梯度计算,也就是说,在一个迭代轮次中,都会基于每一个原始样本生成对抗样本,且对应计算各个参数的梯度,在本迭代轮次,某个参数的最终梯度为基于多个原始样本生成对抗样本时的参数梯度的平均。
在本实施例中,某一参数的重要性分数为所述参数的多个梯度的平均值或所述参数的多个梯度的平均数值,即绝对值。
示例性装置
在介绍了本发明示例性实施方式的方法之后,接下来,参考图3对本发明示例性实施方式的一种基于代理模型的对抗样本生成装置进行说明,该装置包括:
预处理模块310,被配置为提供代理模型、原始样本和一基于迭代的对抗样本生成算法;
迭代模块320,被配置为基于代理模型、原始样本和对抗样本生成算法迭代生成对抗样本,直到达到预设终止条件,包括:
获取单元321,被配置为在每个迭代轮次中,获取上一轮次迭代生成对抗样本时,所述代理模型的损失结果和各个参数自身的权重;
计算单元322,被配置为在每个迭代轮次中,基于所述代理模型的损失结果和所述参数自身的权重计算各个参数自身的梯度;以及
将各个参数的梯度作为对应参数的重要性分数,所述重要性分数用于表示相应轮次中代理模型的对应参数对生成的对抗样本的影响程度;
剪枝单元323,被配置为在每个迭代轮次中,根据预设规则以及所述代理模型的各个参数的重要性分数剪除所述代理模型的部分参数;
更新单元324,被配置为在每个迭代轮次中,根据剪除部分参数后保留的各个参数更新所述代理模型;
确定单元325,被配置为在每个迭代轮次中,将达到预设终止条件时生成的对抗样本作为最终的对抗样本。
在本实施方式的一个实施例中,所述获取单元321还被配置为根据预设方式随机采样生成多个服从预设概率分布的白噪声;以及
在该轮次生成的对抗样本上叠加所述白噪声得到多个输入样本;以及
将所述多个输入样本输入所述代理模型得到多个损失结果;
所述计算单元322还被配置为基于所述多个损失结果和各个参数自身的权重计算得到每一个参数的多个梯度;以及
根据每一个参数的多个梯度计算对应参数的重要性分数。
在本实施方式的一个实施例中,所述预处理模块310还提供包括多个原始样本的原始样本集;
所述计算单元322还被配置为基于所述代理模型的损失结果和所述参数自身的权重,计算在生成每一对抗样本时各个参数自身的梯度;以及
基于各个参数的多个梯度计算对应参数的重要性分数。
在本实施方式的一个实施例中,某一参数的重要性分数为所述参数的梯度的绝对值或所述参数的多个梯度的平均数值。
在本实施方式的一个实施例中,所述预设规则包括剪除重要性分数低于预设阈值的参数和/或以预设的剪枝率进行参数剪除。
在本实施方式的一个实施例中,所述剪枝单元323包括:
第一排序子单元,被配置为基于各个参数的重要性分数,按照从高到低的顺序对各个参数进行排序;
第一剪除子单元,被配置为根据所述剪枝率对排序在后的部分参数进行剪除。
在本实施方式的一个实施例中,所述剪枝单元323包括:
第二排序子单元,被配置为针对代理模型每一层的参数的重要性分数,按照从高到低的顺序对各个参数进行排序;
第二剪除子单元,被配置为根据所述剪枝率,对所述代理模型的每一层中排序在后的部分参数进行剪除。
在本实施方式的一个实施例中,所述剪枝单元323还被配置为通过将数值设为0的方式将所述代理模型的部分参数剪除。
在本实施方式的一个实施例中,所述基于迭代的对抗样本生成算法包括动量迭代式对抗样本生成算法;
其中,
表示第
i轮更新得到的动量,
表示动量衰减速度,
表示代理模型的损失函数计算得到的损失结果
关于第i-1轮生成的对抗样本
的梯度,
表示L1范数,
y表示
所对应的原始样本
X的类别,
表示将修改中的对抗样本
投影到距离原始样本
X不超过ϵ的范围内,其中α是超参数。
在本实施方式的一个实施例中,在第
i轮迭代时,通过以下方式计算某个参数对上一轮次生成的对抗样本
的重要性分数:
其中,ΔX为随机生成的白噪声,N(0,δ 2 I)表示一个期望为0,标准差为δ的高斯分布,I表示单位矩阵,ΔX∼N(0,δ 2 I)表示ΔX服从概率分布N,d表示微分,w表示参数的权重。
示例性介质
在介绍了本发明示例性实施方式的方法和装置之后,接下来,参考图4对本发明示例性实施方式的计算机可读存储介质进行说明,请参考图4,其示出的计算机可读存储介质为光盘40,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会实现上述方法实施方式中所记载的各步骤,例如,提供代理模型、原始样本和一基于迭代的对抗样本生成算法;基于代理模型、原始样本和对抗样本生成算法迭代生成对抗样本,直到达到预设终止条件;在每个迭代轮次中:所述代理模型的损失结果和各个参数自身的权重;基于所述代理模型的损失结果和所述参数自身的权重计算各个参数自身的梯度;将各个参数的梯度作为对应参数的重要性分数,所述重要性分数用于表示相应轮次中代理模型的对应参数对生成的对抗样本的影响程度;根据预设规则以及所述代理模型的各个参数的重要性分数剪除所述代理模型的部分参数;根据剪除部分参数后保留的各个参数更新所述代理模型;将达到预设终止条件时生成的对抗样本作为最终的对抗样本;各步骤的具体实现方式在此不再重复说明。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
示例性计算设备
在介绍了本发明示例性实施方式的方法、装置和介质之后,接下来,参考图5对本发明示例性实施方式的基于代理模型进行对抗样本生成的计算设备。
图5示出了适于用来实现本发明实施方式的示例性计算设备50的框图,该计算设备50可以是计算机系统或服务器。图5显示的计算设备50仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算设备50的组件可以包括但不限于:一个或者多个处理器或者处理单元501,系统存储器502,连接不同系统组件(包括系统存储器502和处理单元501)的总线503。
计算设备50典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算设备50访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器502可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)5021和/或高速缓存存储器5022。计算设备50可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,ROM5023可以用于读写不可移动的、非易失性磁介质(图5中未显示,通常称为“硬盘驱动器”)。尽管未在图5中示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线503相连。系统存储器502中可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块5024的程序/实用工具5025,可以存储在例如系统存储器502中,且这样的程序模块5024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块5024通常执行本发明所描述的实施例中的功能和/或方法。
计算设备50也可以与一个或多个外部设备504(如键盘、指向设备、显示器等)通信。这种通信可以通过输入/输出(I/O)接口505进行。并且,计算设备50还可以通过网络适配器506与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图5所示,网络适配器506通过总线503与计算设备50的其它模块(如处理单元501等)通信。应当明白,尽管图5中未示出,可以结合计算设备50使用其它硬件和/或软件模块。
处理单元501通过运行存储在系统存储器502中的程序,从而执行各种功能应用以及数据处理,例如,提供代理模型、原始样本和一基于迭代的对抗样本生成算法;基于代理模型、原始样本和对抗样本生成算法迭代生成对抗样本,直到达到预设终止条件;在每个迭代轮次中:获取上一轮次迭代生成对抗样本时,所述代理模型的损失结果和各个参数自身的权重;
基于所述代理模型的损失结果和所述参数自身的权重计算各个参数自身的梯度;将各个参数的梯度作为对应参数的重要性分数,所述重要性分数用于表示相应轮次中代理模型的对应参数对生成的对抗样本的影响程度;根据预设规则以及所述代理模型的各个参数的重要性分数剪除所述代理模型的部分参数;根据剪除部分参数后保留的各个参数更新所述代理模型;将达到预设终止条件时生成的对抗样本作为最终的对抗样本。各步骤的具体实现方式在此不再重复说明。应当注意,尽管在上文详细描述中提及了基于代理模型的对抗样本生成装置的若干单元/模块或子单元/子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。