|对抗性攻击的原理简介

|对抗性攻击的原理简介

文章图片

|对抗性攻击的原理简介

文章图片

|对抗性攻击的原理简介

文章图片

|对抗性攻击的原理简介

文章图片

|对抗性攻击的原理简介

文章图片


由于机器学习算法的输入形式是一种数值型向量(numeric vectors) , 所以攻击者就会通过设计一种有针对性的数值型向量从而让机器学习模型做出误判 , 这便被称为对抗性攻击 。 和其他攻击不同 , 对抗性攻击主要发生在构造对抗性数据的时候 , 该对抗性数据就如正常数据一样输入机器学习模型并得到欺骗的识别结果 。
什么是对抗样本?这些数据样本看起来像正常样本 , 但以某种方式受到干扰以欺骗机器学习系统 。例如在给定的图像中 , 并非所有像素都具有相同的重要性 , 如果可以识别最重要的像素(用于 ML 系统做出分类决策)并更改它们 , 那么算法决策也会发生变化 , 样本的结果也会发生变化 , 但是从肉眼看起来它还是正常的 。
【|对抗性攻击的原理简介】
右边的熊猫在加入对抗性噪声后看起来仍然像熊猫 , 但现在它会被原来的分类器分类到一个完全不同的类中

所有图片都可以通过这样一种方式受到干扰 , 以至于所有的图片都被预测为一架飞机
为什么会发生对抗性攻击?在我们指出它们发生的原因之前 , 我们再次强调无论是逻辑回归、softmax 回归、SVM、决策树、最近邻还是深度学习模型 , 没有任何 ML 算法可以免受对抗性攻击 。对抗性示例的发生是因为系统中的excessive linearity(过度线性?)造成的 。你可能认为深度学习很容易形成非线性决策边界 , 是的整体上是这样的 , 但几乎每一个深度学习架构都是分段线性的(想想激活函数) 。所以当一个点靠近线性边界时 , 即使是少量的噪声也能将其推到决策边界的另一侧 。从下图中还可以看到 , 在实践中深度学习分类器具有非常线性的响应 。

深度学习架构是分段线性的

通常这些类的类间距离很小 , 因此使用快速符号梯度法FGSM(Fast Gradient Sign Method)可以轻松更改给定对象的类 。FGSM通过向图像添加线性量的不可感知噪声并导致模型对其进行错误分类 。这个噪声是通过将梯度的符号与我们想要扰动的图像乘以一个小的常数 epsilon 来计算的 。随着 epsilon 的增加模型更有可能被愚弄 , 但扰动也变得更容易识别 。对抗噪声可能看起来像随机噪声 , 但它肯定不是 。 它会根据像素在最终分类结果中的重要性 , 为每个像素添加不同数量的噪声 。
它们如何被用来破坏机器学习系统?Andrej karpathy在他的论文中展示了如何打破ImageNet数据集上的线性分类器 。 但这并不仅限于图像 , 甚至可以欺骗表格数据 , 这在金融领域是非常致命的 。 对抗性攻击是我们不信任自治系统(autonomous system)的原因 。 我们需要能够处理噪音并能在不同环境中保持稳定的系统 。

对抗性鲁棒性工具集(ART)是用于机器学习安全性的Python库 。 ART提供的工具可 帮助开发人员和研究人员针对以下方面捍卫和评估机器学习模型和应用程序: 逃逸 , 数据污染 , 模型提取和推断的对抗性威胁 , 有兴趣的可以看看 。