Ma X, Li B, Wang Y, et al. Characterizing Adversarial Subspaces Using Local Intrinsic Dimensionality[J]. arXiv: Learning, 2018.

@article{ma2018characterizing,

title={Characterizing Adversarial Subspaces Using Local Intrinsic Dimensionality},

author={Ma, Xingjun and Li, Bo and Wang, Yisen and Erfani, Sarah M and Wijewickrema, Sudanthi and Houle, Michael E and Schoenebeck, Grant and Song, Dawn and Bailey, James},

journal={arXiv: Learning},

year={2018}}

本文介绍了一种local intrinsic dimensionality(LID)的指标用以揭示普通样本和对抗样本的本质区别, 这个指标可以用用来进行防御(即在样本进来的时候, 提前预判其是否是对抗样本).

主要内容

已有的一些用来区分普通样本和对抗样本的方法, 诸如KD(核密度估计) 和 BU(贝叶斯不确定度, 这个不是很了解), 但是其效果不明显, 本文提出的LID指标能够在各方面胜过他们.

比如在下图中, KM(k均值距离: 取样本\(x\)到最近的k个样本的距离的平均), 以及核密度估计(KD), 在普通样本和对抗样本上的指标是一致的, 此时无法判断, 而本文的LID的方法却能够判断(LID越大越偏离普通样本).

LID

由一个点为中心, 向外以超距体的方式发散, 其体积\(V\)与边长\(r\)的关系可知

\[\frac{V_2}{V_1} = (\frac{r_2}{r_1})^m \rightarrow m= \frac{\log (V_2/V_1)}{ \log (r_2 / r_1)},
\]

其中\(m\)为维度.

于是有人就想出把这种思想推广到一般的数据(数据的分布可能是一个低维的流形)

定义(LID): 给定样本\(x \in \mathcal{X}\), 令\(R >0\)表示\(x\)到其它样本的距离的随机变量, 并用\(F(r)\)表示概率\(P(R\le r)\), 且假设其关于\(r>0\)连续可微, 则在\(x\)点的距离为\(r\)的LID定义为

