Explaining and harnessing adversarial examples

news2024/11/30 6:39:15

Explaining and harnessing adversarial examples----《解释和利用对抗样本》

 
背景: 早期的研究工作认为神经网络容易受到对抗样本误导是由于其非线性特征和过拟合。
创新点: 该论文作者认为神经网络易受对抗性扰动影响的主要原因是它的线性本质,并提出了快速梯度符号法FGSM。

摘要

  包括神经网络在内的一些机器学习模型始终会被对抗样本误导,这些对抗样本通过注入小但故意破坏的扰动而形成,这样的对抗样本会导致模型以高置信度输出错误答案。早期的工作尝试用非线性特征和过拟合去解释这种现象。相反,我们认为神经网络易受对抗性扰动影响的主要原因是它们的线性本质。基于这个假设,我们提出了简单快速的生成对抗样本的方法即快速梯度符号法(Fast Gradient Sign Method),使用这种方法为对抗训练提供示例,并减少了在MNIST数据集上训练的模型的测试集误差。

引言

  Szegedy 等人 (2014b) 得到了一个有趣的发现:包括最先进的神经网络在内的几种机器学习模型很容易受到对抗样本的影响。也就是说,这些机器学习模型对对抗性示例进行了错误分类,这些示例与从数据分布中提取的正确分类示例仅略有不同。在许多情况下,在训练数据的不同子集上训练的具有不同架构的各种各样的模型对相同的对抗性示例进行了错误分类。这表明对抗性示例暴露了我们训练算法中的基本盲点。
  这些对抗性例子的原因是一个谜,推测性的解释表明这是由于深度神经网络的极端非线性,可能与模型平均不足和纯监督学习问题的正则化不足相结合。作者证明了这些推测性的假设是不必要的。高维空间中的线性行为足以引起对抗性例子。这种观点使作者能够设计一种快速生成对抗性示例的方法,使得对抗训练变得切实可行。我们发现对抗训练可以提供比单独使用dropout (Srivastava et al., 2014)更大的正则化益处。通用正则化策略(例如 dropout、预训练和模型平均)不会显着降低模型对对抗性示例的脆弱性,但更改为非线性模型系列(例如 RBF 网络)可以做到这一点。
  我们的解释表明,在设计由于线性而易于训练的模型和设计使用非线性效应来应对对抗样本的模型之间存在着一种基本的张力。从长远来看,通过设计更强大的优化方法来成功地训练更多的非线性模型,有可能避免这种权衡。

相关工作

  Szegedy等人(2014b)演示了神经网络和相关模型的各种有趣特性。与本文件最相关的包括:

  • Box-constrained L-BFGS可以可靠地找到对抗样本。
  • 在一些数据集上,如ImageNet (Deng et al., 2009),对抗例子与原始例子非常接近,以至于人眼无法分辨出差异。
  • 同一对抗实例经常被具有不同架构的各种分类器或者在训练集的不同子集上训练的分类器错误分类。
  • 浅的softmax回归模型也容易受到敌对例子的影响。
  • 在对抗样本上进行训练可以正则化模型——然而,这在当时是不实际的,因为需要在内部循环中进行昂贵的约束优化。

  这些结果表明,即使是那些基于现代机器学习技术并在测试集上获得优异性能的分类器,也没有学习到真正的底层概念,这些概念决定了正确的输出标签。相反,这些算法建立了一个Potemkin village以很好地处理自然发生的数据,但当访问点在数据分布中不具有高概率时,就会暴露为假数据。这尤其令人失望,因为计算机视觉中一个流行的方法是使用卷积网络特征作为一个空间,其中欧几里德距离接近感知距离。如果图像的感知距离非常小,而它们对应的是网络中完全不同的类别,那么这种相似性显然是有缺陷的。
  这些结果经常被解释为深层网络的缺陷,特别是,即使线性分类器也有同样的问题。我们把对这个缺陷的了解看作是一个修正它的机会。事实上,Gu & Rigazio(2014)和Chalupka等人(2014)已经开始了设计对抗扰动模型的第一步,尽管目前还没有一个模型能够成功做到这一点,同时还能保持干净输入数据上的最高准确性。

对抗样本的线性解释

首先解释线性模型中对抗性例子的存在。
在这里插入图片描述
这也说明了当一个简单的线性模型的输入具有足够的维度时,也会有对抗样本。

非线性模型的线性扰动

在这里插入图片描述

线性模型的对抗训练

对抗训练是将对抗样本加入训练集中,增强模型鲁棒性。
在这里插入图片描述

