DeepFool算法,用于计算欺骗最新分类器的对抗样本。它基于分类器的迭代线性化,以生成足以更改分类标签的最小扰动。

文章主要贡献

  • 提出了一种简单准确的方法来计算和比较不同分类器对对抗性干扰的鲁棒性。
  • 实验结果表明使用不精确的方法计算对抗性扰动可能会导致关于鲁棒性的不同结论,有时甚至是误导性的结论。
  • 鲁棒性定义

  • 形式上,对于给定的分类器,定义一个对抗扰动为足以改变估计label  的最小扰动 r(样本鲁棒性是使得模型出现误分类的最小扰动)
  • x是干净样本,  是预测的label, 是   在x点的鲁棒性。

分类器在整个模型上的鲁棒性定义为:

DeepFool应用于二元分类器

f是一个线性二分类分类器,

为了使得扰动达到最小,最小的方向就是垂直于分类面的方向。

f在x0处的鲁棒性,等于x0到F的距离。

假设f是一个一般的二元可微分类器,我们采用一个迭代过程来估计鲁棒性,将f围绕当前点xi线性化,线性化分类器的最小扰动计算为

利用式(3)中的闭式解计算算法第i次迭代时的扰动ri,更新下一个迭代xi+1。
当xi+1改变分类器的符号时,算法停止。

算法流程:

DeepFool应用于多元分类器

分类器的预测标签为:

本文采用的分类器方案是one-vs-all,依旧考虑线性分类器,分类结果的选择

欺骗分类器的最小扰动:

几何上,上述问题对应于 x0 与凸多面体P的补数之间的距离的计算:x0位于p内,用dist(x0,Pc)表示该距离。多面体P定义了f输出label  (x0)的空间区域,设置如下图

已知一个四分类器,干净样本被分为第四类中。是分类的边界超平面。绿色区域为一个凸区域可以表示为

定义为P边界的最近超平面(下图=3)。形式上可以如下计算:

此时最小扰动为:

算法流程

DeepFool应用于更一般的分类器

在迭代i处用一个多面体近似集合P

在算法的每次迭代中,计算到达多面体边界的扰动向量,并更新当前估计。方法见算法2。

在二进制情况下,我们的算法可以被看作是一个梯度下降算法,它具有在每次迭代时自动选择的自适应步长。算法2中的线性化也类似于顺序凸规划,其中每一步都对约束进行线性化。

扩展到范数

本文中,使用2范数衡量了扰动,但提出的框架不限于这种选择,并且所提出的算法可以简单的适用于寻找任何范数()的最小扰动。用以下替换算法2中的10,11行中的更新步骤

Deepfool阅读笔记相关推荐

  1. trainer setup_Detectron2源码阅读笔记-(一)Configamp;Trainer

    一.代码结构概览 1.核心部分 configs:储存各种网络的yaml配置文件 datasets:存放数据集的地方 detectron2:运行代码的核心组件 tools:提供了运行代码的入口以及一切可 ...

  2. VoxelNet阅读笔记

    作者:Tom Hardy Date:2020-02-11 来源:VoxelNet阅读笔记

  3. Transformers包tokenizer.encode()方法源码阅读笔记

    Transformers包tokenizer.encode()方法源码阅读笔记_天才小呵呵的博客-CSDN博客_tokenizer.encode

  4. 源码阅读笔记 BiLSTM+CRF做NER任务 流程图

    源码阅读笔记 BiLSTM+CRF做NER任务(二) 源码地址:https://github.com/ZhixiuYe/NER-pytorch 本篇正式进入源码的阅读,按照流程顺序,一一解剖. 一.流 ...

  5. Mina源码阅读笔记(一)-整体解读

    2019独角兽企业重金招聘Python工程师标准>>> 今天的这一节,将从整体上对mina的源代码进行把握,网上已经有好多关于mina源码的阅读笔记,但好多都是列举了一下每个接口或者 ...

  6. “CoreCLR is now Open Source”阅读笔记

    英文原文:CoreCLR is now Open Source 阅读笔记如下: CoreCLR是.NET Core的执行引擎,功能包括GC(Garbage Collection), JIT(将CIL代 ...

  7. QCon 2015 阅读笔记 - 团队建设

    QCon 2015阅读笔记 QCon 2015 阅读笔记 - 移动开发最佳实践 QCon 2015 阅读笔记 - 团队建设 中西对话:团队管理的五项理论和实战 - 谢欣.董飞(今日头条,LinkedI ...

  8. 05《软件需求模式》阅读笔记

    剩下的两个阅读笔记写第二部分.各类需求模式,共八个领域和它的需求模式,这一次写前四个. 基础需求模式,它是所有种类的系统都可能需要的一些东西.系统间接口需求模式使用系统间接口需求模式定义被定义的系统和 ...

  9. [置顶] Linux协议栈代码阅读笔记(一)

    Linux协议栈代码阅读笔记(一) (基于linux-2.6.21.7) (一)用户态通过诸如下面的C库函数访问协议栈服务 int socket(int domain, int type, int p ...

  10. 大型网站技术架构:核心原理与案例分析阅读笔记二

    大型网站技术架构:核心原理与案例分析阅读笔记二 网站架构设计时可能会存在误区,其实不必一味追随大公司的解决方案,也不必为了技术而技术,要根据本公司的实际情况,制定适合本公司发展的网站架构设计,否则会变 ...

最新文章

  1. PyQt5 笔记(04):主窗口卡死问题
  2. java缓冲流,BufferedReader,BufferedWriter 详解
  3. swingbench oracle rac,使用Swingbench压力测试Oracle RAC
  4. 腾讯基于全时态数据库技术的数据闪回
  5. listActivity和ExpandableListActivity的简单用法
  6. sql语句lastupdate使用数据库库函数
  7. php访问数据库例子,PHP访问MSSQL数据库(实例代码)
  8. 小D课堂 - 新版本微服务springcloud+Docker教程_3-01 什么是微服务的注册中心
  9. 系统设计时要考虑哪些方面?
  10. linux程序释放内存,Linux释放内存方法
  11. linux||Linux的操作系统的简单指令
  12. 详解数据结构课程设计———运动会分数统计
  13. python编程趣味试题_python趣味编程100例 python编程100例
  14. python tutorial json_Python Tutorial - Parse JSON Objects with Python
  15. Android Studio学习开发笔记--基础
  16. Partially written block detected 疑问及解决办法
  17. RocketMQ 集群平滑运维
  18. 如何将Mac OS更新到Catalina beta版本?
  19. spring cloud 配置文件application.yml和bootstrap.yml 的定位,区别和联系
  20. 【JAVA程序设计】(C00089)基于SSM(非maven)的仓库出入库管理系统

热门文章

  1. ionic3 disabled
  2. 基于STM32+ESP8266+华为云IoT设计的健康管理系统并完成应用侧开发
  3. html计算平方米,平方怎么算(面积怎么算平方米)
  4. 使用matlab建立个人简历,图像制作个人简历范文
  5. 申请苹果个人开发者经历
  6. 运算放大器的简要理解
  7. ReentrantLock 源码简单分析
  8. 戴尔服务器技术响应表,戴尔PowerEdge T110 II产品技术白皮书
  9. 揭开MySQL数据库的神秘面纱!
  10. Dreamweaver CS6破解教程[序列号+破解补丁