You are on page 1of 49

分 类 号 学号 M201773145

学校代码 10487 密级

硕士学位论文

题目:基于遗传算法的对抗文本生成方法研究

学 位 申 请 人: 李呈隆

学 科 专 业: 计算机技术

指 导 教 师: 金燕 讲师

答 辩 日 期: 2019 年 5 月 25 日

万方数据
A Thesis Submitted in Partial Fulfillment of the Requirements

for the Degree for the Master of Engineering

Generating Adversarial Text based on Genetic


Algorithm

Candidate : Li Chenglong

Major : Computer Technology

Supervisor : Jin Yan

Huazhong University of Science & Technology

Wuhan 430074, P.R.China

May, 2019

万方数据
独创性声明

本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研

究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或

集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在

文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。

学位论文作者签名:

日期: 年 月 日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权

保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检

索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

保密□, 在 年解密后适用本授权书。
本论文属于
不保密□。

(请在以上方框内打“√”)

学位论文作者签名: 指导教师签名:

日期: 年 月 日 日期: 年 月 日

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

摘 要

近年来,人工智能技术的飞速发展,在计算机视觉、自然语言处理、语音识别
等多个领域展现出其强大的应用价值,人工智能技术的安全性问题也随着这些应用
的推广变得越来越受到重视,对抗样本的存在也越来越引起相关研究者们的关注。
通过对对抗样本相关问题的研究,可以更好地思考人工智能技术,了解以深度学习
为代表的第三次基于连接主义的人工智能浪潮中各种算法模型的本质。通过对抗样
本的产生和防御等方面的研究,以更好地掌控人工智能技术,在未来的人工智能技
术进一步落地时,有更多的可能去尽力避免一些潜在的安全性问题。
自从 2014 年对抗样本被发现以来,国内外研究者们提出了一系列的对抗样本生
成方法和防御方法,使得对抗样本问题的研究越来越深入。本文主要研究对抗文本
的生成方法,通过借鉴传统算法思想设计算法去攻击一个表现良好的用于情感分析
任务的卷积神经网络,探寻在最短的时间内找到最不容易被人类感知的对抗样本。
通过借鉴遗传算法的思想,对遗传算法的整个迭代过程,诸如种子种群生成、种群
选择、种群交叉、种群变异等阶段针对生成对抗样本这个问题进行针对性的设计。
对适应度函数的设计立足于被攻击模型得分和改动比例得分两项,尽力做到尽快找
到好的对抗样本。所设计的攻击方法得到了成功地实践。最后的实验结果表明,借
鉴遗传算法思想进行改进的对抗样本生成方法在攻击成功率和扰动比例方面都取得
了非常好的效果,所生成的对抗样本较难为人类所感知;同时,所设计的攻击方法
在对抗样本的产生速度方面也取得了良好的效果。

关键词:人工智能,遗传算法,卷积神经网络,对抗样本,情感分析

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

Abstract

In recent years, the rapid development of artificial intelligence technology has shown
its powerful application value in many fields such as computer vision, natural language
processing, and speech recognition. The security of artificial intelligence technology has
also become more and more popular with these applications. The more attention is paid,
the existence of adversarial samples is increasingly attracting the attention of relevant
researchers. By studying the problems related to the adversarial sample, we can better
think about artificial intelligence technology and understand the essence of various
algorithm models in the third connection-based artificial intelligence wave represented by
deep learning. By focusing on the research of sample generation and defense, to better
control artificial intelligence technology, there are more possibilities to avoid some
potential security problems when the future artificial intelligence technology is further
deployed.
Since the discovery of the adversarial sample in 2014, researchers at home and
abroad have proposed a series of methods to combat sample generation and defense
methods, making research on the adversarial sample problem more and more in-depth.
This paper mainly studies the method of generating adversarial texts. By referring to the
traditional algorithmic design algorithm to attack a well-performing convolutional neural
network for sentiment analysis tasks, we can find the adversarial samples that are least
likely to be perceived by humans in the shortest time. By referring to the idea of genetic
algorithm, the whole iterative process of genetic algorithm, such as seed population
generation, population selection, population crossover, and population variation, is
targeted for the generation of adversarial samples. The design of the fitness function is
based on the attack model score and the change scale score, and try to find a good
adversarial sample as soon as possible. The designed attack method has been successfully

II

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

implemented. The final experimental results show that the improved sample generation
method based on the genetic algorithm has achieved very good results in attack success
rate and disturbance ratio. The generated adversarial samples are difficult to be perceived
by humans. At the same time, the designed attacks are designed. The method also
achieved good results in combating the rate of sample production.

Key words:Artificial intelligence, Genetic algorithm, Convolutional neural network,


Adversarial sample, Sentiment analysis

III

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

目 录

摘 要 ..................................................................................................... I
Abstract ................................................................................................. II
1 绪论 ............................................................................................. 1
1.1 研究背景及意义 ................................................................................ 1
1.2 国内外研究现状 ................................................................................ 2
1.3 本文主要研究内容 ............................................................................ 3
1.4 论文组织结构 ................................................................................... 5
2 相关技术与理论概述 ................................................................... 6
2.1 遗传算法 ........................................................................................... 6
2.2 卷积神经网络 ................................................................................... 7
2.3 对抗样本 ........................................................................................... 8
2.4 自然语言处理 ................................................................................. 10
2.5 本章小结 ......................................................................................... 11
3 基于遗传算法的对抗文本生成算法 ........................................... 12
3.1 被攻击文本的选取 .......................................................................... 12
3.2 子文本的生成方法 .......................................................................... 13
3.3 基于遗传算法的攻击方法 .............................................................. 14
3.4 本章小结 ......................................................................................... 21
4 实验结果及分析 ........................................................................ 22
4.1 实验数据与环境 .............................................................................. 22
4.2 评价指标 ......................................................................................... 25
4.3 实验结果与分析 .............................................................................. 26
4.4 本章小结 ......................................................................................... 30

IV

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

5 总结与展望 ................................................................................ 31
5.1 论文总结 ......................................................................................... 31
5.2 工作展望 ......................................................................................... 32
致谢...................................................................................................... 33
参考文献 .............................................................................................. 34
附录 1 ................................................................................................... 39
附录 2 ................................................................................................... 40

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

1 绪论

1.1 研究背景及意义

Bedfellow 和 Szegedy 等人在图像领域发现了对抗样本的存在,并提出了对抗样


本的概念[1][2],随后越来越多图像领域相关的对抗样本的产生方法和防御方法被提
出,并且其它研究方向对抗样本的存在也被逐渐证明,Carlini 和 Wagerdengr 的研究
表明对抗样本也存在与语音识别领域[3]。相比于图像领域对抗样本的研究,自然语
言处理领域的对抗样本的产生方法和防御方法相关的工作要少一些。随着越来越多
的相关研究人员进入这个领域,越来越多的新算法和解决方案被提出,该方向的对
抗样本问题的研究也变得越来越热门[4][5][6]。
随着研究的逐步开展和深入,研究者们发现,对抗样本的不是深度学习模型所
特有的,也不是特定模型才存在的问题。甚至,已知的几乎所有的机器学习模型的
高维数据的输入广泛地受到了对抗样本的影响。更严重地是,样本添加扰动后的输
入差别是人类难以差别的,特别是图像领域,对于输入添加的微小扰动,人类的眼
睛根本难以察觉到,但是深度学习模型却能明显感知到了这个扰动,并输出了错误
的分类结果[7]。
更为严重地是,对抗样本还存在迁移性,也就是在一个模型上面产生的对抗样
本去攻击另外一个模型,另外一个模型有可能仍会以一个很大的概率去产生错误的
分类结果。这种迁移性的存在也为我们的以神经网络为基础的人工智能系统产生了
重大的安全隐患。随着人工智能技术进一步发展,人类在计算机视觉、语音识别、
自然语言处理领域进一步深入探索人工智能技术的深度应用,并产生了自动驾驶、
语音助手,智能翻译等一系列相关改变人类生产生活方式的应用[8][9][10][11][12],随着
这些应用日益走进我们的日常生产生活中,我们和人工智能技术也变得越来越息息
相关,这些人工智能技术应用的安全性和准确性变得愈发重要。对抗样本的产生方
法和防御方法等相关问题的研究也因此变得愈发迫切[13][14][15]。

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

1.2 国内外研究现状

目前,人工智能技术在很多问题的解决上都取得了非常好的成绩,甚至是飞跃
性的成就,但对抗样本问题广泛存在于人工智能领域的各类深度学习模型中。随着
深度学习技术的广泛应用,人工智能浪潮进一步高涨,越来越多的应用开始使用深
度学习技术,如何确保人工智能应用的安全性,比如自动驾驶技术,语音识别等应
用,成为了一个突出问题。随着研究的深入开展,对抗样本问题引起了越来越多研
究者的重视,这方面的研究成果也越来越多。
在过去几年的研究里,研究者们在对抗样本的攻击方法研究上面取得丰硕的成
功 , 比 如 在 热 门 的 分 类 问 题 上 , Szegedy 等 研 究 者 提 出 了 求 解 近 似 解 的
Box-constrained L-BFGS[16]用于图像分类任务攻击、Goodfellow 等人提出了利用高维
空间中的“线性”的 Fast Gradient Sign Method(FGSM)[17][18]、Kurakin 等人提出了与
FGSM 方法类似的 Basic&Least-Likely-Class Iterative Methods[19]、Papernot 等人提出
了限制扰动的 Jacobian-based Saliency Map Attack(JSMA)[20]来制造对抗攻击、Su 等
人提出了只需要改变图像中一个像素点的 One Pixel Attack[7][21]、Carlini 和 Wagner
等人提出了对抗对抗性防御的攻击方法 Carlini and Wagner Attacks(C&W)[22][23]、
Moosavi-Dezfooli 等 人 提 出 以 一 种 方 式 计 算 给 定 图 像 的 最 小 范 数 对 抗 扰 动 的
DeepFool[24]、Moosavi-Dezfooli 等人还根据已有的攻击方法计算出了通用攻击方法
Universal Adversarial Pertubations [25]、Sarkar 等人提出了两种黑盒攻击算法 UPSET
and ANGRI[26]、Cisse 等人提出根据任务损失设计示例来欺骗基于梯度的机器的方法
Houdini[27]、Baluja 和 Fischer 等人训练了前馈神经网络以针对其它目标网络和网络
集生成对抗样本,提出了 Adversarial Transformation Networks(ATNs) [28]。这些方法
中既有白盒攻击方法,又有黑盒攻击方法。既有目标攻击方法又有非目标攻击方法。
既有专门用于分类问题的攻击方法,又有通用的攻击方法。在分类问题的研究上,
研究者们提出的攻击方法种类多样,效果显著,各类攻击方法完整的攻击过程展示
为人们很好的介绍了对抗样本的产生过程。
对抗样本被发现以后,研究者们在图像分类领域对对抗样本进行了深入研究,

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

