Towards Evaluating the Robustness of Neural Networks
Nicholas Carlini, David Wagner, Towards Evaluating the Robustness of Neural Networks
概
提出了在不同范数下\(\ell_0, \ell_2, \ell_{\infty}\)下生成adversarial samples的方法, 实验证明此类方法很有效.
主要内容
基本的概念
本文主要针对多分类问题, 假设神经网络\(F:x \in \mathbb{R}^n \rightarrow y \in \mathbb{R}^m\), 其网络参数为\(\theta\).
假设:
\]
其中\(\mathrm{softmax}(x)_i=\frac{e^{x_i}}{\sum_j e^{x_j}}\).
\]
为\(x\)的预测类, 不妨设\(C^*(x)\)为其真实的类别.
Adversarial samples 的目标就是构建一个与\(x\)相差无几的\(x'\)(\(\|x-x'\|\)足够小),但是\(C(x')\not =C^*(x)\). 很多构建Adversarial samples可以指定类别:
- Average Case: 在不正确的标签中随机选取类别;
- Best Case: 对所有不正确的标签生成Adversariak samples, 并选择最容易成功(即骗过网络)的类别;
- Worst Case:对所有不正确的标签生成Adversariak samples, 并选择最不容易成功的类别.
文章中介绍了不少现有的方法, 这里不多赘述.
目标函数
一般可以通过如下问题求解\(x'=x+\delta\):
\min & \mathcal{D}(x, x+\delta) \\
\mathrm{s.t.} & C(x+\delta)=t \\
& x + \delta \in [0, 1]^n,
\end{array}
\]
其中\(\mathcal{D}\)衡量\(x,x+\delta\)之间的距离, 常常为\(\ell_0, \ell_2, \ell_{\infty}\).
但是\(C(x+\delta)=t\)这个条件离散, 这个问题很难直接求解, 作者给出的思路是构造一些函数\(f(x,t)\), 使得当且仅当\(f(x,t)\le0\)的时候此条件满足.
则问题转换为:
\min & \mathcal{D}(x, x+\delta) \\
\mathrm{s.t.} & f(x,t) \le 0 \\
& x + \delta \in [0, 1]^n,
\end{array}
\]
进一步
\min & \mathcal{D}(x, x+\delta) + cf(x,t) \\
\mathrm{s.t.}
& x + \delta \in [0, 1]^n.
\end{array}
\]
作者给出了7种符合此类条件的函数(作者尤为推荐第6种):

