来源:Deephub Imba
本文约2200字,建议阅读5分钟
本文介绍了对抗性攻击的原理。

由于机器学习算法的输入形式是一种数值型向量(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/adversarial-robustness-toolbox

对抗样本非常危险的另一个关键领域是人工智能医疗。仅 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:对抗训练容易过度拟合。

结论

  • 神经网络实际上可以变得比其他模型更安全。对抗性训练的神经网络在任何机器学习模型的对抗性示例上都具有最佳的经验成功率。

  • 对抗训练提供正则化和半监督学习

  • 进攻很简单

  • 防守很困难

编辑:王菁

校对:林亦霖

对抗性攻击的原理简介相关推荐

  1. 独家 | 神经网络的对抗性攻击:快速梯度符号方法的探索(附链接)

    作者:Patrycja Jenkner 翻译:陈之炎 校对:欧阳锦 本文约2300字,建议阅读8分钟 本文将尝试一种非常流行的攻击:快速梯度符号方法,来证明神经网络的安全漏洞. 标签:对抗性攻击,神经 ...

  2. Linux安全原理简介

    Linux安全原理简介 介绍 在设置Linux计算机的所有阶段,安全性应是首要考虑之一.要在计算机上实施良好的安全策略,需要对Linux的基础知识以及所使用的某些应用程序和协议有充分的了解. Linu ...

  3. 18 岁清华毕业,95后博士生杨幻睿将深度学习 “单核” 变“多核”,显著提高 “对抗性攻击” 防御力-1

    9 月 26 日,杜克大学陈怡然教授在微博秀出了组里博士生的成绩--杨幻睿同学的论文被 NeurIPS 评为最优的 Oral 级别,并不忘强调"还是家里领导最牛",狠狠向粉丝撒了一 ...

  4. GANs系列:DCGAN原理简介与基础GAN的区别对比

     本文长期不定时更新最新知识,防止迷路记得收藏哦! 还未了解基础GAN的,可以先看下面两篇文章: GNA笔记--GAN生成式对抗网络原理以及数学表达式解剖 入门GAN实战---生成MNIST手写数据集 ...

  5. javascript原理_JavaScript程序包管理器工作原理简介

    javascript原理 by Shubheksha 通过Shubheksha JavaScript程序包管理器工作原理简介 (An introduction to how JavaScript pa ...

  6. 机器学习中对抗性攻击的介绍和示例

    来源:DeepHub IMBA 本文约1000字,建议阅读5分钟 本文为你展示微小的变化如何导致灾难性的影响. 概念 对抗样本是专门设计的输入,旨在欺骗机器学习 (ML) 模型,从而导致高置信度的错误 ...

  7. 人工智能医疗是把双刃剑,“对抗性攻击”后可导致误判

    https://static.cdsb.com/micropub/Articles/201903/c92bdfc86585e8298a7c4b596e946584.html 去年,美国食品药品监督管理 ...

  8. 对抗性攻击轻松愚弄人工智能

    对抗性攻击欺骗图像识别算法将3D打印乌龟认作步枪. 来源:中国科学报 摘要:在日前于瑞典斯德哥尔摩举行的国际机器学习会议上,一群研究人员描述了他们的3D打印乌龟. 在日前于瑞典斯德哥尔摩举行的国际机器 ...

  9. Nginx 反向代理工作原理简介与配置详解

    Nginx 反向代理工作原理简介与配置详解 测试环境 CentOS 6.8-x86_64 nginx-1.10.0 下载地址:http://nginx.org/en/download.html 安装 ...

最新文章

  1. python怎么处理文字_python 处理给规范的文字
  2. roi计算_计算开放式硬件项目的ROI的6个步骤
  3. docker hub加速访问hub.docker.com
  4. [Luogu 3835]【模板】可持久化平衡树
  5. BootstrapTable单元格宽度调整:colResizable()方法
  6. Yii 多表关联relations,需要与with()方法联合使用
  7. C语言开发简单的学生成绩管理系统(附源码)
  8. 百度网盘IDM快速下载
  9. 深入理解 JVM 第三版
  10. 安卓手机如何打开开发者模式?
  11. 图论1:哥尼斯堡七桥问题的证明
  12. 360 ie8兼容模式 网页兼容问题
  13. 翻译:如何成功How to be successful OpenAI CEO山姆奥特曼
  14. python实现微信接龙统计
  15. 扫码报修开启校园报修管理系统新时代
  16. win7和ubuntu双系统,直接进入windows启动项选择菜单,而不进入grub的解决方案。
  17. 数据结构(Java实现)-详谈树与二叉树结构
  18. 假如泰坦尼克号是艘中国游轮
  19. 转换工具 | EXCEL中批量转换度分秒、度、弧度值
  20. 网上投简历含金量高的网站

热门文章

  1. 【c语言】蓝桥杯算法提高 JOE的算数
  2. 【c语言】蓝桥杯算法提高 征税程序
  3. 【c语言】蓝桥杯算法提高 填充蛋糕
  4. mysql表连接算法_如何在MySQL中连接多个表
  5. 「小程序JAVA实战」微信开发者工具helloworld(三)
  6. C#Redis列表List
  7. python yaml用法详解
  8. 微信小程序之购物车功能
  9. web开发的一些心得
  10. 五个最佳案例带你解读Node.js的前后之道