深度网络的对抗训练

  比于线性模型,深度网络至少可以在训练网络过程中来抵御对抗扰动攻击。文章给一种利用FGSM进行对抗训练的方法:
在这里插入图片描述
这种对抗训练的方法意味着在训练过程中不断更新对抗样本,从而使得当前模型可以抵御对抗样本。利用该方法训练一个同样使用dropout正则化的maxout网络,我们能够将错误率从没有进行对抗训练的0.94%降低到进行对抗训练的0.84%。
  我们观察到,我们在训练集上的对抗性示例上并未达到零错误率。我们通过进行两项更改解决了这个问题。首先,我们使模型变得更大,每层使用 1600 个单元,而不是解决此问题的原始 maxout 网络使用的 240 个单元。如果没有对抗性训练,这会导致模型轻微过拟合,在测试集上的错误率为 1.14%。通过对抗性训练,我们发现验证集误差随着时间的推移趋于平稳,并且进展非常缓慢。原始的maxout结果使用了早期停止,并在验证集错误率100个epoch没有下降后终止学习。我们发现,虽然验证集的误差非常平缓,但对抗验证集的误差却不是这样。因此,我们在对抗验证集错误时使用早期停止。使用这个标准来选择要训练的epoch的数量,然后我们对所有60000个示例进行重新训练。使用随机数生成器的不同种子进行五次不同的训练运行,随机数生成器用于选择小批量训练示例、初始化模型权重并生成 dropout mask,结果是四项试验的测试集错误率为 0.77%,一项试验的错误率为 0.77%。错误率为0.83%。平均值为0.782%是MNIST置换不变版本报告的最佳结果,尽管与使用dropout微调DBMs (Srivastava et al., 2014)获得的结果在统计学上没有区别(0.79%)。
  该模型也对对抗性例子产生了一定的抵抗力。回想一下,在没有对抗训练的情况下,基于快速梯度符号方法的同类模型在对抗样本上的错误率为 89.4%。通过对抗性训练,错误率降至 17.9%。对抗性示例可以在两个模型之间转移,但经过对抗性训练的模型表现出更大的鲁棒性。通过原始模型生成的对抗性示例在经过对抗性训练的模型上产生的错误率为 19.6%,而通过新模型生成的对抗性示例在原始模型上产生的错误率为 40.9%。当对抗性训练的模型确实对对抗性示例进行错误分类时,不幸的是,它的预测仍然高度可信。错误分类示例的平均置信度为 81.4%。我们还发现,学习模型的权重发生了显着变化,对抗训练模型的权重明显更加本地化和可解释(见图 3)。
在这里插入图片描述
  当数据受到对手干扰时,对抗性训练过程可以被视为最小化最坏情况的错误。这可以解释为学习玩对抗性游戏,或者最小化噪声样本的预期成本上限,并将来自 U(−e, e) 的噪声添加到输入中。对抗性训练也可以被视为主动学习的一种形式,其中模型能够请求新点上的标签。在这种情况下,人工贴标机被替换为启发式贴标机,该贴标机从附近的点复制标签。
  我们还可以通过对 e 最大范数框内的所有点进行训练,或对该框内的许多点进行采样,将模型正则化,使其对其小于 e 精度的特征变化不敏感。这对应于在训练期间添加具有最大范数的噪声。然而,零均值和零协方差的噪声在防止对抗性示例方面效率非常低。任何参考向量与此类噪声向量之间的预期点积为零。这意味着在许多情况下,噪声基本上不会产生任何影响,而不是产生更困难的输入。
  事实上,在许多情况下,噪声实际上会导致目标函数值降低。我们可以将对抗性训练视为在一组噪声输入中进行困难示例挖掘,以便通过仅考虑那些强烈抵制分类的噪声点来更有效地进行训练。
  由于符号函数的导数在任何地方都为零或未定义,因此基于快速梯度符号方法的对抗目标函数的梯度下降不允许模型预测对手对参数变化的反应。如果我们使用基于小旋转或添加缩放梯度的对抗性示例,那么扰动过程本身是可微的,并且学习可以考虑对手的反应。然而,我们并没有从这个过程中发现几乎同样强大的正则化结果,也许是因为这些类型的对抗性例子并不那么难以解决。
  一个自然的问题是扰动输入层或隐藏层或两者是否更好。这里的结果是不一致的。Szegedy等人(2014b)报道了当应用于隐藏层时,对抗扰动产生最佳正则化。这一结果是在一个s形网络上得到的。在我们使用快速梯度符号法进行的实验中,我们发现具有激活无界的隐藏单元的网络简单地通过使其隐藏单元激活非常大来响应,因此通常只对原始输入进行扰动会更好。在 Rust 模型等饱和模型上,我们发现输入的扰动与隐藏层的扰动表现相当。基于旋转隐藏层的扰动解决了无界激活增长的问题,使相加扰动相比之下更小。我们能够通过隐藏层的旋转扰动成功训练 maxout 网络。然而,这并没有产生几乎像输入层的附加扰动那样强的正则化效应。我们对对抗性训练的看法是,只有当模型有能力学习抵抗对抗性例子时,它才明显有用。只有当通用逼近定理适用时,情况才是清楚的。因为神经网络的最后一层,linear-sigmoid或linear-softmax层,并不是最后一层隐层函数的通用近似器,这表明当对最后一层隐层应用对抗扰动时,很可能会遇到欠拟合的问题。我们确实发现了这种效应。我们使用隐藏层的扰动进行训练的最佳结果从不涉及最终隐藏层的扰动。

