Reliable evaluation of adversarial robustness with an ensemble of diverse parameter-free attacks
概
作者改进了PGD攻击方法, 并糅合了不同种类的攻击方法于一体, 使得AA的估计更为有效可靠. 特别是不需要调参.
主要内容

Auto-PGD
Auto-PGD, 其最大的改进的地方就是不需要调节参数(其实作者自己调得比较好啦). 普通的PGD:
\]
其中\(P\)是投影算子, \(\eta\) 是学习率, \(f\)是损失函数.
Momentum
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\), 在每一个检查结点检查如下条件
\(\sum_{i={w_{i-1}}}^{w_{i}-1} 1_{f(x^{(i+1)}> f(x^{(i)}))}< \rho \cdot (w_j - w_{j-1})\);
\(\eta^{w_{j-1}}\equiv \eta^{w_j}\) and \(f_{max}^{(w_{j-1})}\equiv f_{max}^{(w_j)}.\)
其中\(f_{max}^{(k)}\)是前\(k\)个结点前的最高的函数值, 若其中条件之一满足, 则对之后的迭代的学习率减半, 即
\]
注: 学习率\(\eta^{(0)}=2\epsilon\).
- 条件1是为了检查这一阶段的迭代是否有效(即损失是否升高的次数), 这里作者选择\(\rho=0.75\);
- 条件二如果成立了, 说明这一阶段相较于之前的阶段并没有提升, 所以需要减半学习率.
注: 一旦学习率减半了, 作者会令\(x^{(w_j+1)}:=x_{max}\), 从最好的结果处restart.
剩下一个问题是, 如何选择\(w_i\), 作者采取如下方案
p_{j+1} = p_j + \max \{p_j - p_{j-1} - 0.03, 0.06\}, p_0=0, p_1=0.22.
\]
损失函数
一般来说, 大家用的是交叉熵, 即
\]
其梯度为
\]
若\(p_y\)比较接近于\(1\), 也就是说分类的置信度比较高, 则会导致梯度消失, 而置信度可以单纯通过\(h=\alpha g\)来提高, 即这个损失对scale是敏感的. 替代的损失使用DLR损失
\]
其中\(\pi_i\)是按照从大到小的一个序. 这个损失就能避免scale的影响, 同时还有一个target版本
\]
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的更多相关文章
- 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 ...
- Second Order Optimization for Adversarial Robustness and Interpretability
目录 概 主要内容 (4)式的求解 超参数 Tsiligkaridis T., Roberts J. Second Order Optimization for Adversarial Robustn ...
- Certified Adversarial Robustness via Randomized Smoothing
目录 概 主要内容 定理1 代码 Cohen J., Rosenfeld E., Kolter J. Certified Adversarial Robustness via Randomized S ...
- 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 ...
- 壁虎书7 Ensemble Learning and Random Forests
if you aggregate the predictions of a group of predictors,you will often get better predictions than ...
- 生成对抗网络资源 Adversarial Nets Papers
来源:https://github.com/zhangqianhui/AdversarialNetsPapers AdversarialNetsPapers The classical Papers ...
随机推荐
- JDBC01 获取数据库连接
概述 Java Database Connectivity(JDBC)直接访问数据库,通用的SQL数据库存取和操作的公共接口,定义访问数据库的标准java类库(java.sql,javax.sql) ...
- abuse
abuse 近/反义词: ill-treat, maltreat, mistreat, misuse, prostitute, spoil; defame, disparage, malign, re ...
- Git提交规范
Commit message 的格式 每次提交,Commit message 都包括三个部分:Header,Body 和 Footer. <type>(<scope>): &l ...
- 写一个简单的AIDL
1.首先创建一个AIDL文件,并添加上两个接口.IMyAidlInterface.aidlpackage com.example.broadcastdemo;// Declare any non-de ...
- 【Linux】【Services】【SaaS】Spinnaker
1. 简介 1.1. 说明: Spinnaker 是 Netflix 的开源项目,是一个持续交付平台,它定位于将产品快速且持续的部署到多种云平台上.Spinnaker 通过将发布和各个云平台解耦,来将 ...
- linux 彻底卸载mysql
1. 停止 mysql 服务: systemctl stop mysqld.service 2. yum remove mysql (因为 之前是通过 yum -y install 方式安装的 ) ...
- MyBatis中关于大于,小于写法
第一种写法(1): 原符号 < <= > >= & ' " 替换符号 < <= > >= & ' " ...
- 深入浅出 Docker
一.什么Docker 从作用的角度: Docker是一个为开发人员和系统管理员开发.迁移和运行应用程序的平台.应用程序通过Docker打包成Docker Image后,可以实现统一的方式来下载.启动. ...
- numpy基础教程--将二维数组转换为一维数组
1.导入相应的包,本系列教程所有的np指的都是numpy这个包 1 # coding = utf-8 2 import numpy as np 3 import random 2.将二维数组转换为一维 ...
- 关于python中显存回收的问题
技术背景 笔者在执行一个Jax的任务中,又发现了一个奇怪的问题,就是明明只分配了很小的矩阵空间,但是在多次的任务执行之后,显存突然就爆了.而且此时已经按照Jax的官方说明配置了XLA_PYTHON_C ...