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. LeetCode二维数组中的查找

    LeetCode 二维数组中的查找 题目描述 在一个 n*m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增.请完成一个搞笑的函数,输入这样的一个二维数组和一个整数,判断数 ...

  2. day05 django框架之路由层

    day05 django框架之路由层 今日内容概要 简易版django请求声明周期流程图(重要) 路由匹配 无名有名分组 反向解析 无名有名解析 路由分发 名称空间 伪静态 虚拟环境 简易版djang ...

  3. 零基础学习java------day16-----文件,递归,IO流(字节流读写数据)

    1.File 1.1 构造方法(只是创建已经存在文件的对象,并不能创建没有的文件) (1)public File(String pathname) (2)public File(String pare ...

  4. 基于阿里云ecs(centos 7) 安装jenkins

    1. 安装好 jdk 2. 官网(https://pkg.jenkins.io/redhat-stable/)下载rpm包(稳定版): wget https://pkg.jenkins.io/redh ...

  5. MFC入门示例之水平滚动条和垂直滚动条(CScroll Bar)

    初始化滚动条 1 //初始化滚动条 2 SCROLLINFO si = { 0 }; 3 si.cbSize = sizeof(si); 4 si.fMask = SIF_RANGE | SIF_PA ...

  6. shell脚本 系统信息检测

    一.简介 源码地址 日期:2018/4/12 介绍:根据指令展示不同的系统数据 效果图: 二.使用 适用:centos6+ 语言:中文 注意:无 下载 wget https://raw.githubu ...

  7. 采集 base64 编码的图片

    问题 爬虫抓取网页的时候,遇到有的图片是 base64 编码的格式,要怎样下载到本地呢? 示例:base64 编码的 img 标签 <!-- 内容太长省略一部分 --> <img s ...

  8. 几种Windows进程通信

    32位Windows采用虚拟内存技术使每个进程虚拟4G内存,在逻辑上实现了对进程之间数据代码的分离与保护.那么相应的进程之间的通信也就有必要整理掌握一下. Windows进程间通讯的方法有很多:管道. ...

  9. java 8 启动脚本优化

    1 #!/bin/bash 2 3 JAVA_HOME=/usr/java/default 4 5 #java虚拟机启动参数 6 JAVA_OPTS="-server -Xms1366m - ...

  10. Amazing!!CSS 也能实现极光?

    在上次写完这篇文章 -- 巧用渐变实现高级感拉满的背景光动画 之后,文章下面的评论有同学留言,使用 CSS 可以实现极光吗? 像是这样: emmm,这有点难为人了.不过,最近我也尝试着去试了下,虽然不 ...