对抗样本泛化原因

  我们都知道很多论文都表明,对抗样本具有Transferability。具体来说,在一个特定模型上产生的对抗样本通常也容易被其他模型误分类,即使这些模型的结构不同或者模型在不同的训练集上训练。甚至,不同的模型对对抗样本误分类的结果相同!作者表明,非线性或者过拟合的假设不能解释上述的现象,即, 为什么拥有无限能力的极度非线性模型会以相同的方式标注分布外点?
  在本文提出的线性解释下,作者认为对抗样本在广泛的子空间存在。图 4 演示了这种现象,在不同的e下,可以看到FGSM可以在一维的连续子空间内产生对抗样本,而不是特定的区域。这就解释了为什么对抗样本特别多,以及对抗样本transferability存在的原因。
在这里插入图片描述
  为了解释为什么多个分类器将同一类分配给对抗性示例,我们假设使用当前方法训练的神经网络都类似于在同一训练集上学习的线性分类器。当在训练集的不同子集上进行训练时,该参考分类器能够学习大致相同的分类权重,这仅仅是因为机器学习算法能够泛化。基础分类权重的稳定性反过来又导致对抗性示例的稳定性。
  为了检验这个假设,我们在深度 maxout 网络上生成对抗性示例,并使用浅层 softmax 网络和浅层 RBF 网络对这些示例进行分类。对于maxout网络误分类的例子,RBF网络预测maxout网络的类分配的概率只有16.0%,而softmax分类器预测maxout网络的类分配的准确率为54.6%。这些数字很大程度上是由不同模型的错误率所决定的。如果我们不考虑两个模型比较都出错的情况,那么softmax回归预测maxout类的概率为84.6%,而RBF网络预测maxout类的概率仅为54.3%。相比之下,RBF 网络可以在 53.6% 的时间内预测 softmax 回归的类别,因此它的自身行为确实具有很强的线性成分。我们的假设并不能解释所有 maxout 网络的错误或所有跨模型泛化的错误,但显然其中很大一部分与线性行为一致,线性行为是跨模型泛化的主要原因。

对抗样本存在性的其他假设

  我们现在考虑并反驳一些关于对抗性例子存在的替代假设。首先,一个假设是生成训练可以对训练过程提供更多约束,或者使模型学习如何区分“真实”数据和“假”数据,并且只对“真实”数据有信心。MP-DBM(Goodfellow 等人,2013a)提供了一个很好的模型来检验这一假设。其推理过程在 MNIST 上获得了良好的分类精度(错误率为 0.88%)。这个推理过程是可微的。其他生成模型要么具有不可微的推理过程,使得计算对抗性示例变得更加困难,要么需要额外的非生成判别器模型才能在 MNIST 上获得良好的分类精度。在 MP-DBM 的情况下,我们可以确定生成模型本身正在响应对抗性示例,而不是顶部的非生成分类器模型。我们发现该模型很容易受到对抗性例子的影响。当 e 为 0.25 时,我们发现 MNIST 测试集生成的对抗性示例的错误率为 97.5%。某些其他形式的生成训练仍然可能会产生抵抗力,但显然,仅生成这一事实还不够。
  关于为什么存在对抗性例子的另一个假设是,单个模型有奇怪的怪癖,但对许多模型进行平均可能会导致对抗性例子被淘汰。为了检验这个假设,我们在 MNIST 上训练了 12 个 maxout 网络的集合。每个网络都使用不同的随机数生成器种子进行训练,随机数生成器用于初始化权重、生成 dropout mask 以及选择小批量数据进行随机梯度下降。在设计用于扰乱整个集成的对抗性示例上,集成的错误率为 91.1%,且 e= 0.25。如果我们使用旨在仅扰乱整体中一名成员的对抗性示例,则错误率会降至 87.9%。集成仅提供有限的对抗性扰动抵抗力。

