Uncovering the Limits of Adversarial Training against Norm-Bounded Adversarial Examples

Gowal S., Qin C., Uesato J., Mann T. & Kohli P. Uncovering the Limits of Adversarial Training against Norm-Bounded Adversarial Examples. arXiv preprint arXiv 2010.03593, 2020.

暴力美学, 通过调参探索adversarial training的极限.

主要内容

实验设置

模型主要包括WRN-28-10, WRN-34-10, WRN-34-20, WRN-70-16;

优化器为SGD(nesterov momentum), 1/2, 3/4 epochs处 lr /= 10, weight decay 5e-4;

对抗训练用的是PGD-10, 步长为2/255\(\ell_{\infty}\)和15/255\(\ell_{2}\).

损失的影响

实际上就是比较不同方法的区别(包括外循环的损失和内循环构造对抗样本的损失, TRADES稍优):

额外的数据

有很多方法用了无标签数据作为额外的数据来进行训练并取得了很好的效果.

上表作者比较的是无标签数据的量, 显示过多的数据并不能一直增加鲁棒性.

上图关注的是有标签数据和无标签数据之前的比例关系, 显然无标签数据似乎更能带来鲁棒性(这与无监督训练更具鲁棒性是一致的).

网络结构

从上图可知, 网络越大鲁棒性越好.

其他的一些tricks

  • Model Weight Averaging: 作者发现这个对提高鲁棒性很有帮助, 且这方面缺乏研究

  • 激活函数: Swish/SiLu表现不错, 整体相差不大.

  • Learning Rate Schedule: 常用的multistep decay表现最好.

  • 训练次数: 并非越大越好, 实际上已经有最新工作指出对抗训练存在严重的过拟合.

  • 正则化(weight decay): \(\ell_2\)正则化, 即weight decay在对抗训练中有重要作用.

  • 构造对抗样本所需的steps: 步数越多鲁棒性越好, 但是这是一个trade-off, 伴随着干净数据集的正确率下降

  • 构造对抗样本的epsilon: 有类似上面的结论, 太大了二者都会下降.

  • Batch Size: 同样并非越大越好.

  • Augmentation: 似乎对于对抗训练意义不大, 但是个人在实验中发现这对防止过拟合有一定效果.

  • Label Smoothing: 几乎没影响

Uncovering the Limits of Adversarial Training against Norm-Bounded Adversarial Examples的更多相关文章

  1. Adversarial Training

    原于2018年1月在实验室组会上做的分享,今天分享给大家,希望对大家科研有所帮助. 今天给大家分享一下对抗训练(Adversarial Training,AT). 为何要选择这个主题呢? 我们从上图的 ...

  2. 《C-RNN-GAN: Continuous recurrent neural networks with adversarial training》论文笔记

    出处:arXiv: Artificial Intelligence, 2016(一年了还没中吗?) Motivation 使用GAN+RNN来处理continuous sequential data, ...

  3. LTD: Low Temperature Distillation for Robust Adversarial Training

    目录 概 主要内容 Chen E. and Lee C. LTD: Low temperature distillation for robust adversarial training. arXi ...

  4. Understanding and Improving Fast Adversarial Training

    目录 概 主要内容 Random Step的作用 线性性质 gradient alignment 代码 Andriushchenko M. and Flammarion N. Understandin ...

  5. Adversarial Training with Rectified Rejection

    目录 概 主要内容 rejection 实际使用 代码 Pang T., Zhang H., He D., Dong Y., Su H., Chen W., Zhu J., Liu T. Advers ...

  6. Boosting Adversarial Training with Hypersphere Embedding

    目录 概 主要内容 代码 Pang T., Yang X., Dong Y., Xu K., Su H., Zhu J. Boosting Adversarial Training with Hype ...

  7. 论文解读(ARVGA)《Learning Graph Embedding with Adversarial Training Methods》

    论文信息 论文标题:Learning Graph Embedding with Adversarial Training Methods论文作者:Shirui Pan, Ruiqi Hu, Sai-f ...

  8. cs231n spring 2017 lecture16 Adversarial Examples and Adversarial Training 听课笔记

    (没太听明白,以后再听) 1. 如何欺骗神经网络? 这部分研究最开始是想探究神经网络到底是如何工作的.结果人们意外的发现,可以只改变原图一点点,人眼根本看不出变化,但是神经网络会给出完全不同的答案.比 ...

  9. Unsupervised Domain Adaptation Via Domain Adversarial Training For Speaker Recognition

    年域适应挑战(DAC)数据集的实验表明,所提出的方法不仅有效解决了数据集不匹配问题,而且还优于上述无监督域自适应方法.        

随机推荐

  1. Azkaban(二)【WorkFlow案例实操】

    目录 1.使用步骤 2.案例: 1.hello word 2.作业依赖[dependsOn配置作业的依赖关系] 3.内嵌工作流 4.全局配置 [在开头通过config进行配置,后续可以通过${属性名} ...

  2. 大数据学习day35----flume01-------1 agent(关于agent的一些问题),2 event,3 有关agent和event的一些问题,4 transaction(事务控制机制),5 flume安装 6.Flume入门案例

    具体见文档,以下只是简单笔记(内容不全) 1.agent Flume中最核心的角色是agent,flume采集系统就是由一个个agent连接起来所形成的一个或简单或复杂的数据传输通道.对于每一个Age ...

  3. 商业爬虫学习笔记day8-------json的使用

    一. 简介 JSON,全称为JavaScript Object Notation(JavaScript对象标记),它通过对象和数组的组合来表示数据,是一种轻量级的数据交换格式.它基于 ECMAScri ...

  4. 2019广东工业大学新生杯决赛 I-迷途的怪物

    题目:I-I-迷途的怪物_2019年广东工业大学腾讯杯新生程序设计竞赛(同步赛) (nowcoder.com) 将(p-1)^n 按照多项式定理拆开,会发现只有一项没有p,其余项都有p,可直接约掉. ...

  5. Oracle带输入输出参数的存储过程

    (一)使用输入参数 需求:在emp_copy中添加一条记录,empno为已有empno的最大值+1,ename不能为空且长度必须大于0,deptno为60. 创建存储过程: create or rep ...

  6. 【简】题解 AWSL090429 【原子】

    预处理出每个原子最近的不能合并的位置 枚举当前位置和前面断开的位置合并 发现还是不能过 考虑用选段树优化 但是因为每次转移的最优点是在前面可以合并的范围内 dp值加上当前的到该点的最大值 因为每个位置 ...

  7. pipeline配置前端项目

    vue pipeline { agent { label 'master'} options { timestamps() disableConcurrentBuilds() buildDiscard ...

  8. Jenkins制品管理

    目录 一.简介 二.Jenkins管理制品 三.Nexus maven上传 jenkins上传 管理Docker镜像 管理raw 四.拷贝制品 五.版本号 Version Number 一.简介 制品 ...

  9. SQL Server 2014如何DATEDIFF()函数截取对应时间年月日

    4.1 定义和用法: DATEDIFF()函数返回两个日期之间的时间 4.2 语法 DATEDIFF(datepart,startdate,enddate) datepart值: year | qua ...

  10. Django把现在时间写入数据库,模板渲染在页面中

    1. 导入time模块 import time 2. 获取现在时间,使用"年-月-日 时:分:秒"这样的模板,赋值给变量 在views.py中: pt = time.strftim ...