一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

生成对抗样本的方法、检测器的训练方法及相关设备与流程

2022-03-16 01:20:25 来源:中国专利 TAG:


1.本技术涉及神经网络模型训练,尤其涉及一种生成对抗样本的方法、检测器的训练方法及相关设备。


背景技术:

2.在过去的几十年里,机器学习在人工智能的应用领域中飞速发展,例如计算机视觉、自然语言处理等等。而在机器学习当中,深度神经网络(dnn)模型是推动人工智能领域发展的最重要的模型之一,但基于深度神经网络的应用难以部署在安全要求极高的关键系统当中。近年来,与深度神经网络相关的安全问题被不断提出,例如,攻击者可以通过对给定样本应用有意选择的扰动来欺骗dnn模型对样本输入进行错误分类。
3.研究多种典型恶意深度神经网络威胁模型下的木马检测方法是解决深度神经网络木马的首要任务。其中,人不易察觉的恶意输入样本是所有木马中最具备威胁的攻击技术之一,因此如何训练得到一种用于检测深度神经网络样本数据的检测器,利用其对输入深度神经网络的样本数据是否携带深度神经网络木马进行检测是解决此类问题的首要任务。


技术实现要素:

4.有鉴于此,本技术的目的在于提出一种用于检测深度神经网络木马的网络模型的训练方法及装置。
5.基于上述目的,本技术第一方面提供了一种生成对抗样本的方法,由电子设备实现,包括:
6.获取干净的训练样本集;
7.对于所述训练样本集中的每个训练样本,
8.通过对该训练样本进行对抗攻击,得到多个对抗实例;
9.根据所述多个对抗实例中指示对抗成功的每个目标对抗实例的对抗攻击信息,选择目标标签;
10.基于所述目标标签生成与该训练样本对应的对抗样本;
11.存储所述对抗样本。
12.进一步地,所述基于所述目标标签生成与该训练样本对应的对抗样本包括:
13.利用梯度迭代算法,基于所述目标标签生成与该训练样本对应的对抗样本。
14.进一步地,所述利用梯度迭代算法,基于所述目标标签生成与该训练样本对应的对抗样本,包括:
15.基于所述目标标签,通过迭代生成对应的最小范数对抗扰动;
16.迭代地执行下列修改所述目标标签和所述最小范数对抗扰动的操作,直至满足预设的迭代结束条件:
17.基于所述最小范数对抗扰动对所述目标标签进行修改;
18.将修改后的所述目标标签输入预先训练好的分类器中,得到分类结果;
19.响应于确定所述分类结果正确,按预定步长修改所述最小范数对抗扰动,其中,所述迭代结束条件包括所述分类结果错误;
20.将最后修改的所述目标标签确定为所述对抗样本。
21.基于同一发明构思,本技术第二方面提供了一种用于检测样本数据的检测器的训练方法,包括:
22.基于干净的训练样本集,利用上述第一方面任一项所述的方法得到与该训练样本集对应的对抗样本集;
23.利用所述训练样本集对所述检测器进行二元分类任务的第一训练;
24.利用所述对抗样本集对经过第一训练的所述检测器进行二元分类任务的第二训练。
25.进一步地,还包括:
26.在进行所述第一训练之前,利用所述训练样本集对所述检测器进行二元分类任务的预训练。
27.进一步地,所述利用所述训练样本集对所述检测器进行二元分类任务的第一训练包括:
28.将所述训练样本集分为训练集和验证集;
29.预设深度神经网络中的各权值和阈值;
30.初始化所述检测器的学习速率和样本误差阈值;
31.对于所述训练集中的每个样本,
32.将所述样本输入所述检测器中,输出对应的第一实际输出值;
33.计算所述第一实际输出值与所述样本对应的第一理想输出值之间的第一误差值;
34.利用所述第一误差值反向传播调整所述权值和所述阈值;
35.对于所述验证集中的每个样本,
36.将所述样本输入所述检测器中,输出对应的第二实际输出值;
37.计算所述第二实际输出值与所述样本对应的第二理想输出值之间的第二误差值;
38.计算所有所述第二误差值的总误差值;
39.响应于确定所述总误差值小于等于预设的误差阈值,结束所述第一训练。
40.进一步地,所述利用所述对抗样本集对经过第一训练的所述检测器进行二元分类任务的第二训练包括:
41.将所述对抗样本集分为训练对抗样本集和验证对抗样本集;
42.对于所述训练对抗样本集中的每个样本,
43.将所述样本输入经过第一训练的所述检测器中,输出对应的第三实际输出值;
44.计算所述第三实际输出值与所述样本对应的第三理想输出值之间的第三误差值;
45.利用所述第三误差值反向传播调整所述权值和所述阈值;
46.对于所述验证对抗样本集中的每个样本,
47.将所述样本输入经过第一训练的所述检测器中,输出对应的第四实际输出值;
48.计算所述第四实际输出值与所述样本对应的第四理想输出值之间的第四误差值;
49.计算所有所述第四误差值的误差总值;
50.响应于确定所述误差总值小于等于所述预设的误差阈值,结束所述第二训练。
51.基于同一发明构思,本技术第三方面提供了一种生成对抗样本的装置,包括:
52.获取模块,被配置为获取干净的训练样本集;
53.对抗攻击模块,被配置为对于所述训练样本集中的每个训练样本,通过对该训练样本进行对抗攻击,得到多个对抗实例;
54.选择模块,被配置为根据所述多个对抗实例中指示对抗成功的每个目标对抗实例的对抗攻击信息,选择目标标签;
55.生成模块,被配置为基于所述目标标签生成与该训练样本对应的对抗样本;
56.存储模块,被配置为存储所述对抗样本。
57.基于同一发明构思,本技术第四方面提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现上述第一方面任意一项所述的方法。
58.基于同一发明构思,本技术第五方面提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现根据上述第二方面任意一项所述的方法。
59.从上面所述可以看出,本技术提供的生成对抗样本的方法和检测器训练方法及设备,在训练样本集的基础上动态调整,逐步修改最终形成对抗样本集。利用训练样本集及对抗样本集对检测器进行训练,最终训练得到可以用于检测输入深度神经网络的样本数据是否还有深度神经网络木马。将该检测器设置于深度神经网络的前置位,利用其对输入神经网络的样本数据进行检测,判断样本是否来自真实的数据,是否含有对抗木马。该检测器能够准确高效地区分干净数据和包含深度神经网络木马的数据,检测精度高,且在一定程度上解决深度神经网络的安全问题。
附图说明
60.为了更清楚地说明本技术或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
61.图1为本技术实施例的生成对抗样本的方法的流程示意图;
62.图2为本技术实施例的用于检测样本数据的检测器的训练方法的流程示意图;
63.图3为本技术实施例的生成对抗样本的装置的结构示意图;
64.图4为本技术实施例的电子设备的结构示意图。
具体实施方式
65.为使本技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本技术进一步详细说明。
66.需要说明的是,除非另外定义,本技术实施例使用的技术术语或者科学术语应当为本技术所属领域内具有一般技能的人士所理解的通常意义。本技术实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的
组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
67.深度神经网络容易受到对抗攻击,例如在利用深度学习对图像进行分类训练的过程中,当添加一些无法察觉且精心选择的噪声(即对抗木马)时,可能会使训练好的深度神经网络错误地对图像进行分类。带有对抗木马的图像和干净的图像在视觉空间上难以区分,但它们的细微差别可以成功地欺骗深度神经网络。这意味着深度神经网络对这些细微的差异非常敏感,因此能够通过利用这些细微的差异来区分对抗图像和干净图像。
68.近年来,与深度神经网络相关的安全问题被不断提出,例如,攻击者可以通过对给定样本应用有意选择的扰动来欺骗dnn模型对样本输入进行错误分类。研究多种典型恶意深度神经网络威胁模型下的木马检测方法是解决深度神经网络木马的首要任务。其中,人不易察觉的恶意输入样本是所有木马中最具备威胁的攻击技术之一,因此如何训练得到一种用于检测深度神经网络木马的检测器,利用其对输入的样本是否携带木马进行检测是解决此类问题的首要任务。
69.基于上述问题,本技术提供了一种生成对抗样本的方法和检测器训练方法及设备。
70.参见图1,本技术提供了一种生成对抗样本的方法,包括如下步骤:
71.步骤s101、获取干净的训练样本集。
72.具体的,训练样本为选取的不含有深度神经网络木马的干净样本数据,训练样本集为多个训练样本的集合。选取的训练样本可以为图像、语音等样本,根据实际情况进行选择。在本实施例中,选取的训练样本为图像样本。
73.步骤s102、对于所述训练样本集中的每个训练样本,通过对该训练样本进行对抗攻击,得到多个对抗实例;根据所述多个对抗实例中指示对抗成功的每个目标对抗实例的对抗攻击信息,选择目标标签;基于所述目标标签生成与该训练样本对应的对抗样本;存储所述对抗样本。
74.具体的,使用对抗攻击的方法来对所述训练样本集中的每个训练样本进行对抗攻击。所述对抗攻击方法包括但不限于快速梯度符号法(fast gradient sign method,fgsm)、基本迭代攻击/投影梯度下降(basic iterative attack/projected gradient descent,bia/pgd)、分布式对抗攻击(distributionally adversarial attack,daa)、基于雅可比的显著图攻击(jacobian-based saliency map attack,jsma)等,具体选用的对抗攻击方法根据实际情况选择,在此不做限定。在本实施例中,选用快速梯度符号法对训练样本进行对抗攻击。
75.具体的,以训练样本为图像样本为例,待检测的神经网络木马是针对图像识别领域的深度神经网络木马,判断对训练样本集中的样本进行对抗攻击是否成功的标准如下:
76.(1)首先将训练样本集中的训练样本数据输入已经训练好的用于图像识别的工作模型当中,所述工作模型可以正确的识别输入的训练样本;
77.(2)对所述输入的训练样本进行对抗攻击,生成预对抗样本;
78.(3)将所述预对抗样本的数据输入所述工作模型当中,如果工作模型无法正确的识别所述预对抗样本,则认为此次对抗攻击是成功的;如果工作模型仍然可以正确识别所述预对抗样本,那么此次对抗攻击是失败的;
79.(4)在进行对抗攻击的过程中,记录每个成功的对抗攻击实例的对抗攻击信息,对抗攻击信息包括是否攻击成功以及对抗攻击对应生成的预对抗样本,将每个对抗成功的训练样本标记为目标标签。
80.具体的,在本实施例中,利用梯度迭代算法,基于所述目标标签生成与该训练样本对应的对抗样本。将所述目标标签输入已经预先训练好的分类器中,在所述分类器中依据梯度迭代的算法对所述目标标签进行计算,最终得到目标标签对应的对抗样本。每个目标标签均生成对应的对抗样本,所有对抗样本的集合称为对抗样本集。
81.在一些实施例中,所述利用梯度迭代算法,基于所述目标标签生成与该训练样本对应的对抗样本,包括:
82.基于所述目标标签,通过迭代生成对应的最小范数对抗扰动;迭代地执行下列修改所述目标标签和所述最小范数对抗扰动的操作,直至满足预设的迭代结束条件:基于所述最小范数对抗扰动对所述目标标签进行修改;将修改后的所述目标标签输入预先训练好的分类器中,得到分类结果;
83.响应于确定所述分类结果正确,按预定步长修改所述最小范数对抗扰动,其中,所述迭代结束条件包括所述分类结果错误;
84.将最后修改的所述目标标签确定为所述对抗样本。
85.具体的,所述基于所述目标标签,通过迭代生成对应的最小范数对抗扰动详述如下:
86.本实施例中,响应于确定所述已经预先训练好的分类器中的分类函数为f(x)=w
t
b,放射平面即分类器的决策边界为γ={x:w
t
b=0},如果在分类函数的某一点x0加入扰动后x0垂直于平面γ,则加入的扰动最小且符合迭代要求,因此利用下式得到所述最小范数对抗扰动:
[0087][0088]
其中,w为权重,b为偏差,x0为分类函数中的某一点,r
*
(x0)为x0到放射平面的最小距离,r是x0到放射平面的距离,t为计算参数。
[0089]
上式的约束条件是最小扰动,当需要找到目标标签的最小范数对抗扰动时,只需要找到目标标签对应的分类函数的坐标x0到分类器的分类边界(即放射平面)的最短距离(也就是投影距离),就能找到目标标签对应的最小范数对抗扰动。
[0090]
具体的,所述基于所述最小范数对抗扰动对所述目标标签进行修改;将所述修改后的所述目标标签输入预先训练好的分类器中,得到分类结果,详述如下:
[0091]
在本实施例中,基于上述得到的最小范数对抗扰动对所述目标标签进行修改,并将修改后的目标标签输入已经预训练好的二元分类器中,输出目标标签的分类结果。
[0092]
在整体的迭代过程中,对抗样本生成符合下式:
[0093][0094]
将所述目标标签重复进行上述步骤,每一次迭代时将位于分类边界内的目标标签一步一步修改到边界外,直到所述目标标签的分类结果最终出现分类错误为止,将最终修改后的所述目标标签确定为对抗样本。
[0095]
计算每个分类边界的距离需要花费大量时间,有些分类边界甚至远离当前输入数据,但是本技术所述的生成对抗样本的方法能够在生成对抗样本的过程中利用对抗攻击信息来减少遍历标签的数量。因此,本方法能够减少产生对抗样本的时间,且保证成功率不低于常用的对抗样本生成算法。
[0096]
使用本技术所述的生成对抗样本的方法,在依据训练样本生成对抗样本的过程中,可以动态的调整目标标签,将目标标签逐步修改,直至其生成对抗样本,整个动态调整的过程灵活性更强,精度更高,生成的对抗样本可以更好的用于检测器的训练。
[0097]
参考图2,本技术还提供了一种用于检测样本数据的检测器的训练方法,包括如下步骤:
[0098]
步骤s301、基于干净的训练样本集,利用根据上述任一实施例所述的方法得到与该训练样本集对应的对抗样本集。
[0099]
具体的,根据需要对抗样本的数量,可以对上述目标标签进行重复攻击,以得到符合数量要求的对抗样本集。例如有100个训练样本,对所有训练样本全部进行对抗攻击之后,仅有50个训练样本被对抗攻击成功,生成了预对抗样本,其余50个对抗攻击失败,无法生成预对抗样本,因此此时仅有50个预对抗样本。但是如果需要100个预对抗样本,那么需要对50个目标标签再次进行对抗,以再次生成预对抗样本,满足预对抗样本的数目需求。
[0100]
步骤s302、利用所述训练样本集对所述检测器进行二元分类任务的第一训练。
[0101]
具体的,利用所述训练样本集对检测器进行二元分类任务的第一训练,包括如下步骤:
[0102]
步骤一、将所述训练样本集分为训练集和验证集。
[0103]
具体的,所述训练样本集为干净的不含有木马的样本集,用于对所述检测器进行第一训练。在本实施例中,将所述训练样本集中的80%的样本设置为训练集,其余20%的样本设置为验证集。
[0104]
步骤二、预设深度神经网络中的各权值和阈值。
[0105]
具体的,将深度神经网络中的各权值和阈值设为接近于0的随机值,在本实施例中,将深度神经网络中的各权值和阈值设为[-0.5,0.5]区间内接近于0的随机值。
[0106]
步骤三、初始化所述检测器的学习速率和样本误差阈值。
[0107]
具体的,根据实际情况来初始化检测器的学习速率和样本误差阈值。学习速率一般手工设定,如果设置过大则权值调整的幅度也越大,会导致学习的不稳定,如此很有可能会使得训练不能收敛,如果过小网络训练的时间长而且容易陷入局部最优的困境,所以学习速率的选取一般在[0.01,0.8]之间。
[0108]
在本实施例中,所述检测器为基于二元分类任务的检测器。将样本数据输入本检测器中,其对应的输出值在0-1之间,输出值代表的是样本为干净样本的概率,如果输出值
为1,代表样本为干净样本的概率为100%;如果输出值为0,代表样本为干净样本的概率为0。因此,如果输入的是干净的训练样本数据,那么干净的训练样本数据的理论输出值为1,代表样本为干净的样本;如果输入的是含有深度神经网络木马的对抗样本,那么对抗样本的理论输出值为0,代表样本为含有木马的样本。实际使用时,由于检测器的检测精度有限,检测器的实际输出值和理论输出值之间会存在一定程度的偏差,因此需要对检测器进行训练,尽可能的减小实际输出值和理论输出值之间的偏差,以提高检测器的检测精度,使检测器输出的检测结果更加准确,尽可能的降低出现分类错误的概率。
[0109]
步骤四、对于所述训练集中的每个样本,
[0110]
(1)将所述样本输入所述检测器中,输出对应的第一实际输出值;
[0111]
(2)计算所述第一实际输出值与所述样本对应的第一理想输出值之间的第一误差值;
[0112]
(3)利用所述第一误差值反向传播调整所述权值和阈值。
[0113]
具体的,利用所述第一误差值按最小化误差的方法反向传播调整深度神经网络中的各个权值和阈值,以调整深度神经网络各个权值和阈值的比重,使其更为合理,得到的分类结果更为准确。
[0114]
在本实施例中,利用训练集中的每个样本对检测器进行训练,经过多次训练后,深度神经网络各个权值和阈值的比重被多次调整,直至其更加合理和准确。使用训练集全部训练完成后,使用验证集对所述检测器进行验证。
[0115]
步骤五、对于所述验证集中的每个样本,
[0116]
(1)将所述样本输入所述检测器中,输出对应的第二实际输出值;
[0117]
(2)计算所述第二实际输出值与所述样本对应的第二理想输出值之间的第二误差值。
[0118]
步骤六、计算所有所述第二误差值的总误差值。
[0119]
步骤七、响应于确定所述总误差值小于等于预设的误差阈值,结束所述第一训练,此时完成在训练样本集上对检测器的第一训练。
[0120]
具体的,使用验证集重复上述训练步骤,并计算每次训练的第二误差值,当所有验证集的总误差值大于预设的误差阈值时,则说明所述检测器的检测精度还没有达到要求,需继续在训练样本集上对检测器进行训练;当所有验证集的总误差值小于等于预设的误差阈值时,则所述检测器的检测精度符合要求,此时完成在训练样本集上对检测器的训练。
[0121]
步骤s303、利用所述对抗样本集对所述经过第一训练的所述检测器进行二元分类任务的第二训练,训练完成后得到所述用于检测深度神经网络木马的检测器。
[0122]
具体的,利用所述对抗样本集对所述第一训练检测器进行二元分类任务的第二训练,包括如下步骤:
[0123]
步骤一、将所述对抗样本集分为训练对抗样本集和验证对抗样本集。
[0124]
具体的,在本实施例中,依然将对抗样本集中的80%作为训练对抗样本集,其余20%作为验证对抗样本集。
[0125]
步骤二、对于所述训练对抗样本集中的每个样本,
[0126]
(1)将所述样本输入所述经过第一训练的检测器中,输出对应的第三实际输出值;
[0127]
(2)计算所述第三实际输出值与所述样本对应的第三理想输出值之间的第三误差
值;
[0128]
(3)利用所述第三误差值反向传播调整所述权值和阈值。
[0129]
步骤三、对于所述验证对抗样本集中的每个样本,
[0130]
(1)将所述样本输入所述经过第一训练的检测器中,输出对应的第四实际输出值;
[0131]
(2)计算所述第四实际输出值与所述样本对应的第四理想输出值之间的第四误差值。
[0132]
步骤四、计算所有所述第四误差值的误差总值。
[0133]
步骤五、响应于确定所述误差总值小于等于所述预设的误差阈值,结束所述第二训练,则完成在对抗样本集上对经过第一训练的检测器的第二训练。
[0134]
具体的,利用对抗样本集对所述经过第一训练的检测器进行二元分类任务的第二训练,训练过程与所述第一训练过程一致。仍然是首先利用训练对抗样本集中的每个样本对经过第一训练的检测器进行训练,经过多次训练后,深度神经网络各个权值和阈值的比重再次被多次调整,直至其更加合理和准确。使用训练对抗样本集全部训练完成后,使用验证对抗样本集对所述经过第一训练的检测器进行验证。
[0135]
使用验证对抗样本集重复上述训练步骤,并计算每次训练的第四误差值,当所有验证集的误差总值大于预设的误差阈值时,则说明所述检测器的检测精度还没有达到要求,则需继续在对抗样本集上对经过第一训练的检测器进行训练;当所有验证对抗样本集的误差总值小于等于预设的误差阈值时,则说明所述经过第一训练的检测器的检测精度符合要求,此时完成在训练样本集上对第一训练检测器的训练,即第二训练完成,进行第二训练后的检测器即为本技术所述的用于检测样本数据的检测器。
[0136]
对检测器的训练分为使用训练样本集进行的第一训练和在第一训练的基础上,使用对抗样本集对检测器进行第二训练,两次训练之后得到本技术所述的用于检测深度神经网络木马的检测器。
[0137]
在本实施例中,本技术所述的一种用于检测样本数据的检测器的训练方法,经过训练后的检测器用于检测输入深度神经网络中的样本数据中是否含有深度神经网络木马。以图像领域为例,将一定数量的不含有木马的干净图片(假设是猫的图像)输入到检测器当中进行第一训练,采用传统的梯度下降算法进行第一训练,输出结果显示该图像是干净样本还是对抗样本,理论上此时分类器输出的结果显示其为干净数据。待一定数量的干净样本对检测器进行训练完成后,继续使用验证集对其进行验证,当验证集的输出精度达到0.9以上时停止训练。
[0138]
接着使用对抗样本继续对经过第一训练的检测器进行训练,直到验证对抗样本集的验证精度达到0.98时停止训练。
[0139]
实际使用时,将使用本技术所述的用于检测样本数据的检测器的训练方法训练得到的检测器设置于深度神经网络的前置位,利用其对输入神经网络的样本数据进行检测,判断样本是否来自真实的数据,是否含有对抗木马。
[0140]
在本实施例中,同样以图像领域为例,将本技术所述的用于检测深度神经网络木马的检测器设置于深度神经网络的前置位,将输入深度神经网络的图像先输入其前端的经过本技术所述的训练方法训练得到的检测器中,本检测器会精确的检测输入的图片是否含有深度神经网络木马。
[0141]
本技术提供的生成对抗样本的方法和检测器的训练方法及设备,在训练样本集的基础上动态调整,逐步修改最终形成对抗样本集。利用训练样本集及对抗样本集对检测器进行训练,最终训练得到可以用于检测深度神经网络木马的检测器。将该检测器设置于深度神经网络的前置位,利用其对输入神经网络的样本数据进行检测,判断样本是否来自真实的数据,是否含有对抗木马,该检测器能够准确高效地区分干净数据和包含深度神经网络木马的数据,检测精度高,且在一定程度上解决深度神经网络的安全问题。
[0142]
在一些实施例中,在进行所述第一训练之前,利用所述训练样本集对所述检测器进行二元分类任务的预训练。
[0143]
具体的,所述预训练的过程与所述第一训练的过程相同,在此不做赘述。
[0144]
在本实施例中,对检测器的训练分为三个步骤:
[0145]
(1)在训练样本集上对检测器进行预训练,得到预训练检测器;
[0146]
(2)在训练样本集上对所述预训练检测器进行第一训练;
[0147]
(3)在对抗样本集上对所述经过第一训练的检测器进行第二训练。
[0148]
最终训练得到所述用于检测样本数据的检测器。
[0149]
在基于获取的训练样本集生成对抗样本集之前先对检测器进行预训练,可以使得检测器的收敛时间更快,进而提高检测器的检测精度。
[0150]
在一些实施例中,所述一种用于检测样本数据的检测器的训练方法,包括如下步骤:
[0151]
第一、在原始的训练样本集上对检测器进行第一训练。
[0152]
具体的,数据集以图片数据集为例,检测器采用卷积神经网络。
[0153]
卷积神经网络的神经元包含三个维度:宽度、高度和深度,其中宽和高代表图像的尺寸,深度一般为3,即代表rgb三个颜色通道。卷积神经网络的网络结构为:输入层-卷积层-激活层-池化层-全连接层。
[0154]
在输入层中输入像素值为32*32*3,即图像的宽为32,高也为32,带有rgb三个颜色通道,输入层的输出即为卷积层的输入。
[0155]
卷积层根据输入层的输出来计算卷积层的输出,对权重和输入层的输出进行点乘运算,此处使用12个过滤器,故生成维度为32*32*12。卷积层通过卷积操作提取输入的不同特征,应选取合适的网络深度、特征面数目、卷积核的大小及卷积时滑动的步长,从而在训练中能够获得一个好的模型并且减少训练时长。
[0156]
激活层采用线性整流函数(relu)。
[0157]
池化层在空间维度上进行采样,生成维度为16*16*12的输出,能够通过压缩数据和参数的量,减小过拟合。
[0158]
全连接层中的每个神经元与其前一层的所有神经元进行全连接,能够整合卷积层或者池化层中具有类别区分性的局部信息。全连接层的输出维度是1*1*2。对于每次的输入,全连接层均会有两个输出,一个输出每次输入,都有两个输出,一个输出数据代表输入样本为干净样本的概率,一个输出数据代表输入样本为含有深度神经网络木马样本的概率,比较两个输出数据,数据较大的即为本次输出的最终结果,输出的结果代表着输入样本为干净样本或含有木马的样本。
[0159]
对检测器(即上述卷积神经网络)的整体训练过程如下:
[0160]
首先,用随机值对所有的过滤器和参数进行初始化。
[0161]
将网络各个权值和阈值设为[-0.5,0.5]区间中接近于0的随机值,并初始化学习速率和样本误差阈值。
[0162]
学习速率一般手工设定,如果设置过大则权值调整的幅度也越大,会导致学习的不稳定,如此很有可能会使得训练不能收敛,如果过小网络训练的时间长而且容易陷入局部最优的困境,所以学习速率的选取一般在[0.01,0.8]之间。
[0163]
然后,将原始的训练数据集输入神经网路,经过前向传播步骤能够得到两个类的输出概率。在前向传播过程中,输入的图形数据经过多层卷积层的卷积核池化处理,提出特征向量,将特征向量传入全连接层中,得出分类识别的结果。由于数据从输入层到输出层,期间经过了卷积层、下采样层、全连接层,而数据在各层之间传递的过程中难免会造成数据的损失,则也就导致了误差的产生。而每一层造成的误差值是不一样的,所以需要求出网络的总误差,并将误差传入网络中,求得该各层对于总的误差应该承担多少比重。
[0164]
因此接着使用反向传播计算网络中所有权重的误差梯度,并使用梯度下降更新所有的过滤器值和参数值,从而碎消化输出误差,根据权重对总误差的贡献对其进行调整。
[0165]
对训练样本集中的所有图像重复前向传播和反向传播步骤,对神经网络进行训练。这一过程,检测器在原始的训练样本数据集上进行训练,即全为原始的真实数据。
[0166]
第二、利用所述生成对抗样本的方法,基于获取的训练样本集生成对抗样本集。这一步骤中,将详细阐述本技术所提出的生成对抗样本的方法。
[0167]
深度神经网络是一种高度非线性的模型,非线性单元赋予了深度神经网络强大的表达能力,但是非线性单元的存在会降低学习的效率,而为了提高学习效率,通常是通过降低非线性来实现的,从sigmoid函数到relu函数,非线性单元的线性行为在不断增强,这在一定程度上解释了深度神经网络中对抗性样例存在的原因。
[0168]
本技术所提出的生成对抗样本的方法可以大致分为三个步骤:首先,对获取的训练样本集中的每个样本进行对抗攻击,记录每个成功的对抗实例的对抗攻击信息;其次,将每个对抗成功的样本标记为目标标签;最后,将目标标签应用于基于梯度迭代的方法生成扰动较小的对抗样本。
[0169]
本方法中起到动态适应的算法为动态自适应标签集生成,该算法能够根据攻击信息字典和当前输入的标签找到标签集的特定子集。
[0170]
例如,对于mnist数据集,所有标签集都是0-9,因此信息字典中所有键的值都是0-9。通过在生成对抗性例子的过程中不断更新信息字典,就可以得到所有具有特定密钥的成功标签的列表,每个标签的计数就可以看作是攻击目标标签的可能性。关于可能性的攻击信息可以有效帮助目标标签的选择,提高选择的效率。
[0171]
其中,信息字典的更新方法为,根据成功生成对抗样本来改动信息字典的标签和对应的值。接着,将该动态适应的算法与基于梯度迭代的对抗样本生成方法相结合。为了找到最接近的目标标签以生成对抗样本,该方法遍历数据集的所有标签,然后计算每个分类边界的距离,选择最接近的分类边界以在梯度方向上添加一些扰动。
[0172]
计算每个分类边界的距离需要花费大量时间,有些分类边界甚至远离当前输入数据。但是本技术所述的生成对抗样本的方法能够在生成对抗实例的过程中利用对抗攻击信息来减少遍历标签的数量。因此,本方法能够减少产生对抗样本的时间,且保证成功率不低
于常用的对抗样本生成算法。
[0173]
在聚类问题中,具有相同属性的输入数据可以通过训练好的聚类算法自动聚类成一组。聚类的距离度量大多基于欧氏距离。相反,假设由神经网络分类到同一标签中的不同输入图像也应该具有一定的相关性。当图像作为神经网络的输入时,它被转换成向量,所以如果两个图像被神经网络分类到同一个标签中。两个向量之间的距离应该比较近,训练后的神经网络的分类边界也具有很高的相似性。通过大量的实验,根据大数定律,可以找出被神经网络分类为特定标签的数据之间可能的分类边界。由此,可以在生成对抗样本时使用更接近的分类边界来计算梯度。因此,对于当前输入图像标签,那些不太可能被成功攻击的标签不需要计算梯度。对于当前输入图像,只有几个可能被成功攻击的标签需要计算梯度。与遍历数据集的所有标签相比,它可以减少计算梯度的次数,并且还可以提高生成对抗样本的效率。
[0174]
因此,根据本技术所述的动态自适应算法,使用基于梯度迭代的方法生成对抗样本,每次成功生成对抗样本都更新一次信息字典,如此选择一个标签子集来减少计算距离的次数,可以提高成功选择正确标签作为目标的概率。
[0175]
所述基于梯度迭代的方法具体描述如下:
[0176]
假设分类器的分类函数f(x)=wt b,根据分类函数,可知其放射平面即分类器的决策边界为γ={x:wt b=0},如果在分类函数的某一点x0加入扰动后x0垂直于平面γ,则加入的扰动最小且符合迭代要求,如下式:
[0177][0178]
其中,w为权重,b为偏差,x0为分类函数中的某一点,r*(x0)为x0到放射平面的最小距离,r是x0到放射平面的距离,t为计算参数。
[0179]
整体的迭代过程中,对抗样本生成符合下式:
[0180][0181]
通过迭代生成最小范数对抗扰动,每一步将位于分类边界内的像素一步一步修改到边界外,直到最终出现分类错误为止。
[0182]
第三,利用得到的原始的训练数据集和对抗样本集对检测器进行训练,此时样本的标签为真实样本和对抗样本,即采用有监督学习的方法进行训练。整个训练过程分为两个阶段:第一个阶段是数据由低层次向高层次传播的阶段,即前向传播阶段;第二个阶段是当前向传播得出的结果与预期不相符时,将误差从高层次向低层次进行传播训练的阶段,即反向传播阶段。
[0183]
在前向传播过程中,输入的图像数据经过多层卷积层的卷积和池化处理,提出特征向量,将特征向量传入全连接层中,得到分类识别的结果。当输出的结果与期望值相符时输出结果。
[0184]
在反向传播过程中,求出结果与期望值的误差,再将误差一层一层的返回,计算出每一层的误差,然后进行权值更新,该过程的主要目的是通过训练样本和期望值来调整网
络权值。
[0185]
由此,反向传播的过程大致为:第一,求出网络的总差之后,进行反向传播过程,将误差传入输出层的上一层全连接层,求出在该层中,产生了多少误差。而网络的误差又是由组成该网络的神经元所造成的,所以要求出每个神经元在网络中的误差。求上一层的误差,需要找出上一层中哪些节点与该输出层连接,然后用误差乘以节点的权值,求得每个节点的误差。首先,在池化层中,根据采用的池化方法,把误差传入到上一层。其次,误差到达卷积层,卷积层中采用的是局部连接的方式,和全连接层的误差传递方式不同,在卷积层中,误差的传递也是依靠卷积核进行传递的。在误差传递的过程,需要通过卷积核找到卷积层和上一层的连接节点。求卷积层的上一层的误差的过程为:先对卷积层误差进行全零填充,然后将卷积层进行180度旋转,再用旋转后的卷积核卷积填充过程的误差矩阵,并得到了上一层的误差。
[0186]
综上,检测器利用真实的样本数据和生成的对抗样本完成了训练过程。
[0187]
第四,由以上步骤训练完成的检测器可以设置在深度神经网络的前端,能够对样本数据进行预处理和检测,能够在一定程度上检测是否受到对抗木马的攻击。
[0188]
从上面所述可以看出,本技术提供的生成对抗样本的方法和检测器训练方法及设备,在训练样本集的基础上动态调整,逐步修改最终形成对抗样本集。利用训练样本集及对抗样本集对检测器进行训练,最终得到可以用于检测深度神经网络木马的检测器。将该检测器设置于深度神经网络的前置位,利用其对输入神经网络的样本数据进行检测,判断样本是否来自真实的数据,是否含有对抗木马,该检测器能够准确高效地区分干净数据和包含深度神经网络木马的数据,检测精度高,且在一定程度上解决深度神经网络的安全问题。
[0189]
需要说明的是,本技术实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本技术实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
[0190]
需要说明的是,上述对本技术的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0191]
基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种生成对抗样本的装置。
[0192]
参考图3,所述生成对抗样本的装置,包括:
[0193]
获取模块401,被配置为获取干净的训练样本集;
[0194]
对抗攻击模块402,被配置为对于所述训练样本集中的每个训练样本,通过对该训练样本进行对抗攻击,得到多个对抗实例;
[0195]
选择模块403,被配置为根据所述多个对抗实例中指示对抗成功的每个目标对抗实例的对抗攻击信息,选择目标标签;
[0196]
生成模块404,被配置为基于所述目标标签生成与该训练样本对应的对抗样本;
[0197]
存储模块405,被配置为存储所述对抗样本。
[0198]
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本技术时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
[0199]
上述实施例的装置用于实现前述任一实施例中相应的生成对抗样本的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0200]
基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的生成对抗样本的方法。
[0201]
基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,其特征在于,所述处理器在执行所述计算机程序时实现上任意一实施例所述的用于检测样本数据的检测器的训练方法。
[0202]
图4示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
[0203]
处理器1010可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
[0204]
存储器1020可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
[0205]
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
[0206]
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
[0207]
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
[0208]
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
[0209]
上述实施例的电子设备用于实现前述任一实施例中相应的生成对抗样本的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0210]
基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种非暂
态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的生成对抗样本的方法。
[0211]
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
[0212]
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的生成对抗样本的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0213]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本技术的范围(包括权利要求)被限于这些例子;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
[0214]
另外,为简化说明和讨论,并且为了不会使本技术实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本技术实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本技术实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本技术的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本技术实施例。因此,这些描述应被认为是说明性的而不是限制性的。
[0215]
尽管已经结合了本技术的具体实施例对本技术进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
[0216]
本技术实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本技术实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献