5 12种生成对抗样本的方法

1 Box-constrained L-BFGS

Szegedy[22] 等人首次证明了可以通过对图像添加小量的人类察觉不到的扰动误导神经网络做出误分类。他们首先尝试求解让神经网络做出误分类的最小扰动的方程。但由于问题的复杂度太高,他们转而求解简化后的问题,即寻找最小的损失函数添加项,使得神经网络做出误分类,这就将问题转化成了凸优化过程。

2 Fast Gradient Sign Method (FGSM)

Szegedy 等人发现可以通过对抗训练提高深度神经网络的鲁棒性,从而提升防御对抗样本攻击的能力。GoodFellow[23] 等人开发了一种能有效计算对抗扰动的方法。而求解对抗扰动的方法在原文中就被称为 FGSM。

Kurakin[80] 等人提出了 FGSM 的「one-step target class」的变体。通过用识别概率最小的类别(目标类别)代替对抗扰动中的类别变量,再将原始图像减去该扰动,原始图像就变成了对抗样本,并能输出目标类别。

3 Basic & Least-Likely-Class Iterative Methods

one-step 方法通过一大步运算增大分类器的损失函数而进行图像扰动,因而可以直接将其扩展为通过多个小步增大损失函数的变体,从而我们得到 Basic Iterative Methods(BIM)[35]。而该方法的变体和前述方法类似,通过用识别概率最小的类别(目标类别)代替对抗扰动中的类别变量,而得到 Least-Likely-Class Iterative Methods[35]。

4 Jacobian-based Saliency Map Attack (JSMA)

对抗攻击文献中通常使用的方法是限制扰动的 l_∞或 l_2 范数的值以使对抗样本中的扰动无法被人察觉。但 JSMA[60] 提出了限制 l_0 范数的方法,即仅改变几个像素的值,而不是扰动整张图像。

5 One Pixel Attack

这是一种极端的对抗攻击方法,仅改变图像中的一个像素值就可以实现对抗攻击。Su[68] 等人使用了差分进化算法,对每个像素进行迭代地修改生成子图像,并与母图像对比,根据选择标准保留攻击效果最好的子图像,实现对抗攻击。这种对抗攻击不需要知道网络参数或梯度的任何信息。

6 Carlini and Wagner Attacks (C&W)

Carlini 和 Wagner[36] 提出了三种对抗攻击方法,通过限制 l_∞、l_2 和 l_0 范数使得扰动无法被察觉。实验证明 defensive distillation 完全无法防御这三种攻击。该算法生成的对抗扰动可以从 unsecured 的网络迁移到 secured 的网络上,从而实现黑箱攻击。

7 DeepFool

Moosavi-Dezfooli 等人 [72] 通过迭代计算的方法生成最小规范对抗扰动,将位于分类边界内的图像逐步推到边界外,直到出现错误分类。作者证明他们生成的扰动比 FGSM 更小,同时有相似的欺骗率。

8 Universal Adversarial Perturbations

诸如 FGSM [23]、 ILCM [35]、 DeepFool [72] 等方法只能生成单张图像的对抗扰动,而 Universal Adversarial Perturbations[16] 能生成对任何图像实现攻击的扰动,这些扰动同样对人类是几乎不可见的。该论文中使用的方法和 DeepFool 相似,都是用对抗扰动将图像推出分类边界,不过同一个扰动针对的是所有的图像。虽然文中只针对单个网络 ResNet 进行攻击,但已证明这种扰动可以泛化到其它网络上。

9 UPSET and ANGRI

Sarkar[146] 等人提出了两个黑箱攻击算法,UPSET 和 ANGRI。UPSET 可以为特定的目标类别生成对抗扰动,使得该扰动添加到任何图像时都可以将该图像分类成目标类别。相对于 UPSET 的「图像不可知」扰动,ANGRI 生成的是「图像特定」的扰动。它们都在 MNIST 和 CIFAR 数据集上获得了高欺骗率。

10 Houdini

Houdini[131] 是一种用于欺骗基于梯度的机器学习算法的方法,通过生成特定于任务损失函数的对抗样本实现对抗攻击,即利用网络的可微损失函数的梯度信息生成对抗扰动。除了图像分类网络,该算法还可以用于欺骗语音识别网络。

11 Adversarial Transformation Networks (ATNs)

Baluja 和 Fischer[42] 训练了多个前向神经网络来生成对抗样本,可用于攻击一个或多个网络。该算法通过最小化一个联合损失函数来生成对抗样本,该损失函数有两个部分,第一部分使对抗样本和原始图像保持相似,第二部分使对抗样本被错误分类。

12 Miscellaneous Attacks

这一部分列举了更多其它的生成对抗样本的方法,详情请参见原文。

表 1:以上列举的各种攻击方法的属性总结:「perturbation norm」表示其限制的 p-范数(p-norm)以使对抗扰动对人类不可见或难以察觉。strength 项(*越多,对抗强度越大)基于回顾过的文献得到的印象。

