Croce F. & Hein M. Reliable evaluation of adversarial robustness with an ensemble of diverse parameter-free attacks. In International Conference on Machine Learning (ICML), 2020.

作者改进了PGD攻击方法, 并糅合了不同种类的攻击方法于一体, 使得AA的估计更为有效可靠. 特别是不需要调参.

主要内容

Auto-PGD

Auto-PGD, 其最大的改进的地方就是不需要调节参数(其实作者自己调得比较好啦). 普通的PGD:

\[x^{(k+1)} = P_S (x^{(k)} + \eta^{(k)}\nabla f(x^{(k)})),
\]

其中\(P\)是投影算子, \(\eta\) 是学习率, \(f\)是损失函数.

Momentum

\[z^{(k+1)} = P_S (x^{(k)}+\eta^{(k)}\nabla f(x^{(k)})) \\
x^{(k+1)} = P_S(x^{(k)}+\alpha \cdot (z^{(k+1)}-x^{(k)})+(1-\alpha) \cdot (x^{(k)}-x^{(k-1)})).
\]

注: 作者选择 \(\alpha=0.75\)

Step Size

首先确定总的迭代次数\(N_{iter}\), 然后确定一些检查的结点\(w_0=0, w_1, \cdots, w_n\), 在每一个检查结点检查如下条件

  1. \(\sum_{i={w_{i-1}}}^{w_{i}-1} 1_{f(x^{(i+1)}> f(x^{(i)}))}< \rho \cdot (w_j - w_{j-1})\);

  2. \(\eta^{w_{j-1}}\equiv \eta^{w_j}\) and \(f_{max}^{(w_{j-1})}\equiv f_{max}^{(w_j)}.\)

其中\(f_{max}^{(k)}\)是前\(k\)个结点前的最高的函数值, 若其中条件之一满足, 则对之后的迭代的学习率减半, 即

\[\eta^{(k)}:= \eta^{(w_j)} /2, \forall k=w_j+1, \ldots w_{j+1}.
\]

注: 学习率\(\eta^{(0)}=2\epsilon\).

  1. 条件1是为了检查这一阶段的迭代是否有效(即损失是否升高的次数), 这里作者选择\(\rho=0.75\);
  2. 条件二如果成立了, 说明这一阶段相较于之前的阶段并没有提升, 所以需要减半学习率.

注: 一旦学习率减半了, 作者会令\(x^{(w_j+1)}:=x_{max}\), 从最好的结果处restart.

剩下一个问题是, 如何选择\(w_i\), 作者采取如下方案

\[w_j = [p_jN_{iter}] \le N_{iter} \\
p_{j+1} = p_j + \max \{p_j - p_{j-1} - 0.03, 0.06\}, p_0=0, p_1=0.22.
\]

损失函数

一般来说, 大家用的是交叉熵, 即

\[\mathrm{CE}(x, y) = -\log p_y = -z_y + \log (\sum_{j=1}^K e_{z_j}),
\]

其梯度为

\[\nabla_x \mathrm{CE}(x, y) = (-1 + p_y) \nabla_x z_y + \nabla_{i\not=y} p_i \nabla_xz_i,
\]

若\(p_y\)比较接近于\(1\), 也就是说分类的置信度比较高, 则会导致梯度消失, 而置信度可以单纯通过\(h=\alpha g\)来提高, 即这个损失对scale是敏感的. 替代的损失使用DLR损失

\[\mathrm{DLR} (x, y) = -\frac{z_y -\max_{i \not=y}z_i}{z_{\pi_1}-z_{\pi_3}},
\]

其中\(\pi_i\)是按照从大到小的一个序. 这个损失就能避免scale的影响, 同时还有一个target版本

\[\mathrm{Targeted-DLR}(x, y) = - \frac{z_y-z_t}{z_{\pi_1}- (z_{\pi_3}+z_{\pi_4})/2}.
\]

AutoAttack

AutoAttack糅合了不同的攻击方法:

  • \(\mathrm{APGD_{CE}}\)
  • \(\mathrm{APGD_{DLR}}\)
  • \(\mathrm{FAB}\)
  • \(\mathrm{Square \: Attack}\): black-box

Reliable evaluation of adversarial robustness with an ensemble of diverse parameter-free attacks的更多相关文章

  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. Second Order Optimization for Adversarial Robustness and Interpretability

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

  4. Certified Adversarial Robustness via Randomized Smoothing

    目录 概 主要内容 定理1 代码 Cohen J., Rosenfeld E., Kolter J. Certified Adversarial Robustness via Randomized S ...

  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. 壁虎书7 Ensemble Learning and Random Forests

    if you aggregate the predictions of a group of predictors,you will often get better predictions than ...

  9. 生成对抗网络资源 Adversarial Nets Papers

    来源:https://github.com/zhangqianhui/AdversarialNetsPapers AdversarialNetsPapers The classical Papers ...

随机推荐

  1. JVM2 类加载子系统

    目录 类加载子系统 类加载器子系统 类加载器ClassLoader角色 类加载的过程 案例 加载Loading 连接Linking 初始化Intialization clinit() 类的加载器 虚拟 ...

  2. API 管理在云原生场景下的机遇与挑战

    作者 | 张添翼 来源 | 尔达Erda公众号 ​ 云原生下的机遇和挑战 标准和生态的意义 自从 Kubernetes v1.0 于 2015 年 7 月 21 日发布,CNCF 组织随后建立以来,其 ...

  3. A Child's History of England.2

    They made boats of basket-work, covered with the skins of animals, but seldom, if ever, ventured far ...

  4. 《Scala编程》课程作业

    第一题.百元喝酒 作业要求:每瓶啤酒2元,3个空酒瓶或者5个瓶盖可换1瓶啤酒.100元最多可喝多少瓶啤酒?(不允许借啤酒) 思路:利用递归算法,一次性买完,然后递归算出瓶盖和空瓶能换的啤酒数 /** ...

  5. nodejs-CommonJS规范

    JavaScript 标准参考教程(alpha) 草稿二:Node.js CommonJS规范 GitHub TOP CommonJS规范 来自<JavaScript 标准参考教程(alpha) ...

  6. Dubbo服务调用超时

    服务降级的发生,其实是由于消费者调用服务超时引起的,即从发出调用请求到获取到提供者的响应结果这个时间超出了设定的时限.默认服务调用超时时限为1秒.可以在消费者端与提供者端设置超时时限. 一.创建提供者 ...

  7. 【Java 基础】Arrays.asList、ArrayList的subList注意事项

    1. 使用Arrays.asList的注意事项 1.1 可能会踩的坑 先来看下Arrays.asList的使用: List<Integer> statusList = Arrays.asL ...

  8. 使用springboot配置和注入数据源属性的方法和步骤

    /** 1.书写一个名为resources/application.properties的属性文件---->书写一个配置属性类,类名为: **/ 文件:application.propertie ...

  9. XML名命空间

    XML的名命空间就类似于java的包,命名空间定义:xmlns:***="URI",默认命名空间定义:xmlns="URI" 引号中的URl内容用来唯一标识命名 ...

  10. 【阿菜做实践】利用go语言写一个简单的Pow样例

    本篇博客的主要内容是用go写一个简单的Proof-of-Work共识机制,不涉及到网络通信环节,只是一个本地的简单demo.开发IDE用的是JB Golang. 整个项目的文件结构如下: PoWdem ...