这篇文章的数学定义推导和算法说明部分大都没有看懂,所以笔记写得极烂,因为文中很多数学定义相当模糊,写得也很绕。在ICLR2019评审中一位盲审直接给出“poorly written”的意见。ICLR2019 OpenReview 但这篇大概率还是会中,原作者也更新了一版论文,待评审结果出来我会试着重新更新该笔记,先占个坑。
Abstract
我们提出一种【对离散数据进行对抗攻击】的概率框架(probabilistic framework)。基于这个框架,可以得到两种方法:
-
基于扰动的方法(perturbation-based method):贪婪攻击(Greedy Attack)
-
基于可扩展学习的方法(scalable learning-based method):Gumbel Attack
我们使用单词级CNN(word-based CNN),字符级CNN(character-based CNN)和LSTM进行试验。
通过贪婪攻击只修改5个字符,使基于字符的CNN的分类准确率下降到随机选择的水平。
1、Introduction
相关有价值的工作:
-
《Visualizing and understanding neural models in nlp》Li et al.提出通过寻找词嵌入的最大梯度(the largest gradient magnitude of embedding),找到最顶层的特征(top features)。
-
《Crafting adversarial input sequences for recurrent neural networks.》 Papernot et al.提出通过改变梯度的符号来对每个特征进行扰动,再以此随机改变选择的输入特征(selected features of an input)
-
《Black-box generation of adversarial text sequences to evade deep learning classifiers》 Gao et al.开发了一个适用于序列数据(sequence data)的评分系统(scoring functions),并提出修改由评分系统选择的字符级特征(characters of the features)
-
《Adversarial examples for evaluating reading comprehension systems》 Jia and Liang提出在样本中插入注意力分散语句(distraction sentences)来欺骗阅读理解系统(reading comprehension system)
-
《Towards crafting text adversarial samples》 Samanta and Mehta在做单词替换时加入了语言学约束(linguistic constraints)
我们提出了二级概率框架(two-stage probabilistic framework)来针对离散输入生成对抗样本。要被扰动的关键特征(key features)在第一阶段(first stage)被识别出;然后这些关键特征在第二阶段被加入扰动,通过选择预先生成的词典(a pre-fixed dictionary)中的值,来加入扰动。基于所提出的框架,我们导出了两种方法——Greedy Attack和Gumbel Attack。
-
Greedy Attack分两个阶段评估具有单特征扰动输入(single-feature pertubed inputs)的模型。而Gumbel Attack学习扰动的参数采样分布(parametric sampling distribution)。
-
Greedy Attack获得更高的成功率,而Gumbel Attack则需要较少的模型评估,从而提高实时或大规模攻击的效率
Table1比较了这两种方法和其他方法。
2、Framework
-
是一个离散空间,例如词典或者字符空间
-
:输入随机变量。它是一个d维向量,其中的每个分量都属于
-
在此输入下,给定一个集合,使集合中产生的输出Y满足条件分布
-
假设存在,可以作为对分类没有贡献的一个参考点,比如w0可以是文本分类中的补零点(zero padding)
-
:扰动样本
-
定义变量,为攻击是否成功地指示变量(indicator variable)。攻击的目标是将给定样本x通过加扰变为,从而使。
我们将扰动限制在x的k个特征上,通过两个阶段实现攻击。
-
第一个阶段找到对于x而言最重要的k个特征。
-
第二个阶段找到值来替换k个选择的特征。
其中:
-
是包含与x最多k个位置不同的所有元素的集合,其中不同的特征总是取值w0。表示a和x不同的特征数。
【理解】:a是从x改动过来的,二者都是d维向量。改动的时候a的分量要么取x的对应分量(即),要么取。a中改取的个数不能超过k。
first stage中的定义应该为。所以first stage的任务就是找a(然后记为),使得a和x被分成不同类的概率最大。
-
。是由攻击者选出的一个子集。
【理解】:此时的a是由改动过来的,如果的第i个分量同x的第i个分量,则将其作为a的第i个分量。否则从中挑选分量。将使分类改变概率最大的a记为
【整体理解】:first stage找特征,上文说了可以取补零点(大概就是0?),即相当于抹掉x中的不超过k个特征,使得分类改变概率最大。second stage在中找新的特征,换到的位置,由此构建对抗样本。
但是以上方法难以计算,所以提出了另一种表示形式:
-
表示d维0-1矢量(其中1的个数为k)的空间(the space of d-dimensional zero-one vectors with k ones)。
【理解】:D空间中都是d维向量,向量的d个分量中有k个为1,剩下的d-k个分量为0.
-
G 是中的随机变量(也就是一个d维向量)
-
是一个函数,若则;否则
在first stage中,令,其中G由以X为条件的分布生成。
【理解】:按照上面的定义,X 是d维输入向量,G是d维0-1向量(其中k个1)。现在要用函数构造d维向量,构造规则是:如果 G 中第i个分量为0,则的第i个分量等于 X 的第i个分量;若 G 中第i个分量为1,则的第i个分量为 。
为了对增加一个约束,我们定义k个独立同分布的d维随机独热变量。令,其中分别是的第i个变量。
【理解】:这里说的是G的生成。先根据X的分布生成k个d维独热变量,应该是其中一个。这个k个独热变量刚好有(?)k个位置为1.则将G的这k个位置也置1,其它位置置0.
我们想要最大化,整个攻击方法是
通过类别分布(categorical distribution)可得到x的d个特征的等级(rank)。定义为定性函数(deterministic function),以此找出基于rank:的top k个特征
【理解】:
-
目标函数:最大化被分为不同类的概率。
-
约束条件:
:是基于X的独立同分布
:是通过函数产生的
在second stage中
-
是一个d维随机变量,其中是集合中一个随机的独热变量(维)。
-
为大小为k的[d]子集的集合
-
是一个函数,记为。若(),则函数值为;否则为中与独热向量有关的值。
-
为扰动输入,其中H由X的分布产生。我们对进行约束,要求独立于X。我们要最大化,整体攻击方法是:
通过类别分布可以得出为每个特征i从中选出的值的rank。x的扰动是基于的rank选出top k个特征。每个选择的特征都是依据从中选出的。
3 Methods
3.1 Greedy Attack
是一个d维独热向量,其中第i个分量为1,为了解决公式3,我们将目标分解为:
第二个等式是由独立假设推导出的。
然而很难计算,所以使用进行掩蔽,得到仅有第i个特征的输出(与相关),由此近似:
其中用取代x的第i个特征。我们观察到若:
则近似目标(approximated objective)是最大化的。
同样的,我们分解公式4:
其中表示用取代x的第i个特征,来进行扰动,但是保持剩下的特征同一样。当:
时,近似目标是最大化的。
Greedy Attack由公式6和公式8构成。详见Algorithm 1:
3.2 Gumbel Attack
Algorithm 1对每个样本花费时间进行分析,若数据集很大,Greedy Attack的时间开销也会很大。对公式(3)和公式(4)的另一种方法是,在对抗性攻击之前,将参数化,并直接在相同分布的训练数据集中优化参数族上的目标。这种方法用Algorithm 2描述:
公式3和公式4中包含k个类别的随机变量,直接模型评估需要分别考虑项和项。一个简单的近似方法是公式5和公式7,其中其中我们假设隐藏节点G和H的分布用贪婪算法很好地逼近。但是,这对于每个训练样本需要花费次模型评估。有一些近似方法:
-
取X的确定性函数参数化的特征的加权和,类似于soft-attention mechanism
-
REINFORCE-type 算法
我们提出的方法基于“Gumbel trick”,并与Greedy Attack中提出的目标函数近似相结合。这种方法有较小的方差和更好的效果。
4 Experiments
对三个数据集分别用了WordCNN、CharCNN和LSTM的网络:
我们将Greedy attack和Gumbel attack和以下方法进行比较:
-
Delete-1 Score:用零填充掩盖每个特征,用预测概率的下降作为特征的得分,用未知掩盖top-k特征。
-
DeepWordBag:对于每个特性,计算两个分数的线性组合,第一个分数根据前面的特性评估特性,第二个分数根据后面的特性评估特性。权重由用户选择。
-
Projected FGSM:选择w'替换原单词w,使得最小,其中emb(w)是w的词嵌入向量,是相对于原始词嵌入的预测概率的梯度。
-
Saliency:根据梯度选择top k个特征,求特征嵌入向量的梯度的l1范数,并将其置为unknown
-
Saliency-FGSM:根据Saliency map选择k个特征,将其用projected FGSM替换
4.1 Word-based models
对IMDB数据集用word-based CNN,对Yahoo! Answers数据集用word-based LSTM。对每种方法,替换词词典均为频数最高的500个单词。
TODO
测试样本的准确率由Figure 3给出。可以看到Greedy Attack是效果最好的。
成功的攻击案例由Table 3和Table 4给出:
4.2 Character-based models
对每种方法,替换词的词典选择了整个字母表(alphabet).Gumbel Attack的架构同Figure 2.
TODO
Table 5展示了成功的攻击案例
4.3 Efficiency,transferabiliey and human evaluation
-
Efficiency:我们测试了各种方法的用时,实验基于NVidia Tesla k80 GPU,编码在TensorFlow上。Figure 4显示了各种方法的平均用时:
Gumbel 方法是所有方法中最有效的。随着被攻击数据规模的增大,Gumbel攻击训练占总时间的比例越来越小
-
Transferability:为了显示攻击方法的可迁移性,我们在IMDB上训练了两个新模型,分别是CNN2(比先前的CNN多了一些全连接层dense layer)和LSTM(与Yahoo!的一样);在Yahoo!上训练了两个新模型,分别是LSTM2(单向,256个memory unit,使用GloVe)和CNN(与IMDB的一样)。实验结果如Figure 5:
Greedy Attack在Yahoo!数据集中迁移性较好,但在IMDB中表现不佳。Gumbel Attack在两个数据集中都保持着很高的成功率。
-
Human evaluation:Amazon Mechanical Turk上的三名员工被要求对每一篇文章进行分类。我们报告的准确性是大多数选票与事实的一致性。如果不存在多数投票,我们将结果解释为不一致。对于每个数据集,使用两种方法成功攻击的200个样本。结果Figure 5所示。