System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种快速多范数自动梯度上升的对抗训练方法技术_技高网

一种快速多范数自动梯度上升的对抗训练方法技术

技术编号:41103605 阅读:5 留言:0更新日期:2024-04-25 13:59
本发明专利技术提供一种快速多范数自动梯度上升的对抗训练方法,主要解决PGD对抗训练及其他基于PGD的对抗训练方法,单次网络更新速度相对较快,但仅具备无穷范数对抗样本的防御能力和MSD对抗训练及其他多范数对抗训练方法单次网络更新速度缓慢且只能在小模型上进行训练,难以向大模型或大数据集上扩展的问题。本发明专利技术提出一种基于快速多范数自动梯度上升的对抗训练方法,单次网络更新需要c+n+1次前后向过程,其中n取10,c指使用几种范数的对抗样本,因此本发明专利技术提出的方法在速度上与PGD对抗训练是一个量级,在效果上可以实现优于MSD方法的多范数鲁棒性。

【技术实现步骤摘要】

本专利技术属于计算机视觉领域,主要涉及一种自动梯度上升的对抗训练方法。


技术介绍

1、在计算机视觉领域中,对抗样本是指通过对预输入神经网络的自然样本进行人为改动所产生的一批人造样本。这些样本在不影响人类视觉鉴别能力的前提下,具有诱导神经网络输出错误的判断结果的能力,例如产生分类错误,定位错误等问题。对于图片分类问题,自然样本与其对抗样本在人类的视觉中没有差异,但神经网络分类器会以较高的置信度分别对自然样本及其对抗样本做出正确与错误的分类结果。对抗样本防御是指通过对神经网络进行优化,使其在尽可能保留对自然样本的判断能力的同时,具备能对对抗样本做出正确判断的能力。目前被证明最为有效的对抗样本防御算法是对抗训练,对抗训练通过在训练过程中引入对抗样本来引导网络具备一定的鲁棒性,即对对抗样本做出正确分类结果的能力。

2、现有技术中,基本的神经网络分类器的训练过程是将一批样本送入分类器,得到网络输出的类别得分向量,结合类别得分向量与真实的类别标签,计算交叉熵损失函数,经过bp算法得到网络的更新梯度,之后对网络进行更新。常用的pgd(projected gradientdescent)对抗训练过程是将一批样本送入分类器,得到网络输出的类别得分向量,结合类别得分向量与真实的类别标签,计算交叉熵损失函数,使用bp算法得到损失函数相对于图片的梯度,沿梯度方向更新图片,最大化损失函数,且使用无穷范数约束对图片添加的噪声的大小,从而获得一批对抗样本,之后按照标准神经网络分类器的训练过程将这批对抗样本送入分类器,得到网络输出的类别得分向量,结合类别得分向量与真实的类别标签,计算交叉熵损失函数,经过bp算法得到网络的更新梯度,之后对网络进行更新。总结来说pgd对抗训练算法网络的每次更新需要两步完成,第一步生成无穷范数对抗样本,第二步使用对抗样本更新网络参数,第一步生成对抗样本的过程通常是一个迭代的过程,一般需要重复n次,因此标准训练过程中网络的一次更新需要一次前后向过程,对于pgd对抗训练而言需要总共需要n+1次前后向过程。而msd(multi steepest descent)对抗训练过程,与pgd对抗训练类似,在msd对抗训练过程中网络的一次更新也需要两步完成,第一步生成多范数对抗样本,第二步使用对抗样本更新网络参数,同理第一步也是一个迭代过程,具体来说,每一次迭代,此方法会生成三种范数的对抗性噪声,分别为一范数、二范数与无穷范数对抗性噪声,然后分别将其叠加在样本上观测网络损失函数的变化,选择使网络损失函数增大最多的那个对抗性噪声,丢弃另外两种噪声,即一次迭代过程中总计包含3次前后向过程,而这样的迭代过程总计需要n次。因此msd对抗训练过程中一次网络参数更新需要3*n+1次前后向过程。

3、pgd对抗训练及其他基于pgd的对抗训练方法,单次网络更新需要n+1次前后向过程,n通常取10,速度相对较快,但仅具备无穷范数对抗样本的防御能力;msd对抗训练及其他多范数对抗训练方法单次网络更新需要3*n+1次前后向过程,n通常取50,虽然具备多范数对抗样本的防御能力,但是速度十分缓慢,只能在小模型,小数据集上进行训练,难以向大模型或大数据集上扩展。


技术实现思路

1、为了克服现有技术的不足,本专利技术提供一种快速多范数自动梯度上升的对抗训练方法,在训练速度上与pgd对抗训练是一个量级,在训练效果上可以实现优于msd方法的多范数鲁棒性。