原文地址:https://www.cnblogs.com/shona/p/11277740.html

时间: 2024-08-04 09:38:50

5 12种生成对抗样本的方法的相关文章

用Caffe生成对抗样本

同步自我的知乎专栏:https://zhuanlan.zhihu.com/p/26122612 上篇文章 瞎谈CNN:通过优化求解输入图像 - 知乎专栏 中提到过对抗样本,这篇算是针对对抗样本的一个小小扩充:用Fast Gradient Sign方法在Caffe中生成对抗样本. 本文代码的完整例子可以在下面地址下载: frombeijingwithlove/dlcv_for_beginners Fast Gradient Sign方法 先回顾一下 瞎谈CNN:通过优化求解输入图像 - 知乎专栏 

Spring框架中2种生成代理对象的方法

Spring框架中2种生成代理对象的方法 Jdk Proxy基于接口生成代理对象,只能赋值给接口的引用(默认使用jdk). Spring进一步封装 CGLIB,基于实现类生成代理对象,既可以赋值给接口的引用,也可以赋值给实现类的引用 JDK提供的Proxy,和spring进一步封装的CGLIB.二者生成的代理没有任何区别,生成的都是代理对象.只是生产方式不同,前者是基于接口生成代理,后者基于实现类生成代理对象 如何切换spring框架中默认生成代理的方式 <aop:config proxy-ta

ios 下两种生成唯一字符串的方法

CFUUIDRef uuidRef =CFUUIDCreate(NULL); CFStringRef uuidStringRef =CFUUIDCreateString(NULL, uuidRef); CFRelease(uuidRef); NSString *uniqueId = (__bridgeNSString *)uuidStringRef;

对抗样本攻防战,清华大学TSAIL团队再获CAAD攻防赛第一

最近,在全球安全领域的殿堂级盛会 DEF CON 2018 上,GeekPwn 拉斯维加斯站举行了 CAAD CTF 邀请赛,六支由国内外顶级 AI 学者与研究院组成的队伍共同探讨以对抗训练为攻防手段的 CTF.TSAIL 团队的庞天宇.杜超作为代表获得该项比赛的冠军,参加比赛的骨干成员还包括董胤蓬.韦星星等,TSAIL 团队来自于清华大学人工智能研究院,主要研究领域为机器学习. 同样在去年,该团队在 NIPS 2017 AI 对抗性攻防竞赛的三项比赛任务中(有/无特定目标攻击:攻击检测),全部

利用图像压缩模型抵御对抗样本 by ch

论文链接:https://arxiv.org/abs/1811.12673 一.对抗样本 对抗样本是指攻击者通过向真实样本中添加人眼不可见的噪声,导致深度学习模型发生预测错误的样本.比如对于一张猫的图片,分类器原本可以正确的识别.如果在图片中加入一些微小的干扰,这些干扰对于人眼来说是分辨出来的,人们依旧可以认出这是一个猫,但是分类器就有很大的可能将其识别成一只狗. 二.用图像压缩抵御对抗样本 人们已经提出了许多抵御对抗样本的方法,如PixelDefend等.这些方法主要分为两类,第一类主要通过增

四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)

四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例) 众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml-apis.jar包里 SAX:http://sourceforge.net/projects/sax/ JDOM:http://jdom.org/downloads/index.html DOM4J:http://sourceforge.

谢宾斯基三角形的几种生成方法

简介 谢宾斯基三角形(Sierpinski triangle)是一种分形,由波兰数学家谢宾斯基在1915年提出.它是一种自相似集. 几种生成方法 方法一:去掉中心 取一个实心的三角形(多数用等边三角形) 连接三边中点,将它们分成4个小三角形 将正中间的三角形挖空 对其余三个小三角形重复操作1 取一个正方形或其它图形开始,用类似的方法,形状也和谢宾斯基三角形相似,例如: 取一个实心正方形 将它分成3个“品”字形的小正方形 将其余部分“挖空” 重复步骤1 方法二:Chaos Game 任取平面上三点

js去除空格12种方法

注:本文转载于csdn:黄卉博主的文章<js去除空格12种方法> 实现1 1 String.prototype.trim = function() { 2 return this.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); 3 } 看起来不怎么样, 动用了两次正则替换,实际速度非常惊人,主要得益于浏览器的内部优化.一个著名的例子字符串拼接,直接相加比用Array做成的StringBuffer 还快.base2类库使用这种实现.实现2 1 Strin

让一个元素隐藏的12种方法

1.display:none 显示为无 2.visibility:hidden  隐藏 3.width\height 4.透明度 opacity:0 5.left\top 6.margin负值 7.用另一个div遮盖 8.z-index负值 9.transform:sale() 缩放 10.transform:translate() 位移 听说有12种方法,欢迎大家补充!!!