\[\tag{2}
\mathrm{LID}_F(r) := \lim_{\epsilon \rightarrow 0} \frac{\log (F((1+\epsilon)\cdot r) / F(r))}{\log (1+\epsilon)}=\frac{r\cdot F'(r)}{F(r)},
\]

若极限存在.

注: 最后一个等式成立, 只需中间式子上下同除以\(\epsilon\)再分别取极限即可(既然二者的极限都存在).

最后,

\[\tag{3}
\mathrm{LID}_F := \lim_{r \rightarrow 0} \mathrm{LID}_F(r).
\]

此即位我们最后要的LID(\(r \rightarrow 0\)是因为我们关注的是局部信息).

LID估计

\[\tag{4}
\widehat{\mathrm{LID}}(x)= - (\frac{1}{k} \sum_{i=1}^k \log \frac{r_i(x)}{r_k(x)})^{-1}.
\]

算法

作者为了利用LID区分对抗样本, 训练了一个分类器. 在预先训练好的网络\(H\)上, 对每一个样本, 第i层的输出为\(H^i(x)\), 对每一层的输出, 我们都计算其LID(这一步会用到别的训练数据)并保存下来. 利用这些提取出来的特征(LID), 训练二分类器(作者采用逻辑斯蒂回归).

实验

1

作者首先分析了, 普通样本(normal), 噪声样本(noisy), 对抗样本(adv)的LID指标, 可以发现,LID对对抗样本很敏感, 下面右图分析了在不同层中提取出来的LID值用于区分对抗样本的成功率.

2

比较了不同方法 KD, BU, KD+BU, LID在不同数据下, 对利用不同攻击方法生成的对抗样本进行区分的效果(途中的指标为AUC, AUC指标越大越好)

3

作者在FGM上计算LID并训练分类器, 再用别的方法生成对抗样本, 再测试效果.

4

作者为了探究每一个batch的大小, 以及超参数\(k\)的影响, 做了实验, 显然batch size大一点比较好.

5

作者最小化下式生成对抗样本,

结果这些样本不能够欺骗过LID.

注: 已经别的文章指出, 其成功的原因在于破坏了梯度, 更改一下损失函数就能攻破.

CHARACTERIZING ADVERSARIAL SUBSPACES USING LOCAL INTRINSIC DIMENSIONALITY的更多相关文章

  1. Adversarial Detection methods

    目录 Kernel Density (KD) Local Intrinsic Dimensionality (LID) Gaussian Discriminant Analysis (GDA) Gau ...

  2. KDD2015,Accepted Papers

    Accepted Papers by Session Research Session RT01: Social and Graphs 1Tuesday 10:20 am–12:00 pm | Lev ...

  3. 壁虎书8 Dimensionality Reduction

    many Machine Learning problems involve thousands or even millions of features for each training inst ...

  4. 降维工具箱drtool

    工具箱下载:http://leelab.googlecode.com/svn/trunk/apps/drtoolbox/ ——————————————————————————————————————— ...

  5. matlab 降维工具 转载【https://blog.csdn.net/tarim/article/details/51253536】

    降维工具箱drtool   这个工具箱的主页如下,现在的最新版本是2013.3.21更新,版本v0.8.1b http://homepage.tudelft.nl/19j49/Matlab_Toolb ...

  6. t-SNE完整笔记

    http://www.datakit.cn/blog/2017/02/05/t_sne_full.html t-SNE(t-distributed stochastic neighbor embedd ...

  7. Context Encoder论文及代码解读

    经过秋招和毕业论文的折磨,提交完论文終稿的那一刻总算觉得有多余的时间来搞自己的事情. 研究论文做的是图像修复相关,这里对基于深度学习的图像修复方面的论文和代码进行整理,也算是研究生方向有一个比较好的结 ...

  8. 100 Most Popular Machine Learning Video Talks

    100 Most Popular Machine Learning Video Talks 26971 views, 1:00:45,  Gaussian Process Basics, David ...

  9. 理解 t-SNE (Python)

    t-SNE(t-distribution Stochastic Neighbor Embedding)是目前最为流行的高维数据的降维算法. t-SNE 成立的前提基于这样的一个假设:我们现实世界观察到 ...

随机推荐

  1. python 多态、组合、反射

    目录 多态.多态性 多态 多态性 鸭子类型 父类限制子类的行为 组合 面向对象的内置函数 反射 多态.多态性 多态 多态通俗理解起来,就像迪迦奥特曼有三种形态一样,怎么变还是迪迦奥特曼 定义:多态指的 ...

  2. SpringCloud微服务实战——搭建企业级开发框架(三十一):自定义MybatisPlus代码生成器实现前后端代码自动生成

      理想的情况下,代码生成可以节省很多重复且没有技术含量的工作量,并且代码生成可以按照统一的代码规范和格式来生成代码,给日常的代码开发提供很大的帮助.但是,代码生成也有其局限性,当牵涉到复杂的业务逻辑 ...

  3. 大数据学习day15----第三阶段----scala03--------1.函数(“_”的使用, 函数和方法的区别)2. 数组和集合常用的方法(迭代器,并行集合) 3. 深度理解函数 4 练习(用java实现类似Scala函数式编程的功能(不能使用Lambda表达式))

    1. 函数 函数就是一个非常灵活的运算逻辑,可以灵活的将函数传入方法中,前提是方法中接收的是类型一致的函数类型 函数式编程的好处:想要做什么就调用相应的方法(fliter.map.groupBy.so ...

  4. 02-爬取http://www.allitebooks.org/网站,获取图片url,书名,简介,作者

    import requests from lxml import etree from bs4 import BeautifulSoup import json class BookSpider(ob ...

  5. pyqt5 的串口编写进度

    2020.12.18 今天遇到一个问题, 想用回车实现串口数据的发送. 下面这句话是让光标移动到文字的尾部,但是不能够实现. 对QTextEdit控件中的文字改写,或清除后,再调用下面的移动到尾部,就 ...

  6. Docker学习(三)——Docker镜像使用

    Docker镜像使用     当运行容器时,使用的镜像如果在本地中不存在,docker就会自动从docker镜像仓库中下载,默认是从Docker Hub公共镜像源下载. 1.镜像使用     (1)列 ...

  7. 利用Lombok编写优雅的spring依赖注入代码,去掉繁人的@Autowired

    大家平时使用spring依赖注入,都是怎么写的? @Servicepublic class OrderService {@Autowiredprivate UserService userServic ...

  8. Ibatis中SqlMapClientTemplate和SqlMapClient的区别

    SqlMapClientTemplate是org.springframework.orm.ibatis下的 而SqlMapClient是ibatis的 SqlMapClientTemplate是Sql ...

  9. JDBC(2):JDBC对数据库进行CRUD

    一. statement对象 JDBC程序中的Connection用于代表数据库的链接:Statement对象用于向数据库发送SQL语句:ResultSet用于代表Sql语句的执行结果 JDBC中的s ...

  10. 连接 MySQL 数据库出现问题:The server time zone value ‘�й���׼ʱ��‘ is unrecogni....

    出现问题 The server time zone value '�й���׼ʱ��' is unrecogni.... 解决方案 在 URL 后面加上 ?serverTimezone=UTC 如下: ...