最近,在全球安全领域的殿堂级盛会 DEF CON 2018 上,GeekPwn 拉斯维加斯站举行了 CAAD CTF 邀请赛,六支由国内外顶级 AI 学者与研究院组成的队伍共同探讨以对抗训练为攻防手段的 CTF。TSAIL 团队的庞天宇、杜超作为代表获得该项比赛的冠军,参加比赛的骨干成员还包括董胤蓬、韦星星等,TSAIL 团队来自于清华大学人工智能研究院,主要研究领域为机器学习。

同样在去年,该团队在 NIPS 2017 AI 对抗性攻防竞赛的三项比赛任务中(有/无特定目标攻击;攻击检测),全部获得冠军,战胜了包括斯坦福、约翰霍普金斯大学等世界著名高校在内的 100 多支代表队,在人工智能模型的鲁棒性和安全性应用方面迈出了重要一步。

在今年的 CADD CTF 攻防赛中,选手需要根据随机匹配战队的指定图像,对其他战队发动「定向对抗样本」攻击,同时还要防御来自其他团队的「对抗样本」。这种对抗攻击是完全黑盒的,各战队无法获取任何关于对方模型的信息,例如损失函数、模型架构、输入-输出样本对等等。

对抗攻击

对抗样本是指攻击者通过向真实样本中添加人眼不可见的噪声,导致深度学习模型发生预测错误的样本,如下图所示给定一张熊猫的图像,攻击方给图片添加了微小的噪声扰乱,尽管人眼是很难区分的,但是模型却以非常高的概率将其误分类为长臂猿。随着机器学习的大规模应用,这类误差对于系统安全显得尤为重要,CAAD 竞赛正是希望能探讨如何加强系统对于这类对抗样本的鲁棒性。

上图为 Ian Goodfellow 在 14 年展示的对抗样本,这种对抗样本是通过一种名为 FGSM 的算法得出。

一般而言,对抗攻击可以分为白盒攻击、黑盒攻击、定向攻击,以及通用攻击。其中白盒攻击是指攻击者能完全访问到被攻击模型,也就是说攻击者在知道模型架构和参数的情况下制造能欺骗它的对抗样本。而黑盒攻击则表明攻击者只能观察到被攻击模型的输入与输出,例如通过 API 攻击机器学习模型可以视为一个黑盒攻击,因为攻击者只能通过观察输入输出对来构造对抗样本。

在 CAAD CTF 竞赛中,选手所需要采用的是定向的通用攻击。其中对于定向攻击,攻击者希望能够造出对抗样本来欺骗目标系统误分类为特定的类别,例如我们可能希望构建一个对抗样本,它能令图像识别系统将其误分类为「小狗」等特定的类别。对于通用攻击而言,攻击者尝试设计一种图像扰动转换,它能在不知道被攻击系统任何信息的情况下欺骗它。因此在 CAAD CTF 竞赛中,选手不仅不能访问到对方的模型架构与参数,同时也不能访问到被攻击系统的输入与输出样本对。

目前比较流行的攻击方法主要是基于梯度和迭代的方法,其它很多优秀与先进的攻击方法都基于它们的主要思想。这一类方法的主要思想即希望找到能最大化损失函数变化的微小扰动,这样通过给原始输入加上这一微小扰动,模型就会误分类为其它类别。通常简单的做法是沿反向传播计算损失函数对输入的导数,并根据该导数最大化损失函数,这样攻击者就能找到最优的扰动方向,并构造对抗样本欺骗该深度网络。

例如 Goodfellow 在 2014 年提出的 Fast Gradient Sign Method(FGSM),如果我们令θ表示模型的参数、x 和 y 表示输入与输出、J(θ, x, y) 为训练神经网络的损失函数,那么我们可以在当前θ值的邻域线性逼近损失函数,并获得最优的最大范数约束扰动:

如上图所示将最优的扰动加入原输入「熊猫」,就能令系统将其误分类为「长臂猿」。FGSM 能通过反向传播快速计算梯度,并找到令模型损失增加最多的微小扰动η。其它如基本迭代方法(BIM)会使用较小的步长迭代多次 FGSM,从而获得效果更好的对抗样本。