但这些攻击方法不仅仅被成功应用于图像分类/识别问题上面[29],还被广泛应用于其
它领域,比如这些攻击方法还被成功应用在 Autoencoders and Generative Models[30][31]、
Recurrent Neural Networks[32]、Deep Reinforcement Learning[33]、Sematic Segmentation
and Object Detection[34]等一系列深度学习方法和领域,并取得了很好的攻击效果,
充分说明了对抗样本存在的广泛性。
研究者们提出的对抗样本攻击方法还在真实应用场景下获得成功,比如在目前
基于深度学习技术的人脸技术领域,攻击者成功利用在计算机视觉领域提出的对抗
样本攻击方法攻破了基于深度学习技术的人脸识别系统[35][36]。比如在目前的手机相
机应用上,研究者向其输入对抗样本,相机应用的物体检测功能被对抗样本攻破,
对输入图片产生了误分[37]。在 3D 对象构建领域,研究者提出了可以在各种角度和
视觉点上欺骗神经网络的方法,他们的端到端方法甚至可以打印任意的对抗 3D 对
象[38]。研究者们还成功在真实环境中发起了针对网络空间的深度神经网络分类器的
攻击,他们成功为合成数据的目标黑盒分类器训练了一个替代网络,使得目标网络
大概率地错误分类了他们的攻击方法所产生的对抗性样本[39]。研究者们还成功在机
器人视觉和视觉问答问题上面进行了对抗攻击,证明了机器人对对抗攻击的脆弱性,
对抗性例子不仅对图像分类模型构成了真正的威胁,还对更复杂的 VQA 模型构成
了严重的威胁[40]。研究者们还对对抗样本的存在性问题进行深入研究,积极探寻对
抗样本产生的根本原因[41],并提出了一些有根据的假设,为研究者们进一步理解对
抗样本的本质提供了基础。
这一波人工智能技术浪潮里,各类人工智能技术特别是深度学习技术得到了广
泛的应用。随着这些应用的落地,人工智能技术的安全问题日益得到重视。对抗样
本的发现作为人工智能技术的一个重要安全隐患,受到了越来越多的研究者们的关
注,随着人工智能的进一步应用,对抗样本问题的研究将变得越来越突出和重要。

1.3 本文主要研究内容

本次研究内容的主题为“基于遗传算法的对抗文本生成方法研究”,主要通过借
鉴遗传算法的相关思想来设计新的对抗文本生成方法。通过对算法的改进和优化,

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

尽力得到改动比例尽可能小、人类尽可能无法感知,迭代次数尽可能少的对抗样本。
通过 GloVe 模型来获取短文中将要被替换词的同义词,并通过一系列操作选出
最合适的的词来进行替换,生成新的短文。在对被替换词的选择上,尽可能避开 and、
a、an 这类词,在替换词的选择上,尽可能地选择与被替换词词义词性相同的词,
这样可以做到替换之后的短文的情感变化很难被人类感知到。同时,在替换词的选
择上,尽可能选择使得短文分类得分改变更大的词,这样可以做到更大的可能更快
地得到对抗样本,减小遗传算法的迭代次数。
在遗传算法过程开始的时候,通过对短文中每个可替换词进行遍历,替换,来
生成种子群体。这个过程中尽可能地去避免出现可替换词没有被替换的情况,使得
对抗样本尽可能地在改动小的情况下生成。在对群体内对抗样本进行判断时,设置
一个分类模型得分的阈值,只有分类得分超过这个阈值,才可以判定已经得到了对
抗样本,终止迭代。以期可以做到尽可能地得到稳健的对抗样本。在适应度函数的
设计上面,不是简单地将分类模型的得分作为适应度大小,而是将分类模型的得分
和新样本的改动比例同时作为函数的自变量,并设置一个系数来调节两者之间的影
响权重,使得对抗样本尽可能在改动小的情况下尽快生成。在群体变异上,尽可能
选择适应度得分较高的个体,这样在一定程度上面可以使得迭代的次数降低,更快
地得到对抗样本。在群体交叉的时候,遍历每一个个体,都给予一定的概率进行交
叉操作,交叉对象从其他个人中进行随机选择。交叉的比例也进行随机控制。使得
交叉操作充满随机性,同时也具有合理性,尽力做到更好更快的产生出对象样本。
在群体变异的过程中,通过对可替换词进行替换,在一定限制内扩大样本的改动比
例,为下次迭代过程增加了更大的可能性,扩大对抗样本的搜索空间,提高对抗样
本生成的成功率。
通过对整个迭代过程的过程进行对抗文本生成任务这一问题进行针对化的设计,
同时,注重各部分之间的整体性,以期尽快得到尽可能难以为人类感知的稳健的对
抗样本。

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

1.4 论文组织结构

本文主要分为五个章节,内容分别如下:
第一章主要介绍了对抗样本问题的研究背景及意义和该领域的国内外研究现状,
同时还阐述了本文的主要研究内容和论文组织结构。
第二章主要针对本文研究内容相关的技术和理论进行了概述,比如遗传算法、
卷积神经网络、对抗样本、自然语言处理等。
第三章主要详细介绍了本文所提出的基于遗传算法思想的对抗文本生成方法及
其一系列的处理流程。
第四章主要是本文提出的对抗文本生成方法实验结果的介绍和分析,通过实验
得出了大量实验数据,并对实验数据进行了客观详细的分析,并对实验进行了小结。
第五章主要是对本文主要研究工作的总结和对未来对抗样本研究领域的展望。

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

2 相关技术与理论概述

2.1 遗传算法

2.1.1 概述

遗传算法在 1975 年由美国的 Hollad 教授在他的专著《自然界与人工系统的适应


性》中提出[42]。该类算法作为一种非确定性的拟自然算法,遵循适者生存、优势劣
汰的原则,借鉴生物界自然选择的原理和自然遗传的机制进行随机化搜索,为复杂
系统的优化解决提供了一种新的思路。该算法自从提出以来,就得到了广泛的应用,
比如对于很多 NP-Hard 问题,遗传算法都取得了非常不俗的表现,特别是在自适应
控制、神经网络、模式识别、函数优化、生产调度等应用领域,遗传算法发挥了很
大的作用,很大程度上提高了这些问题的求解效率[43]。

2.1.2 求解过程和特性

遗传算法主要通过模拟一个人工种群的进化过程来求得近似最优解,通过选择,
交叉和变异等机制,在每次迭代中都保留一组比较好的候选个体,然后通过若干代
的迭代进化之后,使得种群个体达到近似最优解的。种群算法的求解过程如图 2-1
所示。
相对于传统算法,遗传算法主要具有可适用于灰箱甚至黑箱问题,具有可扩展
性(易与其它诸如粒子群、模拟退火等算法结合),具有潜在的并行性,通过适应
度函数启发的过程简单,收敛性较强等特点[44][45]。本文所提出的对抗文本的生成方
法正是基于遗传算法的思想。本文所提出的对抗文本生成方法充分借鉴了遗传算法
中的种子种群生成、种群选择、种群交叉、种群变异、适应度函数等概念,并针对
对抗文本生成问题进行针对性的设计。遗传算法总体流程简单,容易理解,各流程
又很容易进行独立设计,而又不失整体性,同时参数规模设置合理,很容易针对特
定问题进行优化,非常适用于对抗文本生成任务。

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

图 2-1 遗传算法流程图

2.2 卷积神经网络

2.2.1 概述

在这一波人工智能浪潮中,卷积神经网络技术扮演了非常重要的角色。卷积神
经网络是一种常见的多层神经网络结构,擅长处理图像等机器学习相关的问题。卷
积神经网络一般通过一系列的操作,将高维的数据输入不断的进行降维,最终解决
问题。卷积神经网络最早由 Yann LeCun 提出,最初提出的网络名叫 LeNet,被成功
地应用在手写字体识别(MNIST)问题上面[46]。一个典型的卷积神经网络,主要包
括卷积层、池化层、全连接层等。卷积层和池化层相互配合,组成若干个卷积组,
逐步地进行特征提取,最后连接多个全连接层来进行分类[47]。卷积的操作受局部感
受野的启发,池化层则主要用来降低数据的维度。卷积神经网络通过卷积模拟特征

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

区分,并通过卷积的权值共享和池化操作来减少网络参数[48],是一类非常高效的神
经网络结构。

2.2.2 卷积神经网络在文本分类上的应用

卷积神经网络不仅在图像处理领域取得丰富的成果,也在自然语言处理领域取
得了一些成果[49]。卷积神经网络通过先将包含每个句子的单词转化为向量表示再进
行输入,从而形成输入矩阵。在句子分类领域,卷积神经网络不需要特别复杂的结
构,便能取得相对传统算法来说非常不错的分类效果。甚至只用简单的单层卷积神
经网络,便能在多个数据集上面取得最优的结果[49]。用于句子分类任务的单层卷积
神经网络如图 2-2:

图 2-2 用于文本分类任务的单层卷积神经网络

2.3 对抗样本

2.3.1 基本概念

对抗样本广泛存在于各类深度学习模型中,它最初被在图片分类问题上被发现。
通过将源数据添加一点人类感官难以感知到的微小扰动,就可以使得机器学习模型
做出完全相反的判断[2]。其中一个非常经典的对抗样本场景就是我们将一个图像分
类模型的输入图片上叠加一点我们人为构造的人眼难以察觉的变化量,便能使得分

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

类模型产生误判[1],如图 2-3。

图 2-3 对抗图像的产生

对抗样本问题不是深度学习模型所特有的,也不是特定模型所特有。甚至,已
知的几乎所有的机器学习模型的高维数据的输入都广泛地受到了对抗样本的影响。
对抗样本不仅存在广泛性,还存在迁移性,也就是在一个模型上面产生的对抗样本
去攻击另外一个模型,另外一个模型有可能仍会以一个很大的概率去产生错误的分
类结果。对抗样本被发现以后,越来越多的研究开始进入该领域,对抗样本问题方
面的研究也开始变得逐渐深入。

2.3.2 对抗图像

