对抗样本攻击:自然语言处理系统的新挑战

郑骁庆
578     

2014年谷歌公司研究员克里斯蒂安·塞格迪等最早发现深度神经网络容易受到对抗样本的攻击,即对输入图象加入人们难以察觉的微小扰动可以让网络产生错误的判断(如图1所示)。这样的对抗样本数量十分充沛,几乎所有原始样本的周围都能够找到可以“愚弄”和“欺骗”模型的对抗样本。并且大部分对抗样本有很强的“移植性”,即针对某一网络模型所构造的对抗样本可以导致不同结构和参数的网络发生相同的错误,甚至连错分类的类别都有很高的一致性。这个现象无法用过拟合来解释,因为在不相交的数据子集上训练的网络对相同的对抗样本仍会产生类似错误,说明这些对抗样本是跨模型和训练集的,而非仅仅是对某种网络结构或数据集的过拟合。这对无人驾驶中交通信号识别、人脸和声音识别和验证等安全攸关的应用造成重大的潜在威胁。

 

除了图象和语音识别等领域,近期在自然语言处理任务上也发现了类似的现象。如图2所示,通过逐步迭代换词(只存在替换不带情感的无关紧要的字或词),虽然最终构建的对抗样本“我们的确喜欢这个演出”与原始语句“我真得喜欢这次表演”在情感表达上没有差别,甚至其意思表达也相差甚微,但模型却做出了相反的判断。这对垃圾邮件识别等文本分类任务将是直接的威胁。在阅读理解任务上,斯坦福大学的珀西·梁教授等发现在原文末尾加一些不影响理解的干扰语句会使模型“答非所问”。加州大学洛杉矶分校的谢卓睿教授团队通过对基于人机对话的谈判机器人的诱探,迫使其接受非常不利的交易条件。目前还有可能构建针对聊天机器人的“万能”对抗样本,即在输入语句的前端加入固定的若干词汇,使得系统产生错误的输出,甚至吐出“污言秽语”。

 

根据攻击者可掌握被攻击模型的信息程度划分,对抗攻击可以分为白盒(White-box)与黑盒(Black-box)攻击两类。前者,被攻击模型的结构、参数和训练集将暴露给攻击者;而后者,攻击者只能获得被攻击模型在给定输入情况下的输出,并通过输入输出的关系分析模型的弱点,并选择下一步攻击的方向。一般而言,白盒比黑盒攻击的成功率更高,攻击过程也更为效率,但是黑盒攻击则更符合实际应用的条件和情况,更容易将潜在的危险转为实际的破坏。攻击还可以分为非定向攻击和定向攻击。以文本分类为例,前者仅要求被攻击模型得出不正确的类别预测就算攻击成功,而后者不仅要求模型预测错误,还要求其判断为指定的类别。

 

为了构建文本对抗样本,可以在输入的语句字符、义素(被认为是最小的语义单位)、词汇三个不同级别通过替换、撰改(蓄意引入笔误或拼写错误)、插入、删除、交换字或词的顺序、甚至直接在输入词向量加随机噪声方法来对输入施加微小的扰动,以达到“愚弄”和“欺骗”模型的效果。目前文本对抗样本构建主要分两个步骤:定位输入语句中对于模型最为薄弱的位置(即模型对于这个位置的变化最为敏感,位置可以是字、义素和词汇);然后在该位置进行扰动来最大化模型的预测错误。上述两个步骤可以不断迭代直至模型改变其原先的判断或者满足事前设定的停止条件(如达到最大的迭代和尝试次数)。目前诱探模型的薄弱位置的方法包括随机选择、每个候选位置进行试错、掩盖少量输入位置来观察模型输出变化、利用注意力机制计算得出分值的大小(一般该分值越大对结果影响越大)和损失函数梯方向为引导的优化方法。在确定了薄弱位置后,目前比较主流的做法是将该位置的语言单元替换成相似的语言单元。寻找适合的相似替换单元的方法包括在词向量空间中最近邻索、利用同义词词典、引入笔误(如同音或形似字)、改写与转述

 

对于深度网络存在如此之多的抗样本的原因目前还不是非常清楚,但无非可以从模型、训练方法和数据这三个方面加以分析。模型方面,有人猜测可能是高度的非线性造成的,但也有学者认为这个假设是不必要的,因为简单的线性模型也证明存在对抗样本。目前,为了让深度网络更容易训练,其线性变换部分的比例很高(比如以线性整流函数ReLU代替逻辑函数Sigmoid),在高维空间中的线性变换,只要加一个与损失函数梯度同向的微小扰动其积累的绝对值变化也会被放大,从而落入模型的“盲点”,造成错判。训练方面,有学者认为这只是机器学习中高维诅咒(Curse of dimensionality)的另一种表现而已,统计模型在学习过程中会忽略高维中的某些维度,在这些维度所对应参数训练不充分的情况下仍然可以得到正确的结果,从而造成在有限测试集上模型性能“虚高”的假象。也有学者认为这是模型训练正则化不够造成的,但实验结果表明提高正则化程度后所得到的模型仍然存在对抗样本。数据方面,一种看法是数据集中存在极端例外的样本,造成模型决策边界向这些样本偏移,造成不良决策边界上会分布大量对抗样本。另一种观点是对抗样本主要在训练数据集所形成的流行(可以简单想象成三维空间的球面)之外,但也有实验表明在流行上也能够找到对抗样本。

 

抵御对抗样本攻击方面,由于产生对抗样本的内在机制尚未清楚,所以目前还不存在对所有对抗样本攻击都有效的防范手段,但可肯定的是:防御方法应该是全方位的。模型方面,可以适用当增加类似二次型函数,如:有研究表明网络结构中引入径向基函数(RBF)对对抗样本有一定的天然“免疫”能力。模型蒸馏和集成也有一定的防御效果。训练方面,在进一步提高正则化程度的同时,目前被证明最有效的方法是对抗训练,即将所构建的对抗样本加到训练集中,然后再对模型进行对抗样本攻击,不断用新产生的对抗样本训练模型,直至达到一个动态的平衡点。数据方面,除了尽量排除极端例外的样本之外,需要构建判断输入数据是否在训练数据所形成流行上的分类模型。对于流形外,且离流形较远的数据直接进行过滤;对于离流形较近的流行外数据则投射到流行上再进行处理,对于文本而言,就是指保持语义情况下的改写。此外,要加强词汇和语法纠错方面的研究,在使用任务相关模型前,对输入样本先进行词汇和语法纠错。从传统信息安全的角度,要保护模型结构、算法和训练数据不被泄漏,同时在前端检测可能对模型进行诱探的行为,并加以阻隔。

 

对抗样本攻击和防御方面的研究涉及深度学习应用的安全性问题,近期引用了广泛的关注。研究内容包括:造成深度学习模型错判的机、深度神经网络模型鲁棒性评测理论和提高模型鲁棒性的系统方法等矛与盾、攻击与防御始终是一双对立又统一的事物。虽然对抗样本攻击对情感分类、意图识别、语义理解等模型的可靠性和实用性会产生重大的影响和挑战,但也是我们探索各层神经网络具体学习到了什么特征,其所形成的语义空间的有什么几何方面特质,以及如何从语言学角度加以解释的契机。

未经授权禁止转载,详情见转载须知

联系我们

恒 生 技 术 之 眼