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的第四天

    一.今日收获 1.java完全手册的第一章 2.   1.6节了解了怎么样用记事本开发java程序 与用Eclipse开发 2.完成了对应例题 二.今日难题 1.一些用法容易与c++的混淆 2.语句还 ...

  2. accurate, accuse

    accurate accurate(不是acute)和precise是近义词,precise里有个pre,又和excise(切除, 不是exercise),concise一样有cise.Why? 准确 ...

  3. C++ 数组元素循环右移问题

    这道题要求不用另外的数组,并且尽量移动次数少. 算法思想:设计一个结构体存储数组数据和它应在的索引位置,再直接交换,但是这种方法不能一次性就移动完成,因此再加一个判断条件.等这个判断条件满足后就退出循 ...

  4. 【AWS】【TroubleShooting】EC2实例无法使用SSH远程登陆(EC2 failure for SSH connection)

    1. Login AWS web console and check the EC2 instance.

  5. Gitlab安装操作说明书

    一.Gitlab安装操作步骤 登录官方网站https://about.gitlab.com/downloads/根据你所需要的系统版本,作者使用的是centos6, 检查您的服务器是否符合硬件要求.g ...

  6. error信息

    /opt/hadoop/src/contrib/eclipse-plugin/build.xml:61: warning: 'includeantruntime' was not set, defau ...

  7. 【JAVA】【JVM】内存结构

    虽然jvm帮我们做了内存管理的工作,但是我们仍需要了解jvm到底做了什么,下面我们就一起去看一看 jvm启动时进行一系列的工作,其中一项就是开辟一块运行时内存.而这一块内存中又分为了五大区域,分别用于 ...

  8. springboot优雅实现异常处理

    前言 在平时的 API 开发过程中,总会遇到一些错误异常没有捕捉到的情况.那有的小伙伴可能会想,这还不简单么,我在 API 最外层加一个 try...catch 不就完事了. 哈哈哈,没错.这种方法简 ...

  9. 如何使用table布局静态网页

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  10. 【力扣】剑指 Offer 25. 合并两个排序的链表

    输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的. 示例1: 输入:1->2->4, 1->3->4输出:1->1->2->3-> ...