Adversarial Examples Are Not Bugs, They Are Features
@article{ilyas2019adversarial,
title={Adversarial Examples Are Not Bugs, They Are Features},
author={Ilyas, Andrew and Santurkar, Shibani and Tsipras, Dimitris and Engstrom, Logan and Tran, Brandon and Madry, Aleksander},
pages={125--136},
year={2019}}
概
作者认为, 标准训练方法, 由于既能学到稳定的特征和不稳定的特征, 而导致模型不稳定. 作者通过将数据集分解成稳定和非稳定数据来验证其猜想, 并利用高斯分布作为一特例举例.
主要内容
本文从二分类模型入手.
符号说明及部分定义
\((x,y) \in \mathcal{X} \times \{\pm 1\}\): 样本和标签;
\(C:\mathcal{X} \rightarrow \{\pm 1\}\): 分类器;
\(f:\mathcal{X} \rightarrow \mathbb{R}\) : 特征;
\(\mathcal{F}=\{f\}\): 特征集合;
注: 假设\(\mathbb{E}_{(x,y) \sim \mathcal{D}}[f(x)]=0\), \(\mathbb{E}_{(x,y) \sim \mathcal{D}}[f(x)^2]=1\).
注: 在深度学习中, \(C\)可以理解为
\]
\(\rho\)可用特征
满足
\mathbb{E}_{(x,y) \sim \mathcal{D}}[y \cdot f(x)] \ge \rho >0,
\]
并记\(\rho_{\mathcal{D}}(f)\)为最大的\(\rho\).
\(\gamma\)稳定可用特征
若\(f\) \(\rho\)可用, 且对于给定的摄动集合\(\Delta\)
\mathbb{E}_{(x, y) \sim \mathcal{D}} [\inf_{\delta \in \Delta(x)} y \cdot f(x+ \delta)] \ge \gamma > 0,
\]
则\(f\) 为\(\gamma\)稳定可用特征.
可用不稳定特征
即对于\(f\), \(\rho_{\mathcal{D}}(f) >0\), 但是不存在\(\gamma >0\)使得(2)式满足.
标准(standard)训练
即最小化期望损失(在实际中为经验风险):
\mathbb{E}_{(x,y) \sim \mathcal{D}} [\mathcal{L}_{\theta} (x, y)],
\]
\(\mathcal{L}_{\theta}\)的取法多样, 比如
\]
稳定(robust)训练
\mathbb{E}_{(x, y) \sim \mathcal{D}} [\max_{\delta \in \Delta(x)} \mathcal{L}_{\theta} (x+\delta, y)].
\]
分离出稳定数据
何为稳定数据? 即在此数据上, 利用标准的训练方式训练得到的模型能够在一定程度上免疫攻击. 如果能从普通的数据中分离出稳定数据和不稳定数据, 说明上面定义的稳定和非稳特征的存在性.
首先假设\(C\)是一个稳定模型(可通过PGD训练近似生成), 则\(\hat{D}_{R}\)应当满足
\mathbb{E}_{(x, y) \sim \hat{D}_{R}}[f(x) \cdot y] =
\left \{
\begin{array}{ll}
\mathbb{E}_{(x, y) \sim D}[f(x) \cdot y] & if \: f \in F_C, \\
0 & otherwise.
\end{array} \right.
\]
为了满足第一条, 需要
\min_{x_r} \quad \|g(x_r) - g(x)\|_2,
\]
其中\(g\)为将\(x\)映射到表示层(representation layer)的映射?
为了满足第二条, 在选择\(x_r\)的初始值的时候, 从\(\mathcal{D}\)中随机采样\(x'\), 以保证\(x'\)和\(y\)没有关系, 则\(\mathbb{E}_{(x, y) \sim D}[f(x') \cdot y] = \mathbb{E}_{(x, y) \sim D}[f(x')] \cdot \mathbb{E}_{(x, y) \sim D}[y] = 0\).