对抗样本最先在图像领域被发现,研究者们在对抗图像领域已经取得了一系列
的研究成果。研究者们已经在图像领域提出了一系列的对抗样本产生方法,包括
Box-constrained L-BFGS[16]、Fast Gradient Sign Method(FGSM)[17][18]、Jacobian-based
Saliency Map Attack(JSMA)[20]、One Pixel Attack[7][21]等。同时,研究者们不仅在图像
分类任务进行对抗样本的研究,还积极在其他各种计算机视觉任务上面进行对抗方
面的研究,比如目标检测等。目前对抗图像方法的攻击方法已经可以做到非常高的
攻击成功率,同时生产的对抗图像上的扰动很难为人类所感知。随着对抗图像攻击
方法方面的研究进一步火热,越来越多的研究者也开始研究对抗图像防御方面的研
究,也提出了一系列的防御,并取得了非常不错的效果。攻防两端的研究同时深入,
相互促进,刺激着对抗图像领域的深入发展。人们对对抗图像领域的了解也随之变

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

得越来越深入。

2.3.3 对抗文本

相对于对抗图像方向的研究,对抗文本方向的研究稍显不足。随着对抗样本领
域的进一步发展,越来越多的研究者也进入到对抗文本方向的研究。对抗图像领域
的攻击方法主要通过解决优化问题去诱导模型对图像进行错误分类,最终到达生成
对抗样本的目的。这类方法主要是基于梯度的,通过快速迭代,可以通过操作所有
的像素点,达到失真,进而被模型误分。而这类方法显然无法直接应用到自然语言
处理领域。因为对图像像素点的微小改动,人类很难感知到。但是句子中的单词,
单词中的字母的改动,是很容易被人类所感知的。相比于图像像素点的连续,文本
中的单词和字母是离散的[51]。同时,针对单词中字母的攻击改变是无效的,因为单
词中字母的改变,会导致单词的改变,这将很容易被人类所感知到。而针对文本的
攻击,要考虑到替换词放入到文本中,文本含义的变化是否会被人类所感知到,这
对替换词的选择提出了很多限制,不能像对抗图像领域那样可以比较自由地去改变
图像的像素点。在对抗文本领域,需要尽可能地去生成语法和语义上尽可能与原文
本相似的对抗问题,在文本的处理过程中,需要考虑大量的因素,这些都限制了对
抗文本领域的发展。而对抗文本防御方面的研究则更为欠缺。

2.4 自然语言处理

2.4.1 情感分析

情感分析是自然语言处理领域的一类场景应用,尤其是在提取文本的情感内容
为目的的分类任务中。情感分析可以被当做一类通过一系列情感得分指标去量化文
本数据的方法。虽然情感在很大程度上面是非常主观的,但是研究者们在情感量化
分析领域已经探索出了很多有效的方法来去比较客观公正的评价文本的情感内容,
并进行了很多应用,比如分析用户售后评论等。通过对带有主观感情色彩的文本进
行分析、处理、归纳和推理等一系列过程来得到文本的情感信息。情感倾向性判断
是情感分析领域内的一个主要问题,通过将文本转化为计算机容易处理的结构文本,

10

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

再通过人为设计的算法将情感信息抽取出来,分为多个类别,比如褒贬之类的,或
者更加细致多样的类别,来达到分析文本情感的目的。

2.4.2 GloVe 向量

GloVe 全称 Global Vectors for Word Representation,它是基于全局词频统计的词


表征工具[52]。它将用一个由实数组成的向量去表达一个单词,向量可以捕捉到词与
词之间比如相似性、类比性等语义特征。通过对向量进行运算,可以计算出 cosine
相似度或者欧几里得距离等,通过这样的度量方式就可以计算出两个单词之间的语
义相似性。GloVe 的实现一般主要分为三个步骤:一、构建共现矩阵,矩阵中的元
素代表单词和上下文单词在特定大小的上下文窗口内出现的共同次数,GloVe 根据
两个单词距离上下文窗口的距离提出了一个衰减函数来计算权重,两个单词距离越
远所占的总计数的权重越低;二、构建词向量和共现矩阵之间的近似关系;三、构

造损失函数,一般代价函数如公式 2-1,N 为词汇表大小,f 为权重函数,𝑏𝑖 ,𝑏𝑗 为

两个偏差项,𝑣𝑖 ,𝑣𝑗 表示单词 i 和单词 j 的词向量。


𝑁

𝐽 = ∑ 𝑓(𝑋𝑖,𝑗 )(𝑣𝑖𝑇 𝑣𝑗 + 𝑏𝑖 + 𝑏𝑗 − log(𝑋𝑖,𝑗 ))2 (2 − 1)


𝑖,𝑗

2.5 本章小结

本章主要针对本文研究内容相关的技术和理论进行了概述,首先介绍了遗传算
法的基本概念以及求解过程和特性等,紧接着介绍了卷积神经网络的基本概念及其
在自然语言处理领域文本分类方面的应用等、然后概述了对抗样本的基本概念和对
抗图像及对抗文本方向的一些研究情况等、最后介绍了自然语言处理领域情感分析
和 GloVe 向量等基本概念。

11

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

3 基于遗传算法的对抗文本生成算法

3.1 被攻击文本的选取

本节主要介绍被攻击文本的选取过程,具体流程如算法 3-1:
算法 3-1 被攻击文本的选取流程
输入:标签为 pos 和 neg 的文本分别 1000 个:pos1000,neg1000,被攻击模型:model
输出:被正确分类的标签为 pos 和 neg 的文本各 250 个:pos250,neg250
test_data←pos1000+neg1000
test_label←pos*1000+neg*1000 //测试集真实标签
//将测试数据按序输入到被攻击模型,得到测试数据在该被攻击模型的分类结果
all_predictions←the classification of test_data by model
i←0,j←1,pos250←[],neg250←[]
while i<2000 do
if i<1000 do:
if j<=250 do
if all_predictions[i]==test_label[i] do
pos250←pos250+test_data[i]
j←j+1
end if
i←i+1
else
i←1000,j←1
end if
else if j<=250 do:
if all_predictions[i]==test_label[i] do
neg250←neg250+test_data[i]
j←j+1
i←i+1
end if
end if
end while
500_correctly_classified_examples←pos250+neg250
return 500_correctly_classified_examples
如算法 3-1 所示,在被攻击文本的选取流程中,先将实验数据集的测试集中标
签为 pos 和 neg 的文本分别输入到被攻击的深度学习模型中,然后从被攻击模型正
确分类的文本中,分别选取 250 个标签为 pos 的文本和 250 个标签为 neg 的文本,

12

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

即得到本次研究所需的被攻击文本集,被攻击文本主要用于后面攻击方法流程的输
入文本。

3.2 子文本的生成方法

3.2.1 攻击得分

当文本输入到攻击得分输入到被攻击模型后,会得到一个分类类别和一个分类
得分。当攻击目标 target 为 pos 时,即为 1 时,被攻击模型的分类得分越接近 1 越
好,我们直接采用分类得分数据 class_score 作为攻击得分 attack_score。当攻击目标
target 为 neg 时,即为 0 时,被攻击模型的分类得分越接近 0 越好,我们采用
1-class_score 作为攻击得分。具体流程如算法 3-2。.
算法 3-2 攻击得分计算流程
输入:文本 text,target,被攻击模型 model
输出:attack_score
class_score←text by model
if target==1 do
attack_score←class_score
else
attack_score←1-class_score
end if
return attack_score

3.2.2 替换词的选取

将数据集的词汇生成一个规模 20000 个词汇的字典,然后计算这两个词汇的


GloVe 向量,然后计算各个词汇之间的 GloVe 向量距离,具体流程如算法 3-3。
算法 3-3 计算向量距离表流程
输入:数据集 data_set,词汇表规模 vocab_size
输出:各个词汇的 GloVe 向量距离表 distance_matrix
generate a vocabulary of size vocab_size words //生成词汇表
create GloVe_embedding matrix //创建 GloVe 向量
calculate the distance between two GloVe_embedding //计算 GloVe 向量距离
save the distance_matrix //保持向量距离表
对于每一个被替换的词,我们选取 M 个 GloVe 向量距离最小的词汇进行后续操

13

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

作。将 M 个词分布替换到原文本中生成新的文本,然后将新文本输入到被攻击模型
中,选取 N 个使得分类得分改变最大的词汇作为替换词来生成新的文本,具体流程
如算法 3-4。
算法 3-4 替换词的选取流程
输入:文本 text,被替换词 old_word,M,N,向量距离表 distance_matrix,被攻击
模型 model
输出:替换词列表 rep_word
M_words←distance_matrix 中与 word 距离最短的 M 个词
//用 M_words 中的单词依次替换 text 中的 old_word,生成新文本 new_text
for word in M_words
new_text←replace(text,old_word,word)
calculate the attack_score of the new_text //见算法 3-2
new_texts←new_text and word and attack_score
end for
rep_word←new_text 中 attack_score 得分最高的 N 个 word
return rep_word

3.2.3 完整的子文本生成方法

针对文本中选择的被替换词,先选择与它 GloVe 向量距离最相近的 M 个词,依


次进行替换,将新生成的文本输入到被攻击模型中,求得分类得分,然后计算出攻
击得分,然后再从中选出攻击得分最高的 N 个词,过程如算法 3-4。再用这个 N 个
词替换被替换词,生成子文本。所以文本进行 1 次子文本生成操作,会得到 N 个子
文本。具体流程如算法 3-5。
算法 3-5 子文本的生成流程
输入:原文本 text,被替换词 old_word
输出:子文本 texts
rep_word←选取 N 个替换词 //见算法 3-4
for word in rep_words do
new_text←replace(text,word) //用替换词换掉被替换词
texts←texts+new_text
end for
return texts

3.3 基于遗传算法的攻击方法

14

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

3.3.1 种子种群的生成

对于被攻击文本 text,选择文本中的适合被替换的词,然后计算出合适的替换词,
来对文本中的词进行替换生成 N 个子文本,过程见算法 3-5。对于文本中的词汇进
行遍历来选择合适的被替换词,然后进行子文本的生成,最后这些子文本构成种子
种群。在生成种子种群的过程中,通过对文本中可替换词的遍历,尽可能地考虑了
在只改变了一个词的情况下子文本的生成情况,这样可以尽可能地做到改动尽可能
小的情况下得到对抗样本,从而降低文本数据在得到对抗样本的过程中的改动比例。
具体流程如算法 3-6。
算法 3-6 种子种群的生成流程
输入:被攻击文本 text,M,被替换词的最短字符长度 minimum_length
输出:种子种群 seed_population
for word in text
if length of word>=minimum_length and word in data_set.vocabulary do
texts←M 个 text 的子文本 //见算法 3-5
seed_population←seed_population+text
end if
end for
return seed_population

3.3.2 迭代停止条件

