Madry A, Makelov A, Schmidt L, et al. Towards Deep Learning Models Resistant to Adversarial Attacks.[J]. arXiv: Machine Learning, 2017.

@article{madry2017towards,

title={Towards Deep Learning Models Resistant to Adversarial Attacks.},

author={Madry, Aleksander and Makelov, Aleksandar and Schmidt, Ludwig and Tsipras, Dimitris and Vladu, Adrian},

journal={arXiv: Machine Learning},

year={2017}}

利用特定的方法产生"坏"样本(Adversarial samples), 以此来促进网络的稳定性是当下的热点之一, 本文以实验为主, 比较PGD( projected gradient descent) 和 FGSM(fast gradient sign method)在不同数据下的表现, 以及由普通样本产生"坏"样本会出现的一些现象.

主要内容

Adversarial attacks 主要聚焦于下列问题:

\[\tag{2.1}
\min_{\theta} \rho (\theta) \quad where \quad \rho(\theta) =\mathbb{E}_{(x,y)\sim D}[\max_{\delta \in S} L(\theta, x+\delta, y)].
\]

其中\(S\)是我们指定的摄动集合, 直接一点就是\(|\delta| <constant\)之类.

通过FGSM产生"坏"样本:

\[x + \epsilon \: \mathrm{sgn}(\nabla_x L(\theta,x,y)).
\]

这个思想是很直接的(从线性感知器谈起, 具体看here).

PGD的思路是, 给定摄动集\(S\), 比如小于某个常数的摄动(e.g. \(\{\tilde{x}:\|x-\tilde{x}\|_{\infty}<c\}\)), 多次迭代寻找合适的adversarial samples:

\[x^{t+1} = \prod_{x+S} (x^t + \alpha \: \mathrm{sgn} (\nabla_x L(\theta,x, y)),
\]

其中\(\prod\)表示投影算子, 假设\(S=\{\tilde{x}:\|x-\tilde{x}\|_{\infty}<c\}\),

\[x^{t+1} = \arg \min_{z \in x+S} \frac{1}{2} \|z - (x^t + \alpha \: \mathrm{sgn} (\nabla_x L(\theta,x, y))\|_2^2,
\]

实际上, 可以分开讨论第\((i,j)\)个元素, \(y:=(x^t + \alpha \: \mathrm{sgn} (\nabla_x L(\theta,x, y))\), 只需找到\(z_{ij}\)使得

\[\|z_{ij}-y_{ij}\|_2
\]

最小即可. 此时有显示解为:

\[z_{ij}=
\left \{
\begin{array}{ll}
x_{ij} +c & y_{ij} > x_{ij}+c \\
x_{ij} -c & y_{ij} < x_{ij}-c \\
y_{ij} & else.
\end{array} \right.
\]

简而言之就是一个截断.

重复几次, 至到\(x^t\)被判断的类别与初始的\(x\)不同或者达到最大迭代次数.

Note

  • 如果我们训练网络能够免疫PGD的攻击, 那么其也能很大一部分其它的攻击.
  • FGSM对抗训练不能提高网络的稳定性(在摄动较大的时候).
  • weak models may fail to learn non-trival classfiers.
  • 网络越强(参数等程度)训练出来的稳定性越好, 同时可转移(指adversarial samples 在多个网络中被误判)会变差.

Towards Deep Learning Models Resistant to Adversarial Attacks的更多相关文章

  1. How to Grid Search Hyperparameters for Deep Learning Models in Python With Keras

    Hyperparameter optimization is a big part of deep learning. The reason is that neural networks are n ...

  2. a Javascript library for training Deep Learning models

    w强化算法和数学,来迎接机器学习.神经网络. http://cs.stanford.edu/people/karpathy/convnetjs/ ConvNetJS is a Javascript l ...

  3. Run Your Tensorflow Deep Learning Models on Google AI

    People commonly tend to put much effort on hyperparameter tuning and training while using Tensoflow& ...

  4. What are some good books/papers for learning deep learning?

    What's the most effective way to get started with deep learning?       29 Answers     Yoshua Bengio, ...

  5. (转) Awesome Deep Learning

    Awesome Deep Learning  Table of Contents Free Online Books Courses Videos and Lectures Papers Tutori ...

  6. (转)分布式深度学习系统构建 简介 Distributed Deep Learning

    HOME ABOUT CONTACT SUBSCRIBE VIA RSS   DEEP LEARNING FOR ENTERPRISE Distributed Deep Learning, Part ...

  7. The Brain vs Deep Learning Part I: Computational Complexity — Or Why the Singularity Is Nowhere Near

    The Brain vs Deep Learning Part I: Computational Complexity — Or Why the Singularity Is Nowhere Near ...

  8. Paper Reading——LEMNA:Explaining Deep Learning based Security Applications

    Motivation: The lack of transparency of the deep  learning models creates key barriers to establishi ...

  9. Coursera Deep Learning 2 Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization - week1, Assignment(Regularization)

    声明:所有内容来自coursera,作为个人学习笔记记录在这里. Regularization Welcome to the second assignment of this week. Deep ...

随机推荐

  1. day06 模板层

    day06 模板层 今日内容 常用语法 模板语法传值 模板语法之过滤器 模板语法之标签 自定义过滤器.标签.inclusion_tag(BBS作业用一次) 模板的继承(django前后端结合 那么使用 ...

  2. Scala(三)【函数式编程】

    目录 一.方法和函数 1.方法 1)基本语法 2)简化原则 3)方法参数 2.函数 3.方法和函数的区别 二.高阶函数 三.匿名函数 四.柯里化 五.闭包 一.方法和函数 1.方法 1)基本语法 de ...

  3. linux系统下命令的学习

    本博客是本人工作时做的笔记 ps aux |grep ^profile |grep A190200024 ^ 表示行首匹配 linux查看文件大小: 具体可查看:https://www.cnblogs ...

  4. Spring AOP通过注解的方式设置切面和切入点

    切面相当于一个功能的某一个类,切入点是这个类的某部分和需要额外执行的其他代码块,这两者是多对多的关系,在代码块处指定执行的条件. Aspect1.java package com.yh.aop.sch ...

  5. JSP常见的状态码

    1.404错误 -- 找不到访问的页面或资源 a.URL输入错误: b.未部署项目. 2.500错误 -- JSP页面代码有错误 3.302状态码+200状态码 -- 重定向 4.200状态码 -- ...

  6. 【JavaWeb】【学习】【过滤器】Filter 的简单应用

    实现效果 在编辑框中输入暗号:如果暗号正确,则跳转到正确页面:如果暗号错误,则跳转到错误界面. [入口界面] [错误界面] [成功界面] [项目结构] JSP文件 本练习有两个jsp页面 页面1:in ...

  7. RocketMQ架构原理解析(三):消息索引

    一.概述 "索引"一种数据结构,帮助我们快速定位.查询数据 前文我们梳理了消息在Commit Log文件的存储过程,讨论了消息的落盘策略,然而仅仅通过Commit Log存储消息是 ...

  8. Nginx支持php

    目录 一.简介 二.配置 三.测试 四.参数 一.简介 Nginx本身只能解析html文件,但有些网页是php写的,就需要Nginx连接php,将网页解析成html再发给客户端. 配置中将.php 结 ...

  9. java多线程6:ReentrantLock

    下面看下JUC包下的一大并发神器ReentrantLock,是一个可重入的互斥锁,具有比synchronized更为强大的功能. ReentrantLock基本用法 先来看一下ReentrantLoc ...

  10. thinkphp or查询

    $map['source'] = array(array('eq',0),array('eq',1), 'or'); $this->model->where($map)