2、本专利技术解决其技术问题所采用的技术方案是:

3、一种快速多范数自动梯度上升的对抗训练方法,包括如下步骤:

4、步骤s0:将数据集中的自然样本图片按照划分为nbat批,每一批次的自然样本图片集为(x,y),其中n表示这个批次样本的数量,c×h×w表示自然样本图片的图层数×高×宽,y为独热标签,c为分类的类别数;

5、步骤s1:单步预攻击;

6、从自然样本图片集(x,y)取自然样本(x,y),其中神经网络分类器记为fθ(·);

7、步骤s101:基于交叉熵损失函数求自然样本的梯度信息;

8、输入为自然样本(x,y),输出为梯度信息交叉熵损失函数通过链式求导法则得到交叉熵损失函数相对于x的梯度,即

9、步骤102:基于梯度信息求取一范数对抗性噪声;公式如下:

10、

11、

12、

13、

14、其中代表对g逐点求绝对值,代表|g|的第i个元素值,|g|q代表|g|中第q大的元素值,代表单步噪声的一范数大小,代表最终一范数对抗性噪声的一范数大小;整个过程相当于选择梯度绝对值最大的q个点添加扰动,对逐点处理得到表示投影过程;clip(-x,1-x代表将元素值裁剪到[-x,1-x],使得即像素值为合法取值;

15、步骤103:基于梯度信息求取二范数对抗性噪声;公式如下:

16、

17、

18、

19、与步骤102相同的方法,先得到二范数大小为之后先进行投影使得最后进行裁剪操作,使得

20、步骤104:将梯度信息求取无穷范数对抗性噪声,公式如下:

21、

22、

23、

24、与步骤s103相同的方法,先得到无穷范数大小为之后进行投影使得最后进行裁剪操作,使得

25、步骤s2:选定攻击范数,并使用自动攻击执行最大化过程;

26、步骤s201:根据步骤s1得到的三种范数的对抗性噪声噪声分别计算三个损失值:

27、

28、

29、

30、选择使损失函数最大的范数作为后续的攻击范数;

31、步骤s202:根据选择的一范数、二范数或无穷范数,使用对应范数自动攻击生成对抗样本;

32、若选择了一范数,则使用一范数自动攻击生成对抗样本;

33、一范数自动攻击是一种迭代式攻击,为迭代次数,设定为10;为一范数约束;设定为12;单步迭代过程与步骤102一致,但单步噪声约束及扰动点q数遵循一范数调整原则;

34、若选择了二范数或无穷范数,则使用二范数或无穷范数自动攻击生成对抗样本;

35、二范数自动攻击或无穷范数自动攻击是一种迭代式攻击;

36、使用二范数自动攻击时,为迭代次数,设定为10,为一范数约束,设定为0.5;

37、使用无穷范数自动攻击时,为迭代次数,设定为10,为一范数约束,设定为8/255;

38、二范数自动攻击的单步迭代过程与步骤s103一致;

39、无穷范数自动攻击的单步迭代过程与步骤s104一致;

40、其中,二范数和无穷范数单步迭代过程中,但单步噪声约束和分别遵循多范数调整原则;

41、对于步骤s2,设置即网络共计进行10次前后向过程;

42、重复步骤s1和s2,同时遍历本批次中的自然样本,得到这本批次的对抗样本集...

【技术保护点】

1.一种快速多范数自动梯度上升的对抗训练方法,其特征在于:包括如下步骤:

2.根据权利要求1所述的一种快速多范数自动梯度上升的对抗训练方法,其特征在于:所述步骤S1中,神经网络分类器选择resnet18,resnet18神经网络分类器基本残差块结构为:

3.根据权利要求1所述的一种快速多范数自动梯度上升的对抗训练方法,其特征在于:步骤S202中,一范数调整原则为:

4.根据权利要求1所述的一种快速多范数自动梯度上升的对抗训练方法,其特征在于:所述步骤S202中,多范数调整原则为:

5.根据权利要求1所述的一种快速多范数自动梯度上升的对抗训练方法,其特征在于:所述步骤S301中,损失函数的计算方法还可以采用公式:

【技术特征摘要】

1.一种快速多范数自动梯度上升的对抗训练方法,其特征在于:包括如下步骤:

2.根据权利要求1所述的一种快速多范数自动梯度上升的对抗训练方法,其特征在于:所述步骤s1中,神经网络分类器选择resnet18,resnet18神经网络分类器基本残差块结构为:

3.根据权利要求1所述的一种快速多范数自动梯度上升的对抗...

【专利技术属性】
技术研发人员:蒋雯郑皓楠邓鑫洋耿杰
申请(专利权)人:西北工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1