在遗传算法的过程,迭代停止条件直接决定了遗传算法什么时候停止迭代。显
然在本实验中,遗传算法的停止条件是已经找到了原文本的对抗样本。迭代停止判
断过程的输入为一个文本种群和攻击目标,如果文本种群已经存在对抗样本,输出
为在文本种群中找到的第一个对抗样本,如果文本种群不存在对抗样本,则输出为
None。对于已经得到了对抗样本的情况的判断,要综合考虑被攻击模型的分类结果
和分类得分,简而言之,应该在得到了比较可靠的对抗样本的情况下停止迭代,不
仅要求被攻击模型将文本分类为攻击目标分类 target,还应该得到一个比较高的分
类得分,这样才能确定得到了比较可靠的对抗样本。因此,需要设定一个阈值
threshold,只有目标分类(分类为 0 和 1)和分类得分的差值的绝对值小于或者等于
阈值且分类结果为目标分类的情况下,才能判断依据得到了对抗样本,停止迭代。

15

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

具体流程如算法 3-7。
算法 3-7 迭代停止判断
输入:文本种群 text_population,target,threshold
输出:对抗文本或 None
for text in text_population do
classification,score←text 在被攻击模型中的分类结果和得分
if classification==target and abs(target-score)<=threshold do
return text
end if
end for
return None

3.3.3 适应度函数

