motivation

提高网络的一个有用的技巧就是增加训练数据: 真实数据, 或者用GAN拟合的数据.

这里想要研究的是, 噪声是否能够算作这类数据. 以CIFAR-10为例, 令

\[f: x \in \mathcal{X} \rightarrow p \in \mathbb{R}^{11},
\]

即除了原先的10类外, 额外增加一类为噪声类. 类似的思想好像在检测领域有用过(背景信息)?

本文的损失函数可以说是:

\[\min_f \quad \alpha \cdot \mathbb{E}_{x\sim \mathcal{D}} [\mathcal{L}(f(x+\delta_x), y)] + (1 - \alpha) \cdot \mathbb{E}_{z\sim P} [\mathcal{L} (f(z + \delta_z), 10)].
\]

其中\(x+\delta_x, z+\delta_z\)分别是真实数据\(x\)和噪声\(z\)的对抗样本, \(y \in \{0, 1, 2, \cdots, 9\}\).

个人觉得, 如果二者用同一个batch normalization, 那么滑动平均会非常振荡, 故额外考虑group normalization 和 让给干净样本分配一个BN, 噪声样本一个BN.

settings

  • batch_size: 64
  • beta1: 0.9
  • beta2: 0.999
  • dataset: cifar10
  • description: AT=bn=64-0.5=default-sgd-0.1=pgd-linf-0.0314-0.25-10=64=default
  • epochs: 200
  • epsilon: 0.03137254901960784
  • learning_policy: [100, 150]
  • leverage: 0.5
  • loss: cross_entropy
  • lr: 0.1
  • model: resnet18
  • momentum: 0.9
  • noise_batch_size: 64
  • norm_layer: bn
  • optimizer: sgd
  • progress: False
  • resume: False
  • seed: 1
  • steps: 10
  • stepsize: 0.25
  • transform: default
  • weight_decay: 0.0005

results

Loss Accuracy Robustness
BN
GN
TN

用了两个BN后的确稳定下来了, 精度和鲁棒性的确和标准的AT一致了. 但是也仅仅是一致而已, 个人感觉noise太容易被分辨出来了, 或许增大攻击noise的epsilon会有改进, 后续再看.

最新文章

  1. LeetCode Reverse Vowels of a String
  2. 基于opencv和mfc的摄像头采集代码(GOMFCTemplate2)
  3. apache虚拟主机配置HTTPS
  4. 三种经典iPhone上网络抓包方法详解
  5. go 字符变量
  6. SAP SMARTFORM 变量显示技巧
  7. 在PHP中如何使用消息列队
  8. VS2015预览版中的C#6.0 新功能(二)
  9. 自己动手为PHP7添加新的语法特性
  10. 能够返回运行结果的system函数加强版本号
  11. 在HyperLedger Fabric中启用CouchDB作为State Database
  12. Drools为什么没有规则流Flow Flie
  13. 6.2 小表驱动大表(exists的应用)
  14. codevs 1082 线段树练习3 (线段树)
  15. FileReader字符的读出
  16. redis在游戏服务器中的使用初探(四) redis应用
  17. android: 实现强制下线功能
  18. org.springframework.web.bind.annotation重定向的问题
  19. Python 生成器的使用(yield)
  20. Active Learning

热门文章

  1. idea Error : java 不支持发行版本5
  2. ceph块存储场景
  3. 大数据学习day21-----spark04------1. 广播变量 2. RDD中的cache 3.RDD的checkpoint方法 4. 计算学科最受欢迎老师TopN
  4. Centos 7 安装redis,修改配置文件不生效、外网不能访问。
  5. 注解开发中的@Results注解使用
  6. java上传图片或文件
  7. 【CentOS】检查系统是否安装OpenSSH
  8. 如何用Serverless让SaaS获得更灵活的租户隔离和更优的资源开销
  9. 特定场景下的PLC 远程控制和数据读取
  10. 二级C复习