总结与讨论

  • 对抗性例子可以解释为高维点积的属性。它们是模型过于线性而不是过于非线性的结果。
  • 不同模型中对抗性示例的泛化可以解释为对抗性扰动与模型的权重向量高度一致,并且不同模型在训练执行相同任务时学习相似的功能。
  • 最重要的是扰动的方向,而不是空间中的特定点。特征空间中并没有充满像有理数那样精细地平铺实数的对抗性例子。
  • 因为方向是最重要的,所以对抗性扰动可以泛化到不同的干净例子中。
  • 我们引入了一系列用于生成对抗性示例的快速方法。
  • 我们已经证明,对抗性训练可以带来正则化;甚至比 dropout 更进一步的正规化。
  • 我们进行了控制实验,但未能使用更简单但效率较低的正则化器(包括 L1 权重衰减和添加噪声)重现这种效果。
  • 易于优化的模型也很容易受到干扰。
  • 线性模型缺乏抵抗对抗性扰动的能力;只有具有隐藏层的结构(通用逼近定理适用的地方)才应该被训练以抵抗对抗性扰动。
  • RBF 网络能够抵抗对抗性例子。
  • 经过训练来对输入分布进行建模的模型无法抵抗对抗性示例。
  • 模型集成不能抵抗对抗性例子。
     
    (有些地方确实没明白作者的意思,欢迎留言指教!)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1159593.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第五章 I/O管理 十、磁盘调度算法(FCFS、SSTF、SCAN、C-SCAN、C-LOOK)

目录 一、概括 二、一次磁盘读/写操作需要的时间 1、寻找时间(寻道时间): 2、延迟时间: 3、传输时间(读磁盘的时间) 三、先来先服务算法(FCFS) 1、定义: 2、例子&#xff1…

Qwt QwtPolarPlot类使用

