文章目录

  • 主要内容
    • 定理1
  • 代码

Cohen J., Rosenfeld E., Kolter J. Certified Adversarial Robustness via Randomized Smoothing. International Conference on Machine Learning (ICML), 2019.

@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 x x满足一定的条件下(往往是一个类似于置信度的保证), 可以证明在某个范数球(往往是 ℓ 2 \ell_2 ℓ2​, 正如本文)内能够免疫攻击, 即
g ( x + ϵ ) = g ( x ) : = arg ⁡ max ⁡ c ∈ Y z ( x ) , ∀ ϵ ∈ B ( x ; R ) . g(x+\epsilon)=g(x):=\arg \max_{c \in \mathcal{Y}} \: z(x), \forall \epsilon \in \mathcal{B}(x;R). g(x+ϵ)=g(x):=argc∈Ymax​z(x),∀ϵ∈B(x;R).
这些方法给出了一种不同于adversarial training的思路, 虽然到目前为止, 这些方法往往局限于 ℓ 1 , ℓ 2 \ell_1, \ell_2 ℓ1​,ℓ2​攻击, 在更为常见的 ℓ ∞ \ell_{\infty} ℓ∞​的表现并不是特别好.

主要内容

方法很简单, 训练的时候:

  • Given inputs x i x_i xi​,
  • Generate gaussian noise ϵ i ∼ N ( 0 , σ 2 ) \epsilon_i \sim \mathcal{N}(0, \sigma^2) ϵi​∼N(0,σ2);
  • Use x i + ϵ i x_i+\epsilon_i xi​+ϵi​ to train.

实际上这个训练过程, 不从后面的理论的角度看, 可以把它和adversarial training做类比, 实际上都是一种在样本点周围试探性的训练过程. 大概这样子会让整个的loss landscape更加光滑?

测试的时候就不同了, 首先需要认为地设定一个采样次数 n n n,

  • Given input x x x
  • Generate n n n gaussian noise ϵ i , i = 1 , … , n \epsilon_i, i=1, \ldots, n ϵi​,i=1,…,n.
  • For each x + ϵ i x+\epsilon_i x+ϵi​, the neural network will give a prediction label c i c_i ci​;
  • Count the prediction labels and find the most frequent one, denoted by c c c.

则 c c c就是最终的预测是输出, 简而言之, 就是在预测的时候需要统计频率, 这个实际上是寻找最大概率点.

定理1

定理1: 假设 f : R d → Y f:\mathbb{R}^d \rightarrow \mathcal{Y} f:Rd→Y 为一个任意的确定性或者随机的函数, ϵ ∼ N ( 0 , σ 2 I ) \epsilon \sim \mathcal{N}(0, \sigma^2I) ϵ∼N(0,σ2I). 定义 g g g为
g ( x ) : = arg ⁡ max ⁡ c ∈ Y P ( f ( x + ϵ ) = c ) . (1) \tag{1} g(x):= \arg \max_{c \in \mathcal{Y}} \mathbb{P}(f(x+\epsilon)=c). g(x):=argc∈Ymax​P(f(x+ϵ)=c).(1)
假设 c A ∈ Y c_A \in \mathcal{Y} cA​∈Y且 p A ‾ , p B ‾ ∈ [ 0 , 1 ] \underline{p_A}, \overline{p_B} \in [0, 1] pA​​,pB​​∈[0,1]满足
P ( f ( x + ϵ ) = c A ) ≥ p A ‾ ≥ p B ‾ ≥ max ⁡ c ≠ c A P ( f ( x + ϵ ) = c ) . (2) \tag{2} \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). P(f(x+ϵ)=cA​)≥pA​​≥pB​​≥c​=cA​max​P(f(x+ϵ)=c).(2)
则 g ( x + δ ) = c A g(x+\delta)=c_A g(x+δ)=cA​ 对于任意的 ∥ δ ∥ 2 < R \|\delta\|_2 < R ∥δ∥2​<R, 其中
R = σ 2 ( Φ − 1 ( p A ‾ ) − Φ − 1 ( p B ‾ ) ) . (3) \tag{3} R=\frac{\sigma}{2}(\Phi^{-1}(\underline{p_A})- \Phi^{-1}(\overline{p_B})). R=2σ​(Φ−1(pA​​)−Φ−1(pB​​)).(3)
定理1总结来说就是, 当你的 f ( x + ϵ ) = c A f(x+\epsilon)=c_A f(x+ϵ)=cA​的概率比别的类别的概率大得多的时候, 由(1)式所得到的smooth版分类器 g g g就能够在某个半径内免疫 ℓ 2 \ell_2 ℓ2​攻击.
但是需要注意的是, 普通的CNN的训练过程可以保证置信度很高但没法保证(2), 所以为了让(2)式成立这才有了上面的一个训练过程, 其中实际上有一个逼近的过程(虽然感觉有一点牵强):

