当前位置: 首页 > news >正文

深度学习对抗样本的八个误解与事实

转载:http://www.csdn.net/article_pt.html?arcid=2825248
摘要:Yoshua Bengio的学生、Google科学家Ian Goodfellow在本文中澄清关于深度学习对抗样本的八个误解与神话,包括:它们不会在实践中发生、深度学习更易受影响、它们很容易解决、人脑会犯相似的错误等。

【编者按】在kdnuggets此前发布的文章(Deep Learning’s Deep Flaws)’s Deep Flaws中,深度学习大神Yoshua Bengio和他的博士生、Google科学家Ian Goodfellow在评论中与作者就深度学习对抗样本(Adversarial Examples)展开了热烈的讨论,kdnuggets编辑邀请Ian Goodfellow撰文详解他的观点以及他在这方面的工作,后者允诺成此文。CSDN将其翻译如下,以飨读者。

到现在为止,几乎所有的输入都可以愚弄对象识别模型。以至于当对象识别正确工作的时候我们都无比惊讶。今天,通过一些基准测试测量,对象识别算法的识别能力已经达到人类的水准了,让我们感到惊讶的是,在非正常的输入情况下,对象识别却表现得不尽人意。

对抗样本是通过稍微修改实际样本而构造出的合成样本,以便于一个分类器以高置信度认为它们属于错误的分类。垃圾类的样本(如fooling images)是病态样本,即使它们不属于任意一个类,分类模型也会把它们以高置信度划分到某一个类别中去。


一个对抗样本,修改一张熊猫的图片,让机器学习模型将它识别成一只长臂猿。

使用32位浮点值作为网络的输入来执行修改,这个改变是如此的小以至于不会改变出版图像的8位表示。更多细节请参考这篇论文。

这些错误抓住了公众的想象力。在兴奋之余,关于对抗样本的一些误解已经广泛传播。在这篇博客中,我列出了其中的一些误解。

1. 神话:对抗样本并不重要,因为它们不会出现在实践中。

事实:的确,对抗样本不太可能自然发生。然而,对抗样本至关重要,因为训练一个模型来抵制它们,可以提高其非对抗样本的准确性。对抗样本也可能在实践中发生,如果它们的确是对抗性的。例如垃圾邮件发送者试图骗过垃圾邮件检测系统。


训练一个网络来正确分类对抗样本,降低它在训练数据集上的错误率,即使测试数据集的样本没有被扰动。这种技术提升了在MNIST数据集上的最高水平。

2. 神话:深度学习比其他类型的机器学习更容易受到对抗样本的干扰。

事实:到目前为止,我们已经能够为我们测试过的每一个模型生成对抗样本,包括像最邻近这样的最传统的机器学习模型。深度学习是目前为止对对抗训练最有抵抗性的技术。

3.  神话:对抗样本是由极度非线性深度模型导致。

事实:我们最近的实验表明,深度模型的表现是非常线性的。线性模型在外推远离训练数据的区域有着极度的优势。这也解释了对抗性和垃圾分类样本中发生的很多错误。


我们可以描绘出一个输入空间中的线性路径,通过对一张清晰的汽车图像添加不同的对抗性微扰。这里,我们将比例因子范围从-10到+10来绘制出这条线性路径。我们看到,网络的logits输出在远离数据的地方表现为线性。这将导致网络的预测变得极端,垃圾类输入数据以高置信度归为有意义分类。

4. 神话:对抗样本在小数据中很难找到或发生。

事实:空间中的大多数任意点都被误判。例如,我们测试的一个网络,把大约70%的噪声样本以高置信度归类为马。

5. 神话:我们能做到最好的是识别和拒绝处理对抗样本。

事实:拒绝处理对抗样本比将它错误分类要好,不过这不是一个令人满意的解决方案。如果真是一个对抗样本,如垃圾邮件发送者,对抗样本仍然可以通过产生系统拒绝分类的样本而占优势。我们知道这可能是正确分类的对抗样本,因为人们不会被它们迷惑,这也是我们设计模型的目标。

6. 神话:攻击者必须访问到模型才能产生对抗样本。

事实:对抗样本在整个网络中扩散,用来训练执行相同的任务,即使这些模型有不同的架构,由不同训练数据集训练。这意味着攻击者可以训练自己的模型,产生对抗模型来对抗目标模型,然后将这些对抗样本部署到他们不能访问的模型中。

7. 神话:对抗样本可以很容易地用标准正则化技术解决。

事实:我们已经测试了几种传统的正则化策略,包括均化多重模型,均化图像多采样观测(multiple glimpses),用时延权重或噪声训练模型,通过生成模型的推断进行分类,结果均以失败告终。

8. 神话:没人知道人脑是否也会犯相似的错误。

事实:神经学家和心理学家通常研究幻觉和认知偏差。虽然我们无法进入我们的大脑,但是我们可以确认我们没有像现代机器学习那样被同一种对抗样本所影响。如果我们的大脑和机器学习模型一样犯了同样的错误,那么由于交叉模型的泛化属性,机器学习模型的对抗样本将会使我们产生视觉错乱。

总之,对抗样本是一个顽固的问题,研究如何克服它们可以帮助我们避免潜在的安全问题,并且会让机器学习算法对所要解决的问题有一个更准确的了解。

作者简介:Ian Goodfellow是谷歌的一位研究科学家。他于2014年在蒙特利尔大学获得了机器学习博士学位,师从Yoshua Bengio。学士学位与硕士学位在斯坦福大学获得。

英文原文: Deep Learning Adversarial Examples – Clarifying Misconceptions (译者/刘翔宇 审校/刘帝伟、朱正贵 责编/周建丁) 

相关文章:

  • 阅读yolo_v1源码(tensorflow)笔记
  • 【Tensorflow1.0+】记录常用函数
  • 【零基础入门学习Python笔记017】GUI的最终选择:Tkinter
  • 用Yolov2模型训练VOC数据集的各文件理解
  • python 中easydict的简单使用
  • Numpy np.array 相关常用操作学习笔记
  • Matconvnet关于simplenn 转dagnn的一些小的总结
  • 海思AI芯片(Hi3519A/3559A)方案学习(一)资料以及术语介绍
  • 海思AI芯片(Hi3519A/3559A)方案学习(二)RuyiStudio安装
  • 海思AI芯片(Hi3519A/3559A)方案学习(三)Ubuntu18.0.4上编译Hi3519AV100 uboot和kernel
  • 海思AI芯片(Hi3519A/3559A)方案学习(四)如何在3519A板子上运行sample code
  • 海思AI芯片(Hi3519A/3559A)方案学习(五)SDK平台文档梳理
  • Atlas 200 DK 系列 -- 快速搭建开发环境
  • Atlas 200 DK 系列--初级篇--MindStudio常见操作
  • Linux/Ubuntu下解压命令
  • 自己简单写的 事件订阅机制
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • Android 架构优化~MVP 架构改造
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • Git 使用集
  • Hexo+码云+git快速搭建免费的静态Blog
  • iOS 系统授权开发
  • Spring Cloud Feign的两种使用姿势
  • Web Storage相关
  • 分享一份非常强势的Android面试题
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 前端相关框架总和
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​iOS实时查看App运行日志
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • # 达梦数据库知识点
  • (1)虚拟机的安装与使用,linux系统安装
  • (3)选择元素——(17)练习(Exercises)
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (九)One-Wire总线-DS18B20
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (三十五)大数据实战——Superset可视化平台搭建
  • (五)MySQL的备份及恢复
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • *上位机的定义
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET MVC 验证码
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .NET 解决重复提交问题