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\)满足一定的条件下(往往是一个类似于置信度的保证), 可以证明在某个范数球(往往是\(\ell_2\), 正如本文)内能够免疫攻击, 即

\[g(x+\epsilon)=g(x):=\arg \max_{c \in \mathcal{Y}} \: z(x), \forall \epsilon \in \mathcal{B}(x;R).
\]

这些方法给出了一种不同于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\)为

\[\tag{1}
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]\)满足

\[\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).
\]

则\(g(x+\delta)=c_A\) 对于任意的\(\|\delta\|_2 < R\), 其中

\[\tag{3}
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的更多相关文章

  1. Improving Adversarial Robustness via Channel-Wise Activation Suppressing

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

  2. Improving Adversarial Robustness Using Proxy Distributions

    目录 概 主要内容 proxy distribution 如何利用构造的数据 Sehwag V., Mahloujifar S., Handina T., Dai S., Xiang C., Chia ...

  3. 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 ...

  4. Second Order Optimization for Adversarial Robustness and Interpretability

    目录 概 主要内容 (4)式的求解 超参数 Tsiligkaridis T., Roberts J. Second Order Optimization for Adversarial Robustn ...

  5. IMPROVING ADVERSARIAL ROBUSTNESS REQUIRES REVISITING MISCLASSIFIED EXAMPLES

    目录 概 主要内容 符号 MART Wang Y, Zou D, Yi J, et al. Improving Adversarial Robustness Requires Revisiting M ...

  6. 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 ...

  7. Adversarial Detection methods

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

  8. Glossary Collection

    目录 直接修饰用 间接强调用 (多为副词) 过渡用 特别的名词 动词 词组 各种介词 句子 摘要 引言 总结 正文 实验 直接修饰用 Word 含义 例句 近义词 nuanced adj. 微妙的:具 ...

  9. 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 ...

随机推荐

  1. A Child's History of England.7

    After the death of Ethelbert, Edwin, King of Northumbria [公元616年,隋朝末年], who was such a good king tha ...

  2. day9 图书设计项目

    总路由层url from django.conf.urls import url from django.contrib import admin from app01 import views ur ...

  3. vue-cli4脚手架搭建二

    vue-cli4脚手架搭建一 vue create vue3 cd vue3 yarn serve http://localhost:8080/#/ main.js文件 import Vue from ...

  4. mybatis错误 Mapped Statements collection does not contain value for

    java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for 在unit里测试 ...

  5. 实时数据同步inotify+rsync

    inotify inotify是一个实时监控服务,他能实时监控服务器中的目录的变化,发现目录中变化后,在配合rsync服务推送到备份服务器上 inotify要求内核要在2.6.13或之上,通过noti ...

  6. layui-入门

    1.下载layui 2.导入layui <title>开始使用layui</title> <!-- 导入js样式 --> <link rel="st ...

  7. 【C/C++】日期问题/算法笔记/入门模拟

    最近把算法竞赛入门经典的前半部分看完了,开始看算法笔记入门算法. 看了前半部分的例题,很多是算法竞赛入门经典中出现过的,但是感觉这本书写的更适合初学者,而且真的很像考试笔记,通俗易懂. //日期问题 ...

  8. CPU测试工具

    目录 一.简介 二.大量计算 三.大量IO 四.大量进程 一.简介 使用stress-ng是一个 Linux 系统压力测试工具,模拟进程平均负载升高的场景. 使用sysstat来检查监控和分析. mp ...

  9. <转>企业应用架构 --- 分层

    系统架构师-基础到企业应用架构-分层[上篇] 一.前言 大家好,接近一年的时间没有怎么书写博客了,一方面是工作上比较忙,同时生活上也步入正轨,事情比较繁多,目前总算是趋于稳定,可以有时间来完善以前没有 ...

  10. 一文掌握 Python 的描述符协议

    描述符介绍 描述符本质就是一个新式类,在这个新式类中,至少要实现了__get__(),__set__(),__delete__()中的一个.这也被称为描述符协议. class Myclass(obje ...