对抗性攻击的原理简介
由于机器学习算法的输入形式是一种数值型向量(numeric vectors),所以攻击者就会通过设计一种有针对性的数值型向量从而让机器学习模型做出误判,这便被称为对抗性攻击。和其他攻击不同,对抗性攻击主要发生在构造对抗性数据的时候,该对抗性数据就如正常数据一样输入机器学习模型并得到欺骗的识别结果。
什么是对抗样本?
这些数据样本看起来像正常样本,但以某种方式受到干扰以欺骗机器学习系统。例如在给定的图像中,并非所有像素都具有相同的重要性,如果可以识别最重要的像素(用于 ML 系统做出分类决策)并更改它们,那么算法决策也会发生变化,样本的结果也会发生变化,但是从肉眼看起来它还是正常的。
【对抗性攻击的原理简介】
文章图片
右边的熊猫在加入对抗性噪声后看起来仍然像熊猫,但现在它会被原来的分类器分类到一个完全不同的类中
文章图片
所有图片都可以通过这样一种方式受到干扰,以至于所有的图片都被预测为一架飞机
为什么会发生对抗性攻击?
在我们指出它们发生的原因之前,我们再次强调无论是逻辑回归、softmax 回归、SVM、决策树、最近邻还是深度学习模型,没有任何 ML 算法可以免受对抗性攻击。对抗性示例的发生是因为系统中的excessive linearity(过度线性?)造成的。你可能认为深度学习很容易形成非线性决策边界,是的整体上是这样的,但几乎每一个深度学习架构都是分段线性的(想想激活函数)。所以当一个点靠近线性边界时,即使是少量的噪声也能将其推到决策边界的另一侧。从下图中还可以看到,在实践中深度学习分类器具有非常线性的响应。
文章图片
深度学习架构是分段线性的
文章图片
通常这些类的类间距离很小,因此使用快速符号梯度法FGSM(Fast Gradient Sign Method)可以轻松更改给定对象的类。FGSM通过向图像添加线性量的不可感知噪声并导致模型对其进行错误分类。这个噪声是通过将梯度的符号与我们想要扰动的图像乘以一个小的常数 epsilon 来计算的。随着 epsilon 的增加模型更有可能被愚弄,但扰动也变得更容易识别。对抗噪声可能看起来像随机噪声,但它肯定不是。它会根据像素在最终分类结果中的重要性,为每个像素添加不同数量的噪声。
它们如何被用来破坏机器学习系统?
Andrej karpathy在他的论文中展示了如何打破ImageNet数据集上的线性分类器。但这并不仅限于图像,甚至可以欺骗表格数据,这在金融领域是非常致命的。对抗性攻击是我们不信任自治系统(autonomous system)的原因。我们需要能够处理噪音并能在不同环境中保持稳定的系统。
文章图片
对抗性鲁棒性工具集(ART)是用于机器学习安全性的Python库。ART提供的工具可 帮助开发人员和研究人员针对以下方面捍卫和评估机器学习模型和应用程序:逃逸,数据污染,模型提取和推断的对抗性威胁,有兴趣的可以看看。
https://github.com/Trusted-AI...
对抗样本非常危险的另一个关键领域是人工智能医疗。仅 5 个像素就足以使模型变得毫无用处, 这表明模型不是整体的,并且以完全错误的方式在查看数据。尽管从结果来看它看起来很聪明,但在所有结果的背后只是一种数字运算技术并且缺乏上下文的支持,这就是为什么对抗性攻击的风险如此之高。
有哪些防御措施?
正如我们之前确定的那样,对抗样本的存在是因为系统中的线性度,如果我们能以某种方式减少这种线性度会怎样。先谈谈 VC维(Vapnik–Chervonenkis dimension),vc理论(Vapnik–Chervonenkis theory )是由 Vladimir Vapnik 和 Alexey Chervonenkis发明的,该理论试图从统计学的角度解释学习的过程。而VC维是VC理论中一个很重要的部分。对一个指示函数集,如果存在h个样本能够被函数集中的函数按所有可能的2^h种形式分开,则称函数集能够把h个样本打散;
函数集的VC维就是它能打散的最大样本数目h.若对任意数目的样本都有函数能将它们打散,则函数集的VC维是无穷大. VC维反映了函数集的学习能力,VC维越大则学习机器越复杂(容量越大).学习能力越强。
文章图片
现在,你是否知道一种具有非常高 VC 维度的算法,这意味着它可以在非常高的维度上分离点?我所知道的唯一算法是 SVM 的高斯或 RBF 核,它的 VC 维数为无穷大,这意味着理论上它甚至可以在神经网络无法做到的无穷维中分离点。正是因为这个原因,RBF-SVM 对对抗样本具有鲁棒性。对于除 RBF-SVM 之外的任何其他分类器,研究人员都可以生成任何被预测为 0、1、2….、9 的数字并且无论从人还是从机器角度看输入中也没有任何明显的噪声。下图显示,当他们尝试为 RBF-SVM 生成对抗样本时,数字实际上发生了很大变化。RBF-SVM 将数据推向无限维度,因此每个类之间的类间距离很大。
文章图片
对于神经网络,可以使用对抗性示例训练网络,这往往会增加网络的鲁棒性。对抗训练提供正则化和半监督学习 ,下图显示了对抗样本训练的性能提升。其他想法是训练模型使其不可微。此外对抗性攻击不会因为传统的正则化技术而消失。
文章图片
以下都是对于对抗性攻击没有任何作用的一些方法
文章图片
最初研究人员认为GAN可以解决这个问题,他们认为如果我们知道输入的真实分布,我们就可以避免这个问题,但事实证明,识别对抗样本仍然非常困难。看看下面的图片,一组是好的,另一组是坏的,但是对人类的眼睛来说,它们看起来是一样的。
文章图片
- 线性模型:支持向量机/线性回归不能学习阶跃函数,所以对抗训练的用处不大,作用非常类似于权值衰减
- k-NN:对抗训练容易过度拟合。
- 神经网络实际上可以变得比其他模型更安全。对抗性训练的神经网络在任何机器学习模型的对抗性示例上都具有最佳的经验成功率。
- 对抗训练提供正则化和半监督学习
- 进攻很简单
- 防守很困难
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量