1.本发明涉及自然语言处理技术领域,尤其涉及一种基于高斯白噪声的文本对抗攻击方法。
背景技术:
2.深度学习技术在各个行业得到日益深化的应用,大规模的深度学习模型被部署到人脸识别、车辆识别、机器翻译等应用系统中。自然语言处理技术与现实生活的联系日益密切,成功推出各项应用,例如舆情检测、智能搜索、非结构化信息提取等等,极大提升现实生活体验。对抗攻击作为可以不断提高深度学习模型泛化能力的有效手段,得到工业界的青睐。
3.对抗攻击是指通过向原始样本添加人为察觉不到的噪音,就使得分类模型对新构造的样本产生错误的分类判断,这一过程就称为对抗攻击,新构造的样本称为对抗样本。对抗攻击最早来源于图像分类的研究,研究人员发现,对于一个性能卓越的熊猫图像分类器,在原始图像中添加fgsm扰动项,分类器就以99.3%的置信度判定为长臂猿,因此研究人员对于深度学习模型的稳定性与安全性产生极大的兴趣。目前在自然语言处理领域,对于对抗攻击的研究远远少于图像领域,究其原因,在于图像的特征是连续变化并可被感知,但文本中词汇具有一定的离散性,所蕴含语义具有高度复杂性与不可量化的特性。由此,针对自然语言处理领域的对抗攻击研究是一项技术挑战,同时也具有十分重要的研究价值。
4.在文本对抗攻击领域,学术界的研究方法主要包括以下三种:基于梯度的攻击、基于置信度的攻击与基于迁移性的攻击。其中,基于梯度的攻击方法利用模型的内部结构信息,通过损失函数求解出相应的梯度,在参数梯度上进行扰动干扰,进而生成对抗样本,指导模型向错误标签方向移动;基于置信度的攻击方法只依靠模型预测标签的置信度信息,不需要获知模型内部结构信息,在文本对抗攻击方面,基于置信度的攻击方法尝试遍历修改每一个单词,直到可以干扰到模型的输出标签,把整个修改过程看作一次模型攻击,基于置信度的文本对抗攻击方法受限于文本长度,攻击效率较低;基于迁移性的攻击方法是一种针对某一特定模型生成对抗样本,将其平移的放置到其他具有不同结构、不同训练集的模型,利用到对抗样本的迁移性,但是基于迁移性的攻击方法依赖于训练集的同分布性,这一条件在现实情况下很难达到。
5.综上所述,基于梯度的模型攻击方法是当前较为常用的对抗攻击手段,发展出一种更为有效的文本对抗攻击方法,对于提高模型抗干扰能力起到关键作用。
技术实现要素:
6.为了解决以上技术问题,本发明提供了一种基于高斯白噪声的文本对抗攻击方法,利用基于梯度的方法构造出模型干扰项,解决了现有技术方案模型鲁棒性较差、攻击方式单一的问题,赋予对抗攻击部分随机性,实现了在可控范围内的高效文本攻击。
7.本发明的技术方案是:
8.一种基于高斯白噪声的文本对抗攻击方法,首先向模型输入自然语言文本,经词嵌入层、核心层、线性层后,得到前向训练损失,经反向传播获得梯度;接着在词嵌入向量的梯度上添加扰动项,生成对抗样本,继续进行前向计算损失值;
9.经数次迭代训练后,模型学习到当前向量在极小变动范围内的最优解;扰动项促使模型参数更新向着损失增大的方向移动,达到攻击模型的目的。
10.进一步的,
11.流程如下:
12.1)对给定文本进行处理;
13.2)正向模型训练;
14.3)设定迭代次数k,梯度变化范围,初始梯度,初始嵌入向量;
15.4)计算出embedding梯度干扰项;
16.5)判断干扰项是否超出范围;是则执行步骤6)否则执行步骤7);
17.6)将干扰项限制在特定范围内;
18.7)利用干扰项生产对抗样本;
19.8)判断当前迭代次数达到k;
20.9)梯度还原为初始梯度;
21.10)正向模型训练;
22.11)输出模型检测结果。
23.其中,
24.步骤8)中若当前迭代次数未达到k,则进行
25.8.1)梯度归一化为零矩阵;
26.8.2)正向模型训练;
27.8.3)迭代次数增加1;
28.8.4)返回步骤4)。
29.再进一步的,
30.具体包括:
31.s1、对给定文本进行处理;设定文本中最大字符长度为l,不足的部分进行“padding”补全;文本张量t维度为rl,其中r表示实数空间;
32.s2、将t输入到embedding层,得到嵌入向量矩阵x;
33.s3、正向模型训练,接着将x依次输入到神经网络encoder层、两层全连接层,其中最后一层全连接层的激活函数选为sigmoid,得到正向损失loss。
34.计算loss关于x的梯度g,计算公式如下
[0035][0036]
s4、设定迭代次数k,梯度变化范围ε,初始梯度g0=g,初始嵌入向量x0=x;将梯度g进行备份,设为g
copy
;其中k为正整数,ε为趋近于0的正数。
[0037]
s5、对于第t次迭代,在embedding层中基于梯度g
t
计算出干扰项r
adv
,接着判断干扰项的取值范围,若||r
adv
||2>ε,执行s6,反之执行s7;
[0038]
其中||.||2表示向量的2-范数,迭代次数1≤t≤k且为正整数。
[0039]
s6.将梯度限制在可控范围之内,按照以下公式进行r
adv
的更正。经更正后的干扰项可以满足||r
adv
||2≤ε
[0040][0041]
顺次执行步骤s7;
[0042]
s7.利用梯度上升方法进行模型攻击,将干扰项添加到嵌入向量x
t
上,生成对抗样本
[0043]
x
t
=x
t-1
+r
adv
[0044]
s8.若当前迭代次数t<k,当前模型的梯度为g
t-1
,将梯度归一化为零矩阵,接着将s6中的对抗样本输入到s3中,得到梯度g
t
与对抗攻击损失loss
t
,在此基础上进行模型的参数更新;当前迭代次数t增加1,继续执行步骤s5;
[0045]
s9.若当前迭代次数t=k,当前模型的梯度为g
t-1
,将梯度还原为初始梯度,即g
t
=g0;接着将s6中的对抗样本输入到s3中,得到新的梯度g
t
;将嵌入向量x
t
还原为原始嵌入向量,即x
t
=x0;在x
t
的基础上根据g
t
进行参数更新。
[0046]
s10.在训练阶段,输入文本,计算出总体损失,按照深度学习训练方法进行优化训练;在预测阶段,输入文本,输出文本进行二分类的预测结果。
[0047]
再进一步的,
[0048]
s5.1干扰项的确定性部分,由当前阶段的梯度g
t
进行归一化得到
[0049][0050]
s5.2干扰项的随机性部分,由服从均值为0、方差为的正态分布,随机进行抽样得到
[0051][0052]
其中n(.,.)表示高斯正态分布,f(θ)表示正态分布的概率密度函数
[0053]
s5.3将s5.1与s5.2中进行滑动平均,可以得到附带随机性的对抗攻击干扰项r
adv
,其中参数ρ∈(0,1)为(0,1)范围内的随机实数
[0054]radv
=ρ*m1+(1-ρ)*m2[0055]
根据上式,可以得到
[0056]
本发明的有益效果是
[0057]
解决了传统文本对抗攻击方法在可控范围内的攻击效率低与攻击方式单一的问题,为攻击干扰项添加高斯白噪声,通过多次迭代循环方式进行模型攻击,提高了文本对抗攻击中参数更新的有效性,提升模型的鲁棒性和泛化能力。
附图说明
[0058]
图1为技术方案的整体实施流程图;
[0059]
图2为技术方案中所采用模型的整体框架图;
[0060]
图3为梯度干扰项中攻击力度对比图。
具体实施方式
[0061]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0062]
在给定文本内容的前提下,本发明针对文本对抗攻击过程中模型鲁棒性较差、泛化能力不足的问题,提出了一种基于高斯白噪声的文本对抗攻击方法。对抗样本的生成过程以文本分类任务为例,其他自然语言处理任务中对抗样本的处理流程与文本分类任务类似,不再赘述。文本分类以二分类为例。
[0063]
一种基于高斯白噪声的文本对抗方法,包括:
[0064]
s1.对给定文本进行处理。设定文本中最大字符长度为l,不足的部分进行“padding”补全。文本张量t维度为rl,其中r表示实数空间。
[0065]
s2.将t输入到embedding层,得到嵌入向量矩阵x。
[0066]
s3.正向模型训练,接着将x依次输入到神经网络encoder层、两层全连接层,其中最后一层全连接层的激活函数选为sigmoid,得到正向损失loss。计算loss关于x的梯度g,计算公式如下
[0067][0068]
s4.设定迭代次数k,梯度变化范围ε,初始梯度g0=g,初始嵌入向量x0=x。将步骤s3中梯度g进行备份,设为g
copy
。其中k为正整数,ε为趋近于0的正数。
[0069]
s5.对于第t次迭代,在embedding层中基于梯度g
t
计算出干扰项r
adv
,接着判断干扰项的取值范围,若||r
adv
||2>ε,执行步骤s6,反之执行步骤s7。其中||.||2表示向量的2-范数,迭代次数1≤t≤k且为正整数。
[0070]
s6.将梯度限制在可控范围之内,按照以下公式进行r
adv
的更正。经更正后的干扰项可以满足||r
adv
||2≤ε
[0071][0072]
顺次执行步骤s7。
[0073]
s7.利用梯度上升方法进行模型攻击,将干扰项添加到嵌入向量x
t
上,生成对抗样本
[0074]
x
t
=x
t-1
+r
adv
[0075]
s8.若当前迭代次数t<k,当前模型的梯度为g
t-1
,将梯度归一化为零矩阵,接着将步骤s6中的对抗样本输入到步骤s3中,得到梯度g
t
与对抗攻击损失loss
t
,在此基础上进行模型的参数更新。当前迭代次数t增加1,继续执行步骤s5。
[0076]
s9.若当前迭代次数t=k,当前模型的梯度为g
t-1
,将梯度还原为初始梯度,即g
t
=g0。接着将步骤s6中的对抗样本输入到步骤s3中,得到新的梯度g
t
。将嵌入向量x
t
还原为原始嵌入向量,即x
t
=x0。在x
t
的基础上根据g
t
进行参数更新。顺次执行步骤10。
[0077]
s10.在训练阶段,输入文本,计算出总体损失,按照深度学习训练方法进行优化训练。在预测阶段,输入文本,输出文本进行二分类的预测结果。
[0078]
所述步骤s3中,模型的整体框架图见图2。其中encoder层为文本句子表征处理层,一般采用lstm、bert、roberta等成熟的网络结构。本发明中涉及模型可看作一种通用模型。
[0079]
所述步骤s5中,具体做法如下
[0080]
s5.1干扰项的确定性部分,由当前阶段的梯度g
t
进行归一化得到。
[0081][0082]
s5.2干扰项的随机性部分,由服从均值为0,方差为的高斯分布,随机进行抽样得到。
[0083][0084]
其中n(.,.)表示高斯正态分布,f(θ)表示正态分布的概率密度函数。
[0085]
s5.3将步骤s5.1与s5.2中进行滑动平均,可以得到附带随机性的对抗攻击干扰项r
adv
,其中参数ρ∈(0,1)为(0,1)范围内的随机实数。
[0086]radv
=ρ*m1+(1-ρ)*m2[0087]
根据上式,可以得到如图3所示,在ε球内,传统方法经过m1的步长进行移动,在本发明中,给予每次移动一个依赖当前梯度的随机步长,改变每次攻击的力度。
[0088]
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
技术特征:
1.一种基于高斯白噪声的文本对抗攻击方法,其特征在于,首先向模型输入自然语言文本,经词嵌入层、核心层、线性层后,得到前向训练损失,经反向传播获得梯度;接着在词嵌入向量的梯度上添加扰动项,生成对抗样本,继续进行前向计算损失值;经数次迭代训练后,模型学习到当前向量在变动范围内的最优解;扰动项促使模型参数更新向着损失增大的方向移动,达到攻击模型的目的。2.根据权利要求1所述的方法,其特征在于,流程步骤如下:1)对给定文本进行处理;2)正向模型训练;3)设定迭代次数k,梯度变化范围,初始梯度,初始嵌入向量;4)计算出embedding梯度干扰项;5)判断干扰项是否超出范围;是则执行步骤6)否则执行步骤7);6)将干扰项限制在特定范围内;7)利用干扰项生产对抗样本;8)判断当前迭代次数达到k;9)梯度还原为初始梯度;10)正向模型训练;11)输出模型检测结果。3.根据权利要求1所述的方法,其特征在于,步骤8)中,若当前迭代次数未达到k,则进行8.1)梯度归一化为零矩阵;8.2)正向模型训练;8.3)迭代次数增加1;8.4)返回步骤4)。4.根据权利要求1所述的方法,其特征在于,具体包括:s1、对给定文本进行处理;设定文本中最大字符长度为l,不足的部分进行“padding”补全;文本张量t维度为r
l
,其中r表示实数空间;s2、将t输入到embedding层,得到嵌入向量矩阵x;s3、正向模型训练,接着将x依次输入到神经网络encoder层、两层全连接层,其中最后一层全连接层的激活函数选为sigmoid,得到正向损失loss。5.根据权利要求4所述的方法,其特征在于,计算loss关于x的梯度g,计算公式如下6.根据权利要求5所述的方法,其特征在于,s4、设定迭代次数k,梯度变化范围ε,初始梯度g0=g,初始嵌入向量x0=x;将梯度g进行备份,设为g
copy
;其中k为正整数,ε为趋近于0的正数。
7.根据权利要求6所述的方法,其特征在于,s5、对于第t次迭代,在embedding层中基于梯度g
t
计算出干扰项r
adv
,接着判断干扰项的取值范围,若||r
adv
||2>ε,执行s6,反之执行s7;其中||.||2表示向量的2-范数,迭代次数1≤t≤k且为正整数;s6.将梯度限制在可控范围之内,按照以下公式进行r
adv
的更正;经更正后的干扰项满足||r
adv
||2≤ε顺次执行s7;s7.利用梯度上升方法进行模型攻击,将干扰项添加到嵌入向量x
t
上,生成对抗样本x
t
=x
t-1
+r
adv
s8.若当前迭代次数t<k,当前模型的梯度为g
t-1
,将梯度归一化为零矩阵,接着将s6中的对抗样本输入到s3中,得到梯度g
t
与对抗攻击损失loss
t
,在此基础上进行模型的参数更新;当前迭代次数t增加1,继续执行步骤s5;s9.若当前迭代次数t=k,当前模型的梯度为g
t-1
,将梯度还原为初始梯度,即g
t
=g0;接着将s6中的对抗样本输入到s3中,得到新的梯度g
t
;将嵌入向量x
t
还原为原始嵌入向量,即x
t
=x0;在x
t
的基础上根据g
t
进行参数更新。8.根据权利要求7所述的方法,其特征在于,s10.在训练阶段,输入文本,计算出总体损失,按照深度学习训练方法进行优化训练;在预测阶段,输入文本,输出文本进行二分类的预测结果。9.根据权利要求7所述方法,其特征在于,s5.1干扰项的确定性部分,由当前阶段的梯度g
t
进行归一化得到s5.2干扰项的随机性部分,由服从均值为0、方差为的正态分布,随机进行抽样得到其中n(.,.)表示高斯正态分布,f(θ)表示正态分布的概率密度函数s5.3将s5.1与s5.2中进行滑动平均,可以得到附带随机性的对抗攻击干扰项r
adv
,其中参数ρ∈(0,1)为(0,1)范围内的随机实数r
adv
=ρ*m1+(1-ρ)*m2根据上式,可以得到
技术总结
本发明提供一种基于高斯白噪声的文本对抗攻击方法,属于自然语言处理技术领域,首先向模型输入自然语言文本,经词嵌入层、核心层、线性层后,得到前向训练损失,经反向传播获得梯度;接着在词嵌入向量的梯度上添加若干扰动项,生成对抗样本,继续进行前向计算损失值。经多次迭代训练后,模型可以学习到当前向量在极小变动范围内的最优解。扰动项促使模型参数更新向着损失增大的方向移动,达到攻击模型的目的。在此过程中,本发明通过增加高斯白噪声扰动项,使参数更新的力度在设定范围内具有一定的随机性,从而使得模型具有更高的容错性能,提高模型的准确率。提高模型的准确率。提高模型的准确率。
技术研发人员:何彬彬 李明明 潘心冰 伊文超 朱利霞
受保护的技术使用者:浪潮云信息技术股份公司
技术研发日:2022.02.15
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-14930.html