Certified Robustness to Adversarial Examples with Differential Privacy
@article{lecuyer2019certified,
title={Certified Robustness to Adversarial Examples with Differential Privacy},
author={Lecuyer, Mathias and Atlidakis, Vaggelis and Geambasu, Roxana and Hsu, Daniel and Jana, Suman},
pages={656--672},
year={2019}}
概
基于DP(differential privacy), 通过构造\((\epsilon,\delta)\)-DP机制, 可以得到certified robustness (在满足一定的条件下).
主要内容
Differential Privacy
DP, 差分隐私, 严格来说它是形容一些满足特定条件的随机机制. 它的背景是, 一些数据库, 在处理查询的时候, 虽然可以采用匿名机制, 但是一些别有心思的人可以通过查询获得一些特定的知识来推断出某些人或物具有的特殊的性质. 什么时候这种情况容易出现? 假设所有数据的全集是\(\mathcal{X}\), 而\(x, y\)是由\(\mathcal{X}\)中某些数据构成的数据库, \(A\)是一种处理查询的机制, \(A(x, \xi)\)会返回一次查询的基于\(x\)中返回的结果, 如果机制\(A\)能够保护隐私, 那么它应该使得查询者不容易分辨返回的结果是基于\(x\)还是\(y\). 假设\(S\)是我们通过查询获得的一些输出, 那么随机机制\(A\)符合\((\epsilon,\delta)\)-DP, 当
\]
对于任意的\(\rho(x,y)\le1\), 任意的输出集合\(S\), 任意的\(x, y \subset \mathcal{X}\).
直观的解释就是, 对数据库\(x\)改变某一条数据, 其输出的范围的变化并不明显, 去掉\(\delta\)会更容易理解:
\]
显然\(\frac{P(A(x)\in S)}{P(A(y)\in S)}=1\)的时候, 我们就完全无法分辨改变的那个数据归属, 也即这个数据的存在不会改变整体的一些统计性质, 这意味着这个数据的意义是一般的. 这也就保护了隐私.
需要注意的是, 一般意义上\(\rho\)为hamming距离, 但是论文中的都是一般的p范数(怎么推广不是很清楚).
insensitivity
\forall \alpha \in B_p(L), \quad y_k(x+\alpha) > \max_{i:i\not=k} y_i(x+\alpha).
\]
其中\(y_k\)是网络的第k个输出, 即在\(B_p(L)\)内网络不会改变它的判断.
但是, 现在的问题是, 一般的神经网络在\(L\)不是很大的时候, 就会被干扰导致误判, 所以作者就希望转而寻求下面的insensitivity
\]
作者发现, DP机制可以完成这一目标.
Lemma1
注意条件\([0, b]\), 所以应当假设神经网络的输出是概率(softmax后)向量.
Proposition1
Proposition 1. (Robustness Condition) Suppose \(A\) satisfies \((\epsilon, \delta)\)-DP with respect to a \(p\)-norm metric. For any input \(x\), if for some \(k \in \mathcal{K}\),
\mathbb{E}(A_k(x)) > e^{2\epsilon} \max_{i:i\not=k} \mathbb{E}(A_i(x)) + (1+e^{\epsilon})\delta,
\]
then the multiclass classification model based on label probability vector \(y(x)=(\mathbb{E}(A_1(x)), \ldots, \mathbb{E}(A_{K}(x)))\) is robust to attacks \(\alpha\) of size \(\|\alpha\|_p \le 1\) on input \(x\).
条件(4)很重要, 这说明加入了DP机制并非就能让所有的样本都鲁棒, 从某种程度上讲, 只有那些“confidence"高的才能够有certified robustness.
如何令网络为\((\epsilon,\delta)\)-DP
首先来看, 如何让普通的函数\(f\)为\((\epsilon, \delta)\)-DP, 假设
\not =x'} \frac{\|g(x)-g(x')\|_q}{\|x-x'\|_p}
\]
为\(f\)的\(p,q\)-sensitivity.
则
\]
是\((\epsilon, 0)\)-DP的, 其中\(\sigma=\sqrt{2} \Delta_{p, 1} L/\epsilon\),
\]
证明:
\frac{P_x(z)}{P_y(z)}
&= \frac{P(A(x)=z)}{P(A(y)=z)} \\
&= \frac{P(r=z-f(x))}{P(r=z-f(y))} \\
&= \frac{\exp(-\frac{\sqrt{2}|z-f(x)|}{\sigma})}{\exp(-\frac{\sqrt{2}|z-f(y)|}{\sigma})} \\
&= \exp(\frac{\sqrt{2}(|z-f(y)|-|z-f(x)|)}{\sigma}) \\
&\le \exp(\frac{\sqrt{2}(|f(x)-f(y)|)}{\sigma}) \\
&= \exp(\frac{\epsilon(|f(x)-f(y)|)}{\Delta_{p,1} L}) \\
&\le \exp(\epsilon).
\end{array}
\]
注意, \(\frac{|f(x)-f(y)|}{L}\le \Delta_{p, 1}\).
还有一种是高斯机制, 即加高斯噪声, 对应\(L_2\)攻击.
\]
此时\(A(x)\)为\((\epsilon, \delta)\)-DP.
然后由上图可知, 通过在加入噪声,
\]
\]
那么\(g+r\)是DP, \(A\)是DP吗, 答案是的.
P(h\circ (g(x)+r) \in S) &= P( g(x)+r \in h^{-1}(S)) \\
&\le e^{\epsilon} P(g(y)+r \in h^{-1}(S)) + \delta \\
&= e^{\epsilon} P(h \circ (g(y) +r) \in S) + \delta.
\end{array}
\]
in practice
上面, 我都是基于\(\mathbb{E}\)才会有certified robustness的, 但是神经网络的期望是没法直接算的, 只好用蒙特卡洛采样估计, 即
\]
当然, 这个时候就没法百分百保证robust了, 有
其中\(\hat{\mathbb{E}}^{lb}, \hat{\mathbb{E}}^{ub}\)分别是置信下界和上界, 具体怎么来的回看论文吧, 我没推出来.
也就是符合上面近似条件的样本, 有至少\(\eta\)的概率是robust的.
注: 还有噪声加在哪一层, 文中给出了答复.
certified robustness 的估计大概需要300采样, 普通的预测25次就足够了.
Certified Robustness to Adversarial Examples with Differential Privacy的更多相关文章
- Deep Learning with Differential Privacy
原文链接:Deep Learning with Differential Privacy abstract:新的机器学习算法,差分隐私框架下隐私成本的改良分析,使用非凸目标训练深度神经网络. 数学中最 ...
- 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 ...
- An Introduction to Differential Privacy
原文链接:An Introduction to Differential Privacy 差分隐私算法可以允许分析人员执行良性的聚合分析,同时保证个人隐私得到切实的保护.. 背景数据分析中的隐私保护技 ...
- 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 目录 概 主要内容 实验 ...
- Generating Adversarial Examples with Adversarial Networks
目录 概 主要内容 black-box 拓展 Xiao C, Li B, Zhu J, et al. Generating Adversarial Examples with Adversarial ...
随机推荐
- 零基础学习java------day15--------collections用法,比较器,Set(TreeSet,TreeMap),异常
1. Collections用法 Collections: 集合的工具类public static <T> void sort(List<T> list) 排序,升序publi ...
- Android数据存取
Android数据存取 一.SharedPreferencesc存取数据 SharedPreferences是使用键值对的方式来存储数据的,也就是在保存一条数据时,需要给这条数据提供一个对应的键,这样 ...
- fastJson序列化
在pojo实体中有map<String,Object>的属性,有个key是user它存储在数据库中是用户的id数组,而在aop里会对这个属性做用户详细信息查询并重新put给user.在做J ...
- Spring MVC入门(二)—— URI Builder模式
URI Builder Spring MVC作为一个web层框架,避免不了处理URI.URL等和HTTP协议相关的元素,因此它提供了非常好用.功能强大的URI Builder模式来完成,这就是本文重点 ...
- maven依赖对zookeeper的版本冲突问题
我用的是springcloudAlibaba+zookeeper zookeeper下载后 1,修改配置文件,conf目录下的zoo_sample.cfg修改为zoo.cfg. 2,打开zoo.cfg ...
- 莫烦python教程学习笔记——learn_curve曲线用于过拟合问题
# View more python learning tutorial on my Youtube and Youku channel!!! # Youtube video tutorial: ht ...
- mit6.830-lab2-常见算子和 volcano 执行模型
一.实验概览 github : https://github.com/CreatorsStack/CreatorDB 这个实验需要完成的内容有: 实现过滤.连接运算符,这些类都是继承与OpIterat ...
- 从 CPython 源码角度看 Python 垃圾回收机制
环状双向链表 refchain 在 Python 程序中创建的任何对象都会被放到 refchain 链表中,当创建一个 Python 对象时,内部实际上创建了一些基本的数据: 上一个对象 下一个对象 ...
- 拉丁超立方体初始化种群(附Matlab代码)
拉丁超立方体初始化种群 1.引言 群智能算法一般以随机方式产生初始化种群的位置,但是这种方式可能导致种群内个体分布不均匀.拉丁超立方体抽样方法产生的初始种群位置,可以保证全空间填充和抽样非重叠,从而使 ...
- bjdctf_2020_babystack2
此题考整型的有符号无符号的东西... 下载文件还是,先检查一下保护. 64位程序,只开启了堆栈不可执行,看一下ida的伪代码. 大概流程就是先让你输入一个数,这个数就是后面read的可以输入的长度,要 ...