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会有改进, 后续再看.

Noise的更多相关文章

  1. Noise Contrastive Estimation

    Notes from Notes on Noise Contrastive Estimation and Negative Sampling one sample: \[x_i \to [y_i^0, ...

  2. Coursera台大机器学习课程笔记7 -- Noise and Error

    本章重点:  简单的论证了即使有Noise,机器依然可以学习,VC Dimension对泛化依然起作用:介绍了一些评价Model效果的Error Measurement方法. 一论证即使有Noisy, ...

  3. useful tips for win7--close the noise volume(关掉win7开机、系统操作的声音)

    how to close the voice of your PC? i)   open your computer and then press F2 to enter the BIOS set-u ...

  4. Perlin Noise 及其应用

    Perlin Noise 可以用来表现自然界中无法用简单形状来表达的物体的形态,比如火焰.烟雾.表面纹路等.要生成 Perlin Noise 可以使用工具离线生成,也可以使用代码运行时生成.最简单常用 ...

  5. 关于Noise and Error主题的一些小知识

    (一)Noise会不会对VC bound产生影响? 此笔记源于台湾大学林轩田老师<机器学习基石><机器学习技法> 答案是不会. 当信号中加入了Noise,其实对我们之前学过的内 ...

  6. Poj 1953 World Cup Noise之解题报告

    World Cup Noise Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 16369   Accepted: 8095 ...

  7. DBSCAN(Density-based spatial clustering of applications with noise)

    Density-based spatial clustering of applications with noise (DBSCAN) is a data clustering algorithm ...

  8. 【论文:麦克风阵列增强】Microphone Array Post-Filtering For Non-Stationary Noise Suppression

    作者:桂. 时间:2017-06-08  08:01:41 链接:http://www.cnblogs.com/xingshansi/p/6957027.html 原文链接:http://pan.ba ...

  9. 提纲挈领webrtc之NS(noise suppression)模块

    Noise suppression,就是大家说的降噪.这种降噪是把人声和非人声区分开来,把非人声当成噪声. 一段包含人声和噪声的音频经过该模块处理,从理论上讲,只剩下人声了. webrtc的NS在业内 ...

  10. Matrix Completion with Noise

    目录 引 恢复1 核范数与SDP 稳定恢复 Candes E J, Plan Y. Matrix Completion With Noise[J]. arXiv: Information Theory ...

随机推荐

  1. 『学了就忘』Linux文件系统管理 — 67、通过命令模式进行LVM分区

    目录 1.物理卷管理 (1)准备硬盘或者分区 (2)建立物理卷 (3)查看物理卷 (3)删除物理卷 2.创建卷组 (1)建立卷组 (2)查看卷组 (3)增加卷组容量 (4)减小卷组容量 (5)删除卷组 ...

  2. Js数组内对象去重

    let person = [ {id: 0, name: "小明"}, {id: 1, name: "小张"}, {id: 2, name: "小李& ...

  3. 【J-Link】J-Link不支持(版本太低)

    事情起因,我原本可以烧录和仿真的(版本6.3.4),但是后来安装另一个东西,这个东西里面包含旧的J-Link驱动(版本5.1.2) 它把Keil文件夹下的JLinkARM.dll覆盖了,导致出现下面的 ...

  4. Windows 下 Node.js 开发环境搭建

    1.利用CentOS Linux系统自带的yum命令安装.升级所需的程序库: sudo -s LANG=C yum -y install gcc gcc-c++ autoconf libjpeg li ...

  5. Oracle 学习PL/SQL

    先上一张实用的图:用于转义字符的. SQL> select chr(42) ||'is what?' from dual; CHR(42)||---------*is what? 想转义哪个就转 ...

  6. 【Python】matplotlib直方图纵轴显示百分比

    其实很简单,就是算了一下百分比权重,乘以了一个权重值 import matplotlib.pyplot as plt from matplotlib.ticker import FuncFormatt ...

  7. 玩转 Mockjs,前端也能跑的很溜

    ​ mockjs作用就是,生成随机模拟数据,拦截 ajax 请求,可以对数据进行增删改查.在生成数据时,我们就需要能够熟练使用 mock.js 的语法. Mockjs 的语法规范包括两部分:数据模板定 ...

  8. C#和.NET 框架

    C#和.NET框架 在.NET之前 20世纪90年代,微软平台多数程序员使用VB.C或C++.他们使用的技术都有问题. 技术 问题 纯Win32 API 不是面向对象,工作量比MFC大 MFC(Mic ...

  9. Jenkins pipeline声明式语法

    目录 一.最简结构 二.简单例子 一.最简结构 pipeline {     agent any     stages {         stage('pull') {             st ...

  10. Windows 任务计划部署 .Net 控制台程序

    Windows 搜索:任务计划程序 创建任务 添加任务名称 设置触发器:这里设置每10分钟执行一次 保存之后显示 此任务会从每天的 0:10:00 执行第一次后一直循环下去. 在操作选项卡下,选择启动 ...