DeepFool: a simple and accurate method to fool deep neural networks(2016 CVPR)

文章简介:
本文为Adversary Attack方向的一篇经典论文。算法名为DeepFool,其目标是寻求最小的扰动来达到生成对抗样本的目标。下图第2行为DeepFool算法生成的扰动,第3行为FGSM算法生成的扰动。可以看到当生成的target label都为turtle时,DeepFool算法所加入的扰动,明显低于FGSM。DeepFool算法的特点主要为以下几个方面:

  • 这是一种untargeted attak
  • 该算法是通过寻求当前的点在高维空间中离所有非真实类的决策边界中最近的一个,来作为攻击后的label
  • 需要注意的是,该算法是一种贪心算法,并不能保证收敛到(1)中的最优扰动。但是,作者在实践中观察到,该算法产生的扰动非常小,可以认为是最小扰动的很好的近似

Contribute:

  • 提出了一种简单、准确的方法来计算比较不对分类器对对抗扰动的鲁棒性

  其中∇(x;k^)\nabla (x; \hat{k})∇(x;k^)为

  • 做了广泛的实验比较从而得出
    a) 我们的方法比现有的方法更可靠、更有效地计算了对抗性扰动。
    b) 发现用对抗性的例子增加训练数据可以显著增强对对抗性扰动的鲁棒性。

  • 作者证明,使用不精确的方法来计算对抗性扰动,可能导致对鲁棒性的不同结论,有时还会产生误导。因此,作者的方法提供了一个更好的理解这个有趣的现象及其影响因素。

DeepFool for binary classifiers:
fff是一个线性二分类分类器:f(x)=wTx+bf(x)=w^Tx+bf(x)=wTx+b。如下图,为了使得扰动达到最小,最小的方向就是垂直于分类面的方向。

因此可以给出一个closed-form formula: 其算法流程为

个人感觉这个算法中rir_iri​计算结果可能会偏大以至于无法满足题目中最小扰动的目标?
No!
f(x0)∣∣w∣∣22w⇒f(x0)∣∣w∣∣2w∣∣w∣∣2\frac{f(x_0)}{||w||_2^2} w \Rightarrow \frac{f(x_0)}{||w||_2} \frac{w}{||w||_2} ∣∣w∣∣22​f(x0​)​w⇒∣∣w∣∣2​f(x0​)​∣∣w∣∣2​w​
其中
f(x0)∣∣w∣∣2\frac{f(x_0)}{||w||_2} ∣∣w∣∣2​f(x0​)​
为点到平面fff的距离公式
另外
w∣∣w∣∣2\frac{w}{||w||_2} ∣∣w∣∣2​w​
为梯度的单位向量。所以以上就为往梯度方向前进垂直距离大小,即能到达超平面(针对线性超平面而言)。但是事实上神经网络一般都是高度非线性。因此可能未必一次就能到到超平面边界,所以便出现了算法中的while循环。

值得注意的是,算法中为∇f(xi)\nabla f(x_i)∇f(xi​)而非www。但是因为f(x)=wTx+bf(x)=w^Tx+bf(x)=wTx+b,所以∇f(xi)=w\nabla f(x_i) = w∇f(xi​)=w。此外,作者发现上述算法通常会收敛到为zero level set中的一个点,因此在实际操作的过程中,作者会将最终的r^\hat{r}r^乘以一个常系数1+η1+\eta1+η,在作者的实验中,他选取η=0.02\eta=0.02η=0.02

DeepFool for multiclass classifiers:

  • 本文采用的多分类器方案是one-vs-all
  • 这里依然考虑的线性分类器
  • 分类的结果的选择k^(x)=arg⁡max⁡kfk(x)\hat{k}(x)= \underset{k}{\arg \max} f_k (x)k^(x)=kargmax​fk​(x)其中fk(x)f_k(x)fk​(x)是f(x)f(x)f(x)第kthk_{th}kth​的输出

因此只要在原样本x0x_0x0​上加上扰动rrr后,满足下式即攻击成功(只要出现某个类的输出置信度高于原类别即满足)

对k^(x0)=4\hat{k}(x_0)=4k^(x0​)=4而言,假设其决策边界为下图,为了用最小的扰动来达到攻击效果,从图中我们可以选择往第3个边界移动。

其中P为

令l^(x0)\hat{l}(x_0)l^(x0​)为距离P的边界最近的超平面,其可以通过下式进行计算。有点不明白为什么要通过以下公式计算最近的超平面,而不是直接用点到平面的距离公式?
回答:仔细看超平面的公式为 fk(x)−f4(x)=0f_k(x) - f_4(x) = 0fk​(x)−f4​(x)=0

在计算得出最近的超平面后,我们的扰动可以通过下面的方式进行计算

DeepFool for General classifiers:

  • 此时可以是更一般的非线性的分类器

此时P为

上述两种情况都可以归为以下算法

Conclusion:

  • 本文提出了一种新的算法DeepFool
  • 本文基于分类器的iterative linearization来产生较小的扰动并产生非常有效的攻击效果
  • 本文在三个数据集和八个分类器上提供了大量的实验证据,表明了该方法相对于现有的计算对抗性扰动的方法的优越性,以及该方法的有效性。