分离出不稳定数据
分离出不稳定数据所需要的是标准的模型\(C\), 且
x_{adv} = \arg \min_{\|x'-x\| \le \epsilon} L_C(x', t),
\]
其中\(L_C\)是认为给定的损失函数(比如:交叉熵), 而\(t\)是通过某种方式给定的标签, 且\(C(x) = y\), \(C(x')=t\).
既然摄动很小, 且\(x_{adv}\)的标签为\(t\), 所以此时\(F_C\)中既有稳定特征, 又有不稳定特征.
\(t\)随机选取
此时稳定性特征和\(t\)不相关, 故其可用度应当为0, 而不稳定特征可用度大于0, 故
\mathbb{E}_{(x, y) \sim \hat{D}_{rand}}[f(x) \cdot y]
\left \{
\begin{array}{ll}
.> 0 & if \: f \: non-robustly \: useful, \\
\approx 0 & otherwise.
\end{array} \right.
\]
\(t\)选取依赖于\(y\)
\mathbb{E}_{(x, y) \sim \hat{D}_{det}}[f(x) \cdot y] =
\left \{
\begin{array}{ll}
.> 0 & if \: f \: non-robustly \: useful \\
< 0 & if \: f\: robustly \: useful \\
\in \mathbb{R} & otherwise.
\end{array} \right.
\]

比较重要的实验
1

上面左图从上到下分别是标准数据, 稳定数据和不稳定数据, 右图进行了四组不同的实验:
- 在标准数据上标准训练并对其攻击
- 在标准数据上稳定训练并对其攻击
- 在稳定数据上标准训练并对其攻击
- 在不稳定数据上标准训练并对其攻击
不难发现, 在稳定数据上标准训练能够一定程度上免疫攻击, 而在不稳定数据上标准训练, 能够逼近在标准数据上标准训练的结果, 而其对攻击的免疫程度也正如我们所想的一塌糊涂.
这些实验可以说明, 稳定特征和不稳定特征是存在的, 标准训练由于最大限度地追求准确度, 所以其对二类特征一视同仁, 全盘接受, 这导致了不稳定.
迁移性
adversarial attacks的一个很明显的特征便是迁移性, 稳定特征和不稳定特征能够解释这一点, 既然数据相同, 不同结构的网络会从中提取出类似的不稳定特征.

利用从ResNet-50中提取的不稳定数据, 提供给别的模型训练, 可以验证迁移性.
理论分析
作者通过一个正态分布的例子来告诉我们稳定特征和不稳定特征的存在和作用.
注: 下面涉及到的\(\Sigma, \Sigma_*\)均为对角阵.

标准训练的目标是通过极大似然估计\(\Theta=(\mu, \Sigma)\),

其中\(\ell\)为密度函数的\(-\log\).
于是,
\]
注: 无特别约束(11)的最优解即位\(\mu_*, \Sigma_*\).
稳定训练的目标是

则有以下结论
定理1

注: \(\mathcal{L}(\Theta)=\mathbb{E}_{(x, y) \sim \mathcal{D}}[\ell(x, y,\mu, \Sigma)]\), \(\mathcal{L}_{adv}(\Theta)\)的定义是类似的.
定理2
注意, 此时考虑的问题与上面的不同(定理3同定理2), 为


定理3

定理的证明, 这里不贴了, 其中有一个引理的证明很有趣.
Adversarial Examples Are Not Bugs, They Are Features的更多相关文章
- Adversarial Examples for Semantic Segmentation and Object Detection 阅读笔记
Adversarial Examples for Semantic Segmentation and Object Detection (语义分割和目标检测中的对抗样本) 作者:Cihang Xie, ...
- 文本adversarial examples
对文本对抗性样本的研究极少,近期论文归纳如下: 文本对抗三个难点: text data是离散数据,multimedia data是连续数据,样本空间不一样: 对text data的改动可能导致数据不合 ...
- 论文阅读 | Generating Fluent Adversarial Examples for Natural Languages
Generating Fluent Adversarial Examples for Natural Languages ACL 2019 为自然语言生成流畅的对抗样本 摘要 有效地构建自然语言处 ...
- 《Explaining and harnessing adversarial examples》 论文学习报告
<Explaining and harnessing adversarial examples> 论文学习报告 组员:裴建新 赖妍菱 周子玉 2020-03-27 1 背景 Sz ...
- 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 ...
- Uncovering the Limits of Adversarial Training against Norm-Bounded Adversarial Examples
Uncovering the Limits of Adversarial Training against Norm-Bounded Adversarial Examples 目录 概 主要内容 实验 ...
- Certified Robustness to Adversarial Examples with Differential Privacy
目录 概 主要内容 Differential Privacy insensitivity Lemma1 Proposition1 如何令网络为-DP in practice Lecuyer M, At ...
- Generating Adversarial Examples with Adversarial Networks
目录 概 主要内容 black-box 拓展 Xiao C, Li B, Zhu J, et al. Generating Adversarial Examples with Adversarial ...
- Obfuscated Gradients Give a False Sense of Security: Circumventing Defenses to Adversarial Examples
目录 概 主要内容 Obfuscated Gradients BPDA 特例 一般情形 EOT Reparameterization 具体的案例 Thermometer encoding Input ...
随机推荐
- API 管理在云原生场景下的机遇与挑战
作者 | 张添翼 来源 | 尔达Erda公众号 云原生下的机遇和挑战 标准和生态的意义 自从 Kubernetes v1.0 于 2015 年 7 月 21 日发布,CNCF 组织随后建立以来,其 ...
- Hive(十三)【Hive on Spark 部署搭建】
Hive on Spark 官网详情:https://cwiki.apache.org//confluence/display/Hive/Hive+on+Spark:+Getting+Started ...
- 大数据学习----day27----hive02------1. 分桶表以及分桶抽样查询 2. 导出数据 3.Hive数据类型 4 逐行运算查询基本语法(group by用法,原理补充) 5.case when(练习题,多表关联)6 排序
1. 分桶表以及分桶抽样查询 1.1 分桶表 对Hive(Inceptor)表分桶可以将表中记录按分桶键(某个字段对应的的值)的哈希值分散进多个文件中,这些小文件称为桶. 如要按照name属性分为3个 ...
- 零基础学习java------32---------css,javascript,jQuery
一. CSS简单了解 需要掌握: 概念见day11中的课堂笔记 css:修饰html标签的样式 1.每个元素有一个style属性,其形式为:style="属性:值:属性:值...." ...
- lvm 创建扩展
fdisk /dev/sdgnpt8ewpartprobepvcreate /dev/sdg1vgcreate multibank /dev/sdg1lvcreate -l +100%FREE -n ...
- 【Linux】【Database】【MySQL】使用percona搭建高可用的MySQL数据库
1. 简介 1.1. 官方文档: 数据库架构:https://docs.openstack.org/ha-guide/shared-database.html 1.2. 本次使用的的是Percona ...
- SQL错误总结
ORA-00918: column ambiguously defined 异常原因: select 查询的字段在from的两张表中都存在,导致数据库无法区别需要查询的字段来自于哪张表 以下是例子 s ...
- maven常用命令(待补充)
1.mvn clean 删除已经编译好的信息 2.mvn compile 编译src/main/java目录下的.java文件 3.mvn test 编译src/main/java和src/test/ ...
- 【Spark】【RDD】从内存(集合)创建RDD
val list = List(1,2,3) var rdd = sc.parallelize(list) rdd.partitions.size 通过调用SparkContext的paralleli ...
- C#.NET编程小考30题错题纠错
1)以下关于序列化和反序列化的描述错误的是( C). a) 序列化是将对象的状态存储到特定存储介质中的过程 b) 二进制格式化器的Serialize()和Deserialize()方法可以分别用来实现 ...