motivation

用两个BN(一个用于干净样本, 一个用于对抗样本), 结果当使用\(\mathrm{BN}_{nat}\)的时候, 精度能够上升, 而使用\(\mathrm{BN}_{adv}\)的时候, 也有相当的鲁棒性. 原文采用的是

\[\alpha \mathcal{L}(f(x), y) + (1-\alpha) \mathcal{L}(f(x+\delta), y),
\]

来训练(这里\(f(x)\)输出的是概率向量而非logits), 试试看别的组合方式, 比如

\[\mathcal{L}(\alpha f(x_{nat}) + (1-\alpha)f(x_{adv}) ,y).
\]

settings

Attribute Value
attack pgd-linf
batch_size 128
beta1 0.9
beta2 0.999
dataset cifar10
description AT=0.5=default-sgd-0.1=pgd-linf-0.0314-0.25-10=128=default
epochs 100
epsilon 0.03137254901960784
learning_policy [50, 75] x 0.1
leverage 0.5
loss cross_entropy
lr 0.1
model resnet32
momentum 0.9
optimizer sgd
progress False
resume False
seed 1
stats_log False
steps 10
stepsize 0.25
transform default
weight_decay 0.0005

results

x轴为\(\alpha\)从\(0\)变化到\(1\).

Accuracy Robustness
\(0.5 \mathcal{L}_{nat} + 0.5\mathcal{L}_{adv}\)
\(\mathcal{L}(0.5 p_{nat} + 0.5p_{adv}, y)\)
\(0.1 \mathcal{L}_{nat} + 0.9\mathcal{L}_{adv}\) 48.350
\(\mathcal{L}(0.1 p_{nat} + 0.9p_{adv}, y)\) 48.270
\(0.2 \mathcal{L}_{nat} + 0.8\mathcal{L}_{adv}\) 48.310
\(\mathcal{L}(0.2 p_{nat} + 0.8p_{adv}, y)\) 47.960

似乎原来的形式情况更好一点.

TriggerBN ++的更多相关文章

随机推荐

  1. 学习java 7.26

    学习内容: 进度条是图形界面中广浅个较大的文件时,操作系统会显示一个进度条,用于标识复制操作完成的比例:当启动Eclipse等程序时,因为需要加载较多的资源,故而启动速度较慢,程序也会在启动过程中显示 ...

  2. A Child's History of England.31

    The English in general were on King Henry's side, though many of the Normans were on Robert's. But t ...

  3. adjective

    形容词用来描述名词或代词:副词用来描述剩下的(动词.形容词.副词和整句).adverb: to word. Adjectives are used almost exclusively to modi ...

  4. ORACLE 查询sql和存储性能思路

    1.确定session id 如果是存储过程,在程序开头设置客户端标识.并根据标识获取session id. DBMS_SESSION.set_identifier('XXX'); select * ...

  5. Linux学习 - Bash变量

    一.用户自定义变量(本地名) 用户自定义变量只有在当前的shell中生效 1 定义变量 name="zheng huiwei" aa=123 2 变量叠加 aa="$aa ...

  6. restful接口文档

    1.先理清业务bai流程 2.定义前后端开发的接口规范.比如json的格dao式,url的格式 3.定内义接口文容档,这里的接口文档一般就是对应后台的实体reqVo(调用后台接口<控制器> ...

  7. Spring 与 SpringBoot 的区别

    概述 Spring 与 SpringBoot 有什么区别???梳理一下 Spring 和 SpringBoot 到底有什么区别,从 Spring 和 SpringBoot 两方面入手. Spring ...

  8. 常用 HTTP 状态码

    下面是列举的我在项目中用到过的一些 HTTP 状态码,当然,在具体的使用中并不是用到的状态码越多越好,需要结合自己项目情况来选用适合自己的 HTTP 状态码.   HTTP 状态码 含义说明 200 ...

  9. STL 较详尽总结

    STL就是Standard Template Library,标准模板库.这可能是一个历史上最令人兴奋的工具的最无聊的术语.从根本上说,STL是一些"容器"的集合,这些" ...

  10. Linux centos 安装Docker

    安装docker需要centos7 内核3.1以上 基本上centos7以上的都支持, 然后先更新到最新 sudo yum update 然后直接安装 sudo yum install docker ...