如何选择c
binary search
如何应对Box约束
图片的元素需要满足\(0\le x_i \le 1\), 如何满足此约束:
- 简单粗暴地对其裁剪, 大于1的为1, 小于0的为0, 但是这种方法在梯度下降方法比较复杂(如带momentum)的时候效果可能不会太好(既然momemtum要记录变量改变的方向, 而我们又擅自对此方向进行更改);
- 用\(f(\min (\max(x+\delta,0),1)\)替代\(f(x+\delta)\), 我的理解是, 每次不改变原变量\(x'\), 然后把clip后的\(x'\)喂给\(f\). 作者说此类方法容易方法在次优解间来回振荡的现象;
- 定义
\]
于是我们只需优化\(w_i\), 且保证\(x_i + \delta_i \in [0, 1]\).
\(L_2\) attack
\]
其中
\]
是对第6种方法的一个小改进, 其中\(\kappa\)反应了我们对误判发生的信心.
\(L_0\) attack
因为\(L_0\)范数不可微, 所以每一次, 我们先利用\(L_2\) attack来寻找合适的\(\delta\), 令\(g=\nabla f(x+\delta)\), 根据\(g_i \delta_i\)判断每个像素点的重要性, 最不重要的我们删去(根据文中的意思是永久删去).
- Input: \(x, c\)
- \(I=\empty\)
- Do ...:
- 计算在\(L_2\)下的解\(x+\delta\)(倘若在\(c\)下找不到, 则在\(2c\)条件下找(嵌套));
- \(g=\nabla f(x+\delta)\);
- \(i=\arg \min_i g_i \cdot \delta_i, i \not \in I\), 然后\(I=I \cup \{i\}\);
在利用\(L_2\)寻找\(\delta\)的过程中, 若失败, 令\(c=2c\)并重复进行, 直到其成功或者超过了最大的迭代次数.
\(L_{\infty}\) attack
\(\|\delta\|_{\infty}\)作为惩罚项(?)只会针对个别元素, 这在实际实验的时候并不友好, 往往会出现振荡, 于是作者想了一种替代
\]
这样我们就把可以关注部分突出而非个别.
Towards Evaluating the Robustness of Neural Networks的更多相关文章
- CVPR 2018paper: DeepDefense: Training Deep Neural Networks with Improved Robustness第一讲
前言:好久不见了,最近一直瞎忙活,博客好久都没有更新了,表示道歉.希望大家在新的一年中工作顺利,学业进步,共勉! 今天我们介绍深度神经网络的缺点:无论模型有多深,无论是卷积还是RNN,都有的问题:以图 ...
- Hacker's guide to Neural Networks
Hacker's guide to Neural Networks Hi there, I'm a CS PhD student at Stanford. I've worked on Deep Le ...
- 神经网络指南Hacker's guide to Neural Networks
Hi there, I'm a CS PhD student at Stanford. I've worked on Deep Learning for a few years as part of ...
- 《ImageNet Classification with Deep Convolutional Neural Networks》 剖析
<ImageNet Classification with Deep Convolutional Neural Networks> 剖析 CNN 领域的经典之作, 作者训练了一个面向数量为 ...
- A Beginner's Guide To Understanding Convolutional Neural Networks(转)
A Beginner's Guide To Understanding Convolutional Neural Networks Introduction Convolutional neural ...
- ON THE EVOLUTION OF MACHINE LEARNING: FROM LINEAR MODELS TO NEURAL NETWORKS
ON THE EVOLUTION OF MACHINE LEARNING: FROM LINEAR MODELS TO NEURAL NETWORKS We recently interviewed ...
- 提高神经网络的学习方式Improving the way neural networks learn
When a golf player is first learning to play golf, they usually spend most of their time developing ...
- (转)A Beginner's Guide To Understanding Convolutional Neural Networks
Adit Deshpande CS Undergrad at UCLA ('19) Blog About A Beginner's Guide To Understanding Convolution ...
- 论文笔记之:Learning Multi-Domain Convolutional Neural Networks for Visual Tracking
Learning Multi-Domain Convolutional Neural Networks for Visual Tracking CVPR 2016 本文提出了一种新的CNN 框架来处理 ...
随机推荐
- A Child's History of England.41
When intelligence of this new affront [hit in the face, c-o-n-frontation!] was carried to the King i ...
- Java实现 HTTP/HTTPS请求绕过证书检测
java实现 HTTP/HTTPS请求绕过证书检测 一.Java实现免证书访问Https请求 创建证书管理器类 import java.security.cert.CertificateExcepti ...
- IDEA2021.2安装与配置
https://blog.csdn.net/qq_37242720/article/details/119349394
- KMP算法中的next函数
原文链接:http://blog.csdn.net/joylnwang/article/details/6778316/ 其实后面大段的代码都可以不看 KMP的关键是next的产生 这里使用了中间变量 ...
- jvm的优化
a) 设置参数,设置jvm的最大内存数 b) 垃圾回收器的选择
- Output of C++ Program | Set 8
Predict the output of following C++ programs. Question 1 1 #include<iostream> 2 using namespac ...
- Virtual functions in derived classes
In C++, once a member function is declared as a virtual function in a base class, it becomes virtual ...
- When does compiler create default and copy constructors in C++?
In C++, compiler creates a default constructor if we don't define our own constructor (See this). Co ...
- ACE_Message_Block实现浅析
ACE_Message_Block实现浅析1. 概述ACE_Message_Block是ACE中很重要的一个类,和ACE框架中的重要模式的实现 如ACE_Reactor, ACE_Proactor, ...
- MySQL 用户权限相关命令
##1.创建用户: create user test identified by '123456';##identified后面跟密码 ##2.查询所有用户: select user from mys ...