当然,仅仅是白盒攻击的话还不会引起较大的影响,可怕的是对抗样本具有迁移性,这也是令 CAAD CTF 这种定向通用攻击可行的原因。可迁移的攻击指的是我们不知道攻击目标使用什么样的机器学习模型、具体参数和训练集等,但我们可以通过类似数据集训练自己的模型并构建对抗样本,这些对抗样本因为可迁移性很可能可以欺骗未知的目标模型。

随后在 2016 年,Yanpei Liu 等研究者提出一种基于模型集成的攻击方法,他们表示当对抗样本能欺骗集成的多个已知模型时,它有非常大的可能性能欺骗未知的模型。TSAIL 团队同样表示集成方法在实际比赛中非常重要,他们集成多个常见的卷积神经网络以构建对抗样本,如 Inception v4、ResNet 和 DenceNet 等。正因为集成能显著提升对抗样本的可迁移性,他们才能在不获取任何目标系统的信息下完成攻击。

除此之外,TSAIL 团队表示他们会通过动量提升对抗性攻击力。他们表示部署深度学习模型之前,对抗性攻击是评估其稳健性的重要替代物之一。然而,大多数现有的对抗性攻击能够成功迷惑黑盒模型的概率很低。为了解决这一问题,他们提出了一种以动量为基础的具有广泛级别的迭代算法增强对抗攻击能力。通过将动量项集成到攻击迭代过程,模型可以获得更稳定的更新方向,避免在迭代过程中出现劣质的局部最大值,并且同时产生更多的可迁移对抗样本。为进一步提高黑盒攻击的成功率,他们将动量迭代算法应用到一个模型集合中,从而表明这种受训模型即便有很强的防御能力,在他们的黑盒攻击面前仍然束手无助。

对抗防守

清华大学 TSAIL 团队同样还重点关注于构建更鲁棒的对抗样本防御模型,在这次竞赛中,TSAIL 团队在定向攻击其它模型的同时,还需要防御其它参赛者的对抗样本攻击。TSAIL 实验室前面曾提出两种防御对抗样本的方法,它们都是尝试修正损失函数以获得更好的稳定性。

在论文 Towards Robust Detection of Adversarial Examples 中,庞天宇等研究者表示可以强制令 DNN 分类器将所有正常样本映射到低维流形中相近的地方,因此当模型接收到对抗样本时,它就能轻松将其与正常样本区分开来。在这一篇论文中,他们提出一种名为反交叉熵(reverse cross-entropy,RCE)的损失函数,并表明在训练中最小化 RCE 损失函数将会鼓励深度神经网络学习能区分对抗样本和正常样本的隐藏空间。

研究者在论文中使用下图展示了为什么将正常样本映射到低维流形中的近邻能抵抗对抗样本。其中 non-ME 为归一化的非最大值信息熵,它计算的是除去最可能的预测后,其它类别预测概率的信息熵,这种度量相对于使用 Softmax 更能区分对抗样本。如下图 1 a 所示为神经网络最后一层隐藏空间的分类边界,non-ME 会将正常样本约束到一起。

图 1:a 中三条黑色实线为分类器的决策边界,蓝色虚线为 non-ME = t 的等值线。b 和 c 为最后隐藏层向量的 t-SNE 可视化,模型都是在 CIFAR-10 上训练的 ResNet-32,只不过 b 使用的是一般的交叉熵损失函数,c 使用的是 RCE。

如上所示,z_0 为原始正常样本,它被映射为反向延长线的近邻,即蓝色的等值线之间。当我们不使用对抗样本检测度量时,z_1 相对于 z_0 位于决策边界的附近,它可能是非常成功的对抗样本。但是当我们使用 non-ME 作为对抗样本检测度量时,z_1 可以很容易被过滤掉,因为它不在真实样本的近邻。在这种情况下,成功的对抗样本会出现在 z_2 的位置,其中分类边界与近邻边界出现重合。

研究者们表示,如果想要在最后一层的隐藏空间达到这种效果,我们就需要在训练中使用 REC 损失函数。如下展示了 REC 损失函数,其中 R_y 表示反标签向量,即第 y 个标注值设置为零、其它类别值为 1/(L-1)。此外,F(x) 为模型的预测值,因此 RCE 度量的是反标签向量与预测值之间的交叉熵。

