什么是对抗样本、对抗攻击(详解)

1.对抗样本

所谓对抗样本就是指:在原始样本添加一些人眼无法察觉的扰动(这样的扰动不会影响人类的识别,但是却很容易愚弄模型),致使机器做出错误的判断。

如下所示,这两张图片添加噪声(或者说扰动之后)被误分类。

 

2.对抗攻击

由于机器学习算法的输入形式是一种数值型向量(numeric vectors),所以攻击者就会通过设计一种有针对性的数值型向量从而让机器学习模型做出误判,这便被称为对抗性攻击。(也可以这样理解:将上面生成对抗样本的过程,理解为对抗攻击

和其他攻击不同,对抗性攻击主要发生在构造对抗样本的时候,之后该对对抗样本就如正常数据一样输入机器学习模型并得到欺骗的识别结果。在构造对抗样本的过程中,无论是图像识别系统还是语音识别系统,根据攻击者掌握机器学习模型信息的多少,可以分为如下两种情况:

2.1 白盒攻击

攻击者能够获知机器学习所使用的算法,以及算法所使用的参数。攻击者在产生对抗性攻击数据的过程中能够与机器学习的系统有所交互。

2.2 黑盒攻击

攻击者并不知道机器学习所使用的算法和参数,但攻击者仍能与机器学习的系统有所交互,比如可以通过传入任意输入观察输出,判断输出。

 

这里借用网上一位博主的例子来说下白盒/黑盒攻击

下面就以Inception v3为例,介绍一下如何使用白盒模型来攻击Google的Inception v3  ImageNet分类器:

我使用谷歌Inception v3作为目标图像识别模型,并选取ImageNet中的50000个验证图像针对Inception v3构造出相对应的对抗性图像。在实验中,将所有的对抗性图片和原始图片都打印出来,并手动用一个Nexus 5智能手机进行拍照,然后将手机里的图像输入Inception v3模型进行识别。现场结果表明,87%的对抗性图像在经过外界环境转化后仍能成功欺骗机器。

你可以将经过训练的神经网络看作一组单元格,而同一单元格利的每个点(比如本文中就代表图像)都与同一个类相关联。不过,这些单元格过度线性化,就很容易对细微的变化不敏感,而攻击者恰恰是抓住了这一点。

 

使用快速梯度逐步算法(Fast Gradient Step Method ,FGSM)可以分解对抗过程。这个方法的关键就是在每一步分析的过程中加入少量扰动,让预测结果朝目标类别偏移。有时候我需要限制扰动的振幅以使得攻击更加隐蔽, 一方被反侦察。在本文中,扰动的振幅意味着像素通道的强度,这意味着限制振幅可以确保扰动几乎无法察觉,最理想的情况就是,经过扰动的图片看起来仅像一个压缩的JPG文件。

应该说是一个纯粹的最优化问题,不过在本文中,我优化扰动强度的目的是为了使攻击最大化。由于你可以获取神经网络的原始输出信息, 所以你可以直接测量误差以及计算梯度。

但如果你没有完整的原始输出信息怎么办,比如你只有一个分类结果,这就是黑盒攻击模型。

这时,你要做的就是从相同的方向进行Noise。首先你需要生成扰动并加到图片上, 然后将图片输入分类器, 并不断重复这个过程直到机器出错。不管你是否限制Noise强度的大小,重复到某个时刻,你都不会再看到正确的分类结果。此时你需要做的事就是找到能得到相同错误结果的最弱扰动,用一个简单的二分搜索就可以做到。

 

2.3 有目标攻击 & 无目标攻击

无目标攻击(untargeted attack):被攻击的模型的输出只要是错误的,就可以了。如原图像是小猫,添加干扰形成对抗样本输入到模型中,模型输出错误,输出结果可以是小狗也可以是小羊或者是其他,只要求是错误的。

有目标攻击(targeted attack):被攻击模型的错误输出为特定类别。如原图像是小猫,生成的对抗样本使DNN模型错误分类为攻击者想要的小狗。

 

3.对抗防御

为了防御对抗攻击,相应的对抗防御也就应运而生了,目前主要有以下几大类:

对抗训练:将生成的对抗样本和原始样本混合在一起训练出一个鲁棒性更强的模型。

梯度掩码:由于当前的许多对抗样本生成方法都是基于梯度去生成的,所以如果将模型的原始梯度隐藏起来,就可以达到抵御对抗样本攻击的效果。

随机化:向原始模型引入随机层或者随机变量。使模型具有一定随机性,全面提高模型的鲁棒性,使其对噪声的容忍度变高。

去噪:在输入模型进行判定之前,先对当前对抗样本进行去噪,剔除其中造成扰动的信息,使其不能对模型造成攻击。

 

4.研究对抗攻击的意义如下
1. 能让机器学习模型处理大规模数据;
2. 以“计算机速度”处理攻击威胁;
3. 不依赖数据的明显特征,发现实际应用中的各种内在威胁;
4. 阻止已知和未知的恶意软件;
5. 阻止恶意软件的提前执行;
6. 优化模型,让分类模型达到更加高的分类准确率和更加低的错误率。



 

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值