Hu S, Yu T, Guo C, et al. A New Defense Against Adversarial Images: Turning a Weakness into a Strength[C]. neural information processing systems, 2019: 1633-1644.

@article{hu2019a,

title={A New Defense Against Adversarial Images: Turning a Weakness into a Strength},

author={Hu, Shengyuan and Yu, Tao and Guo, Chuan and Chao, Weilun and Weinberger, Kilian Q},

pages={1633--1644},

year={2019}}

代码.

本文介绍了一种检测是否为adversarial sample的defense.

主要内容

准则1

一般的CNN网络, 抗干扰(随机噪声)的能力是很强的, 这说明, 数据分布应当是如下图一样, \(x\)(其类别为\(A\)) 的周围的点大部分类别仍为\(A\), 落入\(B,C,D\)需要一些更强的干扰(如gradient-based adversaries).



这启发了作者, 采样\(\epsilon \sim \mathcal{N}(0, \sigma^2I)\), 比较

\[\Delta = \| h(\mathbf{x}) - h(\mathbf{x}+\epsilon)\|_1,
\]

其中\(h(\cdot)\)为网络, 其输出为概率向量, 显然\(\Delta\)越大, 说明\(x\)对随机噪声的抗干扰能力不强, 说明\(x\)越有可能是adversarial sample.

准则2

同样如上图, 可以发现, 普通的样本往往落在分类边界周围, 所以利用adversaries 可以很容易(表现为迭代次数少)就能将其转移到另外的类别区域中去, 相反的, adversarial samples往往落在分类区域内部, 所以如果我们将adversarial samples移动到别的区域是不容易的(表现为需要更多的迭代次数).

所以, 假设将\(x\)移动到别的区域内的最少迭代次数为\(K\), \(K\)越大越有可能是adversarial samples. 由于攻击分为untarget, target所以, 所以作者也将准则2细分为C2(t/u)

总策略

有了\((\Delta,K_t,K_u)\), 当其中任何一个大于(分别)\((t_{C1}, t_{C2t},t_{C2u})\)时, 我们就认为\(x\)是一个adversarial sample, 其中\((t_{C1}, t_{C2t},t_{C2u})\)是认为设置的阈值.

注: 这俩个直觉还是挺有趣的, 只是感觉很难实用, 毕竟这些指标不仅是依赖于网络本身, 对干净数据也是一个挑战.

A New Defense Against Adversarial Images: Turning a Weakness into a Strength的更多相关文章

  1. Limitations of the Lipschitz constant as a defense against adversarial examples

    目录 概 主要内容 Huster T., Chiang C. J. and Chadha R. Limitations of the lipschitz constant as a defense a ...

  2. Distillation as a Defense to Adversarial Perturbations against Deep Neural Networks

    目录 概 主要内容 算法 一些有趣的指标 鲁棒性定义 合格的抗干扰机制 Nicolas Papernot, Patrick McDaniel, Xi Wu, Somesh Jha, Ananthram ...

  3. (转)Awesome Knowledge Distillation

    Awesome Knowledge Distillation 2018-07-19 10:38:40  Reference:https://github.com/dkozlov/awesome-kno ...

  4. (转)Is attacking machine learning easier than defending it?

    转自:http://www.cleverhans.io/security/privacy/ml/2017/02/15/why-attacking-machine-learning-is-easier- ...

  5. Adversarial Defense by Restricting the Hidden Space of Deep Neural Networks

    目录 概 主要内容 Mustafa A., Khan S., Hayat M., Goecke R., Shen J., Shao L., Adversarial Defense by Restric ...

  6. DEFENSE-GAN: PROTECTING CLASSIFIERS AGAINST ADVERSARIAL ATTACKS USING GENERATIVE MODELS

    目录 概 主要内容 Samangouei P, Kabkab M, Chellappa R, et al. Defense-GAN: Protecting Classifiers Against Ad ...

  7. Obfuscated Gradients Give a False Sense of Security: Circumventing Defenses to Adversarial Examples

    目录 概 主要内容 Obfuscated Gradients BPDA 特例 一般情形 EOT Reparameterization 具体的案例 Thermometer encoding Input ...

  8. Automysqlbackup: WARNING: Turning off multicore support, since pigz isn’t there.

    在使用Automysqlbackup备份MySQL时,有时候你会在邮件里面看见"WARNING: Turning off multicore support, since pigz isn' ...

  9. StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks 论文笔记

    StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks  本文将利 ...

随机推荐

  1. 日常Java 2021/10/30

    Java泛型 Java泛型(generics)是JDK5中引入的一个新特性,泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型.泛型的本质是参数化类型,也就是说所操作的数据类型 ...

  2. nuxt使用图片懒加载vue-lazyload

    对于nuxt使用第三方插件的方式大体都是都是一致的,就是在plugins文件夹中新增插件对应的js文件进行配置与操作,然后在nuxt.config.js文件的plugins配置项中引入新建的js文件就 ...

  3. OSGI 生命周期

    1 生命周期管理 对于非模块化应用,生命周期将应用作为一个整体来操作: 而对于模块化应用,则可以以细粒度的方式来管理应用的某一个独立部分. OSGi生命周期管理 OSGi生命周期层有两种不同的作用: ...

  4. SpringMVC(4):文件上传与下载

    一,文件上传 文件上传是项目开发中最常见的功能之一 ,springMVC 可以很好的支持文件上传,但是SpringMVC上下文中默认没有装配MultipartResolver,因此默认情况下其不能处理 ...

  5. shell 截取字符串实例教程

    本节内容:shell字符串截取方法 1,去掉字符串最左边的字符 [root@jbxue ~]$ vi test.sh 1 STR="abcd" 2 STR=${STR#" ...

  6. jstl中的choose标签

    <%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ ta ...

  7. 如何优雅正确地通过interrupt方法中断线程

    为什么废弃Thread的stop函数? 简单来说就是stop方法中断线程太过暴力随意,且会是否线程持有的锁,会导致线程安全问题.还有可能导致存在需要被释放的资源得不到释放,引发内存泄露.所以用stop ...

  8. C# 使用modbus 读取PLC 寄存器地址

    使用的组件Nmodbus 定义参数,全局变量: //创建modbus实体对象 private static ModbusFactory modbusFactory; private static IM ...

  9. scanf("%c\n",&a)和scanf("%c",&a)区别

    scanf("%c",&a); 当输入字符的时候,我们按下任意字符 + 回车的时候,回车没有被当作为分隔符,而是作为一个转义字符与输入的字符一起保存在缓存区.第一次scan ...

  10. OAuth2.0实战:认证、资源服务异常自定义!

    大家好,我是不才陈某~ 这是<Spring Security 进阶>的第4篇文章,往期文章如下: 实战!Spring Boot Security+JWT前后端分离架构登录认证! 妹子始终没 ...