Towards Deep Learning Models Resistant to Adversarial Attacks
@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 主要聚焦于下列问题:
\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产生"坏"样本:
\]
这个思想是很直接的(从线性感知器谈起, 具体看here).
PGD的思路是, 给定摄动集\(S\), 比如小于某个常数的摄动(e.g. \(\{\tilde{x}:\|x-\tilde{x}\|_{\infty}<c\}\)), 多次迭代寻找合适的adversarial samples:
\]
其中\(\prod\)表示投影算子, 假设\(S=\{\tilde{x}:\|x-\tilde{x}\|_{\infty}<c\}\),
\]
实际上, 可以分开讨论第\((i,j)\)个元素, \(y:=(x^t + \alpha \: \mathrm{sgn} (\nabla_x L(\theta,x, y))\), 只需找到\(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的更多相关文章
- 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 ...
- a Javascript library for training Deep Learning models
w强化算法和数学,来迎接机器学习.神经网络. http://cs.stanford.edu/people/karpathy/convnetjs/ ConvNetJS is a Javascript l ...
- Run Your Tensorflow Deep Learning Models on Google AI
People commonly tend to put much effort on hyperparameter tuning and training while using Tensoflow& ...
- 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, ...
- (转) Awesome Deep Learning
Awesome Deep Learning Table of Contents Free Online Books Courses Videos and Lectures Papers Tutori ...
- (转)分布式深度学习系统构建 简介 Distributed Deep Learning
HOME ABOUT CONTACT SUBSCRIBE VIA RSS DEEP LEARNING FOR ENTERPRISE Distributed Deep Learning, Part ...
- 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 ...
- Paper Reading——LEMNA:Explaining Deep Learning based Security Applications
Motivation: The lack of transparency of the deep learning models creates key barriers to establishi ...
- 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 ...
随机推荐
- 12. Fedora 中文乱码问题
1. Rhythmbox(音乐播放器乱码) yum install python-mutagen mid3iconv -e GBK *.mp3 2. totem电影播放机播放列表乱码解决1).修改to ...
- vue引入d3
单页面使用 cnpm install d3 --save-dev 指定版本安装 cnpm install d3@6.3.1 -S <script> import * as d3 from ...
- Java面试基础--(出现次数最多的字符串)
题目:给定字符串,求出现次数最多的那个字母及次数,如有多个 重复则都输出. eg,String data ="aaavzadfsdfsdhshdWashfasdf": 思路: 1. ...
- hadoop accesscontrolException
DFS loaction: /tmp 文件下的 hadoop-haoop/mapred/system报 AccessControlException. 解决: bin/hadoop fs -chmod ...
- jQuery节点更新
一.插入子节点 var $newNode1 = $("<p>我是p标签</p>"); 加入之后,原来的会删除. 二.插入兄弟节点 三.替换节点 1.HTML ...
- 关于tensorflow无法使用gpu
python3.6 无法使用tensorflow gpu 环境名称 test1 在控制台里进入环境 conda activate test1 使用python python 查看gpu能否使用 pri ...
- netty系列之:性能为王!创建多路复用http2服务器
目录 简介 多路复用的基础 多路复用在server端的使用 配置TLS处理器 配置clear text upgrade 总结 简介 在之前的文章中,我们提到了在netty的客户端通过使用Http2Fr ...
- shell脚本 Linux系统巡检
一.简介 源码地址 日期:2018/4/12 介绍:非常详细的Linux系统巡检脚本,截图为一部分输出 效果图: 二.使用 适用:centos6+ 语言:中文 注意:无 下载 wget https:/ ...
- Linux进程操作
查看进程启动时间 ps -eo pid,lstart | grep PID 查看进程的运行多久 ps -eo pid,etime |grep PID 查看进程中启动了哪些线程 top -H -p pi ...
- [BUUCTF]PWN——bjdctf_2020_router
bjdctf_2020_router 附件 步骤: 例行检查,64位程序,开启了NX保护 本地试运行一下程序,看看大概的情况 会让我们选择,选择4.root,没什么用,但是注意了,这边选1会执行pin ...