通过在训练过程中最小化 RCE 损失函数,该网络鼓励分类器在正确的类别上返回较高的置信度,而在错误类别上返回均匀分布。且还会进一步令分类器将同一类别的正常样本在低维流形上聚在一起,即在神经网络最后一层的隐藏空间上分离正常样本与对抗样本。此外,这一新型损失函数可以在理论上证明其收敛性,同时它如同交叉熵损失函数一样使用一般的 SGD 进行训练。

在另一篇论文 Max-Mahalanobis Linear Discriminant Analysis Networks 中,清华大学 TSAIL 团队的研究者探讨了另外一种抵御对抗样本的方法。具体而言,他们定义了一种特殊的高斯混合分布 Max-Mahalanobis,并且理论性地证明了如果输入分布是 MMD,那么线性判别分析(LDA)对于对抗样本有非常好的鲁棒性。

基于这一发现,他们提出了 MM-LDA 网络。简单而言,该网络将复杂的输入数据分布映射到服从 Max-Mahalanobis 分布的隐藏特征空间,并使用 LDA 做最后的预测。因此该网络重要的是理解 Max-Mahalanobis 分布,以及为什么它能防御对抗样本。

如上展示了根据不同类别数 L 所构建的 Max-Mahalanobis 分布,其中μ为不同高斯分布的均值,且它们分别为图形的顶点。MMD 中高斯分布的方差固定为单位方差,且没有其它特殊的要求。但 MMD 中均值μ的分布需要满足一些条件,即要求相距最近的两个μ之间的距离最大,这样不同的类别就要求分布地最开。

如上当类别 L 为 3 的时候,我们希望约束神经网络的最后一层将属于类别 i 的正常样本都映射到分布 N(z|μ_i, I) 内,其中μ_1、μ_2 和μ_3 需要尽可能布散开以逼近等边三角形。形式化而言,我们需要最大化 μ 之间的最小距离,即 max{min(D_12, D_13, D_23)},其中 D_12 表示μ_1 和μ_2 之间的距离。

因为 MMD 令各类别均值的间隔近似最大,因此神经网络将每一个类别都映射到相互远离的高斯分布内,这样再通过线性判别分析就能快速作出最后的预测。整体而言,研究者们提出的 MM-LDA 网络首先会有一个深度网络将输入数据 x 映射到隐藏特征表征 z,并迫使 z 的分布 P(z) 服从于 MMD,然后再在 z 上使用 LDA 做预测。

为了迫使神经网络最后一层隐向量 z 服从 Max-Mahalanobis 分布,我们需要限制标签的分布为:

其中每个类别的先验概率 π 与均值 μ* 都是根据 MMD 预定义的,再根据上式而不是常用的 Softmax 函数来预测类别就相当于引入了 Max-Mahalanobis 分布。最后在训练过程中,只要最小化标注样本与模型预测 P(y|z(x; θ)) 之间的交叉熵损失函数就能令 z 近似服从于 MMD。此外,由于整个网络同样仅需要修改损失函数,它可以直接应用于不同的深度模型来获得更好的鲁棒性。

清华大学人工智能研究院 TSAIL 团队

除了这两份关于鲁棒性机器学习系统的研究,实验室在对抗攻击与防守等 AI 安全领域还有非常多的研究。例如在针对图像识别的对抗攻防外,AI 安全还包括图像场景分割、视频分类、文本和图数据上的攻防,这一次比赛只是 AI 安全领域中比较小的一部分。除此之外,实验室还做了大量关于概率机器学习方面的研究,例如贝叶斯机器学习等,这一方面的研究成果很多都体现在「珠算(ZhuSuan)」这一开源库上。

团队在可理解的人工智能领域拥有先进技术积累,针对 AI 决策、AI 理解、AI 安全等领域技术领先。2017 年间,团队成员获得 Google 主办的 NIPS 人工智能安全攻防竞赛全部三个项目世界第一;获得 Kaggle 数据科学碗 2017 第一名(50 万美元奖金);获得创新工场 AI Challenge 2017 图像中文描述项目第一名;2018 年获得 VizDoom 机器人枪战比赛第一名。课题组所开发的「珠算(ZhuSuan)」贝叶斯深度学习平台在国际人工智能和机器学习领域产生广泛影响。