1.概述 QwtPolarPlot是Qwt库中用于绘制极坐标图的类。它继承自QwtPolarItemDict和QFrame类,并且可以作为QwtPlot控件的一部分使用。 以下是类的继承关系图: 2.常用方法 设置标签: void setTitle (const QString &)void setTitle (con…

降低毕业论文写作压力的终极指南

亲爱的同学们,时光荏苒,转眼间你们即将踏入毕业生的行列。毕业论文作为本科和研究生阶段的重要任务,不仅是对所学知识的综合运用,更是一次对自己学术能力和专业素养的全面考验。然而,论文写作常常伴随着压力和焦虑&…

YOLOv5:修改backbone为MobileOne

YOLOv5:修改backbone为MobileOne 前言前提条件相关介绍MobileOneYOLOv5修改backbone为MobileOne修改common.py修改yolo.py修改yolov5.yaml配置 参考 前言 记录在YOLOv5修改backbone操作,方便自己查阅。由于本人水平有限,难免出现错漏&#xf…

前端基础之JavaScript

JavaScript是一种能够在网页上添加交互效果的脚本语言,也被称为客户端语言。它可以在网页中操作HTML元素、改变CSS样式,以及处理用户的交互事件等。 以下是JavaScript的常见基础知识点: 变量和数据类型:JavaScript中的变量可以存…

YOLOv7优化:独家创新(Partial_C_Detect)检测头结构创新,实现涨点 | 检测头新颖创新系列

💡💡💡本文独家改进:独家创新(Partial_C_Detect)检测头结构创新,适合科研创新度十足,强烈推荐 SC_C_Detect | 亲测在多个数据集能够实现大幅涨点 收录: YOLOv7高阶自研专栏介绍: http://t.csdnimg.cn/tYI0c ✨✨✨前沿最新计算机顶会复现 🚀🚀🚀YOLO…

【实现多个接口的使用】

文章目录 前言实现多个接口接口间的继承接口使用实例给对象数组排序创建一个比较器 总结 前言 实现多个接口 Java中不支持多继承,但是一个类可以实现多个接口 下面是自己反复理了很久才敲出来的,涉及到之前学的很多知识点 如果哪看不懂,真…

基于向量数据库的文档检索实战

推荐:用 NSDT编辑器 快速搭建可编程3D场景 在过去的六个月里,我一直在 A 系列初创公司 Voxel51 工作,该公司是开源计算机视觉工具包 FiftyOne 的创建者。 作为一名机器学习工程师和开发人员布道者,我的工作是倾听我们的开源社区的…

LabVIEW开发双目立体系统猪重估算

LabVIEW开发双目立体系统猪重估算 动物的活重是各种研究中的重要参考,例如动物生长,饲料转化率,健康状况和疾病发生。生长中的动物的体重为保持它们处于适当的营养和环境水平提供了一个有价值的参数或指标。动物的利润通常与收入和成本之间的…

Sci Immunol丨Tim-3 适配器蛋白 Bat3 是耐受性树突状细胞

今天和大家分享一篇发表于2022年3月的文章,题目为“Tim-3 adapter protein Bat3 acts as an endogenous regulator of tolerogenic dendritic cell function”,发表在《Sci Immunol》杂志上。文章主要研究了Tim-3和其适配蛋白Bat3在调节免疫应答中的作用…

2023年【R1快开门式压力容器操作】最新解析及R1快开门式压力容器操作复审考试

题库来源:安全生产模拟考试一点通公众号小程序 R1快开门式压力容器操作最新解析是安全生产模拟考试一点通生成的,R1快开门式压力容器操作证模拟考试题库是根据R1快开门式压力容器操作最新版教材汇编出R1快开门式压力容器操作仿真模拟考试。2023年【R1快…

linux 安装 elasticsearch 全教程

一、去 elasticsearch官网找到Linux版本的下载链接 地址https://www.elastic.co/cn/downloads/elasticsearch 二、在linux 中用wget下载 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.10.4-linux-x86_64.tar.gz三、下载成功后解压文件 tar -x…

Unity中Shader自定义cginc文件

文章目录 前言我们在使用如下场景中的小球来进行自己的 GI Shader测试一、先找到Unity自带的 cginc 库二、仿照 Unity 的 cginc 文件,写一个我们自己的 cginc 文件1、我们新建一个文件,在资源管理器中把 文件后缀名修改成 .cginc2、我们打开Unity自己的c…

【Linux】安装使用Nginx负载均衡,并且部署前端项目

目录 一、Nginx概述 1. 什么 2. 背景 3. 作用 二、Nginx负载均衡 1. 讲述 2. 使用 1. 下载 2. 安装 3. 负载均衡 三、前端部署 1. 准备 2. 部署 一、Nginx概述 1. 什么 Nginx是一个高性能的开源Web服务器和反向代理服务器。它具有轻量级、高并发、低内存消耗的…

让你笑到不行的笑话短视频接口,快来试试!

11在当今这个快节奏的社会中,笑话成为了许多人调节情绪的有效方法。如今,短视频平台已经成为了最受欢迎的娱乐方式之一,因此,将笑话和短视频结合起来,成为了一种很有趣的方式来带给我们欢乐。今天我们要介绍的是挖数据…

【电路笔记】-正弦波形

正弦波 文章目录 正弦波1、概述2、波形产生3、总结 在 19 世纪末的 10 年间,许多技术成就使得交流电的使用得以扩展,并克服了直流电向公众供电的局限性。 1882 年,法国发明了变压器,它简化了交流电的分配,正如我们将在…

【免费活动】11月4日敏捷武林上海站 | Scrum.org CEO 亲临现场

活动介绍 过去的几年里,外界的风云变幻为我们的生活增添了一些不一样的色彩。在VUCA世界的浪潮里,每一个人都成为自己生活里的冒险家。面对每一次的变化,勇于探索未知,迎接挑战,努力追逐更好的自己。 七月&#xff0…

gcc/g++使用格式+各种选项,预处理/编译(分析树,编译优化,生成目标代码)/汇编/链接过程(函数库,动态链接)

目录 gcc/g--编译器 介绍 使用格式 通用选项 编译选项 链接选项 程序编译过程 预处理(宏替换) 编译 (生成汇编) 分析树(parse tree) 编译优化 删除死代码 寄存器分配和调度 强度削弱 内联函数 生成目标代码 汇编 (生成二进制代码) 链接(生成可执行文件) 函…

跨境电商怎么做?欲善其事,先利其器!

当前,跨境电商正在以飞速的发展趋势推进,在未来将会朝向成熟系统化的方向发展,对于跨境电商从业者来说既是机遇,也是挑战。不少想转行的朋友对于跨境行业早已“跃跃欲试”,但是不了解跨境电商却又久久不敢冒险......那…

Javassist讲解1(介绍,读写字节码)

Javassist讲解1(介绍,读写字节码) 介绍一、读写字节码1.如何创建新的类2.类冻结 介绍 javassist 使Java字节码操作变得简单,它是一个用于在Java中编辑字节码的类库; 它使Java程序能够在运行时定义一个新类,…