由于这些笔记是之前整理的,所以可能会参考其他博文的见解,如果引用了您的文章的内容请告知我,我将把引用出处加上~
如果觉得我有地方讲的不好的或者有错误的欢迎给我留言,谢谢大家阅读(
点个赞我可是会很开心的哦)~

[论文阅读笔记]DeepFool: a simple and accurate method to fool deep neural networks相关推荐

  1. 论文那些事—DeepFool: a simple and accurate method to fool deep neural networks

    DeepFool: a simple and accurate method to fool deep neural networks 1.摘要及背景 提出Deepfool算法,对比FGSM和I-BL ...

  2. 论文阅读笔记(一)《Sequence to Sequence Learning with Neural Networks》

    论文下载链接:https://arxiv.org/pdf/1409.3215.pdf 创新点: 针对神经网络(DNN)不能用于将序列映射到序列的问题,提出一种通用的端到端序列学习方法. 论文内容: D ...

  3. 【论文阅读|深读】ANRL: Attributed Network Representation Learning via Deep Neural Networks

    目录 前言 简介 Abstract 1 Introduction 2 Related Work 3 Proposed Model 3.1 Notations and Problem Formulati ...

  4. 意图识别算法:噪音处理之O2U-Net: A Simple Noisy Label Detection Approach for Deep Neural Networks

    目录 问题描述 解决思路 具体过程 预训练阶段 Cyclical Training阶段 clean dataset训练阶段 实验结果 论文下载:O2U-Net: A Simple Noisy Labe ...

  5. 深度学习论文阅读图像分类篇(三):VGGNet《Very Deep Convolutional Networks for Large-Scale Image Recognition》

    深度学习论文阅读图像分类篇(三):VGGNet<Very Deep Convolutional Networks for Large-Scale Image Recognition> Ab ...

  6. 论文阅读笔记——《a simple but tough-to-beat baseline for sentence embeddings》

    <a simple but tough-to-beat baseline for sentence embeddings>published at ICLR 2017. ICLR会议的论文 ...

  7. 文本检测 论文阅读笔记之 Pixel-Anchor: A Fast Oriented Scene Text Detector with Combined Networks

    Pixel-Anchor: A Fast Oriented Scene Text Detector with Combined Networks 摘要:最近语义分割和通用对象检测框架已被场景广泛采用文 ...

  8. 论文阅读笔记之Replacing Mobile Camera ISP with a Single Deep Learning Model

    这篇文章做了啥 根据ccd或者cmos图像传感器获得的图像,要经过一系列的复杂的处理才能得到最终的图像,而且不同的cmos有不同的算法,作者这里的motivation是能不能有一个比较统一的框架来处理 ...

  9. Procedural Noise Adversarial Examples for Black-Box Attacks on Deep Neural Networks论文笔记

    Procedural Noise Adversarial Examples for Black-Box Attacks on Deep Neural Networks论文笔记 0. 概述 如今一些深度 ...

  10. [论文阅读笔记58]Learning from Noisy Labels with Deep Neural Networks:A Survey

    1.题目 Learning from Noisy Labels with Deep Neural Networks: A Survey 作者团队:韩国科学技术院(KAIST) Song H , Kim ...

最新文章

  1. 超赞的贪吃蛇、吃豆人和数字华容道等童年小游戏1行Python代码就能玩
  2. SSE命令示例代码(转换、加载、置位、存储)
  3. 阻止地图的放大和缩小_Arcgis画地图详细步骤(真的!!)
  4. 无线智能路由器家长控制宽带
  5. 【2016年第5期】生态经营论
  6. SQL Pass北京举办1周年活动(本次活动特别邀请到了来自微软的SQL Server大师何雷谈数据库职业规划)...
  7. 使用struts做一个简单的登录跳转
  8. 利用Xstream注解生成和解析xml
  9. 视频教程-HTML5基础知识实战演练教程-HTML5/CSS
  10. 如何解决百度识图中图片被限制百度防盗链破解方法
  11. Python-XML文件读取/添加/修改方法记录(一)
  12. 家庭宽带服务器有什么作用,家用宽带网络与服务器使用的网络有什么不同?
  13. 连接游戏服务器网络延迟高,玩游戏网络延迟高怎么办 网络卡Ping值很高的解决方法...
  14. 只能上QQ不能上网的解决方法
  15. 生成验证码_JSP源代码
  16. OLTP和OLAP的区别?
  17. oracle授权查询
  18. 【第八章】文件与文件系统的压缩、打包与备份
  19. 杭电数电实验(五)流水灯实验
  20. 2023年软考信息安全工程师备考学习笔记汇总

热门文章

  1. GT610的亲兄弟 GT620
  2. 英语各种数字表达方式大全(转载)
  3. Ubuntu下mysql远程连接失败MySQL said: Can't connect to MySQL server on 'XXXXXX' (61)
  4. 概要设计说明书的书写
  5. S3C2440移植uboot之支持NAND启动
  6. List.sort()方法使用拉姆达表达式进行排序的一个例子
  7. android 日历动态图标,android 日历图标显示星期
  8. FBReader阅读引擎支持的功能
  9. Python初学3——数字类型及操作
  10. ORR R0,R0,#R1_nF:OR:R1_iA