对抗样本攻防战,清华大学TSAIL团队再获CAAD攻防赛第一的更多相关文章

  1. NLP中的对抗样本

    自然语言处理方面的研究在近几年取得了惊人的进步,深度神经网络模型已经取代了许多传统的方法.但是,当前提出的许多自然语言处理模型并不能够反映文本的多样特征.因此,许多研究者认为应该开辟新的研究方法,特别 ...

  2. Android安全攻防战,反编译与混淆技术完全解析(下)

    在上一篇文章当中,我们学习了Android程序反编译方面的知识,包括反编译代码.反编译资源.以及重新打包等内容.通过这些内容我们也能看出来,其实我们的程序并没有那么的安全.可能资源被反编译影响还不是很 ...

  3. Android安全攻防战,反编译与混淆技术完全解析(上)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/49738023 之前一直有犹豫过要不要写这篇文章,毕竟去反编译人家的程序并不是什么值 ...

  4. 用Caffe生成对抗样本

    同步自我的知乎专栏:https://zhuanlan.zhihu.com/p/26122612 上篇文章 瞎谈CNN:通过优化求解输入图像 - 知乎专栏 中提到过对抗样本,这篇算是针对对抗样本的一个小 ...

  5. Android安全攻防战,反编译与混淆技术全然解析(下)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/50451259 在上一篇文章其中,我们学习了Android程序反编译方面的知识,包括 ...

  6. 对抗防御之对抗样本检测(一):Feature Squeezing

    引言 在之前的文章中,我们介绍了对抗样本和对抗攻击的方法.在该系列文章中,我们介绍一种对抗样本防御的策略--对抗样本检测,可以通过检测对抗样本来强化DNN模型.本篇文章论述其中一种方法:feature ...

  7. 实验室外的攻防战 UOJ#180 [树状数组]

    实验室外的攻防战 UOJ#180 [树状数组] 题目 时针指向午夜十二点,约定的日子--2月28日终于到来了.随着一声枪响,伏特跳蚤国王率领着他的跳蚤大军们包围了 \(picks\) 博士所在的实验室 ...

  8. 阿里云数据库再获学术顶会认可,一文全览VLDB最新亮点

    一年一度的数据库领域顶级会议VLDB 2019于当地时间8月26日-8月30日在洛杉矶圆满落幕.在本届大会上,阿里云数据库产品团队浓墨登场,不仅有多篇论文入选Research Track和Indust ...

  9. sql 分组后按时间降序排列再取出每组的第一条记录

    原文:sql 分组后按时间降序排列再取出每组的第一条记录 竞价记录表: Aid 为竞拍车辆ID,uid为参与竞价人员ID,BidTime为参与竞拍时间 查询出表中某人参与的所有车辆的最新的一条的竞价记 ...

随机推荐

  1. Linux下你需要了解的10个网络和监控命令

    我下面列出来的10个基础的每个linux用户都应该知道的网络和监控命令.网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nsloo ...

  2. CodeForces - 1097D:Makoto and a Blackboard (积性)

    Makoto has a big blackboard with a positive integer n written on it. He will perform the following a ...

  3. python3反射

    class Cmd:# def __init__(self,name):# self.name = name def run(self): while 1: cmd = input('>> ...

  4. 《DSP using MATLAB》 Problem 3.22

    代码: %% ------------------------------------------------------------------------ %% Output Info about ...

  5. 【java编程】java对象copy

    实现java对象Copy的三种方式 一.克隆 implements Cloneable 二.序列化 implements Serializable 三.利用反射机制copy apache的BeanUt ...

  6. Linux下编译安装nginx并且监控

    一.安装Nginx 使用源码编译安装,包括具体的编译参数信息. 正式开始前,编译环境gcc g++ 开发库之类的需要提前装好. 安装make: yum -y install gcc automake ...

  7. tomcat源码阅读之StandardContext

    Context实例表示一个具体的web应用程序,其中包含一个或者多个Wrapper实例,每个Wrapper表示一个具体的servlet定义.StandardContext类是Context接口的标准实 ...

  8. 【转】【iOS】动态更换App图标

    原文网址:http://www.cocoachina.com/ios/20170619/19557.html 前言 动态更换App图标这件事,在用户里总是存在需求的:有些用户喜欢“美化”自己的手机.至 ...

  9. 【转】每天一个linux命令(37):date命令

    原文网址:http://www.cnblogs.com/peida/archive/2012/12/13/2815687.html 在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常 ...

  10. 使用 ASMCMD 工具管理ASM目录及文件

    ============================== -- 使用ASMCMD 工具管理ASM目录及文件 --============================== 在ASM实例中,所有的 ...