适应度函数用来衡量种群中个体的优劣,决定了个体被遗传的概率。它直接决
定了遗传算法的收敛速度和是否能够找到好的对抗样本。在本文中,适应度函数主
要取决于两个方面,一方面是分类得分,即文本种群中的文本个体在被攻击模型中
的得分,这个得分的计算公式(公式 3-1)为:
𝑠𝑚 target = 1
score = {1 − 𝑠 (3 − 1)
𝑚 target = 0

target 为攻击目标, sm 为文本在攻击模型中的分类得分。

另一方面是文本个体相对比原文本的改动比例,即现文本与原文本同一位置不
同的单词的数量所占整个文本的单词数量的比例。计算流程如算法 3-8.
算法 3-8 计算改动比例
输入:原文本 old_text,现文本 text
输出:改动比例 ratio
length←length of the old_text
different_word_nums←0
for i in 1,2,3...to length do
if old_text[i]!=text[i] do
different_word_nums←different_word_nums+1
end if
end for
ratio←different_word_nums/length
return ratio
为了综合考虑分类得分和改动比例,通过设置一个系数 a(0<=a<=1),将分类

16

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

得分 score 和改动比例 ratio 同时纳入到适应度函数里面,适应度 fitness 的计算公式


(公式 3-2)为:
𝑓𝑖𝑡𝑛𝑒𝑠𝑠 = 𝑎 ∗ 𝑠𝑐𝑜𝑟𝑒 + (1 − 𝑎) ∗ 𝑟𝑎𝑡𝑖𝑜 (3 − 2)

适应度函数的输入为现文本和原文本(即被攻击文本)、攻击目标 target、系数
a。通过一系列的计算过程,最终得到一个综合的分数作为适应度函数的输出,该分
数直接决定了文本个体的优劣,得分越高,说明该个体的适应度越高,个体被遗传
的概率越高。适应函数的求解过程如算法 3-9。
算法 3-9 求解适应度过程
输入:现文本 new_text,原文本 old_text,target,a
输出:适应度 fitness
model_score←new_text 在被攻击模型中的得分
if target==1 do
score←model_score
else
score←1-model_score
end if
ratio←calculate_ratio(new_text,old_text) //见算法 3-8
fitness←a*score+(1-a)*ration
return fitness

3.3.4 种群选择

种群的选择过程目的是从现有种群中选出最合适的那部分个体进入接下来的流
程之中,主要模拟大自然中优胜劣汰的过程,越有优势的个体被留下来的可能性越
高,反之,可能性越低。在本文的研究中,主要采用适应度作为衡量标准,来决定
文本个体是否保留文本个体。主要选择适应度高的的个体保留下来,使得更快地得
到更好的对抗样本的可能性更高。本文所提出的基于遗传算法思想的攻击在种群变
异的那一步,会导致种群规模的扩展。在生成种子种群的时候,也存在生成的种子
种群规模可能偏大的问题。这样,随着遗传算法迭代次数的增加,种群规模将变得
越来越大,使得迭代计算速度降低。因此,在本文的研究中,将在种群选择的过程
中,设置一个最大种群规模参数 pop_max_size 来限制迭代过程中种群规模大小,提
高计算效率。在进入该流程时,如果种群规模不大于 pop_max_size,种群中的所有

17

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

个体直接全部被选择。如果种群规模大于 pop_max_size,以适应度大小为衡量标准,
只保留规模为 pop_max_size 的种群,以此来达到限制种群规模的目的。种群选择过
程如算法 3-10。
算法 3-10 种群选择过程
输入:种群 input_population,target,old_text,pop_max_size,a
输出:种群 output_population
if the size of input_population <=pop_max_size do
output_population←input_population
return output_population
end if
all_fitness←[]
for text in input_population do
fitness←fitness_function(text,old_text,target,a) //见算法 3-9
all_fitness←all_fitness+fitness
end for
pop_max_size_score←all_fitness 中最高的 pop_max_size 个适应度
output_population←pop_max_size_score 对应的 input_population 中的个体
return output_population

3.3.5 种群交叉

遗传算法中交叉重组的过程模拟的是两个染色体按照某种方式交换部分基因,
产生新的个体。通过种群交叉的过程,我们可以对现有的种群进行更新,产生新种
群进入接下来的迭代流程。交叉的过程就是一个现有种群中个体在一定的概率下进
行相互交换彼此的特征,融合为新个体的过程。实验过程中会设置一个交叉系数
cross_coefficient,针对每个文本个体,会生成一个随机数,通过判断随机数是否小
于交叉系数,来决定该文本个体是否进行交叉过程,一般交叉系数的设置会比较小,
因为自然界交叉的概率比较小,较小的交叉概率可以更好地模拟自然进化的情况。
如果不进行交叉过程,则该文本直接被添加到输出种群中,否则,进入交叉流程。
在本文的研究过程中,会遍历种群中的文本个体,针对每个需要交叉的文本个体,
从文本种群中随机选择另外一个文本个体,与其进行交叉。同时,还会生成另外一
个随机数(范围在 0 到文本长度之间),来决定两个文本的交叉点。具体流程如算
法 3-11。

18

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

算法 3-11 种群交叉过程
输入:种群 input_population,交叉系数 cross_coefficient
输出:种群 output_population
for text in input_population do
if random(0,1)<cross_coefficient do
j←random(1,size of input_population)
k←random(0,size of text)
new_text←text[0:k]+input_population[j][k:size of text]
output_population←output_population+new_text
else
output_population←output_population+text
end if
end for
return output_population

3.3.6 种群变异

种群变异的过程是模拟的遗传过程中染色体上的基因变异的过程。具体流程如
算法 3-12。
算法 3-12 种群变异过程
输入:输入种群 input_population,variation_coeffient
输出:输出种群 output_population
for text in input_population do
if random(0,1)<variation_coeffient do
word←text //从文本中随机选出一个词
//判断条件同算法 3-6
if length of word>=minimum_length and word in data_set.vocabulary do
texts←生成 N 个 text 的子文本 //见算法 3-5
output_population←output_population+texts
else
output_population←output_population+text
end if
else
output_population←output_population+text
end if
end for
return output_population
输入种群经过种群变异的阶段,会生成新的种群进入下一轮迭代中。在本文的
提出的方法,会遍历整个种群的所有文本个体,对于每个文本个体,它们只有很小

19

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

的概率进行变异。通过设置一个变异系数 variation_coeffient,来控制文本个体进行
变异概率的大小。针对要进行的变异文本个体,会从文本个体中随机选择一个词,
如果所选择的词适合进行替换词操作,将该文本进行生产子文本的操作,这个过程
的具体情况已经在前文中的算法 3-5 中进行了详细介绍。进行变异的文本个体的子
文本将被加入到输出种群中,未进行变异的文本个体直接被加入到输入种群,最后
输出新的种群。

3.3.7 完整的攻击方法流程

在本文的研究过程中,一共选取了 500 个被攻击文本,具体选取过程见算法 3-1。


我们的目的是针对每个被攻击文本生成一个对抗样本,各个细节部分已经在前面的
内容里面阐述,本小节主要阐述完整的攻击流程。首先,对于每个待攻击文本,首
先通过其来生成种子种群,具体过程如算法 3-6,然后判断种子种群里面是否有对
抗样本。若存在对抗样本,直接输出在种子种群内找到的第一个对抗样本,否则进
入迭代流程。在迭代流程中,先计算种群内的各个文本个体的适应度,计算方法见
算法 3-9。然后对种群进行选择操作,具体流程见算法 3-10,生成新的种群。接着
对新种群进行交叉操作,具体流程见算法 3-11,生成新的种群。最后对新种群进行
变异操作,具体流程见算法 3-12。变异操作之后,判断新种群内部是否存在对抗样
本。若存在,则输出对抗样本,若不存在,则开始新一轮的迭代次数。通过设置一
个迭代系数 iterations_max_num 来控制最大迭代次数,即若在最大迭代次数内未找
到对抗样本,则停止迭代。该攻击流程如算法 3-13。
在攻击流程中,若找到对抗样本,在输出对抗样本的同时,输出找到对抗样本
的迭代次数和对抗样本相对于原文本的改动比例,以便用于后面的实验结果分析。
若在最大迭代次数内未找到对抗样本,迭代次数数据为 iterations_max_num+1,改
动比例为 0。
对 500 个待攻击样本依次进行该攻击流程,最后对数据汇总计算出攻击成功率
和平均改动比例数据。同时,还会输出对于每个样本生成对抗样本的所进行地种群
迭代次数和对应的改动比例,并实时输出原文本和对抗文本。

20

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

算法 3-13 完整的攻击方法过程
输入:待攻击文本 text,iterations_max_num
输出:对抗文本 adver_text or None,iterations_num,ratio
seed_population←遍历 text 中合适的词进行子文本生成操作 //见算法 3-6
i←0
ratio←0
adver_text←None
population←seed_population
while i<=iterations_max_num do
if adversarial text in population do
adver_text←adversarial text
ratio←ratio_function() //见算法 3-8
break
else
population.fitness_function() //见算法 3-9
population.crossover_function() //见算法 3-11
population.variation_function() //见算法 3-12
end if
end while
iterations_num←i
return adver_text,iterations_num,ratio

3.4 本章小结

本章第一节主要详细介绍了被攻击文本和选取方法和具体流程,第二节主要介
绍了攻击得分的计算方法,替换词的选取方案,最后详细介绍了子文本的生成方法。
第三节主要详细介绍了基于遗传算法思想的攻击方法的各个重要过程的详细设计方
法,包含种子种群的生成,迭代停止条件的设计,适应度函数的计算方法,种群选
择方案,种群交叉方案,种群变异方案等具体过程,最后介绍了一个完整的攻击流
程。本章的介绍,很好地完整展现出了本文基于遗传思想的对抗文本生成方法的各
个细节和各个流程的具体设计。

21

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

4 实验结果及分析

4.1 实验数据与环境

4.1.1 数据集

本次研究所采用的数据集为 IMDB 数据集,这个数据集的数据包含两个情感标


签(positive 和 negative),它一般作为情感分析类任务的基准数据集。该数据集来
源于互联网中 50000 条两极分化比较严重的评论。该数据集中的 25000 条评论数据
被用于训练数据集,25000 条评论数据被用于测试数据集。其中标签为 positive 和标
签为 negative 的数据数量相等。本文研究所采用的 500 条被攻击模型正确分类的数
据全部来源于测试集(其中标签为 positive 和 negative 的数据各 250 条)。该数据
集训练集中标签为 positive 的评论数据如表 4-1 所示,标签为 negative 的评论数据如
表 4-2 所示。

表 4-1 标签为 positive 的数据样例

Fascinating I approached I Am Curious (Yellow) and it's companion piece with great
trepidation. I'd read numerous reports on its widely touted controversy and explicit sex.
What I got wasn't this, but a thoroughly thought provoking and engaging cinema
experience unlike any other. I sincerely believe that the majority of the commenter who
felt the film was `lame' or `boring' approached the film as if it were pornography. Perhaps
this is pornography, assuming pornography is something intended to titillate the senses,
but it is intentionally un-erotic. Lena, the protagonist, throws her all into her performance
giving it a realistic and humanity that is simply convincing and enduring. Her breasts may
be saggy, her nipples unusually large, her thighs fat, and her face, chubby. But by the end
of the film, the audience comes to identify with her, and accept her faults as human. This
touch gives her even more believability out necessity. Had the director cast a Briget
Bardot bombshell the effect would have been nullified. I cannot more highly recommend
this thought provoking piece. Be prepared to invest much thought in this deliberately
paced film. The patient and unassuming viewer will be thoroughly rewarded in ways most
other films could dream.

22

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

表 4-2 标签为 negative 的数据样例

Wow, here it finally is; the action "movie" without action. In a real low-budget setting
(don't miss the hilarious flying saucers flying by a few times) of a future Seattle we find a
no-brain hardbody seeking to avenge her childhood.<br /><br />There is nothing even
remotely original or interesting about the plot and the actors' performance is only rivalled
in stupidity by the attempts to steal from other movies, mainly "Matrix" without having
the money to do it right. Yes, we do get to see some running on walls and slow motion
shoot-outs (45 secs approx.) but these scenes are about as cool as the stupid hardbody's
attempts at making jokes about male incompetence now and then.<br /><br />And, yes,
we are also served a number of leads that lead absolutely nowhere, as if the script was
thought-out by the previously unseen cast while shooting the scenes.<br /><br />Believe
me, it is as bad as it possibly can get. In fact, it doesn't deserve to be taken seriously, but
perhaps I can make some of you not rent it and save your money.

4.1.2 被攻击模型

本文研究所采用的被攻击模型为用于文本分类任务的卷积神经网络,关于用于
文本分类任务的卷积神经网络在本文 2.2.2 中有更为详细的介绍。它采用 IMDB 数
据集中的训练集训练,在测试集中的分类准确率可以达到 85%左右。模型参数和训
练参数分别如表 4-3 和表 4-4 所示。

表 4-3 神经网络模型参数

参数名 参数值 参数意义 默认值


embedding_dim 128 Dimensionality of character embedding 128
filter_sizes 3,4,5 Size of comma-separated filter 3,4,5

num_filters 128 Number of filters per filter size 128


dropout_keep_prob 0.5 Dropout keep probability 0.5

l2_reg_lambda 0.0 L2 regularization lambda 0.0

23

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

表 4-4 神经网络模型训练参数

参数名 参数值 参数意义 默认值

batch_size 8 Size of batch 64


num_epochs 100 Number of training epochs 200

evaluate_steps 100 Steps to evaluate model on dev set 100


checkpoint_steps 100 Steps to save model 100

num_checkpoints 5 Number of checkpoints to store 5

4.1.3 实验运行环境

本文研究内容的实验运行在普通的台式机上,运行环境如表 4-5:

表 4-5 实验运行环境

CPU Inter(R) Core(TM) i5-4590 3.30GHz


操作系统 Windows 10

Python 版本 3.6
TensorFlow 版本 1.5.0 for cpu

显卡 无独显

代码也可以直接迁移到本人的个人笔记本电脑上运行(配备相同版本的 Python
和 TensorFlow,无独显),代码的可迁移性很强。从开始运行到生成 500 个被攻击
样本的对抗样本大约需要十个小时。

4.1.4 实验参数设定

在本文研究内容中提出的攻击方法涉及到一系列的参数设定,攻击过程中的各
个参数设定如表 4-6 所示。

24

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

表 4-6 实验参数设定

参数名 参数值 参数意义


vocab_size 20000 词汇表的大小

M 4 选择的同义词数量上限

N 2 生成子文本的替换词数量上限
minimum_length 2 被替换词最小单词长度

threshold 0.4 判断是否存在对抗样本时的阈值


a 0.5 适应度函数里的比例系数

pop_max_size 200 种群选择过程中最大种群规模


cross_coefficient 0.5 种群交叉时交叉系数

variation_coefficient 0.01 种群变异时变异系数

iterations_max_num 30 最大迭代次数

4.2 评价指标

4.2.1 攻击成功率

攻击成功率是衡量攻击方法是否有效的重要指标之一。也是本文研究内容重要
追求的指标之一。在本文中,攻击成功率为成功生成对抗样本的被攻击样本所占所
有被攻击样本的比例,计算方法如公式 4-1。
𝑛𝑢𝑚𝑠
𝑎𝑡𝑡𝑎𝑐𝑘𝑟𝑎𝑡𝑖𝑜 = (4 − 1)
𝑛𝑢𝑚𝑎𝑙𝑙
公式中𝑛𝑢𝑚𝑠 表示成功生成对抗样本的被攻击样本数量,𝑛𝑢𝑚𝑎𝑙𝑙 表示所有被攻击
样本的数量。𝑎𝑡𝑡𝑎𝑐𝑘_𝑟𝑎𝑡𝑖𝑜为攻击成功率。

4.2.2 平均改动比例

在第三章的算法介绍过程中,已经介绍了改动比例的计算方法,见算法 3-8。平
均改动比例为所有被成功攻击的对抗样本的改动比例的平均值,计算方法如公式 4-2。

25

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

∑1𝑛𝑢𝑚𝑠 𝑟𝑎𝑡𝑖𝑜
𝑎𝑣𝑒𝑟𝑎𝑔𝑒𝑟𝑎𝑡𝑖𝑜 = (4 − 2)
𝑛𝑢𝑚𝑠

𝑛𝑢𝑚𝑠 表示成功生成对抗样本的被攻击样本数量,𝑟𝑎𝑡𝑖𝑜表示生成的对抗样本的改
动比例。𝑎𝑣𝑒𝑟𝑎𝑔𝑒𝑟𝑎𝑡𝑖𝑜 为平均改动比例。

4.3 实验结果与分析

4.3.1 实验结果

将实验参数设置为表 4-6 中的值,在表 4-5 中的实验环境中运行,输入 500 个被


攻击样本,最终得到攻击成功率为 94%,平均操作比例为 2.50%。
被攻击的样本生成对抗样本的迭代次数列表见附录 1,数字“31”代表未成功攻
击。
被攻击的样本生成对抗样本的改动比例列表见附录 2,数字“0”代表未成功攻
击。
94%的攻击成功率在目前的主流对抗文本生成算法中算是比较高的攻击成功率,
2.50%的平均操作比例在目前的主流对抗文本生成算法中是一个非常低的平均操作
比例。在与目前考虑过遗传算法思想的攻击算法在各类攻击任务的普遍 85%-95 的
攻击成功率对比中,94%是一个相对比较高的结果,而 2.50%则是相对普遍 10%-20%
的改动比例来说,是一个非常不错的结果。实验结果可以说明本文所提出的攻击方
法取得了非常好的效果,较低的改动比例在某一方面也支撑起了本文所提出的攻击
方法生成的对抗样本更加难以为人类所感知。

4.3.2 攻击成功率和平均改动比例与最大迭代次数

本小节主要探究攻击成功率和平均改动比例与最大迭代次数的关系。在实验过
程中,最大迭代次数设置为 30,同时输出了生成对抗样本的迭代次数列表。给定一
个最大迭代次数参数 N(0<=N<=30),即可通过计算迭代列表中不大于 N 的数的
数量占迭代列表中所有数的数量的比例得到最大迭代次数为 N 时的攻击成功率,同
理也可以通过找到所有迭代次数不大于 N 的对抗样本的改动比例,来计算出最大迭

26

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

代次数为 N 时的平均改动比例。通过一系列的计算即可得到如图表 4-7 所示的结果。

表 4-7 攻击成功率和平均改动比例与最大迭代次数

最大迭代次数 N 攻击成功率 平均改动比例

0 47.2% 0.64%
2 67.6% 0.84%

5 80.8% 1.35%
10 86.4% 1.69%

15 89.0% 1.91%

20 91.2% 2.15%
25 92.6% 2.36%

30 94.0% 2.50%
从表中数据可以看出,随着最大迭代次数 N 越来越大,攻击成功率也随之越来
越高,平均改动比例也变得越来越高。当最大迭代次数设置为 0 时,即未进行迭代
过程,在迭代过程开始前生成的种子种群中已存在对抗样本,攻击成功率为 47.2%,
平均改动比例为 0.64%,也就是有将近一半的被攻击文本只需要改动文本中的一个
词,即可生成对抗样本。随着最大迭代次数 N 的增加,攻击成功率增加的速度越来
越慢,而平均改动比例也是如此。
目前已有的基于遗传思想的攻击算法的最大迭代次数设置为 20,而本文所提出
的攻击算法在最大迭代次数设置为 20 时,攻击成功率为 91.2%,平均改动比例为
2.15%。因为涉及到的参数设置和处理流程方法的不同的细节很多,不便进行直接
结果比较。但是相对目前的主流算法的攻击效果来说,91.2%的攻击成功率是一个
相对不错的成功率,而 2.15%的平均改动比例则为一个非常低的改动比例。在相对
来说差不多的攻击成功率下,取得如此低的平均改动比例,充分证明了本文所提出
的算法的攻击有效性。
如此低的平均改动比例取得,主要取决于两点,一方面是本文所提出的攻击算
法在生成种子种群时,对文本中的词语采用了遍历的形式,给予了文本中每个可替

27

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

换词替换机会,使得可以在生成种子种群的过程中,有将近一半的文本生成了对抗
样本,无须进入迭代流程,提升了计算速度,同时,这部分对抗文本因为只需改动
一个词,导致文本的改动比例很低,从而拉低了整个平均改动比例。另一方面,在
本文提出的攻击方法适应度的函数设计中,自变量不仅考虑了被攻击模型的分类得
分,还考虑了现文本相对于原文本的改动比例,使得改动比例越高的文本被保留的
可能性越高,而在种群变异过程中又很谨慎地在增大种群的改动比例,也就是本文
的攻击方法在积极地进行种群内的样本更新,积极地在更大的空间内搜索对抗样本,
同时又限制了这个空间的增长速度,最终更快地找到了相对其它攻击算法改动比例
更小的对抗样本。

4.3.3 改动比例与迭代次数

本节主要探究在不同的迭代次数下的改动比例变化情况,此处的改动比例指在
某个迭代次数范围内生成的对抗样本的平均改动比例。数据如表 4-8 所示,其中,
迭代次数范围表示生成对抗样本的所需的迭代次数区间,攻击成功比例表示在该迭
代次数区间内成功生成的对抗样本占所有被攻击文本的比例,迭代次数(均值)表
示该迭代次数区间内成功生成的对抗样本的迭代次数均值。

表 4-8 改动比例与迭代次数(均值)

迭代次数范围 攻击成功比例 迭代次数(均值) 改动比例


0 47.2% 0.00 0.64%
1-5 33.6% 2.34 2.36%

6-10 5.6% 7.46 6.60%


11-15 2.6% 13.08 9.02%

16-20 2.2% 17.91 11.95%


21-25 1.4% 22.57 16.37%

26-30 1.4% 27.71 11.13%


从表中的数据可以看出,在迭代次数 25 次以内,迭代次数越多,改动比例越来
越大,但是改动比例的增长速度越来越慢。改动比例的增长主要是因为在迭代过程,

28

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

种群交叉和变异过程会造成文本中改动的词汇数量增加。而改动比例的增长速度越
来越慢,主要是因为随着改动比例的增加,搜索空间也变得越来越大,搜索空间的
增长速度变得越来越越慢,导致改动比例增加也变得越来越慢。而随着改动比例的
增加,搜索空间的增加,对抗样本的产生更具有随机性,就出现了 26-30 迭代次数
时,改动比例反而下降的情况。

4.3.4 人类测试

本节主要探究本文提出的攻击方法所生成的对抗样本为人类感知的难易程度,
对于生成对抗样本任务来说,生成的对抗样本为人类感知的可能性越小,意味着生
成的对抗样本越好。从生产的对抗文本中随机选择一个文本和其原文本进行对比,
如表 4-9 中所示(斜体表示改动的词汇)。

表 4-9 原文本与对抗文本

原文本(positive):i 've been strangely attracted to this film since i saw it on showtime
sometime in the early 80 's i say strangely because it is rather a ludicrous bit of soft core
fluff , a genre i'm not particularly interested in the dialogue is pompously and
nonsensically philosophical \( making sense , no doubt , only to it 's franco italian
producers \) and the plot completely extraneous what it does achieve is a wonderfully
hypnotic and thoroughly pleasant mood the scenery \( the beautiful philippines \) , soft
focus nudity and wonderful score all contribute to a strange and extremely watchable
exercise in a sort of film making seldom seen today it is truly one of my great guilty
pleasures i was fortunate enough to find it on an old laserdisc and have watched it more
times than i think is healthy a worthwhile moodpiece
对抗文本(negative):i 've been strangely attracted to this film since i saw it on showtime
sometime in the early 80 's i say strangely because it is rather a ludicrous bit of soft core
fluff , a genre i'm not particularly interested in the dialogue is pompously and
nonsensically philosophical \( making sense , no doubt , only to it 's franco italian
producers \) and the plot completely extraneous what it does achieve is a wonderfully
hypnotic and strictly pleasant mood the scenery \( the beautiful philippines \) , soft focus
nudity and wonderful score all contribute to a strange and extremely watchable exercise in
a sort of film making seldom seen today it is truly one of my great guilty pleasures i was
fortunate enough to find it on an old laserdisc and have watched it more times than i think
is healthy a worthwhile moodpiece
测试者不被告知原文本和对抗文本的情感倾向,也不被告知哪个是对抗样本,
哪个是原文本。在本次测试中,共有 10 名人类测试者参与,10 位测试者全部表示

29

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

两个文本的情感倾向都是积极倾向。
在后续的测试中,随机挑选了更多的对抗文本和原文本进行人类测试,人类测
试者基本上感受不到原文本和对抗文本之间的区别,他们给出的测试结果都是原文
本和对抗文本的情感倾向一致。而在被攻击模型中,两者的情感倾向则是完全相反
的。这说明本文所提出的攻击方法所产生的对抗文本很难为人类感知。从这一方面
来说,本文所提出的攻击方法是非常成功的。
本文所提出的攻击方法所产生的对抗样本之所以很难为人类感知,主要是因为
生成的对抗样本改动比例很小,甚至一半左右的对抗样本只在原文本的基础上改动
了一个词,对于普遍含有几百个词的评论文本来说,少量词的改动,是很难改变人
类对其情感倾向判断的。其次,所选用的改动词都是精心挑选的最合适的同义词,
基本上不会影响人类测试者对文本的情感倾向判断。

4.4 本章小结

本章首先主要详细介绍了本次研究所采用的数据集、被攻击模型和实验运行环
境。接着介绍了对抗文本任务中最重要的两个评价指标攻击成功率和平均改动比例。
然后展示了本次研究的实验参数设定和实验结果,并从深入探究了攻击成功率、平
均改动比例与最大迭代次数的关系,改动比例与迭代次数的关系,并进行了深入分
析。最后详细介绍了本次研究中的人类测试,并详细介绍了人类测试的结果,分析
了结果产生的原因。

30

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

5 总结与展望

5.1 论文总结

对抗样本随着人工智能技术的发展成为了一个越来越热门的问题,人工智能技
术的落地不得不考虑其安全性,因此对抗样本领域的重要性变得尤为重要。在对抗
样本问题被提出以后,研究者针对计算机视觉、自然语言处理、语音识别各种任务
提出了各类攻击方法,并取得了非常不错的攻击效果。同时研究者们也提出了大量
防御方法去解决对抗文本的负面影响。相对于对抗样本在计算机视觉领域的研究,
在自然语言处理领域对抗样本方向的研究有些不足。探究在自然语言处理问题上对
抗样本的生成方法,将更加有助于去了解自然语言处理领域的对抗样本,为对抗样
本问题的防御和解决提供更多的思路。
提出了基于遗传算法思想的对抗文本生成方法,充分参考传统的自然语言处理
方法和借鉴遗传算法的思想,针对对抗文本生成这一任务去设计各个流程,最终提
出了一套完整的对抗文本生成流程并成功实践。所提出的对抗文本生成方法在情感
分析任务的基准数据集 IMDB 上取得了非常不错的效果,它具有相对较高的攻击成
功率、相对非常低的平均改动比例和难以为人类测试者所感知的优点。它将有助于
更好地去了解对抗文本的生成过程,为以后去解决对抗文本问题提供了更多的思路。
在相关工作中,有研究者在同时期也提出了基于遗传算法思想的对抗文本生成
方法用于攻击其他的神经网络模型,虽然同样是基于遗传算法的思想,但是两者在
攻击方法的设计和实现上完全不相同,特别是在迭代过程中的各个流程设计实现上,
本文所采用的子文本的生成方法、生成种子种群的方法、替换词的选取、对抗文本
的生成过程、种群选择过程、种群交叉过程和变异过程针对对抗文本生成问题进行
了特别设计,而另外一篇 ArXiv 论文则是更多的基于传统的遗传算法思想,更多地
采用了各种随机处理的过程。与之相比较,本文所提出的攻击方法取得与其差不多
的攻击成功率和远低于它的平均改动比例,本文进一步的人类测试研究也更一步说

31

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

明了所提出的攻击方法产生的对抗样本难为人类所感知,进一步证明了更低的平均
改动比例的重要性。同时,所提出的攻击方法对迭代种群规模进行了控制,取得了
更高的计算效率,使得所提出的攻击方法可以很顺利地运行在普通的电脑上。

5.2 工作展望

所提出的对抗文本生成算法虽然取得了非常不错的效果,但是仍有很多值得改
进的地方。
算法运行时间仍然过长,对于 500 个被攻击样本生成对抗样本的任务,需要运
行 10 个小时左右。这主要是因为运行环境的因素,这次实验主要运行环境为普通的
个人电脑,以后可以考虑迁移到服务器上,大量计算过程采用 GPU 计算,提高计算
效率。同时,很多参数没有进行优化调整,在未来可以考虑调整一些参数,提高运
行效率。
针对被替换词的替换词选取过程,虽然考虑很多,采用了很多处理方法,选取
替换词的过程十分谨慎,所选取地替换词大概率上是与文本比较匹配,还是可以考
虑添加一些传统的自然语言处理流程,比如加入判断替换词和文本的上下文匹配程
度的模型,尽最大可能地去保证所选择的替换词与上下文是最匹配的,这样生成的
对抗文本从某种意义上来说将更加难以为人类感知。
对抗文本的目标之一是尽可能地难以为人类感知,而如何去衡量人类感知程度,
还需要更多定性的科学合理的研究。在未来,可以深入思考如何去衡量人类感知判
断,为生成更好的对抗样本提供科学合理的标准。
本硕士论文主要深入探究了对抗文本的生成方法,在进一步的工作中,可以去
考虑更多对抗文本防御方法方面的研究。探究生成方法的目的是为了更好地去了解
对抗样本,弄清楚对抗文本的生成过程,为以后更好地去解决对抗文本问题打下基
础。虽然所提出的对抗文本生成方法仍有不足的地方需要去改进,但相对来说仍不
失为一种非常不错的对抗文本生成方法。

32

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

致谢

时光飞逝,在华科计算机学院的六年光阴转眼就到了最后时刻,我也从一名 18
岁的懵懵懂懂的少年变成了一位 24 岁的即将步入职场的社会青年。回想六年前,小
汽车飞快地向东穿越过江汉平原,我坐在副驾驶上,畅想着大学毕业后的我要去做
什么,想着想着我就睡着了。今天,如梦方醒,我已经得到了自己想要的答案。未
来的日子里,我会努力成为一名优秀的 IT 工程师。
读研的两年里,收获良多,感谢我的导师何琨老师和金燕老师的栽培,特别是
何琨老师让我明白了什么叫做发自内心地去热爱自己的事业,感谢实验室的师兄弟
们,大家既能交流学术、探讨技术,还能一起愉快的玩耍。感谢在华科计算机学院
读书的六年里各位老师的教诲,特别是在六年里收获了一帮志同道合的朋友。作为
一名土生土长的湖北人,感谢在湖北的这二十四年里所有的老师、亲戚、同学、朋
友们的帮助和支持。感谢我的舅舅这二十四年来一直支持我的决定,感谢姐姐多年
来的关心。特别感谢我的父母,在过往二十四年里默默地支持。父母这二十四年里
一直在尽最大的努力支持我,他们真的很不容易。
如果说人生就像一个机器学习模型,父母给予了这个模型的结构初始化定义,
那么你过往经历的所有人和事就像输入模型的数据,他们或多或少调整了你这个模
型的参数,你的未来所做的每个决定多多少少都会含有他们的影子。而总会有人和
事像对抗样本一样出现,打破了常规,让你做出了截然相反的决定,发现新的世界。
对于这样的人和事,有的人喜欢新鲜刺激,选择去主动追寻,而有的人喜欢安于现
状,选择被动承受。英国著名探险家乔治·马洛里面对记者的追问为何要去攀登珠峰,
回以:Because it is there! 很多人和事,像对抗样本一样,像珠峰一样,不管你愿不
愿意面对,他就在那里。感恩过往二十四年所经历的人和事,给予了我面对的勇气。

33

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

参考文献

[1] Goodfellow I J, Shlens J, Szegedy C. Explaining and harnessing adversarial


examples[J]. arXiv preprint arXiv:1412.6572, 2014.
[2] Szegedy C, Zaremba W, Sutskever I, et al. Intriguing properties of neural networks[J].
arXiv preprint arXiv:1312.6199, 2013.
[3] Carlini N, Wagner D. Audio adversarial examples: Targeted attacks on
speech-to-text[C]//2018 IEEE Security and Privacy Workshops (SPW). IEEE, 2018:
1-7.
[4] Carlini N, Wagner D. Towards evaluating the robustness of neural networks[C]//2017
IEEE Symposium on Security and Privacy (SP). IEEE, 2017: 39-57.
[5] Chen P Y, Sharma Y, Zhang H, et al. EAD: elastic-net attacks to deep neural
networks via adversarial examples[C]//Thirty-second AAAI conference on artificial
intelligence. 2018.
[6] Sharma Y, Chen P Y. Attacking the Madry Defense Model with $ L_1 $-based
Adversarial Examples[J]. arXiv preprint arXiv:1710.10733, 2017.
[7] Su J, Vargas D V, Sakurai K. One pixel attack for fooling deep neural networks[J].
IEEE Transactions on Evolutionary Computation, 2019.
[8] Szegedy C, Vanhoucke V, Ioffe S, et al. Rethinking the inception architecture for
computer vision[C]//Proceedings of the IEEE conference on computer vision and
pattern recognition. 2016: 2818-2826.
[9] Carlini N, Wagner D. Towards evaluating the robustness of neural networks[C]//2017
IEEE Symposium on Security and Privacy (SP). IEEE, 2017: 39-57.
[10] Liu Y, Chen X, Liu C, et al. Delving into transferable adversarial examples and
black-box attacks[J]. arXiv preprint arXiv:1611.02770, 2016.

34

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

[11] Xu X, Chen X, Liu C, et al. Can you fool AI with adversarial examples on a visual
turing test[J]. arXiv preprint arXiv:1709.08693, 2017.
[12] Melis M, Demontis A, Biggio B, et al. Is deep learning safe for robot vision[J].
Adversarial examples against the iCub humanoid. CoRR, abs/1708.06939, 2017.
[13] Miyato T, Dai A M, Goodfellow I. Adversarial training methods for semi-supervised
text classification[J]. arXiv preprint arXiv:1605.07725, 2016.
[14] Xie C, Wang J, Zhang Z, et al. Adversarial examples for semantic segmentation and
object detection[C]//Proceedings of the IEEE International Conference on Computer
Vision. 2017: 1369-1378.
[15] Wang Q, Guo W, Zhang K, et al. Learning adversary-resistant deep neural
networks[J]. arXiv preprint arXiv:1612.01401, 2016.
[16] Fletcher R. Practical methods of optimization[M]. John Wiley & Sons, 2013.
[17] Kurakin A, Goodfellow I, Bengio S. Adversarial machine learning at scale[J]. arXiv
preprint arXiv:1611.01236, 2016.
[18] Miyato T, Maeda S, Ishii S, et al. Virtual adversarial training: a regularization method
for supervised and semi-supervised learning[J]. IEEE transactions on pattern analysis
and machine intelligence, 2018.
[19] Meng D, Chen H. Magnet: a two-pronged defense against adversarial
examples[C]//Proceedings of the 2017 ACM SIGSAC Conference on Computer and
Communications Security. ACM, 2017: 135-147.
[20] Papernot N, McDaniel P, Jha S, et al. The limitations of deep learning in adversarial
settings[C]//2016 IEEE European Symposium on Security and Privacy (EuroS&P).
IEEE, 2016: 372-387.
[21] Das S, Suganthan P N. Differential evolution: A survey of the state-of-the-art[J].
IEEE transactions on evolutionary computation, 2011, 15(1): 4-31.

35

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

[22] Papernot N, McDaniel P, Wu X, et al. Distillation as a defense to adversarial


perturbations against deep neural networks[C]//2016 IEEE Symposium on Security
and Privacy (SP). IEEE, 2016: 582-597.
[23] Sun M, Tang F, Yi J, et al. Identify susceptible locations in medical records via
adversarial attacks on deep predictive models[C]//Proceedings of the 24th ACM
SIGKDD International Conference on Knowledge Discovery & Data Mining. ACM,
2018: 793-801.
[24] Moosavi-Dezfooli S M, Fawzi A, Frossard P. Deepfool: a simple and accurate
method to fool deep neural networks[C]//Proceedings of the IEEE conference on
computer vision and pattern recognition. 2016: 2574-2582.
[25] Huang X, Kwiatkowska M, Wang S, et al. Safety verification of deep neural
networks[C]//International Conference on Computer Aided Verification. Springer,
Cham, 2017: 3-29.
[26] Sarkar S, Bansal A, Mahbub U, et al. UPSET and ANGRI: Breaking High
Performance Image Classifiers[J]. arXiv preprint arXiv:1707.01159, 2017.
[27] Cisse M, Adi Y, Neverova N, et al. Houdini: Fooling deep structured prediction
models[J]. arXiv preprint arXiv:1707.05373, 2017.
[28] Baluja S, Fischer I. Adversarial transformation networks: Learning to generate
adversarial examples[J]. arXiv preprint arXiv:1703.09387, 2017.
[29] LeCun Y, Boser B, Denker J S, et al. Backpropagation applied to handwritten zip
code recognition[J]. Neural computation, 1989, 1(4): 541-551.
[30] Bengio Y. Learning deep architectures for AI[J]. Foundations and trends® in
Machine Learning, 2009, 2(1): 1-127.
[31] Kingma D P, Welling M. Auto-encoding variational bayes[J]. arXiv preprint
arXiv:1312.6114, 2013.

36

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

[32] Papernot N, McDaniel P, Swami A, et al. Crafting adversarial input sequences for
recurrent neural networks[C]//MILCOM 2016-2016 IEEE Military Communications
Conference. IEEE, 2016: 49-54.
[33] Lin Y C, Hong Z W, Liao Y H, et al. Tactics of adversarial attack on deep
reinforcement learning agents[J]. arXiv preprint arXiv:1703.06748, 2017.
[34] Metzen J H, Kumar M C, Brox T, et al. Universal adversarial perturbations against
semantic image segmentation[C]//2017 IEEE International Conference on Computer
Vision (ICCV). IEEE, 2017: 2774-2783.
[35] Rozsa A, Günther M, Rudd E M, et al. Facial attributes: Accuracy and adversarial
robustness[J]. Pattern Recognition Letters, 2017.
[36] Rozsa A, Günther M, Rudd E M, et al. Are facial attributes adversarially
robust?[C]//2016 23rd International Conference on Pattern Recognition (ICPR).
IEEE, 2016: 3121-3127.
[37] Al-Azzoa F, Taqia A M, Milanovab M. Human Related-Health Actions Detection
using Android Camera based on TensorFlow Object Detection API[J].
INTERNATIONAL JOURNAL OF ADVANCED COMPUTER SCIENCE AND
APPLICATIONS, 2018, 9(10): 9-23.
[38] Athalye A, Engstrom L, Ilyas A, et al. Synthesizing robust adversarial examples[J].
arXiv preprint arXiv:1707.07397, 2017.
[39] Papernot N, McDaniel P, Goodfellow I, et al. Practical black-box attacks against
machine learning[C]//Proceedings of the 2017 ACM on Asia conference on computer
and communications security. ACM, 2017: 506-519.
[40] Xu X, Chen X, Liu C, et al. Can you fool AI with adversarial examples on a visual
turing test[J]. arXiv preprint arXiv:1709.08693, 2017.
[41] Tanay T, Griffin L. A boundary tilting persepective on the phenomenon of adversarial
examples[J]. arXiv preprint arXiv:1608.07690, 2016.

37

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

[42] Holland J H. Adaptation in natural and artificial systems: an introductory analysis


with applications to biology, control, and artificial intelligence[M]. MIT press, 1992.
[43] 吉根林. 遗传算法研究综述[D]. , 2004
[44] 葛继科, 邱玉辉, 吴春明, 等. 遗传算法研究综述[J]. 計算機應用研究, 2008,
25(10): 2911-2916.
[45] 雷德明. 多维实数编码遗传算法[D]. , 2000.
[46] LeCun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document
recognition[J]. Proceedings of the IEEE, 1998, 86(11): 2278-2324.
[47] LeCun Y, Bengio Y, Hinton G. Deep learning[J]. nature, 2015, 521(7553): 436.
[48] Bengio Y. Learning deep architectures for AI[J]. Foundations and trends® in
Machine Learning, 2009, 2(1): 1-127.
[49] Mnih A, Teh Y W. A fast and simple algorithm for training neural probabilistic
language models[J]. arXiv preprint arXiv:1206.6426, 2012.
[50] Collobert R, Weston J, Bottou L, et al. Natural language processing (almost) from
scratch[J]. Journal of machine learning research, 2011, 12(Aug): 2493-2537.
[51] Alzantot M, Sharma Y, Elgohary A, et al. Generating natural language adversarial
examples[J]. arXiv preprint arXiv:1804.07998, 2018.
[52] Pennington J, Socher R, Manning C. Glove: Global vectors for word
representation[C]//Proceedings of the 2014 conference on empirical methods in
natural language processing (EMNLP). 2014: 1532-1543.

38

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

附录 1

表 被攻击的样本生成对抗样本的迭代次数列表

0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 15, 0, 0, 1, 3, 18, 0, 0, 0, 1, 0, 0, 1, 0, 20, 2, 1, 0, 2, 0, 0, 0, 0,


13, 1, 0, 0, 1, 2, 0, 0, 31, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 8, 24, 0, 0, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 1, 0, 0, 31, 0, 0, 31, 0, 0, 0, 0, 1, 0, 0, 0, 0, 31, 0, 1, 0, 0, 1, 0, 0,
0, 2, 2, 3, 0, 8, 0, 0, 0, 0, 0, 0, 31, 0, 0, 2, 1, 0, 2, 0, 2, 0, 0, 0, 4, 16, 3, 15, 0, 2, 0, 0, 0, 2, 0,
0, 0, 31, 0, 1, 0, 0, 0, 0, 3, 0, 0, 1, 0, 31, 1, 0, 1, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2, 7, 2, 0, 0, 2, 31,
1, 0, 0, 1, 3, 0, 20, 0, 0, 6, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 5, 2, 0, 0, 0, 0, 2, 3, 20, 0,
0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 1, 0, 3, 0, 0, 0, 22, 1, 2, 0, 0, 0, 1, 2, 0, 0, 0,
29, 6, 0, 4, 0, 0, 2, 11, 26, 31, 31, 13, 0, 3, 3, 0, 31, 0, 0, 1, 2, 13, 4, 2, 0, 3, 0, 0, 0, 3, 0, 31,
8, 4, 3, 1, 0, 0, 0, 1, 31, 3, 5, 2, 9, 6, 0, 1, 2, 2, 2, 0, 31, 2, 0, 2, 5, 0, 0, 5, 1, 0, 1, 0, 0, 9, 16,
3, 0, 10, 0, 1, 8, 31, 1, 4, 4, 16, 0, 28, 31, 3, 0, 6, 27, 31, 12, 0, 1, 0, 1, 0, 10, 31, 8, 1, 0, 0,
12, 0, 0, 0, 2, 7, 2, 1, 15, 3, 1, 4, 6, 3, 0, 2, 1, 3, 1, 6, 2, 31, 0, 2, 7, 2, 0, 2, 4, 2, 0, 31, 2, 11,
6, 3, 0, 2, 3, 2, 1, 0, 3, 2, 1, 30, 27, 0, 22, 2, 4, 0, 16, 31, 0, 15, 31, 4, 5, 0, 0, 5, 2, 0, 0, 31,
2, 31, 0, 6, 0, 0, 0, 2, 0, 2, 0, 1, 0, 2, 0, 0, 5, 0, 7, 0, 10, 31, 7, 3, 3, 4, 3, 0, 3, 6, 2, 0, 3, 4, 0,
22, 0, 1, 2, 31, 0, 31, 4, 2, 7, 31, 0, 0, 0, 19, 0, 4, 25, 10, 0, 1, 3, 4, 0, 0, 2, 1, 3, 20, 3, 2, 2,
5, 7, 3, 5, 0, 1, 1, 1, 3, 1, 11, 31, 21, 8, 4, 4, 14, 22, 4, 3, 0, 27, 1, 4, 4

注:31 代表未攻击成功。

39

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

附录 2

表 被攻击的样本生成对抗样本的改动比例列表

0.0063, 0.0038, 0.0055, 0.0263, 0.013, 0.01, 0.0038, 0.0058, 0.0017, 0.0368, 0.0096,
0.0024, 0.1046, 0.0085, 0.0033, 0.0104, 0.0394, 0.1098, 0.0122, 0.0021, 0.0029, 0.0131,
0.0062, 0.0059, 0.0052, 0.0072, 0.1507, 0.0112, 0.0078, 0.0068, 0.0037, 0.003, 0.0057,
0.0039, 0.0009, 0.0648, 0.0046, 0.0042, 0.0053, 0.0045, 0.0045, 0.0192, 0.0204, 0,
0.0147, 0.0074, 0.0049, 0.0042, 0.005, 0.0043, 0.0379, 0.0031, 0.0083, 0.0062, 0.0794,
0.1557, 0.0045, 0.0068, 0, 0.0778, 0.006, 0.005, 0.0031, 0.0066, 0.0016, 0.0154, 0.0043,
0.0055, 0.009, 0.0012, 0.0081, 0.0049, 0.02, 0.0028, 0.0072, 0.0114, 0.0036, 0.0044,
0.0198, 0.0612, 0.0089, 0.0055, 0.0049, 0, 0.0076, 0.0051, 0, 0.0023, 0.0065, 0.0084,
0.0093, 0.0093, 0.0035, 0.0025, 0.007, 0.0034, 0, 0.0011, 0.0062, 0.0033, 0.0044, 0.0131,
0.0063, 0.0068, 0.0042, 0.0124, 0.0195, 0.0323, 0.0027, 0.0359, 0.0056, 0.0024, 0.0047,
0.007, 0.0027, 0.0055, 0, 0.0123, 0.0017, 0.0226, 0.0132, 0.003, 0.0105, 0.0079, 0.016,
0.0088, 0.0143, 0.0149, 0.0806, 0.0874, 0.0526, 0.2143, 0.0156, 0.0292, 0.0024, 0.0009,
0.0079, 0.0231, 0.0032, 0.004, 0.0063, 0, 0.0014, 0.004, 0.0017, 0.0238, 0.0018, 0.0028,
0.0446, 0.0043, 0.0081, 0.0065, 0.0049, 0, 0.0087, 0.0044, 0.0132, 0.0064, 0.0154,
0.0072, 0.0083, 0.0021, 0.0588, 0.0156, 0.0152, 0.0192, 0.0154, 0.0162, 0.0297, 0.0033,
0.0083, 0.0012, 0.0207, 0, 0.0098, 0.003, 0.0152, 0.0083, 0.0526, 0.0018, 0.0411, 0.0196,
0.0056, 0.0645, 0.0065, 0.0076, 0.0051, 0.0072, 0.0037, 0.0057, 0.0036, 0.0055, 0.0062,
0.0056, 0.0154, 0.0057, 0.0769, 0.0069, 0.0167, 0.0395, 0.0174, 0.006, 0.0032, 0.0037,
0.0017, 0.0194, 0.0037, 0.1626, 0.0263, 0.007, 0.0098, 0.0046, 0.0065, 0.0047, 0.0039,
0.0045, 0.0702, 0.0038, 0.0049, 0.0022, 0.0031, 0.0066, 0.0068, 0.0043, 0.0045, 0.0091,
0.0021, 0.0051, 0.0064, 0.034, 0.0054, 0.0044, 0.0016, 0.107, 0.0088, 0.0027, 0.001,
0.0048, 0.003, 0.0088, 0.0047, 0.0058, 0.0068, 0.0041, 0.1042, 0.0467, 0.0052, 0.0816,
注:0 代表未攻击成功。

40

万方数据
华 中 科 技 大 学 硕 士 学 位 论 文

续表 1 被攻击的样本生成对抗样本的改动比例列表

0.0068, 0.0093, 0.0115, 0.0498, 0.1378, 0, 0, 0.0401, 0.0082, 0.0261, 0.0119, 0.0075, 0,
0.0018, 0.0019, 0.0083, 0.0192, 0.1102, 0.0237, 0.0296, 0.0052, 0.0143, 0.0051, 0.0039,
0.001, 0.0123, 0.0045, 0, 0.0352, 0.0426, 0.0394, 0.0116, 0.006, 0.0022, 0.007, 0.0085, 0,
0.0263, 0.0938, 0.0149, 0.0376, 0.0734, 0.0073, 0.0102, 0.0116, 0.004, 0.021, 0.0016, 0,
0.0086, 0.002, 0.0065, 0.0729, 0.0147, 0.0027, 0.0095, 0.0051, 0.0042, 0.0297, 0.0016,
0.007, 0.0985, 0.1083, 0.0108, 0.0056, 0.0952, 0.0055, 0.0127, 0.1, 0, 0.0042, 0.024,
0.0059, 0.1, 0.0058, 0.0723, 0, 0.0067, 0.0046, 0.0667, 0.1609, 0, 0.0765, 0.0014, 0.0112,
0.0036, 0.0119, 0.0056, 0.0857, 0, 0.0862, 0.0078, 0.0048, 0.0065, 0.076, 0.0141, 0.0038,
0.0054, 0.0667, 0.1127, 0.0175, 0.0057, 0.1328, 0.0051, 0.0111, 0.0426, 0.0606, 0.0241,
0.0059, 0.0098, 0.0119, 0.0081, 0.0109, 0.0083, 0.0091, 0, 0.007, 0.0308, 0.041, 0.0032,
0.0072, 0.0132, 0.0132, 0.0248, 0.0103, 0, 0.0102, 0.0867, 0.0818, 0.0325, 0.007, 0.0118,
0.0196, 0.0079, 0.0067, 0.007, 0.0253, 0.0196, 0.0046, 0.133, 0.049, 0.0038, 0.2193,
0.0055, 0.0492, 0.0024, 0.1132, 0, 0.0054, 0.0611, 0, 0.0588, 0.1077, 0.0061, 0.0019,
0.0522, 0.0053, 0.0075, 0.0082, 0, 0.0101, 0, 0.0046, 0.0678, 0.0071, 0.0083, 0.0065,
0.009, 0.0081, 0.0172, 0.004, 0.0054, 0.0036, 0.0098, 0.0073, 0.0038, 0.0169, 0.0047,
0.0657, 0.0082, 0.0531, 0, 0.0085, 0.0388, 0.0336, 0.0435, 0.0368, 0.0034, 0.0108,
0.1311, 0.0284, 0.0015, 0.0938, 0.0166, 0.0078, 0.2155, 0.0061, 0.0123, 0.0255, 0,
0.0097, 0, 0.0513, 0.0182, 0.1176, 0, 0.0256, 0.0047, 0.0068, 0.1156, 0.0056, 0.0227,
0.2935, 0.0407, 0.0043, 0.007, 0.0217, 0.0556, 0.0062, 0.0053, 0.0064, 0.0103, 0.0233,
0.2558, 0.0909, 0.0377, 0.0105, 0.1591, 0.0698, 0.0207, 0.0684, 0.0075, 0.0059, 0.0086,
0.0116, 0.0508, 0.0053, 0.097, 0, 0.0573, 0.0533, 0.0504, 0.0538, 0.0593, 0.0979, 0.0111,
0.0172, 0.0022, 0.1217, 0.0108, 0.0476, 0.0179
注:0 代表未攻击成功。

41

万方数据

You might also like