Certified Adversarial Robustness via Randomized Smoothing
@article{cohen2019certified,
title={Certified Adversarial Robustness via Randomized Smoothing},
author={Cohen, Jeremy and Rosenfeld, Elan and Kolter, J Zico},
pages={1310--1320},
year={2019}}
概
Certified robustness 区别于一般的启发式的防御, 其在样本\(x\)满足一定的条件下(往往是一个类似于置信度的保证), 可以证明在某个范数球(往往是\(\ell_2\), 正如本文)内能够免疫攻击, 即
\]
这些方法给出了一种不同于adversarial training的思路, 虽然到目前为止, 这些方法往往局限于\(\ell_1, \ell_2\)攻击, 在更为常见的\(\ell_{\infty}\)的表现并不是特别好.
主要内容
方法很简单, 训练的时候:
- Given inputs \(x_i\),
- Generate gaussian noise \(\epsilon_i \sim \mathcal{N}(0, \sigma^2)\);
- Use \(x_i+\epsilon_i\) to train.
实际上这个训练过程, 不从后面的理论的角度看, 可以把它和adversarial training做类比, 实际上都是一种在样本点周围试探性的训练过程. 大概这样子会让整个的loss landscape更加光滑?
测试的时候就不同了, 首先需要认为地设定一个采样次数\(n\),
- Given input \(x\)
- Generate \(n\) gaussian noise \(\epsilon_i, i=1, \ldots, n\).
- For each \(x+\epsilon_i\), the neural network will give a prediction label \(c_i\);
- Count the prediction labels and find the most frequent one, denoted by \(c\).
则\(c\)就是最终的预测是输出, 简而言之, 就是在预测的时候需要统计频率, 这个实际上是寻找最大概率点.
定理1
定理1: 假设\(f:\mathbb{R}^d \rightarrow \mathcal{Y}\) 为一个任意的确定性或者随机的函数, \(\epsilon \sim \mathcal{N}(0, \sigma^2I)\). 定义\(g\)为
g(x):= \arg \max_{c \in \mathcal{Y}} \mathbb{P}(f(x+\epsilon)=c).
\]
假设\(c_A \in \mathcal{Y}\)且\(\underline{p_A}, \overline{p_B} \in [0, 1]\)满足
\mathbb{P}(f(x+\epsilon)=c_A) \ge \underline{p_A} \ge \overline{p_B} \ge \max_{c \not = c_{A}} \mathbb{P}(f(x+\epsilon)=c).
\]
则\(g(x+\delta)=c_A\) 对于任意的\(\|\delta\|_2 < R\), 其中
R=\frac{\sigma}{2}(\Phi^{-1}(\underline{p_A})- \Phi^{-1}(\overline{p_B})).
\]
定理1总结来说就是, 当你的\(f(x+\epsilon)=c_A\)的概率比别的类别的概率大得多的时候, 由(1)式所得到的smooth版分类器\(g\)就能够在某个半径内免疫\(\ell_2\)攻击.
但是需要注意的是, 普通的CNN的训练过程可以保证置信度很高但没法保证(2), 所以为了让(2)式成立这才有了上面的一个训练过程, 其中实际上有一个逼近的过程(虽然感觉有一点牵强):

