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. abide, able, abnormal

    abide 近/反义词:1. 忍受: bear, endure, put up with, stand, tolerate2. 遵守(abide by): accept, comply, confor ...

  2. A Child's History of England.13

    Then came the boy-king, Edgar, called the Peaceful, fifteen years old. Dunstan, being still the real ...

  3. C++之无子数

    题目如下: 1 #include <iostream> 2 3 using namespace std; 4 5 6 bool isThisNumhaveChild(int num); 7 ...

  4. ListView的item不能点击(焦点冲突问题)

    一般这种问题就是item里面有checkbox或button之类抢占焦点的控件,解决方案有2种: 第一种:就是在checkbox或button添加android:focusable="fal ...

  5. 查看linux系统CPU和内存命令

    cat /proc/cpuinfo查看linux系统的CPU型号.类型以及大小,如下图所示.   通过greap命令根据Physical Processor ID筛选出多核CPU的信息.   cat ...

  6. 多媒体音视频处理及FFmpeg使用技巧总结

    截图 ffmpeg -ss 00:02:06 -i input.mp4 -f image2 -y poster.jpg 连续截图 ffmpeg -y -i input.mp4 -vf "fp ...

  7. 使用beanUtils封装对象的servlet

    package com.hopetesting.web.servlet;import com.hopetesting.dao.UserDao;import com.hopetesting.domain ...

  8. 【前端】关于DOM节点

    参考这个: https://juejin.cn/post/6844903849614901261 DOM树的根节点是document对象 DOM节点类型:HTML元素节点(element nodes) ...

  9. Nginx平滑升级版本

    目录 一.简介 说明 环境 二.安装 三.使用验证 一.简介 说明 Nginx版本迭代迅速,新版本提供了很多功能,好在Nginx支持不停服务进行升级. 版本之间差距不要太大,不然会导致很多东西不支持 ...

  10. Linux服务加入systemctl|service管理

    一.加入systemctl 1.添加 vim /usr/lib/systemd/system/user_timejob.service # copy to /usr/lib/systemd/syste ...