首页 技术 正文
技术 2022年11月20日
0 收藏 384 点赞 2,933 浏览 1477 个字

NDSS

https://arxiv.org/abs/1812.05271

摘要中的创新点确实是对抗攻击中值得考虑的点:

1. effective

2. evasive    recognized by human readers

3. efficient

在IMDB数据集上取得100%的成功率。

最后有讨论可能的防御机制,可以重点看下能不能做这相关的工作。

TEXTBUGGER:

白盒:通过雅可比矩阵找到最重要的单词。

https://jingyan.baidu.com/article/cb5d6105c661bc005c2fe024.html (梯度vs Jacobian矩阵vs Hessian矩阵)

论文阅读 | TextBugger: Generating Adversarial Text Against Real-world Applications

论文阅读 | TextBugger: Generating Adversarial Text Against Real-world Applications (和梯度的方法差不多)

2-5步:计算重要性,对单词排序。

6-14步:生成bugs:考虑视觉和语义的相似性;考虑character-level & word-level

character-level:看起来就像是简单的拼写错误。目的:把未知词汇映射到未知embedding

word-level:最近邻搜索。

作者发现在一些词嵌入模型中(如word2vec),“worst”和“better”等语义相反的词在文本中具有高度的句法相似性,因此“better”被认为是“worst”的最近邻。

以上显然是不合理的,很容易被人察觉。

因此,作者使用了语义保留技术,即,将该单词替换为上下文感知的单词向量空间中的topk近邻。使用斯坦福提供的预先训练好的GloVe模型[30]进行单词嵌入,并设置topk = 5。可以保证邻居在语义上与原来的邻居相似。

根据以往的研究,文本的意义很可能是由读者保留或推断后,几个字符的变化[31]。同时,在语义和句法上相似的词语代替词语,可以保证样本的相似性[1]。

TEXTBUGGER的五种错误生成方法:(1)插入:插入一个空格到单词中。(2)删除:删除除第一个字符和最后一个字符外的任意字符。(3)交换:在单词中随机交换两个相邻的字母,但不改变第一个或最后一个字母。(4) Substitute-C (Sub-C):用视觉上相似的字符(例如,用“0”代替“o”,用“1”代替“1”,用“@”代替“a”)或键盘上相邻的字符(例如,用“n”代替“m”)代替字符。(5)Sub-W:在上下文感知的词向量空间中,用它的最近邻替换一个词。

例子:

论文阅读 | TextBugger: Generating Adversarial Text Against Real-world Applications

论文阅读 | TextBugger: Generating Adversarial Text Against Real-world Applications

基于视觉的替换的防御是不是可以考虑文本的visual embedding

如算法2所示,在生成5个bug后,根据置信度的变化选择bug(选变化最大的)。用最优的bug来替换这个单词,得到一个新的文本e’(第8行)。我们重复上述步骤来替换下一个单词,直到找到解决方案(攻击成功),或者未能找到一个保留语义的对抗样本。

论文阅读 | TextBugger: Generating Adversarial Text Against Real-world Applications

黑盒:先找最重要的句子,然后通过打分函数找到最重要的单词。

三个步骤:(1)找到重要的句子。(2)根据分类结果,使用评分函数来确定每个单词的重要性,并根据得分对单词进行排序。(3)使用bug选择算法改变选择的单词。算法3给出了黑箱对抗文本生成算法。

论文阅读 | TextBugger: Generating Adversarial Text Against Real-world Applications

2-6:找重要的句子。找到对最终预测结果贡献最大的重要句子,对其进行优先操作。

使用spaCy库将每个文档分割成句子,然后过滤出具有不同预测标签的句子。即过滤掉Fl(si)不等于y的。然后根据重要性评分排序。句子si的重要性得分用预测的类Fy的置信度值表示。(选出最可能得到分类y的句子)

8-11:找重要的词。首先要找到对原始预测结果贡献最大的最重要的词,然后通过控制语义相似度对其稍作修改。

评分函数:(删除该词后置信度的变化,变化越高越重要)

论文阅读 | TextBugger: Generating Adversarial Text Against Real-world Applications

12-20:生成bugs。和白盒方法类似。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,904
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,430
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,247
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,058
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,690
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,727