测试过程中统计频率的行为也得到了解释, 实际上就是为了估计最大概率. 最后, 在作者的代码中, 或者说算法中, 测试的predict可能有点麻烦, 实际上这是作者引入了假设检验, 意图大概是为了有些时候没法判断到底哪个对干脆就不判断来保证安全(测试的时候感觉是没有必要的). 当然了, 在certify accuracy的估计中, α \alpha α就是相当有必要了.

代码

原作者代码.

Certified Adversarial Robustness via Randomized Smoothing相关推荐

  1. 清华大学董胤蓬:Adversarial Robustness of Deep Learning

    2020-01-21 12:30:00 不到现场,照样看最干货的学术报告! 嗨,大家好.这里是学术报告专栏,读芯术小编不定期挑选并亲自跑会,为大家奉献科技领域最优秀的学术报告,为同学们记录报告干货,并 ...

  2. 从Bayesian Deep Learning到Adversarial Robustness新范式

    ©作者 | 王灏.毛成志 单位 | Rutgers University / Columbia University 研究方向 | 贝叶斯深度学习 / 对抗鲁棒性 拖延症赶在 2021 结束前来介绍一 ...

  3. 【论文阅读】Feature Denoising for Improving Adversarial Robustness

    阅读由来SCRDet++参考文献[20]https://blog.csdn.net/dujuancao11/article/details/121590324 Feature Denoising fo ...

  4. Improving Adversarial Robustness via Channel-Wise Activation Suppressing

    文章目录 概 主要内容 代码 Bai Y., Zeng Y., Jiang Y., Xia S., Ma X., Wang Y. Improving adversarial robustness vi ...

  5. Reliable Evaluation of Adversarial Robustness with an Ensemble of Diverse Parameter-free attack

    本文首先提出了PGD攻击的两个扩展,以克服由于次优步长和目标函数问题而导致的失败.然后,我们将我们的新攻击与两个互补的现有攻击结合起来,形成一个无参数.计算负担得起且独立于用户的攻击集合,以测试对手的 ...

  6. ICML 2019 Accepted Papers (Title, Author, Abstract, Code) (001-150)

    本博客致力于整理出ICML 2019接收的所有论文,包括题目.作者.摘要等重要信息,能够方便广大读者迅速找到自己领域相关的论文. 相关论文代码.附录可参考ICML 2019 #####1-10#### ...

  7. ECCV2022论文列表(中英对照)

    Paper ID Paper Title 论文标题 8 Learning Uncoupled-Modulation CVAE for 3D Action-Conditioned Human Motio ...

  8. ECCV22 最新论文汇总(目标检测、图像分割、监督学习、GAN等)

    强烈感谢极市平台提供的论文资源 ECCV 2022 已经放榜,共有1629篇论文中选,录用率还不到20%.为了让大家更快地获取和学习到计算机视觉前沿技术,作者对ECCV2022最新论文进行追踪,包括分 ...

  9. 科研篇一:NeurIPS2019 分类整理-对抗样本Meta-Learning

    目录 一.NeurIPS2019 paper分类-对抗样本 1.1.Adversarial Examples Are Not Bugs, They Are Features 1.2.Metric Le ...

最新文章

  1. vue中使用promise
  2. 2021校招 | 交通银行-IT类编程题
  3. NLTK找出最频繁的名词标记的程序(代码详细解释)
  4. Bootstrap3.0学习第八轮(工具Class)
  5. [导入]Nutch 简介 [官方]
  6. 我的Java开发学习之旅------Java经典排序算法之冒泡排序
  7. Kibana:Heatmap 可视化介绍及 how-to
  8. 回归创业本质:生意的本质就是赚钱
  9. 重装windows10系统的教程
  10. python发邮件被认定为垃圾邮件_【Python】垃圾邮件识别
  11. 两个人聪明人的空城——《司马懿之虎啸龙吟》
  12. 番茄ToDo帮助文档
  13. excel 筛选重复项_列表项的Excel筛选器:2011年“鲨鱼周”
  14. post请求https安全证书问题2.0
  15. PHP系统常量及判断某常量是否被定义
  16. NumPy库回顾与分享(一)
  17. theano及cuda环境搭建
  18. 抑制肯定响应消息指示位(SPRMIB)
  19. 直播 相关技术文章 相关调研文章
  20. Pytorch 含并行连结的网络 GoogLeNet

热门文章

  1. 关于《越狱》,你不知道的5件事
  2. vue+elementui课表
  3. 轻松破解windows2003 server的用户密码
  4. java对拼图小游戏的简单实现(详解)
  5. 【SpringBoot】18、SpringBoot中使用Session共享实现分布式部署
  6. php 高深题,高深的脑筋急转弯题目
  7. git 主干修改合并到分支_git 主干分支代码能merge到开发分支代码
  8. android 弹出框带标题栏,Android微信右上角弹出的对话选择框实现
  9. python爬虫笔记_Python爬虫系列-将知乎收藏发送到Evernote/印象笔记之三
  10. python声明一个全局变量_全局变量声明Python