测试过程中统计频率的行为也得到了解释, 实际上就是为了估计最大概率. 最后, 在作者的代码中, 或者说算法中, 测试的predict可能有点麻烦, 实际上这是作者引入了假设检验, 意图大概是为了有些时候没法判断到底哪个对干脆就不判断来保证安全(测试的时候感觉是没有必要的). 当然了, 在certify accuracy的估计中, \(\alpha\)就是相当有必要了.
代码
Certified Adversarial Robustness via Randomized Smoothing的更多相关文章
- Improving Adversarial Robustness via Channel-Wise Activation Suppressing
目录 概 主要内容 代码 Bai Y., Zeng Y., Jiang Y., Xia S., Ma X., Wang Y. Improving adversarial robustness via ...
- Improving Adversarial Robustness Using Proxy Distributions
目录 概 主要内容 proxy distribution 如何利用构造的数据 Sehwag V., Mahloujifar S., Handina T., Dai S., Xiang C., Chia ...
- Reliable evaluation of adversarial robustness with an ensemble of diverse parameter-free attacks
目录 概 主要内容 Auto-PGD Momentum Step Size 损失函数 AutoAttack Croce F. & Hein M. Reliable evaluation of ...
- Second Order Optimization for Adversarial Robustness and Interpretability
目录 概 主要内容 (4)式的求解 超参数 Tsiligkaridis T., Roberts J. Second Order Optimization for Adversarial Robustn ...
- IMPROVING ADVERSARIAL ROBUSTNESS REQUIRES REVISITING MISCLASSIFIED EXAMPLES
目录 概 主要内容 符号 MART Wang Y, Zou D, Yi J, et al. Improving Adversarial Robustness Requires Revisiting M ...
- Inherent Adversarial Robustness of Deep Spiking Neural Networks: Effects of Discrete Input Encoding and Non-Linear Activations
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! arXiv:2003.10399v2 [cs.CV] 23 Jul 2020 ECCV 2020 1 https://github.com ...
- Adversarial Detection methods
目录 Kernel Density (KD) Local Intrinsic Dimensionality (LID) Gaussian Discriminant Analysis (GDA) Gau ...
- Glossary Collection
目录 直接修饰用 间接强调用 (多为副词) 过渡用 特别的名词 动词 词组 各种介词 句子 摘要 引言 总结 正文 实验 直接修饰用 Word 含义 例句 近义词 nuanced adj. 微妙的:具 ...
- Competing in a data science contest without reading the data
Competing in a data science contest without reading the data Machine learning competitions have beco ...
随机推荐
- 学习java 6.30
学习内容:Java的运算符与C中类似,虽是类似,还是有点区别,在这里详细说明一下,即字符以及字符串的+操作,字符的+操作执行后需要赋值给表达式中数据范围最大的类型, 字符串的+操作,当+中有字符串,则 ...
- TLSv1.3 Support:主流 Web 客户端和服务端对 TLSv1.3 的支持情况
TLSv1.3 Support:主流 Web 客户端和服务端对 TLSv1.3 的支持情况 请访问原文链接:https://sysin.org/blog/tlsv1-3-support/,查看最新版. ...
- 三维引擎导入obj模型全黑总结
最近有客户试用我们的三维平台,在导入模型的时候,会出现模型全黑和不可见的情况.本文说下全黑的情况. 经过测试,发现可能有如下几种情况. obj 模型没有法线向量 如果obj模型导出的时候没有导出法线向 ...
- 自定义控件CustomAlertView
[记录][完整代码最下] 效果如下: 可行性分析: 由于系统自带的UIAlertView样式简单,只有两种样式,想要理想的样式就要自定义控件了 文件名取为:CustomAlertView 创建文件如下 ...
- C++ 素数对猜想
我的解法是先将2到n的所有素数全部列出来,再计算.将全部的素数列出来用了一个叫"埃拉托色尼筛法"的方法. 算法参照这里:https://www.sohu.com/a/2526745 ...
- Oracle中的instr函数
最近修改某个条件,由原来输入一个数据修改为可以输入多个,如图所示: 在实现时用到了regexp_substr函数进行分割连接起来的数据,查询时还用到了instr函数进行判断,但出现了问题,当子库存输入 ...
- pytest_BDD + allure 自动化测试框架
一.项目结构 --driverAction ----Assessement.py ----basicPageAction.py ----BrowserDriver.py --drivers ----c ...
- Mongodb安全防护
1.Mongodb未授权访问 描述 MongoDB 是一个基于分布式文件存储的数据库.默认情况下启动服务存在未授权访问风险,用户可以远程访问数据库,无需认证连接数据库并对数据库进行任意操作,存在严重的 ...
- 分布式可扩展web体系结构设计实例分析
Web分布式系统设计准则 下面以一个上传和查询图片的例子来说明分布式web结构的设计考虑和常用的提高性能的方法.该例子提供上传图片和下载图片两个简单功能,并且有一下假设条件?: - 可以存储无上限数量 ...
- CF1145F Neat Words 题解
Content 本题为 CF 愚人节比赛题目. 给定一个长度为 \(n\) 的,仅包含大写字母的字符串,问这个字符串里面的字母是否全部都是由仅有直线的字母组成,或者全部都是由有曲线的字母构成. 数据范 ...